Ahojte všetci. Rád by som predstavil ďalší bicykel napísaný v PHP pomocou Objekt dokumentu Model. Čím sa líši od ostatných trojkolesových zástupcov toho istého druhu? V skutočnosti nie je až tak veľa rozdielov, spája to najlepšie z mnohých. Napríklad:
1. Úplné oddelenie html a php.
2. Žiadne ďalšie štítky v šablónach ako
3. Možnosť vložiť obsah iných súborov šablón do layoutu, ako z php, tak aj pomocou špeciálneho tagu v layoute.
4. Schopnosť vytvoriť ľubovoľný html tag za chodu.
5. Schopnosť šetriť v html súbor všetko, čo bolo vytvorené a zozbierané.
6. Kontrola existencie html súboru požadovanej stránky pred vygenerovaním šablóny.
Aby bolo každému hneď jasné, aké pohodlné a jednoduché je to používať, poviem a ukážem, ako som ho použil na vytvorenie jedného z mojich projektov (tuším, že naň prepíšem všetky svoje projekty).
Prvá vec, ktorú zvyčajne robím, je získať všetky informácie z databázy o stránke ( Kľúčové slová, popis stránky, názov šablóny a adresy súborov css a js). Toto všetko ukladám do poľa $ head. Potom získam obsah z databázy a uložím ho do poľa $ page. A začnem spolupracovať s triedou.
Najprv teda zavolám konštruktor triedy a odovzdám doň všetky požadované parametre:
$ tpl = nová šablóna; $ tpl -> ext = TPL_EXTENSION; # rozšírenie súborov v adresári šablóny $ tpl -> htm = CACHE_EXTENSION; # rozšírenie pre už vygenerované stránky $ tpl -> skin_dir = DIR_TEMPLATES; # adresár obsahujúci všetky šablóny stránok (napríklad šablóny) $ tpl -> js_dir = DIR_JS; # adresár, kde potrebujete hľadať súbory JS $ tpl -> css_dir = DIR_CSS; # adresár, kde sa nachádza CSS $ tpl -> img_dir = DIR_IMG; # adresár, kde sú obrázky $ tpl -> skin = $ _SESSION ["skin"]; # názov šablóny, ktorú chcem použiť $ tpl -> cache = DIR_CACHE; # kam uložiť hotové html $ tpl -> log = FILE_T_LOGS; # kam písať protokoly $ tpl -> tag_start = SYMBOL_START_TAG; # Znak, ktorý premenné v šablóne začínajú $ tpl -> tag_end = SYMBOL_END_TAG; # Znak, ktorý ukončuje premenné v šablóne $ tpl -> dir_delimeter = DIRECTORY_SEPARATOR; $ tpl -> medzera = SYMBOL_SPACE; # znak nahrádzajúci medzeru.
Fuf, zdá sa, že všetky premenné prešli, poďme ďalej.
Aby sme triedu nenútili robiť zbytočnú prácu, najskôr skontrolujeme, či už máme pripravený Html súbor požadovanej stránky.
if ($ tpl -> TestPageStatus () === TRUE) (vyžadovať $ tpl -> cacheFileName;) else ($ tpl -> stránka ("index"); # mimochodom zadajte názov súboru šablóny, vy môže prejsť niekoľko z nich, oddelených čiarkami $ tpl -> priradiť ("HEAD", $ head); $ tpl -> priradiť ("CONTENT", $ page); $ tpl -> build (); # zadať príkaz zostaviť šablónu $ tpl -> ShowPage (); # výstup.)
Tu sú všetky metódy, ktoré musíte použiť na zobrazenie stránky.
Teraz sa pozrime na niekoľko užitočných metód tejto triedy. Povedzme, že sme triede už odovzdali všetko, čo potrebujeme, ale ešte sme jej nedali príkaz na výstup, pretože sme si zrazu spomenuli, že v šablóne musíme vytvoriť niekoľko Html tagov. To je tiež veľmi jednoduché. Najprv musíme nájsť blok, do ktorého chceme niečo pridať. Môžete ho nájsť 2 spôsobmi:
$ tpl -> findById ("findMe"); $ tpl -> findByTagName ("div");
Metóda findById logicky predpokladá, že všetky ID značiek v šablóne sú jedinečné. A metóda findByTagName vráti prvú zhodu.
Výsledok, ktorý sme získali hľadaním, musíme odovzdať metóde $ tpl -> createChild (), aby sme mohli v nájdenom elemente vytvárať podradené značky. Metóda createChild nám ho mimochodom po vytvorení nového prvku vráti, aby sme novovytvorený prvok mohli použiť inde.
Pokukovaním a experimentovaním som našiel 3 spôsoby, ako vytvoriť značky v šablóne, takže vám ukážem 3 príklady naraz. Príklad 1:
Potrebujeme tvoriť
vnútri$ parent = $ tpl -> findById ("rodič"); $ tpl -> createChild ($ parent, "div", "id = dieťa, trieda = test");
Dostaneme:
Príklad 2:
Potrebujeme tvoriť
$ parent = $ tpl -> findById ("rodič"); $ tpl -> createChild ($ rodič, "div", "id = dieťa, trieda = test", "Niektorý text");
Dostaneme:
Príklad 3:
Potrebujeme tvoriť
$ parent = $ tpl -> findByTagName ("span"); # (1) $ tpl -> createChild ($ parent, "div", "New Element"); # (2)
(1) Hľadanie rodiča nie podľa ID, ale podľa tagu nájde prvého zodpovedajúceho
(2) Ak nepotrebujeme atribúty, ale iba hodnotu nového prvku, potom ich možno vynechať.
Dostaneme:
A po týchto manipuláciách už volám ShowPage. A tu sa plynule dostávame k ďalším 2 zaujímavým bodom.
Predstavte si situáciu, že máme šablónu, predpokladajme, že je to šablóna list.tpl so zoznamom, povedzme, mobilných telefónov:
(CONTENT.Brand)
(OBSAH.Model)
(CONTENT.Info)Ak sme prenášali informácie iba cez 1 telefón, tak premenné budú jednoducho nahradené ich hodnotami a ak sme prenášali informácie cez niekoľko telefónov naraz, tak trieda skopíruje túto sekciu toľkokrát, koľko variantov hodnôt príde. to. A urobí to sám, na rozdiel napríklad od triedy xTemplate, ktorá mala priraďovať a analyzovať každú hodnotu
Je pravda, že existuje jeden nie veľmi vhodný moment, ak po tomto bloku existujú ďalšie, napríklad:
(CONTENT.Brand)
(OBSAH.Model)
(CONTENT.Info)Potom v takejto situácii budeme musieť použiť malý trik a zbaliť si mobil
(CONTENT.Brand)
(OBSAH.Model)
(CONTENT.Info)V tomto prípade sa všetky mobilné telefóny objavia jeden po druhom vo vnútri , a "Iný blok" zostane nižšie.
A ak som na nič nezabudol, tak posledná chvíľa je pridanie obsahu ďalších šablón do aktuálnej šablóny.
Opäť apelujem na vašu fantáziu.
Predstavte si, že návrhár rozloženia chce, aby sa obsah súboru page.html pridal do bloku súboru list.html, a preto pridá na správne miesto do súboru list.html
Počet takýchto vložiek nie je obmedzený a ich umiestnenie nie je absolútne rozhodujúce, takže ich môžete vkladať ľubovoľne a v akomkoľvek množstve.
To je asi všetko, ak si na niečo spomeniem, budem vás informovať. Ďakujem za prečítanie až do konca.
Tagy: php, class, template, template engine, parser
Po vytvorení Info-súbor, v zásade je téma už definovaná. To znamená, že môžete prejsť do sekcie pre správu tém http://mysite.ru/admin/build/themes a zahrňte tam svoju tému. Prirodzene, po zapnutí už neuvidíte žiadny dizajn – stránka nadobudne štýl „čierne na bielom“ – čierny text na bielom pozadí.
Chcem však poznamenať, že napriek tomu, že v našej téme nie sú žiadne súbory okrem mytheme.info neklame, stránka bude fungovať rovnako ako doteraz – zobrazí všetok obsah, pridá bloky do regiónov ( http://mysite.ru/admin/build/block) atď. Je to spôsobené tým, že jadro Drupalu zahŕňa požadované moduly, ktoré vám aj v prípade absencie akýchkoľvek súborov vo vašej téme (s výnimkou súboru info) umožňujú pokračovať v práci s Drupalom.
V zásade je všetko vytváranie šablón redukované na prekrývajúce sa súbory šablón (majú príponu .tpl.php) štandardné moduly nášho CMS.
Najdôležitejší súbor tpl (tpl je skratka pre šablóna, vzor) je page.tpl.php... Je zodpovedný za vytvorenie každej stránky webu. Pozrime sa, z čoho pozostáva súbor šablóny:
- html kód
- php kód
- javascriptový kód(nie je nutné)
Drupal prenáša údaje stránok do každého súboru šablóny vo forme štandardných premenných. Pre každý súbor šablóny existujú 2 typy premenných:
- premenné, ktoré sa prenášajú iba do tohto súboru
- premenné, ktoré sa prenášajú do všetkých súborov
Tu je zoznam všetkých premenných pre page.tpl.php:
Spoločné premenné (pre všetky súbory):
- $ základná_cesta- základná cesta, kde bol nainštalovaný drupal
- $ css- pole css súborov pripojených k aktuálnemu súboru šablóny
- $ adresár- cesta k priečinku, kde je téma nainštalovaná
- $ is_front- vráti TRUE, ak ste na hlavnej stránke
- $ prihlásený- vráti TRUE, ak ste prihlásený
- $ is_admin- vráti TRUE, ak máte prístup k administračnému panelu
Metadáta stránky
- $ jazyk- (objekt) Aktuálny jazyk ktorý je zobrazený na stránke
- $ jazyk-> jazyk- obsahuje jeho textovú reprezentáciu
- $ jazyk-> dir- obsahuje smer jazyka. Bude to buď "ltr" (zľava doprava) alebo "rtl" (sprava doľava)
- $ head_title- upravená verzia názvu stránky na použitie medzi značkami
- $ hlava- vložené medzi značky ... Obsahuje meta tagy, kľúčové slová atď.
- $ štýly- slúži na stiahnutie všetkých css-súbory na aktuálnu stránku
- $ skriptov- slúži na stiahnutie všetkých javascript "s na aktuálnu stránku
- $ body_classes- súbor tried css pre značku ... Obsahuje informácie o aktuálnom umiestnení stĺpcov na stránke, ich počte, aktuálnej adrese URL „e atď.
Informácie o stránke
- $ titulná strana- adresa hlavnej stránky webu. Na odkazovanie je lepšie použiť túto premennú domovskej stránke odkedy zahŕňa jazyk domény a predponu
- $ logo- cesta k logu stránky, ak je na stránke uvedená
- $ site_name- názov siete. Môže byť prázdny, ak ho zakážete vo funkciách v informačnom súbore. Konfigurovateľné na mysite.ru/admin/settings/site-information
- $ site_slogan- slogan stránky. Môže byť prázdny, ak ho zakážete vo funkciách v informačnom súbore. Konfigurovateľné na mysite.ru/admin/settings/site-information
- $ misia- poslanie stránky. Môže byť prázdny, ak ho zakážete vo funkciách v informačnom súbore. Konfigurovateľné na mysite.ru/admin/settings/site-information
Navigácia
- $ vyhľadávacie pole- obsahuje html kód, ktorý zobrazuje hľadaný reťazec. Ak ho v informačnom súbore vypnete, môže byť prázdne
- $ primárnych_odkazov
- $ sekundárnych_odkazov- pole obsahujúce navigačné odkazy na stránku, ak sú povolené vo funkciách informačného súboru
Predvolený obsah stránky
- $ zostáva- región. Obsahuje html kód pre ľavý stĺpec. Ak v informačnom súbore zadáte akékoľvek oblasti, zmizne
- $ strúhanka - "chlebové omrvinky"pre aktuálna stránka
- $ titul- názov stránky
- $ pomoc- dynamické tipy, väčšinou zobrazené na paneli správcu
- $ správ- zobrazuje správy o chybách a varovaniach na stránke
- $ karty- odkazy (záložky) spájajúce aktuálnu stránku s jej podstránkami (napríklad pre článok - s jej editačnou stránkou)
- $ obsah- obsah aktuálnej stránky
- $ vpravo- región. Obsahuje html kód pre pravý stĺpec. Ak v informačnom súbore zadáte akékoľvek oblasti, zmizne
Spodná oblasť / krycie údaje
- $ feed_icon- riadok so všetkými ikonami spätná väzba pre aktuálnu stránku
- $ footer_message- správa v spodnej časti stránky. Konfigurovateľné na mysite.ru/admin/settings/site-information
- $ päta- región. Obsahuje html kód pre spodnú časť stránky. Ak v informačnom súbore zadáte akékoľvek oblasti, zmizne
- $ uzavretie- záverečný štítok pre všetky moduly, ktoré zmenili stránku. Táto premenná sa musí zobraziť po celom dynamickom obsahu. Najlepšie pred zatvorením štítku BODY
Všetky sú uvedené tu štandardné premenné... Ale môžete sem pridať svoje premenné buď ako regióny Info-file, alebo v akejkoľvek inej úlohe prostredníctvom súboru šablóna.php(o ňom trochu neskôr).
Teraz vám ukážem, aký kód by mal byť page.tpl.php a do akého kódu to potom interpretujú prehliadače. Tu je kúsok kódu z page.tpl.php:
Prvý riadok skontroluje, či má aktuálna stránka vôbec názov. Ak tam nie je, debugger tento kód jednoducho preskočí a nezadá ho. Ak nadpis existuje, značka sa pridá do html kódu stránky
, za ním sa vytlačí názov stránky a všetko sa to uzavrie značkou
... Ak sa pozriete na kód tejto stránky v prehliadači, bude to vyzerať takto:
Lekcia 4. Súbory potrebné na vytvorenie šablóny. Page.tpl.php
Takmer všetky premenné lokality sú zabalené týmto spôsobom. Deje sa tak preto, aby sme mohli štylizovať obsah bez toho, aby sme vopred vedeli, čo to bude.
Takto to vyzerá štandardný súbor page.tpl.php ktorý prichádza s Drupalom. Zmeňte názov tried, preusporiadajte premenné - a uvidíte, čo sa stane. Je to potrebné na to, aby ste „cítili“, ako to funguje a čo sa zobrazuje ako výsledok.
"- // W3C // DTD XHTML 1.0 Strict // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/1999/xhtml" xml: lang = "jazyk?> " lang = "jazyk?> " dir = "adresár?> ">
"title =" (! JAZYK:"rel = home">vytlačiť $ site_name; ?>
Oddelenie logiky prijímania údajov od logiky ich zobrazovania je veľmi dôležitou súčasťou vývoja webu.
Každý programátor, ktorý mierne stúpol nad úroveň „Ahoj svet“, začína pociťovať potrebu takéhoto oddelenia. Nie každý však prichádza k správnym záverom a rozhodnutiam.
Preto sú tu najdôležitejšie pravidlá:
1. Prijímací kód a kód zobrazenia údajov musia byť oddelené.
2. Akýkoľvek výstup by mal začať až potom, čo sú preň pripravené všetky údaje.
3. V dôsledku toho by sa každý skript mal zaoberať iba spracovaním údajov. Potom môže buď poslať nejaký druh HTTP hlavičky, alebo zavolať šablónu a odovzdať jej pripravené dáta, alebo oboje naraz.
4. Ktorý šablónový engine použiť, je desiata vec. Najjednoduchšie a najdostupnejšie je samotné PHP, takže na ňom budú uvedené príklady.
Bludy
Pravdepodobne neexistuje téma webového programovania, ktorá by bola taká samozrejmá ako nezrozumiteľná ako šablóny. Každý skôr či neskôr príde na to, že je potrebné použiť šablóny. Ale z nejakého dôvodu to prichádza cez najdivokejšie ilúzie a fantázie.
Najjednoduchšia a najzrejmejšia mylná predstava je, že začiatočníci nazývajú súbor „design“, ktorý je spoločným kódom html pre všetky stránky lokality, ako šablónu. A v tomto sa upokojujú. Dynamické informácie, bez váhania, zobrazujúce staré dobré echo :-)
V skutočnosti sa nástroj šablón zaoberá hlavne zobrazovaním meniaceho sa obsahu stránok lokality. A záver „dizajnu“ je až druhoradá úloha.
Existujú dve hlavné fantázie:
1. „Dizajnér“ potrebuje šablóny, aby ich mohol upravovať bez toho, aby musel rozumieť PHP.
2. Šablóny teda slúžia na oddelenie PHP od HTML.
Skúsme sa zamyslieť nad prvým tvrdením. čo je dizajnér? Toto je človek, ktorý pracuje vo Photoshope. Najčastejšie vôbec nepozná HTML. A na šablóne pracuje buď špeciálny dizajnér rozloženia, alebo - najčastejšie ... samotný programátor! Smiešne, nie?
Teraz dôsledok, o oddelení PHP od HTML. Dobre. Máme pred sebou svätý cieľ odlúčenia. Preto prichádzame so Smartym a píšeme:
(foreach key = cid item = con from = $ Contacts)
($ con.name) - ($ con.nick)
(/ pre každý)
Ešte vtipnejšie.
„Návrhár“, pre ktorého sa všetko začalo, omdlieva šťastím.
teória
Ukazuje sa, že naše dôvody, prečo sme sa rozhodli použiť šablóny, nestoja ani cent. A čo teraz - nie sú potrebné, ukazuje sa, šablóny vo všeobecnosti? Potrebné. Najprv si však musíte odpovedať na otázku - "prečo?" Prečo potrebovať šablóny. A overte si odpoveď praxou. Túto otázku som kládol ľuďom veľakrát. Na to však nevie odpovedať takmer nikto. Prečo potrebuje šablóny. Ukazuje sa, že ľudia niečo robia bez toho, aby vedeli prečo.
Toto je najzábavnejšie.
Počas môjho pôsobenia ako webový programátor som si pre seba sformuloval tri dôvody, prečo ja osobne potrebujem šablóny. V skutočnosti sú dve. A nakoniec dôjde k jednej veci:
Jeden kód – viacero zobrazení.
Často sa stáva, že namiesto jednej informácie potrebujete ukázať inú. Napríklad kód pre prácu s databázou dostane namiesto textu novinky chybové hlásenie. V tomto prípade musíte namiesto spravodajskej stránky zobraziť úplne inú - s ospravedlnením a žiadosťou o návrat neskôr. Pomocou šablón je to veľmi jednoduché.
Často je potrebné zobraziť tie isté informácie v niekoľkých formách. Napríklad bežná strana a tlačová strana. Informácie sú rovnaké, vyhľadávací kód je rovnaký a výstupný kód je odlišný. Tvárou v tvár takejto situácii môžete veľmi rýchlo rozdeliť svoj kód na dve časti, z ktorých jedna je zodpovedná za výstup a druhá nie je zodpovedná. Iný príklad: povedzme, že sme chceli výstup informácií nie priamo do HTML, ale prostredníctvom požiadavky AJAX vo formáte JSON. Ak sme použili nástroj šablón, potom v našom kóde zmeníme presne jeden riadok – voláme nástroj šablóny na volanie json_encode (). A ak bol náš výstup zmiešaný s kódom na príjem údajov, potom celý kód by sa musel prepísať!
Situácia je trochu podobná: povedzme, že náš skript je na dvoch stránkach. Plus kópia u nás. A tak sme doma našli veľkého chrobáka. Zatvorte to. Teraz musíme aktualizovať kód na stránkach. A je to tu - moment pravdy: ak boli šablóny použité správne, potom jednoducho nahráme kód na obe stránky a všetko pokračuje v práci, akoby sa nič nestalo! Táto situácia je podľa mňa ideálnym testom zvoleného prístupu k šablónovaniu.
Ďalší dôležitý bod, ktorý mnohým ľuďom uniká (vo svojom teoretickom uvažovaní, pričom sa s ním neustále stretávajú v praxi!) - poradie vykonávania skriptu sa nie vždy zhoduje s poradím výstupu v šablóne... Učebnicový príklad – zobrazenie názvu článku v tagu
Treba tiež pripomenúť, že okrem textu PHP skripty zobrazujú aj hlavičky HTTP. Ktoré sa musia zobraziť pred akýmkoľvek textom, alebo aj namiesto textu vo všeobecnosti (ak napríklad chceme používateľa presmerovať na inú stránku). Ak najprv implementujeme logiku aplikácie bez toho, aby sme zároveň čokoľvek zobrazovali, potom nám vydanie požadovanej HTTP hlavičky nebude robiť žiadny problém.
Môžete mať svoje vlastné dôvody na používanie šablón. Ale len s jednou podmienkou – tieto dôvody musia byť spôsobené skutočnou, životnou nevyhnutnosťou, a nie „vyššími ohľadmi“ a starosťou o nejakých neznámych ľudí.
Cvičte
Teraz prejdime od teórie k praxi.
V najjednoduchšom prípade pri zobrazení akejkoľvek stránky budeme mať vždy dve šablóny: všeobecnú šablónu lokality a šablónu obsahu pre konkrétnu stránku.
Povedzme, že chceme vytvoriť stránku s odkazmi na stránky priateľov.
V tomto prípade bude zjednodušený kód vyzerať takto:
Samotný súbor links.php. Výstupy NIČ. Iba pripraví údaje a potom zavolá šablónu.
// povoliť nastavenia.
vrátane "settings.php";
// získať údaje z databázy, definovať premenné
$ pagetitle = "(! JAZYK: Odkazy"
;!}
$ DATA = $ db -> getAll ("SELECT * FROM odkazy");
// nastavenie šablóny stránky a zavolanie všeobecnej šablóny lokality
$ tpl = "tpl_links.php";
vrátane "tpl_main.php";
Všeobecná šablóna (tpl_main.php):
include $tpl ?>
Na správnom mieste je v nej zahrnutá šablóna našej stránky (tpl_links.php):
=$pagetitle?>
- "target =" _blank ">=$row [ "name" ] ?>
foreach($DATA as $row ): ?>
endforeach ?>
Najjednoduchším spôsobom je vytvárať šablóny založené na statických stránkach, ktoré sú už rozložené v HTML. Zvážme vytvorenie a pripojenie šablóny pomocou príkladu. Povedzme, že už máte súbor HTML s nasledujúcim obsahom:
<html> <hlava> <meta meno = "popis"obsah = /> <meta meno = "Kľúčové slová"obsah = /> <názov>názov> <odkaz href = "style.css" rel = "štýlov" typ = "text / css" /> hlava> <telo>// Úvodná ponuka<okraj tabuľky = "1" > <tr> <td><a href = "/" > <b> Domovb>a>td> tr> <tr> <td><a href = "/ o /"> O mnea>td> tr> <tr> <td><a href = "/ ja_a_ja /"> Ja a svetovládaa>td> tr> <tr> <td><a href = "/ kontakty /"> Kontaktya>td> tr> tabuľka>// koniec menu<h1> Domovská stránkah1> <p> p> <p> Text o mne: Text o mne: Text o mne: Text o mne:p> <p> Text o mne: Text o mne: Text o mne: Text o mne:p> <p> Text o mne: Text o mne: Text o mne: Text o mne:p> telo> html>Ak chcete pridať šablónu do CMS, musíte vytvoriť súbor v adresári tpls / content, napríklad test.tpl, a vložiť tam svoj HTML kód. Súbor CSS by ste mali umiestniť do priečinka css / cms a pomenovať ho style.css. Je žiaduce vložiť obrázky do priečinka obrázkov. Nezabudnite zmeniť cesty pre všetky obrázky a súbory CSS.
Komentujte
V názve súboru šablóny nemožno použiť ruské písmená!
Aby systém „uvidel“ novú šablónu a začal ju používať na zobrazovanie stránok, je potrebné šablónu pridať do systému. Ak to chcete urobiť, prejdite do nastavení modulu "Štruktúra" na karte "Šablóny" ( http://yourdomain.ru/admin/content/config/ ). Zobrazí sa zoznam už nainštalovaných šablón v každej doméne, ktoré existujú vo vybranej jazykovej verzii.
Ak chcete pripojiť nový súbor šablóny, vyplňte spodný voľný riadok polí “ Názov šablóny"(Dajte tomu nejaký zmysluplný názov, napríklad" Môj testovací vzorec") A" Názov súboru "(v našom prípade test.tpl) a kliknite na tlačidlo" Uložiť ".
Ak chcete, aby sa táto šablóna používala ako predvolená šablóna, začiarknite políčko „Hlavná“ vedľa nej. Táto šablóna bude teraz predvolene vybratá v rozbaľovacej ponuke výberu šablóny. Poslúži aj na zobrazenie systémových stránok, ktoré používajú predvolenú šablónu (Registrácia, Obnova hesla, Sitemap).
Šablóny budú viditeľné v rozbaľovacom zozname pri úprave každej stránky:
Na jednej lokalite teda môžete použiť viacero šablón súčasne a vybrať si vhodnú šablónu pre jednu stránku aj skupinu stránok.
Skúste vytvoriť novú stránku (uistite sa, že vo voľbe Šablóna návrhu je vybratá nová šablóna) a uvidíte, čo sa na stránke stane.
Vaša HTML šablóna by sa mala objaviť na stránke. Ale teraz je to statické. Teraz to musíte urobiť dynamickým.
Najprv musíte určiť, ktoré časti kódu HTML sa zmenia. V našom prípade sa zmení nasledovné:
názov okna
meta tagy kľúčové slová a popis;
názov textu
;
skutočný text;
menu stránky.
To znamená, že musíme trochu popracovať s HTML šablónou a namiesto meniacich sa sekcií umiestniť zodpovedajúce makrá.
Napríklad na začiatku súboru HTML sú metaznačky a názov:
<meta meno = "popis"obsah = "popis lokality Vasilija Pupkina" /> <meta meno = "Kľúčové slová"obsah = "Oficiálna stránka Vasyy Vasily Pupkin" /> <názov> Webová stránka Vasya Pupkina: Hlavná stránkanázov>Nahrádzame ich zodpovedajúcimi makrami (zoznam makier je uvedený v prílohe):
<meta meno = "popis"obsah = "% popisu%" /> <meta meno = "Kľúčové slová" obsah = "% Kľúčové slová%" /> <názov>% title%názov>Teraz, pri generovaní stránok, systém vezme metaznačky a názov, predpísané pre každú stránku jednotlivo, a nahradí ich namiesto zodpovedajúcich makier. Je veľmi ľahké si zapamätať názvy makier.
Urobme to isté s názvom textu. Bolo to takto:
<h1> Domovská stránkah1>A stane sa tak. Názov textu sa zobrazí pomocou makra % header%:
<h1>% hlavička%h1>Zmení sa aj hlavný text stránky:
<p> Text o mne: Text o mne: Text o mne: Text o mne:p> <p> Text o mne: Text o mne: Text o mne: Text o mne:p> <p> Text o mne: Text o mne: Text o mne: Text o mne:p> <p> Text o mne: Text o mne: Text o mne: Text o mne:p>Existuje makro na zobrazenie hlavného textu stránky % obsahu % :
% obsahu %Na začiatok súboru medzi značky
a vložte makro:Tento riadok umožňuje rýchle úpravy a ďalšie užitočné funkcie. S ním môžete stlačením Shift +D, rýchlo prejdite na úpravu aktuálnej stránky lokality alebo ktorejkoľvek z jej častí.
V dôsledku toho by ste mali získať nasledovné:
<html> <hlava> <meta meno = "popis"obsah = "% popisu%" /> <meta meno = "Kľúčové slová" obsah = "% Kľúčové slová%" /> <názov>% title%názov> <odkaz href = "style.css" rel = "štýlov" typ = "text / css" /> % system includeQuickEditJs ()%hlava> <telo>// Úvodná ponuka<okraj tabuľky = "1" > <tr> <td><a href = "/" > <b> Domovb>a>td> tr> <tr> <td><a href = "/ o /"> O spoločnostia>td> tr> <tr> <td><a href = "/ projekty /"> projektya>td> tr> <tr> <td><a href = "/ kontakty /"> Kontaktya>td> tr> tabuľka>// koniec menu<h1>% hlavička%h1>% obsahu %telo> html>Takže uložíme súbor šablóny a pozrieme sa na výsledok. Stránka je teraz takmer úplne dynamická, s výnimkou menu. Je potrebné "oživiť" menu stránky. Pozrime sa, ako je menu usporiadané:
// Úvodná ponuka<okraj tabuľky = "1" > <tr> <td><a href = "/" > <b> Domovb>a>td> tr> <tr> <td><a href = "/ o /"> O mnea>td> tr> <tr> <td><a href = "/ ja_a_ja /"> Ja a svetovládaa>td> tr> <tr> <td><a href = "/ kontakty /"> Kontaktya>td> tr> tabuľka>// koniec menuMenu pozostáva z položiek. Samotné menu je nejako vyzdobené a položky majú aj dizajn. Napríklad celé menu môže mať nejaký rám alebo pozadie, aktuálna položka menu môže byť zvýraznená tučným písmom atď. V tej istej ponuke môžu byť aj rôzne úrovne.
Vyberte rám ponuky:
// Úvodná ponuka<okraj tabuľky = "1" > tabuľka>// koniec menuPoložka ponuky je navrhnutá takto:
<tr> <td><a href = "/ kontakty /"> Kontaktya>td> tr>Aktuálna položka ponuky má odlišný štýl:
<tr> <td><a href = "/" > <b> Domovb>a>td> tr>Pôvodná šablóna ponuky sa nachádza v súbore /tpls/content/menu/default.tpl a vyzerá takto:
% text%