Helló. Egy másik PHP-ben írt kerékpárt szeretnék bemutatni dokumentum objektum Modell. Mi a különbség ugyanazon faj többi háromkerekű képviselőjétől? Valójában nincs is olyan sok különbség, a sok közül a legjobbat egyesíti. Például:
1. A html és a php teljes szétválasztása.
2. Nincsenek extra címkék a típussablonokban
3. Lehetőség más sablonfájlok tartalmának beágyazására az elrendezésbe, mind php-ből, mind speciális tag használatával az elrendezésben.
4. Lehetőség bármilyen html tag létrehozására menet közben.
5. Képes menteni html fájl mindent, amit generáltak és összegyűjtöttek.
6. A sablon generálása előtt a kért oldal html fájljának meglétének ellenőrzése.
Hogy mindenki számára azonnal világos legyen, mennyire kényelmes és könnyen használható, elmesélem és megmutatom, hogyan készítettem el az egyik projektemet (gyanítom, hogy minden projektemet átírom rá).
Az első dolog, amit általában megteszek, hogy az adatbázisból minden információt megkapok az oldalról ( kulcsszavakat, oldalleírás, sablonnév és css és js fájlok címe). Mindezt a $head tömbbe mentem. Ezután lekérem a tartalmat az adatbázisból és elmentem a $page tömbbe. És az osztállyal fogok dolgozni.
Tehát először meghívom az osztálykonstruktort, és átadom neki az összes szükséges paramétert:
$tpl = új sablon; $tpl -> ext = TPL_EXTENSION; # fájlkiterjesztés a sablonkönyvtárban $tpl -> htm = CACHE_EXTENSION; # bővítmény a már generált oldalakhoz $tpl -> skin_dir = DIR_TEMPLATES; # az összes webhelysablont (például sablonokat) tartalmazó könyvtár $tpl -> js_dir = DIR_JS; # könyvtár, ahol a JS-fájlokat kell keresni $tpl -> css_dir = DIR_CSS; # könyvtár, ahol a CSS található $tpl -> img_dir = DIR_IMG; # könyvtár, ahol a képek vannak $tpl -> skin = $_SESSION["bőr"]; # a használni kívánt sablon neve $tpl -> cache = DIR_CACHE; # a kész html mentési helye $tpl -> log = FILE_T_LOGS; # hová kell írni a naplókat $tpl -> tag_start = SYMBOL_START_TAG; # Szimbólum, amellyel a sablon változói kezdődnek $tpl -> tag_end = SYMBOL_END_TAG; # A változókat a sablonban lezáró karakter $tpl -> dir_delimeter = DIRECTORY_SEPARATOR; $tpl -> szóköz = SYMBOL_SPACE; # szóközt helyettesítő karakter.
Fuf, úgy tűnik, minden változó átkerült, menjünk tovább.
Hogy ne kényszerítsük plusz munkára az osztályt, először ellenőrizzük, hogy van-e már kész html fájlunk a kért oldalról.
if($tpl -> TestPageStatus() === TRUE) ( szükséges $tpl -> cacheFileName; ) else ( $tpl -> page("index"); # mellesleg átadja a sablonfájl nevét ezek közül többet is átadhat, vesszővel elválasztva $tpl -> assign("HEAD",$head); $tpl -> assign("CONTENT",$page); $tpl -> build(); # parancs a sablon létrehozásához $tpl -> ShowPage(); # kimenet.)
Valójában ez az összes módszer, amelyet az oldal megjelenítéséhez kell használnia.
Most nézzünk meg még néhány hasznos módszert ebből az osztályból. Tegyük fel, hogy már mindent átadtunk az osztálynak, ami szükséges, de még nem adtunk parancsot a kimenetre, mert hirtelen eszünkbe jutott, hogy több Html címkét kell létrehoznunk a sablonban. Ezt is nagyon könnyű megtenni. Először meg kell találnunk azt a blokkot, amelyhez hozzá szeretnénk adni valamit. Kétféleképpen találhatja meg:
$tpl -> findById("findMe"); $tpl -> findByTagName("div");
A findById metódus logikusan azt jelenti, hogy a sablonban lévő összes azonosítócímke egyedi. A findByTagName metódus pedig az első egyezőt adja vissza.
A kereséssel kapott eredményt át kell adnunk a $tpl -> createChild() metódusnak, hogy a talált elemben gyermekcímkéket tudjunk létrehozni. A createChild metódus egyébként egy új elem létrehozása után visszaadja azt nekünk, hogy az újonnan létrehozott elemet máshol tudjuk használni.
Körbetúrva és kísérletezve 3 módot találtam a címkék létrehozására egy sablonban, így 3 példát mutatok be egyszerre. 1. példa:
Alkotnunk kell
belül$szülő = $tpl -> findById("szülő"); $tpl -> createChild($szülő,"div", "id=gyermek, osztály=teszt");
Kapunk:
2. példa:
Alkotnunk kell
$szülő = $tpl -> findById("szülő"); $tpl -> createChild($szülő,"div", "id=gyermek,osztály=teszt", "Néhány szöveg");
Kapunk:
3. példa:
Alkotnunk kell
$szülő = $tpl -> findByTagName("span"); # (1) $tpl -> createChild($parent, "div", "New element"); # (2)
(1) Ha nem azonosító, hanem címke alapján keres egy szülőt, az megtalálja az első egyezőt
(2) Ha nincs szükségünk attribútumokra, csak az új elem értékére, akkor nem adhatók át
Kapunk:
És ezek után a manipulációk után már hívom a ShowPage-et. És itt simán közelítettünk még 2 érdekességet.
Képzeljünk el egy olyan helyzetet, amelyben van egy sablon, tegyük fel, hogy ez egy list.tpl sablon, mondjuk mobiltelefonok listájával:
(CONTENT márka)
(CONTENT.Model)
(CONTENT.Info)Ha csak 1 telefonnal továbbítottunk információt, akkor a változókat egyszerűen lecseréljük az értékükre, ha pedig egyszerre több telefonról is továbbítottunk információt, akkor az osztály annyiszor másolja ezt a részt, ahány érték opciót kapott. És ezt ő maga fogja megtenni, ellentétben például az xTemplate osztállyal, amelynek minden egyes értékhez meg kellett hívnia az assign-ot és az elemzést.
Igaz, van egy nem túl kényelmes pillanat, ha e blokk után van néhány másik, például:
(CONTENT márka)
(CONTENT.Model)
(CONTENT.Info)Ekkor egy ilyen helyzetben egy kis trükköt kell bevetnünk a mobiltelefonunk összepakolásával
(CONTENT márka)
(CONTENT.Model)
(CONTENT.Info)Ebben az esetben az összes mobiltelefon egymás után megjelenik, belül , és a „Más blokk” alul marad.
És ha nem felejtettem el semmit, akkor az utolsó pillanat az, hogy más sablonok tartalmát hozzáadom az aktuális sablonhoz.
Ismét a képzeletedre bízom.
Képzelje el, hogy az elrendezéstervező azt akarja, hogy az oldal.html fájl tartalma a list.html fájl blokkjába kerüljön, ehhez hozzáadja a list.html fájl megfelelő helyére.
Az ilyen betétek száma nem korlátozott, és elhelyezkedésük egyáltalán nem kritikus, így tetszés szerint és bármilyen mennyiségben behelyezheti őket.
Valószínűleg ennyi, ha eszembe jut valami, szólok. Köszönöm, hogy a végéig elolvastad.
Címkék: php, osztály, sablon, sablonmotor, elemző
A teremtés után info-fájl, elvileg a téma már definiált. Ez azt jelenti, hogy beléphet a témakezelés szakaszba http://mysite.ru/admin/build/themesés helyezze oda a témáját. Természetesen a bekapcsolás után nem fog megjelenni semmilyen design - az oldal "fekete fehéren" stílust kap - fekete szöveg fehér alapon.
Azonban szeretném megjegyezni, hogy annak ellenére, hogy témánkban nincsenek más fájlok, mint mytheme.info nem hazudik, a webhely ugyanúgy fog működni, mint korábban – jelenítse meg az összes tartalmat, adjon hozzá blokkokat a régiókhoz ( http://mysite.ru/admin/build/block) Stb. Ez annak a ténynek köszönhető, hogy a Drupal mag tartalmazza szükséges modulokat, amelyek a témában lévő fájlok hiányában is (az info-fájl kivételével) lehetővé teszik a Drupallal való munka folytatását.
Elvileg a sablonok létrehozása átfedő sablonfájlokra vezethető vissza (kiterjesztésük van .tpl.php) szabványos moduljaink CMS.
A legfontosabb tpl fájl (a tpl a rövidítése sablon, minta) van page.tpl.php. Ő felelős az oldal minden egyes oldalának felépítéséért. Nézzük, miből áll a sablonfájl:
- html kódot
- php kód
- javascript kód(nem szükséges)
A Drupal szabványos változók formájában továbbítja a webhelyadatokat minden sablonfájlnak. Minden sablonfájlhoz 2 típusú változó létezik:
- változók, amelyeket csak ennek a fájlnak adnak át
- az összes fájlnak átadott változók
Itt van egy lista az összes változóról page.tpl.php:
Általános változók (minden fájlhoz):
- $alap_útvonal- a Drupal telepítésének alapútvonala
- $css- az aktuális sablonfájlhoz kapcsolódó css-fájlok tömbje
- $könyvtár- annak a mappának az elérési útja, ahová a témát telepítette
- $is_front- IGAZ értéket ad vissza, ha a főoldalon van
- $logged_in- IGAZ értéket ad vissza, ha bejelentkezett
- $is_admin- IGAZ értéket ad vissza, ha rendszergazdai hozzáféréssel rendelkezik
Oldal metaadatai
- $nyelv- (egy tárgy) Jelenlegi nyelv amely megjelenik az oldalon
- $nyelv->nyelv- tartalmazza annak szöveges ábrázolását
- $nyelv->rend- tartalmazza a nyelv irányát. Ez vagy "ltr" (balról jobbra) vagy "rtl" (jobbról balra)
- $head_title- az oldal címének módosított változata, címkék közötti használatra
- $fej- beillesztve a címkék közé . Metacímkéket, kulcsszavakat stb.
- $styles- az összes letöltésére szolgál css-fájlok az aktuális oldalra
- $scripts- az összes letöltésére szolgál javascript"-ek az aktuális oldalra
- $body_classes- osztálykészlet css címkéhez . Információkat tartalmaz az oszlopok aktuális helyéről a webhelyen, számukról, aktuális "e" url-ről stb.
Információ az oldalról
- $front_page- az oldal főoldalának címe. Érdemesebb ezt a változót használni a hivatkozáshoz kezdőlap, mivel tartalmazza a tartomány nyelvét és előtagját
- $logo- a webhely logójának elérési útja, ha az szerepel az oldalon
- $site_name- webhely neve. Üres lehet, ha le van tiltva az információs fájl funkcióinál. A mysite.ru/admin/settings/site-information oldalon konfigurálva
- $site_szlogen- az oldal szlogenje. Üres lehet, ha le van tiltva az információs fájl funkcióinál. A mysite.ru/admin/settings/site-information oldalon konfigurálva
- $küldetés- az oldal küldetése. Üres lehet, ha le van tiltva az információs fájl funkcióinál. A mysite.ru/admin/settings/site-information oldalon konfigurálva
Navigáció
- $search_box- html kódot tartalmaz, amely megjeleníti a keresősávot. Üres lehet, ha kikapcsolja az információs fájlban
- $primary_links
- $secondary_links- az oldalhoz navigációs hivatkozásokat tartalmazó tömb, ha az információs fájl szolgáltatásaiban engedélyezettek
Az oldal alapértelmezett tartalma
- $ maradt- vidék. A bal oldali oszlop html kódját tartalmazza. Ha beállít egy régiót az információs fájlban, akkor az eltűnik
- $zsemlemorzsa - "zsemlemorzsa"ért aktuális oldal
- $title- lap cím
- $segítség- dinamikus tippek, többnyire az adminisztrációs panelen láthatók
- $üzenetek- Hiba- és figyelmeztető üzeneteket jelenít meg az oldalon
- $tabs- hivatkozások (lapok), amelyek összekötik az aktuális oldalt annak aloldalaival (például egy cikknél - a szerkesztő oldalával)
- $tartalom- az aktuális oldal tartalma
- $jobbra- vidék. A jobb oldali oszlop html kódját tartalmazza. Ha beállít egy régiót az információs fájlban, akkor az eltűnik
Alsó terület/záró adatok
- $feed_icon- vonal az összes ikonnal Visszacsatolás az aktuális oldalhoz
- $lábláb_üzenet- üzenet az oldal alján. A mysite.ru/admin/settings/site-information oldalon konfigurálva
- $láb- vidék. html kódot tartalmaz az oldal aljára. Ha beállít egy régiót az információs fájlban, akkor az eltűnik
- $zárás- zárócímke az oldalt módosító összes modulhoz. Ezt a változót minden dinamikus tartalom után meg kell jeleníteni. Legjobb a BODY címke bezárása előtt
Itt mindegyik szerepel szabványos változók. De a változókat ide is hozzáadhatja régióként keresztül info-fájlban, vagy bármely más szerepkörben egy fájlon keresztül sablon.php(róla kicsit később).
Most megmutatom, milyen kódnak kell lennie page.tpl.phpés milyen kódot értelmeznek ezután a böngészők. Itt van egy kódrészlet page.tpl.php:
Az első sor azt ellenőrzi, hogy az aktuális oldalnak van-e egyáltalán címe. Ha nincs ott, akkor a hibakereső egyszerűen kihagyja ezt a kódot, és nem megy bele. Ha a cím létezik, akkor a címke hozzáadódik az oldal html kódjához
, utána kinyomtatják az oldal címét, és az egészet a címkével zárják le
. Ha böngészőben megnézi ennek az oldalnak a kódját, az így fog kinézni:
4. lecke A sablon létrehozásához szükséges fájlok. Page.tpl.php
Szinte minden webhelyváltozó ilyen módon van csomagolva. Ez azért van így, hogy stílusokat írhassunk elő a tartalomhoz anélkül, hogy előre tudnánk, mi lesz az.
Így néz ki szabványos fájl page.tpl.php ami a Drupallal jön. Változtasd meg az osztályok nevét, rendezd át a változókat – és nézd meg, mi történik. Erre azért van szükség, hogy „érezzük”, hogyan működik, és mi lesz ennek eredménye.
"-//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= "nyelv?>" lang= "nyelv?>" dir = "rendező?>">
"title="(!LANG:"rel="home">nyomtatás $webhely_neve ; ?>
A webfejlesztés nagyon fontos része az adatok beszerzésének logikájának elkülönítése a megjelenítés logikájától.
Bármely programozó, aki valamivel a „Hello world” szint fölé emelkedett, úgy érzi, hogy szükség van egy ilyen szétválasztásra. De nem mindenki jut a megfelelő következtetésekre és döntésekre.
Ezért itt megadom a legfontosabb szabályokat:
1. A fogadó kódot és az adatmegjelenítési kódot el kell választani egymástól.
2. A visszavonást csak azután szabad elkezdeni, ha az összes adat készen áll rá.
3. Következésképpen minden szkriptnek csak adatfeldolgozással kell foglalkoznia. Ezt követően vagy küldhet valamilyen HTTP fejlécet, vagy meghívhatja a sablont, átadva neki az előkészített adatokat, vagy mindkettőt.
4. Hogy milyen sablonmotort használjunk, az a tizedik dolog. A legegyszerűbb és legelérhetőbb maga a PHP, így példák is lesznek rá.
Tévképzetek
Valószínűleg nincs olyan téma a webprogramozásban, amely annyira nyilvánvaló, mint amennyire érthetetlen, mint a sablonok. Előbb-utóbb mindenki arra a következtetésre jut, hogy szükség van a sablonok használatára. De ez valamiért a legvadabb téveszmék és fantáziák révén jön létre.
A legegyszerűbb és legnyilvánvalóbb tévhit az, hogy a kezdők egy külön fájlba elhelyezett sablont "designnak" neveznek - ez egy közös html az oldal összes oldalán. És ezen megnyugszanak. Dinamikus információ, habozás nélkül, a jó öreg visszhangot kiadva :-)
Valójában a sablonmotor főként a webhely oldalainak változó tartalmának megjelenítésével foglalkozik. A "tervezés" lezárása pedig másodlagos feladat.
Két fő fantázia létezik:
1. A sablonokra a "tervezőnek" van szüksége, hogy a PHP megértése nélkül tudja szerkeszteni.
2. Ezért a sablonok a PHP és a HTML elválasztására szolgálnak.
Próbáljunk meg elgondolkodni az első állításon. Ki a tervező? Ez egy személy, aki a Photoshopban dolgozik. Leggyakrabban egyáltalán nem ismeri a HTML-t. És vagy egy speciális elrendezéstervező dolgozik a sablonon, vagy - leggyakrabban ... maga a programozó! Vicces, nem?
Most a következmény, a PHP és a HTML elválasztása. Bírság. Előttünk a szétválás szent célja. Ezért feltaláljuk a Smartyt, és ezt írjuk:
(foreach key=cid item=con from=$contacts)
($con.name) - ($con.nick)
(/az egyes)
Még viccesebb.
A "tervező", akiért minden elkezdődött, elájul a boldogságtól.
Elmélet
Kiderült, hogy egy fillért sem érnek azok az indokaink, amelyek miatt a sablonok mellett döntöttünk. És mi van most - általában nincs szükség sablonokra, mint kiderült? Szükséges. De először meg kell válaszolnia magának a kérdést - "miért?" Miért sablonokra van szükség. És ellenőrizze a választ gyakorlattal. Sokszor feltettem ezt a kérdést az embereknek. De erre szinte senki sem tud válaszolni. Miért kellenek neki sablonok? Kiderült, hogy az emberek anélkül tesznek valamit, hogy tudnák, miért.
Ez a legviccesebb.
Webprogramozói pályafutásom során három okot fogalmaztam meg magamnak, amiért nekem személy szerint szükségem van sablonokra. Valójában kettő van belőlük. De végül egy dologra jutnak:
Egy kód - Több nézet.
Gyakran előfordul, hogy egy információ helyett egy másikat kell megmutatni. Például az adatbázissal való munkavégzés kódja a hírszöveg helyett hibaüzenetet kap. Ebben az esetben a híroldal helyett egy teljesen mást kell mutatnia - bocsánatkéréssel és kéréssel, hogy jöjjön vissza később. A sablonok ezt megkönnyítik.
Gyakran ugyanazt az információt több formában is meg kell jeleníteni. Például - egy normál oldal és egy oldal a nyomtatáshoz. Az információ ugyanaz, a fogadásának kódja ugyanaz, de a kimeneti kód más. Ilyen helyzettel szembesülve nagyon gyorsan két részre osztja a kódot, amelyek közül az egyik felelős a kimenetért, a második pedig nem. Egy másik példa: tegyük fel, hogy nem közvetlenül HTML-ben akartuk megjeleníteni az információkat, hanem egy AJAX kérés útján, JSON formátumban. Ha sablonmotort használtunk, akkor pontosan egy sort változtatunk meg a kódunkban – a sablonmotor meghívása a json_encode() függvényre. És ha a kimenetet összekevernénk az adatok megszerzéséhez szükséges kóddal, akkor az egész kódot át kellene írni!
A helyzet némileg hasonló: tegyük fel, hogy a szkriptünk két oldalon található. Plusz egy példány otthon. És itthon találtunk egy nagy bogarat. Leszögezték. Most frissítenünk kell a kódot az oldalakon. És itt van - az igazság pillanata: ha a sablonokat helyesen használták, akkor egyszerűen feltöltjük a kódot mindkét oldalra, és minden tovább működik, mintha mi sem történt volna! Egy ilyen helyzet véleményem szerint ideális próbája a sablonozás választott megközelítésének.
Egy másik fontos szempont, amit sokan hiányolnak (elméleti érvelésükben, miközben a gyakorlatban folyamatosan találkoznak vele!) - a szkript végrehajtási sorrendje nem mindig egyezik a sablonban lévő kimeneti sorrenddel. Tankönyvpélda – egy cikk címének megjelenítése egy címkében
Nem szabad elfelejteni, hogy a PHP-szöveg mellett a szkriptek HTTP-fejléceket is megjelenítenek. Amit minden szöveg előtt meg kell jeleníteni, vagy akár általában szöveg helyett (ha pl. másik oldalra akarjuk átirányítani a felhasználót). Ha először az alkalmazás logikáját valósítjuk meg, anélkül, hogy egyidejűleg bármit is megjelenítenénk, akkor a kívánt HTTP fejléc megadása nem okoz problémát számunkra.
Lehet, hogy saját okai vannak a sablonok használatának. De csak egy feltétellel – ezeket az okokat valódi, létfontosságú szükségletnek kell okoznia, nem pedig „magasabb megfontolásoknak” és az Ön számára ismeretlen emberek iránti aggodalomnak.
Gyakorlat
Most térjünk át az elméletről a gyakorlatra.
A legegyszerűbb esetben minden oldal megjelenítésében mindig két sablon vesz részt: egy általános webhelysablon és egy adott oldal tartalomsablonja.
Tegyük fel, hogy szeretnénk létrehozni egy oldalt, amelyen linkek találhatók az ismerősök webhelyére.
Ebben az esetben az egyszerűsített kód így néz ki:
Maga a links.php fájl. SEMMIT nem ad ki. Csak előkészíti az adatokat, majd meghívja a sablont.
// beállítások engedélyezése.
tartalmazza "settings.php" ;
// adatok beszerzése az adatbázisból, változók meghatározása
$pagetitle = "(!LANG:Linkek"
;!}
$DATA = $db -> getAll("SELECT * FROM hivatkozások" );
//állítsa be az oldalsablont, és hívja meg az általános webhelysablont
$tpl = "tpl_links.php" ;
include "tpl_main.php" ;
Általános sablon (tpl_main.php):
include $tpl ?>
A megfelelő helyen tartalmazza oldalsablonunkat (tpl_links.php):
=$pagetitle?>
- "target="_blank">=$row [ "name" ] ?>
foreach($DATA as $row ): ?>
endforeach ?>
A legegyszerűbb módja a sablonok elkészítése a HTML-ben már elhelyezett statikus oldalak alapján. Fontolja meg egy sablon létrehozását és összekapcsolását egy példa segítségével. Tegyük fel, hogy már van egy HTML-fájlja a következő tartalommal:
<html > <fej > <metanév= "leírás"tartalom= /> <metanév= "kulcsszavak"tartalom= /> <cím >cím > <link href= stílus.css rel= "stíluslap" típus= "text/css" /> fej > <test >// menü indítása<táblázatszegély= "1" > <tr > <td ><href= "/" > <b> itthonb>a >td > tr > <tr > <td ><href= "/ról ről/"> Rólama >td > tr > <tr > <td ><href= "/me_and_me/"> Én és a világuraloma >td > tr > <tr > <td ><href= "/kapcsolatok/"> Kapcsolatoka >td > tr > táblázat >// menü vége<h1 > Főoldalh1 > <p > p > <p > Szöveg rólam: Szöveg rólam: Szöveg rólam: Szöveg rólam:p > <p > Szöveg rólam: Szöveg rólam: Szöveg rólam: Szöveg rólam:p > <p > Szöveg rólam: Szöveg rólam: Szöveg rólam: Szöveg rólam:p > test > html >Ha sablont szeretne hozzáadni a CMS-hez, létre kell hoznia egy fájlt a tpls/content könyvtárban, például a test.tpl , és oda kell beillesztenie a HTML-kódot. A CSS-fájlt a css/cms mappába kell helyezni, style.css néven. A képeket lehetőleg a képek mappába kell helyezni. Ne felejtse el megváltoztatni az összes kép és CSS-fájl elérési útját.
Megjegyzés
Ne használjon orosz betűket a sablonfájl nevében!
Ahhoz, hogy a rendszer „lássa” az új sablont és elkezdje használni az oldalak megjelenítésére, a sablont hozzá kell adni a rendszerhez. Ehhez lépjen a "Struktúra" modul beállításaihoz, a "Sablonok" fülre ( http://yourdomain.ru/admin/content/config/ ). Minden tartományban megjelenik a már telepített sablonok listája, amelyek a kiválasztott nyelvi verzióban léteznek.
Új sablonfájl csatlakoztatásához töltse ki a mezőket " Sablonnév" (adj valami értelmes nevet, például " Az én tesztmintám"") és a "Fájlnév" (esetünkben test.tpl), majd kattintson a "Mentés" gombra.
Ha ezt a sablont szeretné alapértelmezett sablonként használni, jelölje be az „Alap” négyzetet mellette. Ez a sablon most alapértelmezés szerint ki lesz választva a sablon kiválasztása legördülő menüben. Az alapértelmezett sablont (Regisztráció, Jelszó-helyreállítás, Webhelytérkép) használó rendszeroldalak megjelenítésére is szolgál.
A sablonok a legördülő listában lesznek láthatók az egyes oldalak szerkesztésekor:
Így sok sablon használható egyszerre egy oldalon, kiválasztva a megfelelő sablont egyetlen oldalhoz és oldalcsoportokhoz is.
Próbáljon meg új oldalt létrehozni (győződjön meg arról, hogy az új sablon ki van választva a Tervezősablon opcióban), és nézze meg, mi történik a webhelyen.
A HTML-sablonnak meg kell jelennie a webhelyen. De most statikus. Most dinamikussá kell tenni.
Először is meg kell határoznia, hogy a HTML-kód mely részei változnak meg. Esetünkben a következők változnak:
ablak címe
kulcsszavak és leírási metacímkék;
szöveges cím
;
tényleges szöveg;
webhely menüje.
Ez azt jelenti, hogy kicsit dolgoznunk kell a HTML-sablonnal, és a megfelelő makrókat kell behelyeznünk a szakaszok megváltoztatása helyett.
Például a HTML-fájl elején be vannak állítva a metacímkék és a cím:
<metanév= "leírás"tartalom= "Vaszilij Pupkin weboldalának leírása" /> <metanév= "kulcsszavak"tartalom= "Vasya Vasily Pupkin hivatalos oldala" /> <cím > Vasya Pupkin honlapja: Főoldalcím >Cseréljük őket a megfelelő makróval (a makrók listája a mellékletben található):
<metanév= "leírás"content="%description%" /> <metanév= "kulcsszavak" tartalom= "%keywords%" /> <cím >%cím%cím >Mostantól az oldalak generálásakor a rendszer az egyes oldalakhoz külön-külön megadott metacímkéket és címeket veszi fel, és helyettesíti azokat a megfelelő makrók helyett. A makrónevek könnyen megjegyezhetők.
Ugyanezt tesszük a szöveg címével is. Ez így volt:
<h1 > Főoldalh1 >És azzá lesz. A szöveg címét a %header% makró jeleníti meg:
<h1 >%fejléc%h1 >Az oldal törzsszövege is megváltozik:
<p > Szöveg rólam: Szöveg rólam: Szöveg rólam: Szöveg rólam:p > <p > Szöveg rólam: Szöveg rólam: Szöveg rólam: Szöveg rólam:p > <p > Szöveg rólam: Szöveg rólam: Szöveg rólam: Szöveg rólam:p > <p > Szöveg rólam: Szöveg rólam: Szöveg rólam: Szöveg rólam:p >Van egy makró az oldal törzsszövegének megjelenítéséhez. %tartalom% :
%tartalom%A fájl elejére a címkék között
És makró beszúrása:Ez a sor lehetővé teszi a gyors szerkesztési funkciót és egyéb hasznos funkciókat. Ezzel lehet kattintani Váltás +D, gyorsan lépjen a webhely aktuális oldalának vagy annak bármely töredékének szerkesztéséhez.
Az eredmény a következő legyen:
<html > <fej > <metanév= "leírás"content="%description%" /> <metanév= "kulcsszavak" tartalom= "%keywords%" /> <cím >%cím%cím > <link href= stílus.css rel= "stíluslap" típus= "text/css" /> %system includeQuickEditJs()%fej > <test >// menü indítása<táblázatszegély= "1" > <tr > <td ><href= "/" > <b> itthonb>a >td > tr > <tr > <td ><href= "/ról ről/"> A cégrőla >td > tr > <tr > <td ><href= "/projektek/"> Projekteka >td > tr > <tr > <td ><href= "/kapcsolatok/"> Kapcsolatoka >td > tr > táblázat >// menü vége<h1 >%fejléc%h1 >%tartalom%test > html >Tehát elmentjük a sablonfájlt, és megnézzük az eredményt. Most már szinte teljesen dinamikus az oldal, kivéve a menüt. Szükséges "újraéleszteni" a webhely menüjét. Lássuk, hogyan épül fel a menü:
// menü indítása<táblázatszegély= "1" > <tr > <td ><href= "/" > <b> itthonb>a >td > tr > <tr > <td ><href= "/ról ről/"> Rólama >td > tr > <tr > <td ><href= "/me_and_me/"> Én és a világuraloma >td > tr > <tr > <td ><href= "/kapcsolatok/"> Kapcsolatoka >td > tr > táblázat >// menü végeA menü tételekből áll. Maga az étlap is valahogy megtervezett, és a tételeknek is van dizájnjuk. Például a teljes menünek lehet kerete vagy háttere, az aktuális menüpont lehet félkövér stb. Egy menüben is különböző szintek lehetnek.
Válassza ki a menükeretet:
// menü indítása<táblázatszegély= "1" > táblázat >// menü végeA menüpont így néz ki:
<tr > <td ><href= "/kapcsolatok/"> Kapcsolatoka >td > tr >Az aktuális menüpont formátuma eltérő:
<tr > <td ><href= "/" > <b> itthonb>a >td > tr >Az eredeti menüsablon a /tpls/content/menu/default.tpl fájlban található, és így néz ki:
%szöveg%