Digital Mind - Smarty Templates Inhoud

Digital Mind ­ Smarty Templates Inhoud Digital Mind ‐ Smarty Templates ............................................................................................................ 1 Wat is Smarty ...................................................................................................................................... 1 Gebruik ................................................................................................................................................ 1 Algemeen ......................................................................................................................................... 1 Programma ...................................................................................................................................... 1 Design .................................................................................................................................................. 2 Praktijkvoorbeeld ................................................................................................................................ 2 Programma ...................................................................................................................................... 2 Design .............................................................................................................................................. 3 Geavanceerde functies ........................................................................................................................ 3 Debuggen ........................................................................................................................................ 3 Caching ............................................................................................................................................ 3 Links ..................................................................................................................................................... 3 Wat is Smarty Smarty is een template systeem die er voor zorgt dat de lay‐out (HTML) en de logica (PHP) van de website gescheiden wordt. Het komt er dus op neer dat geen HTML meer voorkomt in PHP‐files. De HTML‐code zal in template bestanden komen te staan. Standaard hebben deze bestanden de extensie “tpl”. Website: www.smarty.net Gebruik Algemeen Voor iedere website zal er gebruik gemaakt worden van een Smarty map. Deze map zal onder andere de Smarty‐klasse bevatten, die ervoor zal zorgen dat alle info juist getoond wordt. Deze klasse zal gewoon geïncludet worden in de config file. Verder in de map bevinden zich nog de templates (die de HTML inhoud bevatten), cache map, plugin map, … Programma Alle logica blijft behouden in de PHP‐files (database connecties, ophalen van juiste gegevens…). De info die getoond moet worden op de pagina wordt in variabelen gestoken en deze variabelen worden meegestuurd naar een Smarty object dat aangemaakt wordt. Daarna wordt de functie aangeroepen die de juiste info op het scherm zal tonen aan de hand van de template dat meegegeven wordt aan de functie. 1 Design Het design zal dus alle HTML bevatten, evenals de door het programma doorgestuurde variabelen. De template‐bestanden zullen gewone HTML bevatten, met hierbij de nodige variabelen. Deze variabelen zullen tussen accolades opgeroepen worden, en de variabele begint met een $‐teken. Bijvoorbeeld: <span>{$info}</span>. Dit is alles wat er nodig is. Smarty heeft zelf ook een heleboel eigen functies die het maken van de template meer dynamisch maakt. Zo kun je ook gebruik maken van if‐else statements, en for‐lussen, evenals functies die de variabelen aanpassen, waaronder de mogelijkheid de tekst van een variabele in hoofdletters te plaatsen. Een variabele aanpassen gebeurt op volgende manier: <span>{$info|capitalize}</span>. Dit zorgt ervoor dat de $info variabele getoond wordt in hoofdletters. Als je 2 bewerkingen wil uitvoeren op een variabele, volstaat het om deze bewerkingen na elkaar te plaatsen met een | ertussen. Er wordt van links naar rechts uitgevoerd. <span>{$info|capitalize|replace:”TEKST”:”NIEUWE TEKST”}</span>: Eerst wordt alles in hoofdletters omgezet, en dan wordt er gezocht achter “TEKST” die vervangen wordt door “NIEUWE TEKST”. Voorbeeld foreach {foreach from=$data2 item=element} <li>{$element}</li> {/foreach} Voorbeeld if­else {if $active_pagina < $paginas|@count } <span>dit is correct</span> {else} <span>dit is niet correct</span> {/if} Links http://www.smarty.net/manual/en/language.modifiers.php http://www.smarty.net/manual/en/language.builtin.functions.php Praktijkvoorbeeld In onderstaand voorbeeld wordt er eerst een Smarty object aangemaakt, daarna worden er 2 variabelen toegekend, namelijk $ strVariabele1en $arrFotos. Dan wordt de template info.tpl opgeroepen. Programma $objSmarty = new Smarty(); $objSmarty‐>assign(“strTitel”,$strVariabele1); $objSmarty‐>assign(“arrFotos”,$arrFotos); $objSmarty‐>display(“info.tpl”); 2 Design <html> <head>…</head> <body> <h1>{$strTitel|capitalize}</h1> {foreach from=$arrFotos item=$strFoto} <img src=”{$strFoto}” alt=”Alt voor foto” title=”Title voor foto” /><br/> {/foreach} </body> </html> Geavanceerde functies Debuggen Wanneer je alles wenst te testen en je vermoed dat er iets misloopt tussen je programma en het design (een variabele die niet klopt of niet de juiste waarde heeft), kun je gebruik maken van de debug functie van Smarty. Het volstaat om van het Smarty‐object de debugging eigenschap op true te zetten: $objSmarty‐>debugging = true; Dit zal een pop‐up tonen met alle informatie die je doorgestuurd hebt van je programma naar je design. Let wel: hier wordt een pop‐up geopend. Let dus op met pop‐up blockers. http://www.smarty.net/manual/en/chapter.debugging.console.php Caching Een van de voordelen van Smarty is onder andere caching. Deze kan uitgezet worden door de caching‐eigenschap op 0 te plaatsen. Dit kan handig zijn tijdens het testen. $objSmarty‐>caching = 1; Cache_lifetime daarintegen houdt de caching aktief voor een bepaalde periode (in seconden). Hier bijvoorbeeld 5 minuten. $objSmarty‐>cache_lifetime = 300; http://www.smarty.net/manual/en/caching.php Links Er zijn vele verschillende functies die gebruikt kunnen worden met Smarty. Hetgeen hierboven staat is enkel de basis. Veel meer info kun je vinden op deze sites: Officiële site: http://www.smarty.net Handleiding (Engels): http://www.smarty.net/manual/en/index.php Tutorial Sitemaster.be: http://www.sitemasters.be/?pagina=tutorials/tutorials&cat=4&id=269 Tutorial Scip.be: http://www.scip.be/index.php?Page=ArticlesPHP04&Lan Tutorial Phphulp.nl: http://www.phphulp.nl/php/tutorials/8/478/1106/ 3