login  Naam:   Wachtwoord: 
Registreer je!
 Forum

templatehulp

Offline Ultimatum - 26/04/2006 16:09
Avatar van UltimatumPHP expert beste mensheid..

ik wil mijn site geheel optimalizeren dmv classes te gebuiken (A), maar aangezien ik daar niks van snap wil ik ook een template-engine erbij gebuiken , maar wat de vraag is, kan iemand mij een goede, simpel in gebuik template-engine aanraden? 

36 antwoorden

Gesponsorde links
Offline Wijnand - 26/04/2006 16:10
Avatar van Wijnand Moderator Mijn favo lijstje is:

1. eentje die je zelf maakt
2. TemplatePower
3. Yapter
4. Smarty
Offline Ultimatum - 26/04/2006 16:11
Avatar van Ultimatum PHP expert ok, het probleem alleen is dat ik (nog) geen template-eninge zelf kan bouwen (h), maar ik zoek dan wel even naar tutorials 
Offline marten - 26/04/2006 16:11 (laatste wijziging 26/04/2006 16:12)
Avatar van marten Beheerder template power is goed voor 'normale' sites
smarty is heeft meer functies zoals bv caching


tutorial ---> http://www.yapf.net ;) van de maker van Yapter d8 ik 
een van de admins van phpfreakz.nl
Offline Ultimatum - 26/04/2006 16:13
Avatar van Ultimatum PHP expert ok, maar kom gelijk een probleem tegen 

als ik bijvoorbeeld een forum maak, dan heb ik if else statsment nodig om posten van topics, reactie, admin enzo af te schijden, maar hoe doe ik dat dan met template power aangezien het .tpl bestanden zijn (waar de if else moet komen) en je dan geen php kan gebruike 
Offline marten - 26/04/2006 16:14 (laatste wijziging 26/04/2006 16:15)
Avatar van marten Beheerder je if else doe je in je php ;)

smarty kan trouwens wel if / else gebruiken in je html ;)
Offline Ultimatum - 26/04/2006 16:16
Avatar van Ultimatum PHP expert ja, maar normaal is de main index.php, maar nu staat toch die zooi van het declaren van blocken ed.
Offline marten - 26/04/2006 16:17
Avatar van marten Beheerder http://www.site...p;id=11506
Offline Simon - 26/04/2006 16:18
Avatar van Simon PHP expert
  1. <?php
  2. if(addslashes$_GET['type'] = "reactie") {
  3. //gebruik reactie.tpl
  4. }
  5. //enzovoort
  6. ?>
Offline Ultimatum - 26/04/2006 16:18 (laatste wijziging 26/04/2006 16:19)
Avatar van Ultimatum PHP expert ok, thanx ik probeer wel ff wat 

@simon, ik wil niet voor elke paar regels code een nieuwe pagina aanmaken, dus ben ik gedwongen alles in 1 file te gooien 
Offline marten - 26/04/2006 16:20
Avatar van marten Beheerder ik doe het bv zo:

index.php?page=pagina

in mijn index.tpl heb ik een assign met $title en $pagecontent 

en in elke aparte php file set ik deze twee variabelen
Offline Ultimatum - 26/04/2006 16:22
Avatar van Ultimatum PHP expert ok, maar kan het ook als je dan

?page=forum/index&act=topic&catid=1

:p, want er moet dus iets anders komen te staan dan alleen
?page=forum/index

;-)
Offline Thomas - 26/04/2006 16:29
Avatar van Thomas Moderator <imo>
Een template-engine is first en foremost bedoeld als een middel om je code en content/layout/hoe_je_het_ook_wilt_noemen te scheiden. Je template-engine moet dus niet nog eens een soort van pseudo-programmeertaal introduceren waarmee je nog handig snel even dingen kunt regelen, zoals bijv. bij Smarty.

De laatste keer dat ik Yapter gebruikte, was deze class nog niet af geloof ik. Je kunt er nu recursief zooi instouwen - als dat zo is, is dat wel mooi, maar je moet je afvragen hoe vaak je dat gaat gebruiken. Ook heb je relatief veel template-engine namen en constructies die je dient te / kunt gebruiken. Dit werkt misschien verwarrend.

TemplatePower is de eenvoudigste template-engine die ik ken, maar kan toch best veel (als je je website een beetje fatsoenlijk programmeert). Ben al een tijdje bezig met een zeer uitgebreide tut - deze moet ik misschien maar eens af gaan ronden.

