[PHP] HTML_Template_IT & include files

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
In .tpl files bestaat de mogelijkheid om een <!-- INCLUDE include.php --> tag te gebruiken (gevonden in usercomment op php manual). Zie ook onderstaande voorbeeld

index.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
    require_once "IT.php";
    
    $template = new HTML_Template_IT("./"); 
    $template->loadTemplatefile("index.tpl", true, true);
    $template->setCurrentBlock("ALL");
    $template->setVariable("ABOVE", "<p>above</p>");
    $template->setVariable("BELOW", "<p>below</p>");
    $template->parseCurrentBlock(); 
    $template->show();
?>


index.tpl
HTML:
1
2
3
4
5
6
7
8
9
<html>
    <body>
        <!-- BEGIN ALL -->
        {BELOW}
        <!-- INCLUDE include.php -->
        {ABOVE}
        <!-- END ALL -->
    </body>
</html>


include.php
HTML:
1
<p>foo</p>


is het echter mogelijk om de waarde van include.php ook mee te geven via $template->setVariable?

Ik heb al geprobeerd met ipv include.php {FOO} en FOO te gebruiken in de tpl file en dan de variable FOO te zetten. Dit had echter geen resultaat.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:51

Creepy

Tactical Espionage Splatterer

Wat bedoel je precies met "de waarde van include.php"? Als je de output van include.php bedoelt dan zul je include.php moeten ombouwen zodat er een functie inzit die dezelfde output als string teruggeeft zodat je weer gewoon een variabele hebt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Ik bedoel de waarde 'include.php' zodat ik in mijn index.php de link meegeef (met bv. setVariable). De bedoeling is een soort component-based website waarbij ieder component zijn eigen folder met een index.php heeft. Dan kan ik via bv een get-parameter op index.php verschillende pagina's laten zien.

Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Enige reden waarom je dit als template engine gebruikt? De mogelijkheden lijken me in eerste instantie nogal beperkt. In smarty bv zou het op deze manier gaan:
HTML:
1
{include file=$includeFile}
en dan gewoon via een assign:
PHP:
1
$smarty->assign('includeFile', 'file.tpl');
In HTML_Template_IT lijkt die optie op het eerste zicht niet te zitten.
Wat eventueel wel kan is via setTemplate() een template uit een string genereren. Maar dan zit je html code wel nog steeds in php wat het hele nut van templates teniet doet.