Avatar billede c971875 Nybegynder
01. maj 2001 - 14:57 Der er 10 kommentarer og
1 løsning

Parse en PHP fil i en template

Jeg har lavet en overordnet template til mit website.
I mit PHP script assigner jeg så de forskellige variabler fra templaten til de filer, som indeholder websiderne:

$tpl->define(array(
    \"toplevel\" => \"toplevel.tpl\",
    \"menu\" => \"menu.html\"));

Kan det i denne forbindelse lade sig gøre at
bruge en php fil? altså

$tpl->define(array(
    \"toplevel\" => \"toplevel.tpl\",
    \"menu\" => \"menu.php3\"));


Jeg ved godt at man ikke behøver dette, men jeg syntes det ville gøre tingene lidt lettere i mit tilfælde.
Når jeg prøver ovenstående, bliver php koden i menu.php3 ikke afviklet. Hvordan får jeg fortalt at det er meningen at php3 filen skal afvikles? Kan det overhovedet lade sig gørè?
Avatar billede uller Nybegynder
01. maj 2001 - 15:03 #1
prøv:

...
\"menu\" => eval(\"menu.php3\"));

Dog skal det nævnes at der IKKE må stå echo eller print nogen steder i det script!!!
Avatar billede ghanic Nybegynder
01. maj 2001 - 15:30 #2
En stump kode ud af ingenting. define() må være en funktion i din klasse. define() må bruge sit array[\"menu\"] til noget et eller andet sted.

På det sted bruger du include(), eg. include(\"menu.php3\");

require kan ikke benyttes.

Hvis du ikke forstår denne forklaring, så post hele klassen.
Avatar billede uller Nybegynder
01. maj 2001 - 15:39 #3
\"define(array(\" er noget det bruges i forbindelse med \"FastTemplates\" en klasse der er lidt for stor til at poste her...

men ellers kan du skrive..:
\"menu\" => en_funktion_i_menu_php3() ));
hvor du så i menu.php3 har en funktion du kalder,
denne funktion skal så returnere en variabel som templateklassen bruger...

her: http://www.thewebmasters.net/
kan der læses meget mere om denne FEDE klasse...
Avatar billede c971875 Nybegynder
01. maj 2001 - 15:41 #4
Min kode ser sådan her ud:

<?php

include \"phpclasses/class.FastTemplate.php3\";
$tpl = new FastTemplate(\"templates\");

$tpl->define(array(
    \"toplevel\" => \"toplevel.tpl\",
    \"menu\" => \"menu.html\",
    \"content\" => \"../content.html\",
    \"addfield2\" => \"../toprightbar.php3\",
    \"addfield1\" => \"../bottomrightbar.php3\"
    ));

$tpl->assign(array(
    \"TITLE\"=> \"The official panels site for developers\",
    \"PAGETITLE\"=> \"Panels homepage\",
    \"ADDFIELD2HEADING\"=>\"Status\",
    \"ADDFIELD1HEADING\"=>\"Change history\"
    ));

$tpl->parse(\"MENUBAR\", \"menu\");
$tpl->parse(\"ADDFIELD2\", \"addfield2\");
$tpl->parse(\"ADDFIELD1\", \"addfield1\");
$tpl->parse(\"CONTENT\", \"content\");


$tpl->parse(\"MAIN\", \"toplevel\");
$tpl->FastPrint();

?>


(De to .php3 filer som jeg definer, bliver ikke afviklet.)
Avatar billede ghanic Nybegynder
01. maj 2001 - 15:44 #5
Så skal vi lige se phpclasses/class.FastTemplate.php3
Avatar billede c971875 Nybegynder
01. maj 2001 - 15:45 #6
Det bliver nok ikke aktuelt, den er på 750 linier
Avatar billede ghanic Nybegynder
01. maj 2001 - 15:52 #7
Du kan sikkert nøjes med parse() funktionen.
Avatar billede uller Nybegynder
01. maj 2001 - 15:55 #8
c971875 -> det var det jeg prøvede at sige.. :o)

bare det er REN html(med template variabler) der står i dine *.php3 filer er det ikke et problem...

FastTemplate klassen exekverer ikke noget som helst.
Det skal du ha\' glort før du bruger dem...:

ex:
-------------------------------------
<? /* menu.php3 */
function returnMenu() {
return \"<a href=\"test.html\">test</a>\";
}

?>
<? /* din kode */
...
include(\"../menu.php3\");
...
\"addfield2\" => , returnMenu(),
....
?>

Avatar billede uller Nybegynder
01. maj 2001 - 15:57 #9
HOLD NU OP!!!
hvis I vil se \"class.FastTemplate.php3\" scriptet
så følg dette link:
http://www.thewebmasters.net/php/FastTemplate-1_1_0.tar.gz


Avatar billede c971875 Nybegynder
06. juni 2001 - 09:09 #10
hmm... Det ser ikke ud til at der sker så meget her. Jeg lukker bare sp.
Avatar billede stringbuffer Nybegynder
06. marts 2003 - 18:07 #11
wee.... en stud polyt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester