php in een .tpl file

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zou graag een stukje php verwerken in een tpl file, omdat deze functie in php enkel in dát template gerbruikt moet worden. Ik kan dit assignen in mijn basis .php file maar dan wordt de code een beetje onoverzichtelijk, aangezien ik die functie in een andere template niet zal nodig hebben.
Is dit eerst en vooral mogelijk? indien anders hoe kan ik dit het beste oplossen.

code:
1
2
3
4
5
6
7
8
9
# voorbeeld:
# dit is de .tpl file

<table> 
  <tr <? echo functionNaam('','',''); ?>>
    <td>
    </td>
  </tr>
</table>

Acties:
  • 0 Henk 'm!

  • Kettrick
  • Registratie: Augustus 2000
  • Laatst online: 14:12

Kettrick

Rantmeister!

Graag even vermelden welke template engine je gebruikt, zo kan niemand je echt goed helpen :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Waarom zou je een functie aanroepen? Waarom zou je in plaats daarvan niet zorgen dat je een variabele hebt die al gevuld is voor je je template gaat verwerken?
RoeLz schreef op dinsdag 13 september 2005 @ 17:57:
Graag even vermelden welke template engine je gebruikt, zo kan niemand je echt goed helpen :)
Geen zo te zien, gewoon PHP zelf. Ik kan hem in ieder geval prima (proberen) te helpen. :P

[ Voor 49% gewijzigd door NMe op 13-09-2005 17:58 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik gebruik templatePower.
Ik verwerk die functie niet in een variabele omdat ik deze enkel nodig heb in deze template in een andere ga ik deze niet moeten gebruiken

Acties:
  • 0 Henk 'm!

Verwijderd

Wat is die .tpl voor een file? Gebruik je een specifieke template engine?

Voor zover ik kan vinden is een .tpl extensie gebruikelijk bij phpBB, maar wellicht wordt het ook elders gebruikt en gokken is zo zinloos ..

edit:
/me is net iets te laat

[ Voor 14% gewijzigd door Verwijderd op 13-09-2005 18:01 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op dinsdag 13 september 2005 @ 18:00:
ik gebruik templatePower.
Ik verwerk die functie niet in een variabele omdat ik deze enkel nodig heb in deze template in een andere ga ik deze niet moeten gebruiken
Dus?

edit:
Toch maar even iets uitgebreider. :P Het hele idee van een template engine is dat je logica scheidt van layout. Dat doe je teniet wanneer je een functie opneemt in je template, die hoort gewoon bij de rest van je programmalogica. :)

[ Voor 31% gewijzigd door NMe op 13-09-2005 18:03 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Maar dan moet ik die assignen en dát wil ik niet doen omdat ik dan enkel voor DIE bepaalde template een variabele moet maken, terwijl ik die in andere templates niet meer ga gebruiken... die dus nutteloos wordt..

Acties:
  • 0 Henk 'm!

  • RMU
  • Registratie: Mei 2002
  • Laatst online: 09-09-2024

RMU

Wat is nou het punt? Als je nou gewoon doet zoals -NMe- zegt, dan blijft een template teminste nog een template en verziek je hem niet met PHP code :P

Die ene miliseconde die je script langer laad boeidt ook niet :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb het dus zoals gezegd geassigned.. ookal wringt het nog steeds bij mij.. maar het werkt en dat is het belangrijkste.

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Je kan toch in je php code zorgen, dat alleen bij die template de output van 'echo functionNaam('','','');' aan een variable wordt toegekend? Dan kan je die variabele gewoon gebruiken in je template.

Als je echt PHP wilt in je 'templates' dan zou ik eens kijken naar Smarty

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Als je echt PHP wilt in templates, dan gebruik je gewoon PHP, en geen template engine. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • HawVer
  • Registratie: Februari 2002
  • Laatst online: 13-09 16:51
-NMe- schreef op dinsdag 13 september 2005 @ 20:04:
Als je echt PHP wilt in templates, dan gebruik je gewoon PHP, en geen template engine. :P
Helemaal mee eens.. het is een eitje om php bestanden in te laden. En waarom een template taal gebruiken die gebouwd is met een template taal? 8)7

http://hawvie.deviantart.com/


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

HawVer schreef op dinsdag 13 september 2005 @ 22:47:
[...]

Helemaal mee eens.. het is een eitje om php bestanden in te laden. En waarom een template taal gebruiken die gebouwd is met een template taal? 8)7
Waarom niet? op die manier kan je mensen een template laten maken zonder dat ze de applicatie kapot maken omdat ze met PHP zitten te klooien :) En natuurlijk de onderhoudbaarheid, op deze manier heb je een duidelijke scheiding tussen je code en de output.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Erkens schreef op dinsdag 13 september 2005 @ 22:50:
Waarom niet? op die manier kan je mensen een template laten maken zonder dat ze de applicatie kapot maken omdat ze met PHP zitten te klooien :) En natuurlijk de onderhoudbaarheid, op deze manier heb je een duidelijke scheiding tussen je code en de output.
Die scheiding krijg je door PHP zelf als template engine te gebruiken ook wel. Verder is het natuurlijk zo dat iemand die niet te vertrouwen is met PHP, ook niks te zoeken heeft in je templates.

