smarty – šablonu sistēma priekš php
DESCRIPTION
Smarty – šablonu sistēma priekš PHP. (en. template engine for PHP ). Jānis Vītols LU 2011. Kas ir Smarty?. Šablonu sistēma, kas ļauj atdalīt PHP kodu no HTML; Padara programmēšanas un dizaina pusi vienkāršaku un tīraku; Uzrakstīts PHP skriptēšanas valodā; Uzrakstīts ar OOP pieeju. - PowerPoint PPT PresentationTRANSCRIPT
Smarty – šablonu sistēma priekš PHP
Jānis VītolsLU 2011
(en. template engine for PHP)
Kas ir Smarty? Šablonu sistēma, kas ļauj atdalīt PHP
kodu no HTML; Padara programmēšanas un dizaina pusi
vienkāršaku un tīraku; Uzrakstīts PHP skriptēšanas valodā; Uzrakstīts ar OOP pieeju.
*PHP - Personal Home Page / PHP: Hypertext Preprocessor
*HTML - HyperText Markup Language*OOP – Object Oriented Programming
Uzstādīšana Mājas lapa: http://www.smarty.net/ Lejupielādēt Smarty Atpakot Ievietot mājas lapas direktorijā, vai arī
kādā sistēmas direktorijā (/usr/local/lib/php/Smarty)
Izveidot mājas lapas direktorijā direktoriju smarty un tajā direktorijas: templates, templates_c, cache, configs. Uzlikt tiesības.
Smarty PHP faila saturs<?php// Pievienojam Smarty klasi/bibleotēkuinclude('Smarty.class.php');
// Izveidojam Smarty objektu$smarty = new Smarty;
// Piešķiram Smarty mainīgajam vērtību$smarty->assign('greeting', 'I am in!');
// Nosakam kādu šablona failu ielādēt$smarty->display('index.tpl');
Smarty šablona faila saturs
{* Smarty *}<html><head><title>Hello There!</title></head><body>
<p>My first Smarty page!</p>
<p>{$greeting}</p>
</body></html>
Kā strādā Smarty?
Smarty šablonu valoda (Pamata)
Komentāri• {* Šādi pievieno komentārus HTML failā *}
Funkcijas• {include file=“header.tpl”}• {include file=“footer.tpl”} ...
Atribūti priekš funkcijām• {include file=“header.tpl” title=“Mana
mājas lapa” css=“my.css”}
Smarty šablonu valoda (Mainīgie)
Mainīgo vērtību piešķiršana• $smarty->assign(“smartyVar”, $phpVar);
Mainīgo pielietošana• {$greeting}• {$row.firstName}• {$results.name.firstName}• {$row[0][0]}• {$person->firstName}
Smarty šablonu valoda (Konfigurācijas)
Vairāku valodu atbalsta realizācija:• {config_load file="language.conf“
section=$currentLanguage}• $currentLanguage – vērtība ielādējas caur
$smarty->assign();• Language.conf – satur dažādus tulkojumus• HTML failā izmanto – {#text_to_translate#}
Language.conf piemērs [lv]
• MAIN_HELLO = “Čau”;• LOGOUT_BUTTON = “Iziet”;
[en]• MAIN_HELLO = “Hi”;• LOGOUT_BUTTON = “Sign out”;
* HTML .tpl failā pielietojās: {#MAIN_HELLO#}, {#LOGOUT_BUTTON#} utt...
Smarty šablonu valoda (Modifikatori)
PHP failā: $smarty->assign("name", "Smarty is powerful, yet easy! ");
HTML .tpl failā: {$name|capitalize|spacify|truncate:45:"…"}
• Pārlūkā: S m a r t y I s P o w e r f u l , Y e t...
Cikli, sekcijasPHP fails:$sql = "SELECT firstname, lastname FROM usertable";$result = mysql_query($sql);while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ $users[] = array ( 'firstname' => $row['firstname'], 'lastname' => $row['lastname'] );}$tpl->assign('users', $users);HTML šablona fails:<table> <tr> <th>Firstname</th> <th>Lastname</th> </tr> {section name=userinfo loop=$users} <tr> <td>{$users[userinfo].firstname}</td> <td>{$users[userinfo].lastname}</td> </tr> {/section}</table>
Nosacījumi if, elseif, else Operatori:
• "eq", "ne","neq", "gt", "lt", "lte", "le", "gte" "ge","is even","is odd", "is not even","is not odd","not","mod","div by","even by","odd by","==","!=",">", "<","<=",">="
Piemērs:{if $firstname} Hello {$firstname}.{else} Hello stranger.{/if}
Kāpēc lietot Smarty? Viņš ir ātrs; Kompilējās PHP failā, katru reizi nav
jāiziet (en. Parsing) viss(i) šablonu faili;
Labi strādā ar kešošanu (en. Cache) un dažādiem paātrinātājiem (en. Accelerators);
Spēcīga šablonu valoda: cikli, mainīgie, funkcijas, konfigurācijas faili...;
Iespēja veidot spraudņus (en. Plugins).
...$smarty->assign(“the_end”, “Paldies par uzmanību!”);...
{$the_end}