-
Re: templates (php)
GeertS wrote:
> of bij forms: adhv een variabele bij een keuzelijst een optie
> selecteren (dus selected="selected" aan een <option> toevoegen)
ook heel simpel:
--- template ---
<select name="select">
<!-- START BLOCK : option -->
<option value="{VALUE}" {SELECTED}>{NAAM}</option>
<!-- END BLOCK : option -->
</select>
--- /template ---
--- php ---
// hierboven wordt het TP object aangemaakt enzo
foreach($options as $option) {
$tpl->newBlock('option');
$tpl->assign('VALUE', $option->getValue());
$tpl->assign('NAAM', $option->getName());
if($option->getValue()==$_POST['select']) {
$tpl->assign('SELECTED', 'SELECTED');
}
}
> dit lijkt me ook een voorbeeld dat niet met TP te realiseren valt...
> Stefan?
<div id="page_faq">
<!-- START BLOCK : faq -->
<a name="naarBoven" id="naarBoven"> </a>
<ol>
<!-- START BLOCK : shortlist -->
<li><a class="link" href="#{ID}">{QUESTION}</a></li>
<!-- END BLOCK : shortlist -->
</ol>
<!-- START BLOCK : longlist -->
<p class="vraag"><a name="{ID}"
id="{ID}"><strong>{QUESTION}</strong></a></p>
<p class="antwoord">{ANSWER}</p>
<p class="naarboven"><a class="link" href="#naarBoven">naar boven</a></p>
<!-- END BLOCK : longlist -->
<!-- END BLOCK : faq -->
<!-- START BLOCK : geenfaq -->
<p>Momenteel zijn er geen vragen en antwoorden beschikbaar.</p>
<!-- END BLOCK : geenfaq -->
</div>
en dit bedoel ik dus met de scheiding van logica en opmaak. er zit nu
helemaal geen logica meer in je templates, alleen maar vormgeving. de
logica wordt vanuit de php gedaan. bij TP kan je (volgens mij bij smarty
ook?) blocks gewoon nesten.
ik hoop dat dit een beetje duidelijk is
--
Stefan Koopmanschap
PHP/MySQL developer - websites, intranet and extranet systems and more...
http://www.stefankoopmanschap.com/
php@stefankoopmanschap.com
-
Re: templates (php)
On Wed, 30 Jun 2004 23:25:16 +0400, "Stefan Koopmanschap (remove
withoutspam to e-mail)" <stefan@stefankoopmanschapwithoutspam.nl>
wrote:
>
>en dit bedoel ik dus met de scheiding van logica en opmaak. er zit nu
>helemaal geen logica meer in je templates, alleen maar vormgeving. de
>logica wordt vanuit de php gedaan. bij TP kan je (volgens mij bij smarty
>ook?) blocks gewoon nesten.
>
Ik ben eigenlijk best wel in voor logica in de templates. Natuurlijk
moet het geen business logica zijn, maar logica om het ontwerp goed te
krijgen. Bijvoorbeeld:
#foreach($item in $list) ##lijst komt uit de controller layer
<tr>
#if($item.on)
<td>aan</td>
#else
<td> </td>
#end
<td>$item.name</td>
</tr>
#end
Had je hier geen if'je, dan had je in $item.on de string "aan" of
" " moeten zetten. Dan houd je business layer zich bezig houd hoe
items verschijnen.
Jaap
-
Re: templates (php)
Jaap de Bergen <DEBERGEN.COM@remove_this_to_emaildomainsbyproxy.c om > wrote:
> Had je hier geen if'je, dan had je in $item.on de string "aan" of
> " " moeten zetten. Dan houd je business layer zich bezig houd hoe
> items verschijnen.
Nu heb je het probleem dat per definitie gebonden aan whateverML.
De businesslogica geeft in dit geval waarschijnlijk een boolean, iets
moet dat omlullen. Als je bv een nieuwe output mogelijk wilt maken welke
toevallig wel het fenomeen boolean kent (bv xmlrpc), is het natuurlijk
het handigst als je alleen maar de output template hoeft te wijzigen.
Als je je opzet dan redelijk in een MVC vorm hebt gegoten zou in dit
ideaal geval al je businesslogica in het Model zitten, de template in de
View en het omlullen van de b.l. naar template in het stukje script wat
de templateengine aanstuurd, de "Controller" (altijd een beetje
problematisch in deze gevallen IMHO).
In het geval van smarty zou je dan inderdaad voor jou oplossing kiezen
of wellicht nog beter een custom modifier te maken:
....foreach...
<td><%=$item.on|bool2html|escape%></td>
....
Met als de modifier in z'n eenvoudigste vorm:
function smarty_modifier_bool2html($bool)
{
return $bool?'aan':' ';
}
--
Daniel Tryba
-
Re: templates (php)
On Wed, 30 Jun 2004 23:07:30 +0400, "Stefan Koopmanschap (remove
withoutspam to e-mail)" <stefan@stefankoopmanschapwithoutspam.nl>
wrote:
>> Ik zou momenteel templates gebruiken voor 'losse', vrij kleine scripts
>> (zoals bv nieuws, links, adressenlijst, formulieren) op mijn sites,
>> dus niet voor de hele layout (incl header/footer), ik vrees dat ik dan
>> in de problemen ga komen als ik bv phpbb (met eigen template engine)
>> in mijn layout integreer.
>
>Tja, maar je houd het inderdaad altijd een beetje, als je phpBB of
>andere standaardscripts gebruikt. Tenzij die met TP werken. Gewoon
>dubbel je templates opmaken (die van phpBB kan je dan apart opmaken) en
>dan is er niets aan de hand.
Maar je kan dan toch niet gewoon je header-template includen met de
include-functie van TP zoals je in je templates kan doen?
Of is het best om header/footer altijd als php file te includen (in
het php script zelf dus) ?
-
Re: templates (php)
GeertS wrote:
> Maar je kan dan toch niet gewoon je header-template includen met de
> include-functie van TP zoals je in je templates kan doen?
Nee.
> Of is het best om header/footer altijd als php file te includen (in
> het php script zelf dus) ?
Als je templates _goed_ wilt gebruiken, moet je deze voor de gehele
opmaak gebruiken imo. Je headers, footers, menu's, servicemenu's etc.
include je dus in je template-bestanden.
--
Cheers,
Maarten Wierda
"Organized Confusion" - KDC
-
Re: templates (php)
On Thu, 01 Jul 2004 23:14:17 +0400, "Stefan Koopmanschap (remove
withoutspam to e-mail)" <stefan@stefankoopmanschapwithoutspam.nl>
wrote:
>GeertS wrote:
>> On Wed, 30 Jun 2004 23:07:30 +0400, "Stefan Koopmanschap (remove
>> withoutspam to e-mail)" <stefan@stefankoopmanschapwithoutspam.nl>
>> wrote:
>>
>>
>>>>Ik zou momenteel templates gebruiken voor 'losse', vrij kleine scripts
>>>>(zoals bv nieuws, links, adressenlijst, formulieren) op mijn sites,
>>>>dus niet voor de hele layout (incl header/footer), ik vrees dat ik dan
>>>>in de problemen ga komen als ik bv phpbb (met eigen template engine)
>>>>in mijn layout integreer.
>>>
>>>Tja, maar je houd het inderdaad altijd een beetje, als je phpBB of
>>>andere standaardscripts gebruikt. Tenzij die met TP werken. Gewoon
>>>dubbel je templates opmaken (die van phpBB kan je dan apart opmaken) en
>>>dan is er niets aan de hand.
>>
>> Maar je kan dan toch niet gewoon je header-template includen met de
>> include-functie van TP zoals je in je templates kan doen?
>> Of is het best om header/footer altijd als php file te includen (in
>> het php script zelf dus) ?
>
>in phpBB en in TP kan je niet een header en footer includen met de php
>functie include. en dan moet je ook niet willen denk ik. Je vormgeving
>kan je mooi in de templates gooien, phpBB of TP of welk ander template
>systeem dan ook
niet geinclude in de templates zelf, maar op www.92ste.be/forum/ is
het me toch gelukt, ok, het zou inderdaad beter kunnen.
ook het fotoalbum op die site (mig) heeft zijn eigen templates, dus in
de php file mijn header/footer geinclude.
Omdat ik zowel bestaande scripts als zelfgemaakte scripts gebruik
vrees ik voor problemen als ik een site in zijn geheel met templates
maak Voor bestaande script in de layout van een site te integreren is
het dus nodig om een php-file in een andere te includen (tenzij het
script dezelfde template-engine zou gebruiken, maar phpBB heeft zijn
eigen template-engine al).
gs
-
Re: templates (php)
On Thu, 01 Jul 2004 22:51:20 +0200, Maarten Wierda
<maartenAT@norecessDOT.com> wrote:
>GeertS wrote:
>
>> Maar je kan dan toch niet gewoon je header-template includen met de
>> include-functie van TP zoals je in je templates kan doen?
>
>Nee.
>
>> Of is het best om header/footer altijd als php file te includen (in
>> het php script zelf dus) ?
>
>Als je templates _goed_ wilt gebruiken, moet je deze voor de gehele
>opmaak gebruiken imo. Je headers, footers, menu's, servicemenu's etc.
>include je dus in je template-bestanden.
Mijn antwoord op de post van Stefan is in feite ook wel een antwoord
op deze post, beide posts na elkaar gelezen en één antwoord
geformuleerd...
-
Re: templates (php)
On Thu, 01 Jul 2004 22:51:20 +0200, Maarten Wierda
<maartenAT@norecessDOT.com> wrote:
>GeertS wrote:
>
>> Maar je kan dan toch niet gewoon je header-template includen met de
>> include-functie van TP zoals je in je templates kan doen?
>
>Nee.
>
>> Of is het best om header/footer altijd als php file te includen (in
>> het php script zelf dus) ?
>
>Als je templates _goed_ wilt gebruiken, moet je deze voor de gehele
>opmaak gebruiken imo. Je headers, footers, menu's, servicemenu's etc.
>include je dus in je template-bestanden.
Omdat ik zowel bestaande scripts als zelfgemaakte scripts gebruik
vrees ik voor problemen als ik een site in zijn geheel met templates
maak Voor bestaande script in de layout van een site te integreren is
het dus nodig om een php-file in een andere te includen (tenzij het
script dezelfde template-engine zou gebruiken, maar phpBB heeft zijn
eigen template-engine al).
-
Re: templates (php)
On Thu, 01 Jul 2004 23:14:17 +0400, "Stefan Koopmanschap (remove
withoutspam to e-mail)" <stefan@stefankoopmanschapwithoutspam.nl>
wrote:
>GeertS wrote:
>> On Wed, 30 Jun 2004 23:07:30 +0400, "Stefan Koopmanschap (remove
>> withoutspam to e-mail)" <stefan@stefankoopmanschapwithoutspam.nl>
>> wrote:
>>
>>
>>>>Ik zou momenteel templates gebruiken voor 'losse', vrij kleine scripts
>>>>(zoals bv nieuws, links, adressenlijst, formulieren) op mijn sites,
>>>>dus niet voor de hele layout (incl header/footer), ik vrees dat ik dan
>>>>in de problemen ga komen als ik bv phpbb (met eigen template engine)
>>>>in mijn layout integreer.
>>>
>>>Tja, maar je houd het inderdaad altijd een beetje, als je phpBB of
>>>andere standaardscripts gebruikt. Tenzij die met TP werken. Gewoon
>>>dubbel je templates opmaken (die van phpBB kan je dan apart opmaken) en
>>>dan is er niets aan de hand.
>>
>> Maar je kan dan toch niet gewoon je header-template includen met de
>> include-functie van TP zoals je in je templates kan doen?
>> Of is het best om header/footer altijd als php file te includen (in
>> het php script zelf dus) ?
>
>in phpBB en in TP kan je niet een header en footer includen met de php
>functie include. en dan moet je ook niet willen denk ik. Je vormgeving
>kan je mooi in de templates gooien, phpBB of TP of welk ander template
>systeem dan ook
niet geinclude in de templates zelf, maar op www.92ste.be/forum/ is
het me toch gelukt, ok, het zou inderdaad beter kunnen.
ook het fotoalbum op die site (mig) heeft zijn eigen templates, dus in
de php file mijn header/footer geinclude.
-
Re: templates (php)
GeertS wrote:
> Omdat ik zowel bestaande scripts als zelfgemaakte scripts gebruik
> vrees ik voor problemen als ik een site in zijn geheel met templates
> maak
Wat voor bestaande, ingewikkelde scripts gebruik jij dan zoal?
--
Cheers,
Maarten Wierda
"Organized Confusion" - KDC
-
Re: templates (php)
On Sat, 03 Jul 2004 12:58:44 +0200, Maarten Wierda
<maartenAT@norecessDOT.com> wrote:
>GeertS wrote:
>
>> Omdat ik zowel bestaande scripts als zelfgemaakte scripts gebruik
>> vrees ik voor problemen als ik een site in zijn geheel met templates
>> maak
>
>Wat voor bestaande, ingewikkelde scripts gebruik jij dan zoal?
phpBB en mig (misschien niet zo spectaculair, maar ik ben dan ook geen
professioneel programmeur), en phpdig (als ik die terug aan de praat
krijg)
Maar ik denk dat ik een header zowieso best al php include omdat ik
daar ook de connectie maak naar de database.
-
Re: templates (php)
GeertS wrote:
>>Wat voor bestaande, ingewikkelde scripts gebruik jij dan zoal?
>
> phpBB en mig (misschien niet zo spectaculair, maar ik ben dan ook geen
> professioneel programmeur), en phpdig (als ik die terug aan de praat
> krijg)
Ik gebruik zelf niet voor iedere website een forum. Voor andere
functionaliteit die ik vaak gebruik (nieuws, faq, gastenboek,
nieuwsbrief e.d.) heb ik standaard klassen liggen. Deze klassen
genereren geen output en zijn prima te gebruiken i.c.m. templates.
Je /hoeft/ niet voor alles templates te gebruiken. Het zou stom zijn
grote scripts als phpBB om te bouwen zodat 't werkt i.c.m. een template
engine als Smarty.
> Maar ik denk dat ik een header zowieso best al php include omdat ik
> daar ook de connectie maak naar de database.
Ik kan begrijpen dat je de verbinding met de database in een apart
bestand plaatst en deze vervolgens incluseert wanneer je een connectie
nodig hebt. Maar dat heeft niks te maken met een header waar we 't
eerder over hadden, namelijk een header die deel uitmaakt van de vormgeving.
Anyway, volgens mij weet je nu beter wat templates zijn, hoe je ze moet
gebruiken en wanneer je ze moet gebruiken. Ik heb het idee dat we nu
steeds in de herhaling vallen :)
--
Cheers,
Maarten Wierda (ook zeker geen professioneel programmeur)
"Organized Confusion" - KDC
-
Re: templates (php)
On Sat, 03 Jul 2004 15:44:20 +0200, Maarten Wierda
<maartenAT@norecessDOT.com> wrote:
>GeertS wrote:
>
>>>Wat voor bestaande, ingewikkelde scripts gebruik jij dan zoal?
>>
>> phpBB en mig (misschien niet zo spectaculair, maar ik ben dan ook geen
>> professioneel programmeur), en phpdig (als ik die terug aan de praat
>> krijg)
>
>Ik gebruik zelf niet voor iedere website een forum. Voor andere
>functionaliteit die ik vaak gebruik (nieuws, faq, gastenboek,
>nieuwsbrief e.d.) heb ik standaard klassen liggen. Deze klassen
>genereren geen output en zijn prima te gebruiken i.c.m. templates.
>
>Je /hoeft/ niet voor alles templates te gebruiken. Het zou stom zijn
>grote scripts als phpBB om te bouwen zodat 't werkt i.c.m. een template
>engine als Smarty.
>
>> Maar ik denk dat ik een header zowieso best al php include omdat ik
>> daar ook de connectie maak naar de database.
>
>Ik kan begrijpen dat je de verbinding met de database in een apart
>bestand plaatst en deze vervolgens incluseert wanneer je een connectie
>nodig hebt. Maar dat heeft niks te maken met een header waar we 't
>eerder over hadden, namelijk een header die deel uitmaakt van de vormgeving.
momenteel heb ik een header.php waar zowel de hoofding van mijn site
(lay-out) inzit, maar ook de databaseconnectie zit in datzelfde
bestand.
>
>Anyway, volgens mij weet je nu beter wat templates zijn, hoe je ze moet
>gebruiken en wanneer je ze moet gebruiken. Ik heb het idee dat we nu
>steeds in de herhaling vallen :)
Bedankt voor de uitleg trouwens.
Nu nog eens smarty en templatepower vergelijken en bekijken met welke
ik in mijn geval beste ben. Ze hebben beide hun voordelen.
Het moet (zoals ik waarschijnlijk al vermeld heb) voor amateursites
dienen (misschien hebben jullie deze ondertussen al bekeken)
gs
-
Re: templates (php)
GeertS wrote:
> momenteel heb ik een header.php waar zowel de hoofding van mijn site
> (lay-out) inzit, maar ook de databaseconnectie zit in datzelfde
> bestand.
Met een template-engine scheid je dat dus.
Bijv:
require_once("__class.smarty.2.6.0/Smarty.class.php");
require_once("__class.ezSQL/ez_sql.php");
$s = new Smarty();
$db = new db(DB_USER, DB_PASS, DB_NAME, DB_HOST);
$s->display("main.tpl");
In main.tpl zet je bovenin:
{include file="header.tpl" pageTitle=$pageTitle}
En in header.tpl
<html>
<head>
<title>{$pageTitle|escape:"htmlall"}</title>
<style type="text/css" title="defaultStyle">
@import "{$pageUri}css/main.css";
</style>
<script type="text/javascript"></script>
> Bedankt voor de uitleg trouwens.
Graag gedaan.
> Nu nog eens smarty en templatepower vergelijken en bekijken met welke
> ik in mijn geval beste ben. Ze hebben beide hun voordelen.
> Het moet (zoals ik waarschijnlijk al vermeld heb) voor amateursites
> dienen
Dat is niet relevant. Technieken als Flash of Javascript of wat dan ook
is ook niet bedoeld voor /alleen/ grote sites.
--
Cheers,
Maarten Wierda
"Organized Confusion" - KDC