Zoals je echter zelf ook wel weet is deze discussie al heel vaak voorbij gekomen, en iedereen blijft toch koppig vasthouden aan wat ie gewend is (ik ook :P) dus dat loopt toch op niets uit. Zullen we deze discussie maar afkappen voordat we weer met zijn allen in herhaling vallen? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

-NMe- schreef op dinsdag 13 september 2005 @ 22:56:
[...]

Die scheiding krijg je door PHP zelf als template engine te gebruiken ook wel. Verder is het natuurlijk zo dat iemand die niet te vertrouwen is met PHP, ook niks te zoeken heeft in je templates.
onzin natuurlijk, als je een product maakt voor klanten die vervolgens zelf templates (laten) maken moeten ze niets kunnen slopen in de code lijkt mij ;)
Zoals je echter zelf ook wel weet is deze discussie al heel vaak voorbij gekomen, en iedereen blijft toch koppig vasthouden aan wat ie gewend is (ik ook :P) dus dat loopt toch op niets uit. Zullen we deze discussie maar afkappen voordat we weer met zijn allen in herhaling vallen? :)
maar daar gaat dit topic toch juist over? over php code in templates of ben ik nu gek :?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Erkens schreef op dinsdag 13 september 2005 @ 22:58:
onzin natuurlijk, als je een product maakt voor klanten die vervolgens zelf templates (laten) maken moeten ze niets kunnen slopen in de code lijkt mij ;)
Dan is dat op eigen verantwoordelijkheid van de klant. In mijn contracten in elk geval wel. :P
maar daar gaat dit topic toch juist over? over php code in templates of ben ik nu gek :?
Het gaat inderdaad over logica in templates, maar een vast gegeven is wel dat de topicstarter templatePower gebruikt, en het zou fijn zijn als we dat in het oog kunnen houden. Mijn opmerking over PHP als template parser was dan ook voornamelijk gericht op mocean's reply, en niet op het gehele topic in het algemeen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • MisterICE
  • Registratie: April 2004
  • Laatst online: 12-09 01:42
Zelf vind ik http://smarty.php.net/ een mooie template engine, hier zit de functie php code in template files er wel in

  • Kaasplank
  • Registratie: Februari 2001
  • Niet online
met templatepower kan het dus ook wel. Niet direct php maar wel zoals de TS al aangeeft op een andere manier

je html:
HTML:
1
2
3
4
5
6
7
8
 <html>
<head>
  <title>AssignInclude Example</title>
</head>
<body>
  <!-- INCLUDESCRIPT BLOCK : meuk -->
</body>
</html>


je php waarin je de template start:
PHP:
1
2
3
4
5
6
7
8
9
<?php
include_once( "./class.TemplatePower.inc.php" );

$tpl = new TemplatePower( "./include.tpl" );
$tpl->assignInclude( "meuk", "./meuk.php" );
$tpl->prepare();

$tpl->printToScreen();
?>


meuk.php
PHP:
1
2
3
4
<?php
include("./je_andere_meuk.php");
echo functionNaam('','',''); 
?>


gebruik het vaak zo.

[ Voor 19% gewijzigd door Kaasplank op 14-09-2005 20:41 ]


  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Volgens template logica slaat het nergens op om zo'n functie niet in een var te zetten...

Hoe zit je bestandstructuur trouwens wel niet in elkaar, je hebt toch voor verschillende outputs verschillende bestanden? dan assign je toch iets in dat bestand

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
In dit topic: [rml][ php] vraagje voor gebruik templates[/rml] staat veel over PHP gebruiken als template engine. Hier zie je misschien wat handige methoden hiervoor.

Verwijderd

Bestaat er eigelijk iets als een page decorator (decorator pattern) onder php? Dat templating is redelijk smerig wat mij betreft.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Verwijderd schreef op donderdag 15 september 2005 @ 13:15:
Bestaat er eigelijk iets als een page decorator (decorator pattern) onder php? Dat templating is redelijk smerig wat mij betreft.
Zou je misschien kunnen vertellen wat dit is? Ik heb net al even gezocht en kwam constant op C code uit waar ik niet echt de werking uit kan halen. Het lijkt iets als: "extra's aan bestaande objecten toevoegen?"

Verwijderd

djluc schreef op donderdag 15 september 2005 @ 13:40:
Zou je misschien kunnen vertellen wat dit is? Ik heb net al even gezocht en kwam constant op C code uit waar ik niet echt de werking uit kan halen. Het lijkt iets als: "extra's aan bestaande objecten toevoegen?"
Zoals de naam decorator al impliceert, versiert een decorator de pagina. Dus een bestaande pagina wordt 'versiert' naar een algemene stijl. Bij een template moet je waardes injecteren, bij een decorator worden de waardes dus gepakt.

Voordeel hiervan is dat de te versieren pagina geen enkele relatie aangeeft met de te gebruiken versierder. Je pagina bevat dus enkel elementen die deze pagina anders maakt dan de andere.
Pagina: 1