LINUXSOFT.cz
Username: Password:     
    CZ UK PL

> PHP knihovny - Smarty IV

Další 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.

21.3.2005 15:00 | MaReK Olšavský | read 12389×

DISCUSSION   

capture

Funkce capture je párová, tj. uzavírá se do páru {capture} ... {/capture}. Slouží k odchycení bloku uzavřeného mezi těmito direktivami do proměnné, která je uvedena v parametru name. Blok se později zobrazuje pře Smarty proměnnou $smarty.capture.jmeno, kde jméno bylo definováno na počátku bloku capture v parametru name. Použití takto odchyceného bloku je například pro opakované části stránky (banner), jakkolivěk může být nevhodné jednu část na stránkách několikrát opakovat.

Parametry funkce caption jsou tyto:

  • name - nepovinný parametr, není-li definován, je jeho jméno default. Jméno se definuje jako řetězec znaků. Určuje jméno zachycovaného bloku, pod kterým jsou později k dispozici ochycená data.
  • assign - nepovinný parametr, definuje se jako řetězec, při jeho nedefinování není dostupný. Určuje jméno proměnné, do které bude přiřazen obsah odchyceného bloku, pro pozdější použítí bez přístupu přes pole $smarty.

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.

fetch

Slouží 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ě PHP

Pří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ě Smarty

Fetch 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:

  • file - soubor k odchycení, lokální, přes http:// a ftp:// protokol
  • assign - proměnná šablony, do které bude přiřazena odchycená www stránka

include

Pří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 <!DOCUMENT .... po <body> bude stejný pro prezentaci, pro administraci a další části WWW stránek. Použití příkazu include bylo v příkladu k minulému dílu. Příkaz {include} je nepárový.

Příkaz include má následující parametry:

  • file - název vkládané šablony, povinný parametr.
  • assign - jméno proměnné, do které bude přiřazen obsah/výstup ze šablony, místo jejího zobrazení.
  • [var] - proměnná, která má být definována a naplněna určitou hodnotou pro použití v includované šabloně. Typ proměnné se řídí definicí.

include_php

Pří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 $trusted_dir třídy Smarty. Cesta ke vkládanému souboru musí být relativní vůči jmenovanému adresáři, nebo absolutní. Soubor bude vložen pouze jednou a při příštím použití include_php bude pouze volán script v něm uložený. Pomocí assign lze zprostředkovat předání dat ze scriptu do šablony.

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í:

  • file - povinný parametr, jméno includovaného PHP souboru.
  • once - nepovinný parametr logického typu. Výchozí nastavení je na true, které určuje, že PHP soubor bude vložen pouze pouze jednou i při několikanásobném opakování příkazu, například v cyklu.
  • assign - nepovinný parametr, udává jméno a obsah proměnné předané ze scriptu do šablony.

insert

Funkce 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í:

  • name - povinný parametr typu řetězec, obsahuje název vkládané šablony.
  • script - nepovinný parametr typu řetězec, obsahem je název scriptu, který bude spuštěn před názvem šablony. Pokud je server přepnut do safe modu, musí být adresář, ve kterém je tento script uložen, definován ve vlastnosti $trusted_dir třídy Smarty. Script je vložen pouze jednou a při dalším použití pouze spouštěn.
  • assign - nepovinný parametr, řetězcového typu, která udává jméno proměnné, do které bude přiřazen zformátovaný výstup ze šablony místo jejího zobrazení. Protože se necacheuje, neušetří se žádný čas zpracování při opakovaném vkládání šablony.
  • [var] - Nepovinný parametr, kterým se definují proměnné vložené ze šablony do scriptu.

Strip

Funkce 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 <pre>...</pre< a další používané pro ukázky zdrojových kódů, které je žádoucí zanechat v autorově formátování včetně prázdných řádek a jejich odsazování.

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ěr

V 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.

 

DISCUSSION

For this item is no comments.

Add comment is possible for logged registered users.
> Search Software
> Search Google
1. Pacman linux
Download: 4873x
2. FreeBSD
Download: 9063x
3. PCLinuxOS-2010
Download: 8561x
4. alcolix
Download: 10943x
5. Onebase Linux
Download: 9659x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6240x

1. xinetd
Download: 2411x
2. RDGS
Download: 937x
3. spkg
Download: 4753x
4. LinPacker
Download: 9961x
5. VFU File Manager
Download: 3196x
6. LeftHand Mała Księgowość
Download: 7200x
7. MISU pyFotoResize
Download: 2805x
8. Lefthand CRM
Download: 3561x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3117x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz