ARCHIV |
|||||
Software (10844)
Distribuce (131)
Skripty (697)
Menu
Diskuze
Informace
|
PHP knihovny - Smarty IVDalší funkce šablonovacího systému, které nelze zařadit k řídícím strukturám, popsaným v minulém díle. Nejčastěji se jedná o funkce pro zpracování dat a jejich formátování. Jména všech vestavěných funkcí, které jsou zde popsány nelze použít při vlatní tvorbě nových funkcí v pluginech. captureFunkce capture je párová, tj. uzavírá se do páru Parametry funkce caption jsou tyto:
Upozornění: je používáte cacheování a obsah (vkládaný pomocí příkazů {include} s {insert}), který nemá být cacheován, nebude stránka/šablona fungovat dle očekávání autora, proto není toto doporučeno. fetchSlouží k odchycení výstupu ze stránky či scriptu do proměnné. Jedná se v podstatě o dvě funkce. Jedna z nich pracuje na straně Smarty šablony a druhá je metoda, která se používá na straně PHP scriptu. Fetch na straně PHPPříkaz slouží k odchycení výstupu ze šablony do proměnné, místo zobrazení pomocí metody display. Použití je výhodné v případě, kdy jsou stránky tvořené systémem, že je k dispozici šablona, ve které je kompletní layout, včetně aktualit, navigace, reklamy,... a do jednoho z rámců (v tomto textu není cápán ve smyslu HTML frame, ale jako blok s určitým obsahem) je vkládán obsah té které konkrétní stránky. Vhodný postup poté je, že obsah měněného rámce je odchycen pomocí fetch do proměnné, tato proměnná je assignována k šabloně, v dalším kroku se provede display šablony s layoutem, ve které je v místě vložení obsahu hlavního rámce proměnná, do které byl v předchozím kroku přiřazen obsah pomocí fetch. Fetch na straně SmartyFetch na straně šablony funguje ekvivalentní k PHP metodě třídy Smarty. Odchytit do proměnné lze soubory z lokálního souboru, soubory získané pomocí http:// a ftp:// připojení. Pokud je funkce použitá pro práci nad lokálním souborem, je třeba uvést cestu v absolutním tvaru, případně v relativním vůči PHP scriptu, ze kterého je zobrazována šablona. Obsah uložený pomocí fetch je stejně jako v předchozím případě dostupný přes "holý" název proměnné, není použit přístup přes pole třídy. Fetch souboru do proměnné nepodporuje přesměrování (http redirect), pokud odchytáváte soubory, ujistěte se, že všechna lomítka máte na správných místech. Pokud máte server přepnutý do safe modu, bude Vám tento lokální soubor odchycen pouze v případě, že adresář, ze kterého je čerpáno je uveden v konfiguraci třídy Smarty v proměnné $secure_dir (řádek číslo ). Fetch má dva následující parametry:
includePříkaz include slouží ke vložení dalších šablon do té, která je aktuálně zobrazována. Použití je například pro vložení hlaviček, menu, patiček a dalších částí, které jsou společné pro celé webové řešení. Například soubor head.html obsahující vše od Příkaz include má následující parametry:
include_phpPříkaz slouží ke vložení PHP scriptu do šablony. Pokud je server nastavený do safe modu, bude tento soubor vložen pouze v případě, že adresář, ze kterého je vkládán je ve vlastnosti Include_php je jeden ze způsobů, kterak oddělit prezentaci dat od jejich zpracování. Příkladem (převzatým z originální dokumentace) může být generování menu z databáze, vhodnějším přístupem se jeví zpracování dat veškerých dat před zobrazením šablony zejména díky možnosti ošetřit chyby a případně řešit přesměrování na jinou stránku. Include_php zanáší riziko výskytu chyby takříkajíc uprostřed stránky, takovéto chyby působí velice negativně na zákazníka, tento příkaz spíše poslouží v momentě, kdy je třeba uložit do databáze data vzniklá při zpracování šablony (vhodné bude použití s knihovnou EZ_SQL se zapnutou direktivou pro skrytí chyb). Vlastnosti a metody šablony jsou dostupné přes proměnnou $this Parametry příkazu include_php jsou následující:
insertFunkce insert pracuje podobným způsobem jako include, rozdíl je ve zpracování. Pokud je použito cacheování, nejsou šablony vložené pomocí příkazu insert uloženy do cache, ale zpracovávány při každém zobrazení stránky. Parametry funkce jsou následující:
StripFunkce strip je párová, která funguje podobným stylem, jako html kompressor, který používá poměrně hodně tvůrců www stránek. V šabloně jsou použity mezery, tabulátory, odřádkování a další neviditelné znaky, kterými autor zpřehledňuje svůj kód během vývoje, ale které nemají žádný význam pro vzhled stránky jako takové, je proto zbytečné, aby tyto znaky byly odesílány návštěvníkům stránek, zvláště je slušné mít stránky co nejmenší pro návštěvníky s pomalým připojením (gprs, cdma, modem), protože autorovo formátování obsadí až 25% z kapacity přenosu. Jediné místo, kde je doporučeno tuto kompresi vypnout, jsou místa uzavřená mezi tagy Funkce pracuje podobně jako modifikátor strip, ale neořezává proměnné zobrazené ve smarty šablonách, nýbrž formátování šablony jako takové. Její použití ve spojení možností zapnutí komprimovaného přenosu pomocí ob_start("ob_gzhandler"); v PHP scriptu může značně urychlit nažítání . Funkce nemá žádné parametry. ZávěrV tomto díle vyjímečně nejsou uvedeny žádné příklady, ale tento nedostatek bude napraven v příštím pokračování. V tomto díle se objevila několikrát zmínka o použití cache při zobrazování šablon. Práce s ní bude uvedena v přespříštím díle, protože zbývá několik funkcí, které jsou vestavěné do šablon, včetně funkcí začínajících předponou html_, které jsou k využití především v souvislosti s tvorbou formulářů a které budou v příštím díle. V tom přespříštím bude, kromě práce s cache, popsány možnosti ladění stránek využívajících Smarty a možnosti práce s konfiguračními soubory.
Související články
PHP a SQL - EZ_SQL
PHP a SQL - EZ_SQL (2) PHP Knihovny - Smarty PHP knihovny - Smarty II. PHP knihovny - Smarty III PHP knihovny - Smarty V PHP knihovny - Smarty VI. PHP Knihovny - Smarty VII Předchozí Celou kategorii (seriál) Další
|
Vyhledávání software
Vyhledávání článků
28.11.2018 23:56 /František Kučera 12.11.2018 21:28 /Redakce Linuxsoft.cz 6.11.2018 2:04 /František Kučera 4.10.2018 21:30 /Ondřej Čečák 18.9.2018 23:30 /František Kučera 9.9.2018 14:15 /Redakce Linuxsoft.cz 12.8.2018 16:58 /František Kučera 16.7.2018 1:05 /František Kučera
Poslední diskuze
31.7.2023 14:13 /
Linda Graham 30.11.2022 9:32 /
Kyle McDermott 13.12.2018 10:57 /
Jan Mareš 2.12.2018 23:56 /
František Kučera 5.10.2018 17:12 /
Jakub Kuljovsky | |||
ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze |