Ik ben bezig met mijn eigen websiteje en werk op de volgende manier.
template.php --> bevat html met pagina layout. en $tpl_variabelen. Voorbeeld:
Daarnaast heb ik mijn PHP scripts waar de lay-out variabelen gevuld worden. Bijvoorbeeld:
Nu heb ik een html editor gedownload waarmee ik in de browser content kan editten. Een mooi stukje software (http://www.fredck.com/FCKeditor/) en je moet het op de volgende manier aanroepen:
Dus ik probeer dit nu al een tijdje in mijn PHP script in te voegen:
Maar nu zet hij die editor niet neer op de plaats waar ik wil. De html output van bovenstaande ziet er als volgt uit:
Met andere woorden: hij runt eerst die editor en daarna wordt pas de rest van de PHP geparsed. Als oplossing heb ik zaken geprobeerd als
Maar dit haalt niets uit. En dat snap ik niet. In de zipfile die ik gedownload heb dit het volgende werkende voorbeeld van hoe je de editor kunt integreren in je pagina:
Dit werkt wel. Maar zoals aangegeven bouw ik de hele html output op binnen <?php tags ?>. Ik weet zeker dat de oplossing heel simpel is, maar ik kom er maar niet op
Wie helpt mij op weg?
template.php --> bevat html met pagina layout. en $tpl_variabelen. Voorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
| <html> <head> <title><?= $tpl_title; ?></title> <?= $tpl_head; ?> </head> <body> <?= $tpl_body; ?> </body> </html> |
Daarnaast heb ik mijn PHP scripts waar de lay-out variabelen gevuld worden. Bijvoorbeeld:
PHP:
1
2
3
| $res_title = db_query('SELECT title FROM pages WHERE node_id = '.$_GET['id']); $row_conts = db_fetch_array($res_conts); $tpl_title = $row_conts['title']; // stuur naar template |
Nu heb ik een html editor gedownload waarmee ik in de browser content kan editten. Een mooi stukje software (http://www.fredck.com/FCKeditor/) en je moet het op de volgende manier aanroepen:
PHP:
1
2
3
4
5
| $oFCKeditor = new FCKeditor ; $oFCKeditor->BasePath = '/mijn/website/pad/editor/' ; $oFCKeditor->ToolbarSet = 'Minimal' ; $oFCKeditor->Value = 'Text die in het iframe verschijnt' ; $oFCKeditor->CreateFCKeditor( 'EditorDefault', '100%', 450 ) ; |
Dus ik probeer dit nu al een tijdje in mijn PHP script in te voegen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $tpl_body .= '<form name="contents" action="_edit.php" method="post">. '<input type="hidden" name="text" value="">'. '<table cellspacing="0" cellpadding="3" border="0">'. '<tr><td colspan="2">'; include('editor/fckeditor.php'); $oFCKeditor = new FCKeditor; $oFCKeditor->BasePath = '/mijn/website/pad/editor/'; $oFCKeditor->ToolbarSet = 'Custom'; $oFCKeditor->Value = 'hoi'; $oFCKeditor->CreateFCKeditor( 'Editortext', '100%', 450 ); $tpl_body .= '</td></tr>'. '<tr><td colspan="2" align="right">'. '<input type="button" onclick="do_submit();" value="Opslaan">'. '</td></tr></table></form>'; |
Maar nu zet hij die editor niet neer op de plaats waar ik wil. De html output van bovenstaande ziet er als volgt uit:
HTML:
1
2
3
4
5
6
7
8
9
10
11
| <IFRAME src="/odisys/new2/beta/admin/editor/fckeditor.html? FieldName=Editortext&Toolbar=Custom" width="100%" height="450" frameborder="no" scrolling="no"></IFRAME><INPUT type="hidden" name="Editortext" value="hoi"> <!------ output van de editor class. Is goed, maar staat verkeerd! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> ... |
Met andere woorden: hij runt eerst die editor en daarna wordt pas de rest van de PHP geparsed. Als oplossing heb ik zaken geprobeerd als
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $tpl_body .= '<form name="contents" action="_edit.php" method="post">. '<input type="hidden" name="text" value="">'. '<table cellspacing="0" cellpadding="3" border="0">'. '<tr><td colspan="2">'; include('editor/fckeditor.php'); $tpl_body .= $oFCKeditor = new FCKeditor; $tpl_body .= $oFCKeditor->BasePath = '/mijn/website/pad/editor/'; $tpl_body .= $oFCKeditor->ToolbarSet = 'Custom'; $tpl_body .= $oFCKeditor->Value = 'hoi'; $tpl_body .= $oFCKeditor->CreateFCKeditor( 'Editortext', '100%', 450 ); $tpl_body .= '</td></tr>'. '<tr><td colspan="2" align="right">'. '<input type="button" onclick="do_submit();" value="Opslaan">'. '</td></tr></table></form>'; |
Maar dit haalt niets uit. En dat snap ik niet. In de zipfile die ik gedownload heb dit het volgende werkende voorbeeld van hoe je de editor kunt integreren in je pagina:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <TITLE>FCKeditor - PHP Test Page</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="ROBOTS" content="NOINDEX, NOFOLLOW"> </HEAD> <BODY> <form action="testsubmit.php" target="_blank" method="post" language="javascript"> <?php $oFCKeditor = new FCKeditor ; $oFCKeditor->BasePath = '/FCKEditor/' ; $oFCKeditor->ToolbarSet = 'Custom' ; $oFCKeditor->Value = 'hello world!' ; $oFCKeditor->CreateFCKeditor( 'EditorDefault', '100%', 450 ) ; ?> <INPUT type="submit" value="Submit Data"> </form> </BODY> </HTML> |
Dit werkt wel. Maar zoals aangegeven bouw ik de hele html output op binnen <?php tags ?>. Ik weet zeker dat de oplossing heel simpel is, maar ik kom er maar niet op
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."