ergo: Voor mij is er maar 1 template-engine: TemplatePower.
</imo>
Offline Gerard - 26/04/2006 17:37
Avatar van Gerard Ouwe rakker Ik gebruik op dit moment TemplatePower voor een test project. Dit bevalt me echter zo goed dat TemplatePower voor mij de oplossing is die ik in de toekomst ga gebruiken.

Enige grote nadeel van TemplatePower is dat je geen commercieel gebruiker ervan mag maken tenzij je licenties aankoopt.
Offline Ultimatum - 26/04/2006 22:33
Avatar van Ultimatum PHP expert aangezien zoals jullie wss al weten ik hier zo goed in ben , loop ik uiteraard weer tegen een probleem aan 

waarom werkt niet niet 

forum.php
  1. <?php
  2. include_once( "./TemplatePower/class.TemplatePower.inc.php" );
  3.  
  4. $tpl = new TemplatePower( "./forum/forum.tpl" );
  5. $tpl->prepare();
  6.  
  7. $tpl->assign("title", "Forum");
  8. //show cats
  9. if($_GET['act'] == "" || !is_numeric($_GET['catid'])) {
  10. function view()
  11. {
  12. $select = mysql_query("SELECT * FROM forum_category") or die(mysql_error());
  13. while($obj = mysql_fetch_object($select))
  14. {
  15. $tpl->newBlock("show_cats");
  16. $tpl->assign(array(catname => $obj->catname,
  17. catid => $obj->id,
  18. subname => $obj->subname,
  19. description => nl2br($obj->description),
  20. total_topics => $obj->total_topics,
  21. total_replies => $obj->total_replies));
  22.  
  23. }
  24.  
  25. }
  26. }
  27. $tpl->printToScreen();
  28. ?>


forum.tpl
  1. <html>
  2. <head>
  3. <title>{title}</title>
  4. </head>
  5.  
  6. <body>
  7. <!-- BEGIN BLOCK : show_cats -->
  8. <table cellpadding="3" cellspacing="0" style="width: 100%">
  9. <tr>
  10. <td><a href="?page=forum/index&amp;act=view&amp;catid={id}"><b>{subname}</b></a><br />{description}</td>
  11. <td style="width: 100px" align="center">{total_topics}</td>
  12. <td style="width: 100px" align="center">{total_replies}</td>
  13. </tr>
  14. </table>
  15. <!-- END BLOCK : show_cats -->
  16. </body>
  17. </html>


probleem: hij laat helemaal niks zien 

Offline Ontani - 26/04/2006 22:34
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
function view()
{
}

laat die eens weg
Offline Ultimatum - 26/04/2006 22:47 (laatste wijziging 26/04/2006 23:03)
Avatar van Ultimatum PHP expert geen verschil

btw, als ik in de bron kijk dan is ook waar dan {} staan, de waarden leeg zijn en dus niet worden doorgegeven

ps, maar gebruik van zo'n ?page=pagina systeem , weet niet of het uitmaakt 

edit had BEGIN BLOCK, maar moest zijn START BLOCK, alhoewel dit mijn probleem niet heeft opgelost 
Offline Ontani - 27/04/2006 02:03
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
catname => $obj->catname

der staat nergens {catname} in uw block
Offline Ultimatum - 27/04/2006 07:29
Avatar van Ultimatum PHP expert zoals Ontani al opmerkte , miste ik wat, ik was dus {catname} vergeten en mijn andere whileloop en nu werkt het naar behoren (h)
Offline Thomas - 27/04/2006 08:57 (laatste wijziging 27/04/2006 09:53)
Avatar van Thomas Moderator
Citaat:
Enige grote nadeel van TemplatePower is dat je geen commercieel gebruiker ervan mag maken tenzij je licenties aankoopt.
Volgens mij is dat niet helemaal waar. Een bedrijf mag volgens mij TemplatePower wel "intern" gebruiken om hier websites mee te bouwen die ze zelf gebruiken, maar het wordt natuurlijk anders wanneer deze sites als produkt worden verkocht aan derden.

Uit de GNU license:
Citaat:
... The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
Citaat:
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
Wil dat niet gewoon zeggen dat het gebruik en de uitvoer van een programma (draaien van TemplatePower) niet onder de license valt, en dus niet gebonden is aan specifieke regels?
Offline marten - 27/04/2006 10:03
Avatar van marten Beheerder denk het wel ook kijkend dat je op de code geen licentie op kan aanbrengen 
Offline Ontani - 27/04/2006 10:51
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
op de code van TemplatePower natuurlijk wel. Die mag je zo maar niet gaan "verkopen" onder je eigen naam.

