160 likes | 391 Views
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.
E N D
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. *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.
Uzstādīšana *Instrukcijas: http://www.smarty.net/quick_install
Smarty PHP faila saturs <?php // Pievienojam Smarty klasi/bibleotēku include('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>
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, sekcijas PHP 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","iseven","is odd", "is not even","is not odd","not","mod","divby","evenby","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}