Maar zoals blijkt uit dat stukje valt niets wat gemaakt is met TemplatePower onder de licentie en mag dus verkocht worden.

Of ik heb een stukje gemist...
Offline Thomas - 27/04/2006 11:23 (laatste wijziging 27/04/2006 11:30)
Avatar van Thomas Moderator Ik denk dat het als volgt zit: Op het moment dat jij een pakket gaat verkopen waarin templatepower zit (en je dus geld verdient aan pakketten waarin dit soort gratis onderdelen zijn verwerkt), dan dien je een licentie of wat dan ook aan te schaffen.

Maar voor het draaien van commerciële sites waarin templatepower gebruikt wordt, hoef je niets aan te schaffen lijkt me (op de tp-site: "free for personal use", waarbij de persoon best een bedrijf of persoon binnen een bedrijf kan zijn?). Anders zou er toch wel een vermelding op de templatepower-site staan, dat je een licentie dient aan te schaffen op het moment dat je er commercieel gebruik (op een manier zoals hierboven geschetst) van gaat maken, en dan zou de software ook niet zo makkelijk verkrijgbaar zijn (je moet dan meestal je gegevens invullen voordat je iets kunt downloaden) en ook zou de software dan niet onder een GNU-license verkrijgbaar zijn...

Maar ik kan het natuurlijk mis hebben, ben niet zo thuis in die legal-terms-mumbo-jumbo.

EDIT: lol, het staat er zelfs:
Citaat:
TemplatePower is released under the GNU General Public License. If you want to sell an application/site where TemplatePower is a part of, you can buy a special 'Certificate of Distribution'. This certificate allows you to sell a number (at least five) of applications/sites with TemplatePower. It will cost about (number x $3 USD).
Offline marten - 27/04/2006 11:28
Avatar van marten Beheerder zal ik eens een mailtje sturen naar ze?
Offline Thomas - 27/04/2006 11:38
Avatar van Thomas Moderator Niet nodig denk ik - lees bovenstaande edit.
Offline marten - 27/04/2006 11:41
Avatar van marten Beheerder :)
oke
Offline Ibrahim - 27/04/2006 14:41
Avatar van Ibrahim PHP expert even een vraagje:

  1. <?php
  2. $tpl->assign(array(catname => $obj->catname,
  3. catid => $obj->id,
  4. subname => $obj->subname,
  5. description => nl2br($obj->description),
  6. total_topics => $obj->total_topics,
  7. total_replies => $obj->total_replies));
  8. ?>


dit kan toch niet werken ?
er moeten toch ' ' om de namen voor de => staan of zie ik het verkeerd ?
Offline Thomas - 27/04/2006 15:14 (laatste wijziging 27/04/2006 15:14)
Avatar van Thomas Moderator Nee, dat zie je goed. De "sleutels" van het array zijn de namen van je template-variabelen. Dit zijn alle strings en staan zo letterlijk in je template als het goed is.
Offline ikkedikke - 27/04/2006 16:28
Avatar van ikkedikke PHP expert wat hij zegt klopt wel. nu ziet php die namen(catname,catid,...) als constanten. als je er quotes omheen zet zal die wel werken.
Offline Ultimatum - 27/04/2006 19:29 (laatste wijziging 27/04/2006 19:40)
Avatar van Ultimatum PHP expert @ikkedikke als ik je reactie goed lees zeg je dat '' wel moet, maar ik heb tegendeel bewezen , want wat siliecom14 daar neerzet werkt gewoon , het kan wel zijn dat er '' omheen kunnen maar het is iig niet verplicht (denk ik )

trouwens, aan iedereen dit geen TemplateEngine gebruikt, gebruik TemplatePower want ben net 1 dag bezig maar ik heb het al aardig on de knie:p, wil niet zegge dat ik master ben maar het is zo goed te begrijpen allemaal 

@kokx, wat bedoel je precies met je reactie, aangezien ik niet wist dat er '' om de eerste vars voor => moesten 
Offline kokx - 27/04/2006 19:33 (laatste wijziging 27/04/2006 19:47)
Avatar van kokx Onbekend @Ultimatum: Het is beter om gewoon quotes te gebruiken. Dat geeft ook minder ellende als je een topic opent. Omdat de eerste reacties dan meestal daar over gaan.

@marten: Waarom zie ik jou de laatste tijd zoveel spammen? Wil je een ban ofzo?

Edit: Ik heb het zo geleerd dat er quotes om moeten. Het is volgensmij ook sneller om gewoon quotes te gebruiken. En bij mij geeft hij ook een notice error omdat de constante niet bestaat.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.272s