Részletek * .tpl fájlok DLE sablon a céljuk. TPL fájlok használata TPL PHP sablonok Hogyan kell használni

Közvetlenül azt mondom, hogy már itt írtam erről a témáról :. Azonban nem mindenki megértette ezt az anyagot, és úgy döntöttem, hogy visszatérek hozzá, és mindent másképp írok. Nem titok, hogy minden komoly motor soha nem lesz keverve a kódodban. HTML. és PHP.. De, HTML. és PHP. A kódok nagyon szorosan egymáshoz kapcsolódnak, így annak érdekében, hogy ne legyőzzük a "jó hang" szabályait, feltalálták tPL fájlok. Ezek a fájlok tárolódnak HTML kód sablonelemekkelakik helyettesítettek PHP kód. Nézzünk többet részletesebben tPL fájlok használata Példával.

Vigyük magával a leginkább elemi példa egy felhasználói panel, ahol az avatar és az üdvözlés név szerint. Először is, hozzon létre tPL fájl.és hadd hívja userpanel.tpl. Emlékeztetem, hogy ez csak egy darab HTML kód sablonelemekkel:

Hello,% Név%!




Semmi bonyolult, ez csak egy rendes HTML kód. Csak bizonyos értékek helyett érdemes % Elements_Sablon%.

Most kitaláljuk PHP feldolgozás. Minden lesz több, mint absztrakt, de sajnos bármilyen módon. A legfontosabb dolog az, hogy megértsük a munka elvét. Így PHP kód A létrehozott feldolgozáshoz tPL fájl.:

/ * Ez a funkció, bár puffereket használ, de az elemi lényege: visszaadja a fájl tartalmát * /
Funkció GetTemplate ($ Name) (
Ob_start (); // Indítsa el a kimenet mentését a pufferre
Tartalmazza a ($ nevet. "TPL"); // küldje el a fájl tartalmát a pufferre
$ Szöveg \u003d ob_get_clean (); // tisztítsa meg a puffert és adja vissza a tartalmat
Vissza $ szöveg; // szöveges visszatérés a fájlból
}
$ Name \u003d "Nikolai"; // eltávolítva az alapból
$ avatar \u003d "avatars / user_15.jpg"; // eltávolítva az alapból
/ * Elkezdi kicserélni a sablon elemeit a valós adatokhoz * /
$ Userpanel \u003d str_replace (
Tömb (
"% Név%",
"% Avatar%"
),
Tömb (
$ NAME
$ Avatar
),
Gettemplate ("userpanel")
);
Echo $ userpanel; // megjeleníti a végeredményt
?>

Ez a legegyszerűbb lehetőség. Minden megjegyezte, ezért nincs kérdés erre a példára. És valójában minden oldal ilyen blokkokból áll. A feladat a megfelelő blokkok (funkció) gettemplate ()), Cserélje ki a szükséges adatokat (a str_replace () függvény és a kapott adatokat, például a bázis), majd egyszerűen csatlakoztassa az összes blokkot, szabályos vonalak, és a kimeneti mindent az oldalra.

Biztosan Oop Ez nagyon problémás lesz itt. Ön növeli számos feltétel (sok oldal), amely gyorsan összezavarodik. De a használat elvét tPL fájlokRemélem, rájöttél. Továbbá gondolj arra, hogyan kell beburkolni OopAnnak érdekében, hogy minden a lehető legegyszerűbb legyen a Kódex megértése és karbantartása szempontjából a jövőben.

A létrehozás után információ- Elvileg a téma már meghatározva. Ez azt jelenti, hogy menjen a Field Management részre. http://mysite.ru/admin/build/themes. És tartalmazza a témáját. Természetesen, miután bekerítette azt a designt, nem fogja látni - az oldal megszerzi a "fekete fehér" stílusát - fehér alapon fekete szöveg.

Szeretném azonban megjegyezni, hogy annak ellenére, hogy a témánkban nincsenek fájlok mytheme.info. Nem hazudik, a webhely úgy fog működni, mint korábban - az összes tartalom visszavonása, blokkok hozzáadása a régiókhoz ( http://mysite.ru/admin/build/block) stb. stb. Ezt azzal magyarázza, hogy a Drupal rendszermagja tartalmazza kötelező modulokamely még a témában szereplő fájlok teljes hiányában is (az információs fájl kivételével) lehetővé teszi, hogy továbbra is dolgozzon a Drupal használatával.

Elvben a sablon minden létrehozása az átfedő sablonfájlokba kerül (kiterjesztésük van .tpl.php.) a mi szabványos modulok CMS..

A legfontosabb TPL fájl (TPL csökkentése sablon., sablon) oldal.tpl.php.. Ő felelős az egyes webhelyoldal építéséért. Találkozzunk azzal, amit a sablonfájl:

  • hTML kód
  • pHP kód
  • javaScript-kód (nem szükséges)

Minden sablonfájlban a Drupal a helyszíni adatokat szabványos változók formájában továbbítja. Minden sablonfájl esetében 2 típusú változó található:

  • változók, amelyeket csak a fájlhoz továbbítanak.
  • az összes fájlhoz továbbított változók

Itt van az összes változó listája oldal.tpl.php.:

Általános változók (minden fájl esetében):

  • $ Base_path - alapút, ahol a Drupal telepítve volt
  • $ CSS. - Az aktuális sablonfájlhoz csatlakoztatott CSS-fájlok tömbje
  • $ Directory. - a mappa elérési útja, amelyben a téma telepítve van
  • $ is_front - Visszaadja az igazság értékét, ha a főoldalon tartózkodik
  • $ Naplózott_in. - Visszaadja az igazság értékét, ha bejelentkezett
  • $ IS_ADMIN. - Visszaadja az igazság értékét, ha hozzáférhet az adminisztrátorhoz

Metaadatok oldalak

  • $ Nyelv. - (egy tárgy) Aktuális nyelvamely a webhelyen jelenik meg
  • $ Language-\u003e Nyelv - Tartalmaz szöveges ábrázolását
  • $ Nyelv-\u003e dir - Tartalmazza a nyelv irányát. Ez vagy "ltr" (balról jobbra) vagy "rtl" (jobbra-balra)
  • $ Head_title - módosított oldal címe verzió a címkék között
  • $ Fej. - A címkék között van behelyezve . Meta címkéket tartalmaz, kulcsszavak stb.
  • $ stílusok. - Mindenkinek letöltése cSS.-Filettek az aktuális oldalra
  • $ parancsfájlok. - Mindenkinek letöltése javaScript "OV az aktuális oldalhoz
  • $ body_classes - osztályok készlete cSS. A címkéhez . Tartalmaz információkat az oszlopok aktuális elrendezéséről a helyszínen, számuk, az aktuális URL "E, stb.

Információ a webhelyről

  • $ Front_page. - A webhely főoldalának címe. Jobb, ha ezt a változót használjuk főoldalmivel Tartalmaz egy tartománynyelvet és előtagot
  • $ logo. - A webhely logójának elérési útja, ha szerepel a webhelyen
  • $ SITE_NAME. - Helynév. Lehet, hogy üres lehet, ha kikapcsolja az információs fájl funkcióit. Konfigurálva a mysite.ru/admin/settings/site-information
  • $ site_slogan. - Szlogen hely. Lehet, hogy üres lehet, ha kikapcsolja az információs fájl funkcióit. Konfigurálva a mysite.ru/admin/settings/site-information
  • $ Misszió - Mission webhely. Ez üres lehet, ha letiltja az információs fájl funkcióit. Konfigurálva a mysite.ru/admin/settings/site-information

Navigáció

  • $ SEARCH_BOX - Tartalmaz egy HTML kódot, amely megjeleníti a keresési karakterláncot. Lehet üres, ha kikapcsolja az információs fájlban
  • $ elsődleges_links.
  • $ Secondary_Links. - a webhelyen lévő navigációs linkeket tartalmazó tömb, ha az információs fájl jellemzőiben megengedettek

Alapértelmezett oldal tartalom

  • $ Maradt. - vidék. A bal oldali oszlop HTML kódot tartalmaz. Ha az információs fájlban bármilyen régiót állít be, akkor eltűnik
  • $ Breadcrumb. - "zsemlemorzsa"Mert aktuális oldal
  • $ cím - Lap cím
  • $ Segítség. - Dinamikus tippek, főként az admin
  • $ Üzenetek. - hibákat és figyelmeztetést jelenít meg az oldalon
  • $ Lapok. - Referenciák (lapok) Az aktuális oldalt az aljzatával csatlakoztatva (például a cikkhez - szerkesztési oldalával)
  • $ Tartalom - Tartalom Aktuális oldal
  • $ jobb - vidék. Tartalmaz HTML kódot a jobb oldali oszlophoz. Ha az információs fájlban bármilyen régiót állít be, akkor eltűnik

Alsó / záró adatok

  • $ Feed_icon. - String minden ikonral visszacsatolás Az aktuális oldalra
  • $ Footer_message. - Üzenet az oldal alján. Konfigurálva a mysite.ru/admin/settings/site-information
  • $ Lábléc. - vidék. Tartalmaz HTML kódot az oldal alján. Ha az információs fájlban bármilyen régiót állít be, akkor eltűnik
  • $ bezárás. - záró címke minden olyan modulhoz, amely megváltoztatta az oldalt. Ezt a változót minden dinamikus tartalom után kell megjeleníteni. Legjobb a záróelem bezárása előtt

Minden itt szerepel szabványváltozók. De itt hozzáadhatja a változókat, akár régióként is információ-File vagy bármely más szerep a fájlon keresztül template.php. (róla egy kicsit később).

Most megmutatom, hogy melyik kódnak kell lennie oldal.tpl.php. És milyen kóddal értelmezik a böngészők. Előtted egy darab kódot oldal.tpl.php.:

Az első sorban van egy ellenőrzés, függetlenül attól, hogy van-e címsor az aktuális oldalon. Ha nem - akkor a hibakeresés egyszerűen kihagyja ezt a kódot, és nem jön a végére. Ha a fejléc létezik, az oldalkód hozzáadódik a HTML-hez

, miután kinyomtatja az oldal címét, és mindezt a címke zárja le

. Ha megnézed az oldal kódját a böngészőben, akkor úgy néz ki, mint ez:

4. lecke. Szükséges fájlok egy sablon létrehozásához. Oldal.tpl.php.

Így szinte minden helyszíni változó megfordul. Ez megtörtént, hogy előírhatjuk a tartalom stílusait, nem tudjuk, hogy mi történik.

Így néz ki szabványos fájl. oldal.tpl.php.Ki megy a Drupal-szal. Változtassa meg az osztályok nevét, átrendezze a változókat néhány helyen - és nézze meg, hogy kiderüljön. Szükség van annak érdekében, hogy "megduzzadjon", hogyan működik, és ami eredményeként származik.

"- // W3C // DTD XHTML 1.0 szigorú // hu" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> "http://www.w3.org/1999/xhtml" Xml: lang \u003d "nyelv?\u003e " lang \u003d. "nyelv?\u003e " dir \u003d. "dir?\u003e "> <?php print $head_title ; ?> "" >

Kedves barátaim,

folytatjuk a hasznos tippek közzétételét, amelyek megkönnyítik a szkript egyes műveleteinek és jellemzőinek megértését. Nemrégiben kérdések gyakran jönnek hozzánk azzal a kéréssel, hogy a módosítás a forgatókönyvet, hogy tudod használni a különböző sablonok különböző szakaszain a helyszínen. Például a főoldalnak a hírekkel rendelkeznie kell egy elrendezési struktúrával, és például a visszacsatolási oldal teljesen más. Ugyanakkor motiválja nekünk, hogy az adminisztrátorpanelen csak a webhelyhírek kategóriáira módosítható. De valójában mindez szokásos módon valósítható meg, amelyet ez a kis cikk megy.

Tehát az első dolog, amire szükségünk van a szkriptdokumentációhoz, amely azt olvasja, hogy a sablon fő.tpl Támogatja a következő címkéket:

Szöveg, amely a címkékben található szöveget jeleníti meg, ha a webhely megadott részét keresi.


ez a címke ellentétes

Szöveg, amely a címkékben található szöveget jeleníti meg, ha a megadott partíciót megtekintett


A feladat példájának alapja: Győződjön meg róla, hogy a webhely a sablon egy kialakítását használja, és a visszacsatolás a helyszínen használta a másikat. Ennek alapján meg kell nyitnunk egy sablont. fő.tpl és adja meg a következőket:

Itt a sablon teljes szövege, amely a visszajelzés megtekintésekor jelenik meg
Itt a sablon teljes szövege, amelyet mindenhol megjelenítünk, kivéve a visszajelzést


De van egy nagy mínusz, a fő sablonfájlod fő.tpl Túl nagy lesz, mert Lényegében két különböző formatervezés lesz, és itt ismét fellebbezünk a dokumentációra és a forgatókönyvre, és megismerjük a gyönyörű címke létezését: (Tartalmazza a fájlt \u003d "my_block.tpl")amely a megadott my_block.tpl fájlt a sablonba csatlakoztatja.

A fentiek alapján a végső végrehajtás a következő:


A sablonfájlban feedback_main.tpl Visszajelzést tervezünk, és az all_main.tpl fájlban a webhely többi részének kialakítását készítjük. Ez valójában minden könnyű és könnyen megvalósítható, nincs szükség a forgatókönyv módosítására. Bármely partíció kialakítását is elhelyezheti, több részből állhat, stb. Olvasson tovább, figyelmesen olvassa el a forgatókönyv dokumentációját, nagyon sok hasznos hangsúlyozni magad.

Tisztelettel,


Az adat-logika szétválasztása a kijelzőn logikájából a webfejlesztés nagyon fontos eleme.
Bármely programozó, aki egy kicsit magasabb, mint a "Hello World" szintje, úgy érzi, hogy szükség van egy ilyen osztályra. De nem mindenki jön a megfelelő következtetések és megoldások.
Ezért adom meg a legfontosabb szabályokat:
1. A kód és az adatkijelző kódot meg kell osztani.
2. Bármely következtetésnek csak az összes adat készen kell állnia.
3. Ennek eredményeképpen minden szkript csak az adatfeldolgozással kell kezelnie. Ezután küldhet néhány NTTR címet, vagy sablont hívhat, miután átadta az elkészített adatokat, vagy mindkettőt együtt.
4. Mi a helyzet a tizedben. Maga a legegyszerűbb és leginkább megfizethető - RNR, így a példákat hozták rá.

Félreértés
Nem, valószínűleg a webes programozásban a téma ugyanolyan nyilvánvaló, mint sablonként érthetetlen. Minden, előbb-utóbb, a sablonok használatának szükségességét követően következik. De valamilyen okból jön, a legvadabb tévhitek és fantáziák között.

A legegyszerűbb és nyilvánvaló félreértés az, hogy az újonnan érkezőknek az úgynevezett sablon készült, amelyet egy külön "design" fájlban - megosztott HTML-t megosztanak az oldal összes oldalára. És nyugodt rajta. Dinamikus információ, nincs kemény, visszavonja a régi jó visszhangot :-)
Valójában a sablonizáló elsősorban az oldaloldalak változó tartalmának kimenetét érinti. És a "design" megkötése kisebb feladat.

A fantáziák a legfontosabbak:
1. A sablonok szükségesek a "Designer" -hez, hogy szerkeszthesse őket a PHP megértése nélkül.
2. Következésképpen a sablonok a PHP-t a HTML-ről különítik el.

Próbáljuk meg gondolni az első állításra. Ki a tervező? Ez egy olyan személy, aki a Photoshopban dolgozik. HTML Ő leggyakrabban nem tud egyáltalán. És a sablon felett van egy különleges réteg vagy - leggyakrabban ... Programozó maga! Vicces, nem igaz?
Most ennek következménye, hogy a HTML PHP szétválasztása. Kiváló. Előttünk a szent cél különálló. Ezért okos és írunk:
(Foreach billentyű \u003d CID elem \u003d Con \u003d $ contacts)
($ Con. Név) - ($ Con .Nick)

(/ az egyes)

Több viccesebb.
"Tervező", amelyre mindenki állt, elájult a boldogságtól.

Elmélet
Kiderül, hogy az okaink, amelyekről úgy döntöttünk, hogy a sablonok használata nem érnek egy fillért sem. És mi van - nincs szükség, ez kiderül, egyáltalán shabons? Szükség. De először válaszolnia kell a kérdésre - "Miért?" Miért Szükségünk van mintákra. És ellenőrizze a válasz gyakorlatát. Sokszor megkérdeztem ezt a kérdést. De szinte senki sem válaszolhat rá. Miért van szüksége sablonokra. Kiderül, az emberek csinálnak valamit, nem tudják, miért.
Ez a vicces dolog.

Tevékenységük során, mint webes programozó, három okot fogalmaztam meg magamnak, amelyekre a sablonok személyesen vannak szükségük. Lényegében két közülük van. És menj le, végül az egyikre:

Egy kód - több nézet.

Gyakran előfordul, hogy egy információ helyett meg kell mutatnia egy másikat. Például az adatbázissal rendelkező munkakód hibaüzenetet kap a szöveg helyett. Ebben az esetben a híroldal helyett teljesen másnak kell mutatnia - bocsánatkéréssel és kéréssel később. A sablonok használatával ez elemi.

Gyakran egy és ugyanazokat az információkat több fajban kell feltüntetni. Például egy rendszeres oldal és egy nyomtatási oldal. Az információ ugyanaz, az előkészítés kódja megegyezik, és a kimeneti kód eltérő. Ezzel a helyzetkel szembesülve, nagyon gyorsan megosztja a kódot két részre, amelyek közül az egyik felelős a kimenetért, és a második nem válaszol. Egy másik példa: Tegyük fel, hogy nem közvetlenül a HTML-hez, hanem ajax kérésen keresztül kívánunk adni az információkat, de a JSLE formátumban. Ha sablonosítót használtunk, akkor pontosan egy sorban váltunk a kódunkban - hívja a sablonizálót a JSON_ENCODE () hívásához. És ha a következtetésünket az adatgyűjtő kóddal kevertük, akkor a kódnak átírnia kell az egészet!

Hasonló helyzetben: mondjuk, a szkriptünk két helyen van. Plusz egy másolatunk otthon. És otthon találtunk egy nagy hibát. Extredálta. Most frissítenie kell a kódokat a webhelyeken. És így ő az igazság pillanata: Ha a sablonokat helyesen használják, akkor egyszerűen csak öntsük a kódot mindkét webhelyen, és minden továbbra is működik, mintha semmi sem történt volna! Egy ilyen helyzet, amint azt hiszem, a sablon kiválasztott megközelítésének tökéletes ellenőrzése.

Egy másik fontos pont, amit sokan hiányoznak (elméleti érvelésük során, miközben folyamatosan szembesülnek vele a gyakorlatban!) - a szkript végrehajtásának eljárása nem mindig egyeznek meg a sablon kimenetének sorrendjével. A tankönyv példája a címke fejlécének kimenete . Ha információt adunk, ahogy megérkezünk, egyszerűen nem tudom ezt megtenni - a kalap <i>már</i> Megjelent, amikor elkezdtük a szöveges híreket megkapni.</p><p>Emlékeztetni kell arra is, hogy az RNR szövege mellett a szkriptek is http címsorokat is kiadnak. Amelyek bármilyen szöveg előtt kell megjeleníteni, vagy akár a szöveg helyett (ha például azt szeretnénk átirányítani a felhasználót egy másik oldalra). Ha először alkalmazzuk az alkalmazás logikáját, anélkül, hogy bármit megmutatnánk, akkor nem adja meg nekünk a szükséges NTTR-t.</p><p>Lehet, hogy saját oka van a sablonok használatára. De csak egy feltétel mellett - ezeket az okokat egy igazi, létfontosságú szükségesség, nem pedig a "legmagasabb megfontolások", és gondoskodni kell néhány ismeretlen emberre.</p><p><b><a name="example">Gyakorlat</a> </b><br> Most az elméletből gyakoroljuk a gyakorlatot. <br> A legegyszerűbb esetben bármely oldal bemutatójában mindig részt veszünk két sablon: egy közös weblap sablon és egy konkrét oldal tartalom sablon. <br> Tegyük fel, hogy egy oldalt szeretnék találni a barátok webhelyeihez. <br> Ebben az esetben a kód egyszerűsített kódja így fog kinézni:</p><p>Links.php fájl. Semmi nem jelenik meg. Csak felkészíti az adatokat, majd sablont okoz. <br><span><?<br><span>// befogadó beállítások. <br></span>tartalmazza a "Settings.php";</p><p>// Adatok fogadása a bázisból, meghatározza a változókat <br></span>$ Pagetitle \u003d "(! Lang: linkek" ;!} <br>$ DATA \u003d $ DB -\u003e GETALL ("Válassza ki a * linkeket");</p><p>// Állítsa be az oldal sablont, és hívjon egy általános weboldal sablont. <br></span>$ Tpl \u003d "tpl_links.php"; <br>tartalmazza a "tpl_main.php"; <br> </p><p>Általános sablon (tpl_main.php):</p><p><html xmlns="http://www.w3.org/1999/xhtml"><br> <head><br> <title>AZ ÉN OLDALAM.<?=$pagetitle?>






A megfelelő helyen bekapcsol a PAN_LINKS.PHP (TPL_LINKS.PHP):





  • "Cél \u003d" _ blank "\u003e


    • Üdv mindenkinek. Szeretnék bemutatni egy másik kerékpárt, amelyet a PHP-ben írtak le a Dokumentum objektum modelljével. Mi az ő különbsége az azonos fajok másik háromkerekű képviselőiből? Valójában a különbségek nem annyira, kombinálja a legjobbakat. Például:

      1. Teljes partíció HTML és PHP.
      2. Nincsenek további címkék a típusú mintákban


      3. Képes beágyazni, hogy leállítsa a többi sablonfájl tartalmát, mind a PHP-től, mind az elrendezésben egy speciális címkével.
      4. Képes létrehozni a HTML-címkét a repülés során.
      5. Képes menteni a HTML fájlba, amelyet az összes generált és összegyűjtött.
      6. Ellenőrizze a kért oldal HTML-fájljának létezését, mielőtt létrehozna egy sablont.

      Annak érdekében, hogy mindenki azonnal világossá vált, mennyire kényelmes és könnyű fellebbezni, megmondom és megmutatom, hogyan használtam, hogy hozza létre az egyik projektemet (gyanítom, hogy az egész projektemet újra eldobja).

      Az első dolog, amit általában csinálok, az, hogy megkapom az összes információt az adatbázisból az oldalról (kulcsszavak, oldal leírás, sablon neve és CSS és JS fájlok). Mindezt egy $ fejjel tartom. Továbbá kapok tartalmat az adatbázisból, és tartsunk egy sor $ oldalt. És folytassa az osztályt.

      Tehát először hívom az osztály konstruktorát, és továbbítom az összes szükséges paramétert:

      $ Tpl \u003d új sablon; $ Tpl -\u003e ext \u003d tpl_extension; # A fájlok bővítése a $ tpl sablonkatalógusban -\u003e htm \u003d cache_extension; # Bővítés a már generált oldalakért $ tpl -\u003e Skin_Dir \u003d dir_templates; # Könyvtár, amelyben az összes webhely sablon fekszik (például sablonok) $ tpl -\u003e js_dir \u003d dir_js; # Könyvtár, ahol meg kell keresnie a JS-fájlokat $ tpl -\u003e CSS_DIR \u003d dir_css; # Könyvtár Hol vannak CSS $ tpl -\u003e img_dir \u003d dir_img; # Könyvtár, ahol $ tpl kép -\u003e Skin \u003d $ _session ["Bőr"]; # A sablon neve, amelyet $ tpl -\u003e gyorsítótár \u003d dir_cache; # Hol lehet menteni a kész HTML $ tpl -\u003e log \u003d file_t_logs; # Hol írjon naplóit $ tpl -\u003e Tag_start \u003d Symbol_Start_Tag; # A karakter, amelyből a változók kezdődnek a $ tpl sablonban -\u003e TAG_END \u003d Symbol_END_TAG; # Szimbólum, amely véget vet a változóknak a $ tpl sablonban -\u003e dir_delimeter \u003d Directory_Separator; $ Tpl -\u003e Space \u003d Symbol_Space; # Szimbólum cseréje a helyet.
      FUF, úgy tűnik, hogy az összes változó elhunyt, továbblép.
      Annak érdekében, hogy ne kényszerítse az osztályt, hogy extra munkát végezzen, először ellenőrizzük, hirtelen már van egy kész HTML fájl a kért oldal.
      Ha ($ tpl -\u003e testpagestatus () \u003d\u003d\u003d igaz) ($ tpl -\u003e cachefilename;) más ($ tpl -\u003e oldal ("index"); # A sablonfájl nevét átadjuk áthaladhat néhány, vessző $ tpl -\u003e hozzárendeléssel ("fej", $ fej); $ tpl -\u003e hozzárendelés ("tartalom", $ oldal); $ tpl -\u003e build (); # Adunk egy csapatot Sablon gyűjtése $ tpl -\u003e Showpage (); # vegye le.)
      Itt van az összes olyan módszer, amelyet az oldal eltávolításához kell használni.

      Most elemezzük egy pár hasznos módszert ennek az osztálynak. Tegyük fel, hogy már eljutottunk az osztályba, amire szüksége van, de nem adtak neki egy csapatot a következtetésnek, mert hirtelen emlékeztették arra, hogy több HTML-címkét kell létrehoznunk a sablonban. Ez is nagyon egyszerű. Először meg kell találnod a blokkot, amelyben valamit hozzáadnunk kell. Megtalálhat 2 módot:

      $ Tpl -\u003e findbyid ("findme"); $ Tpl -\u003e findbytagname ("div");
      A Findbyid módszer logikusan azt jelenti, hogy a sablonban az összes címke egyedülálló a sablonban. És a FindbyTagName módszer visszaadja az első alkalmasságot.
      Az eredmény, amit keresést kaptunk, át kell adnunk a $ tpl módszerhez -\u003e CreateChild (), hogy képes legyen létrehozni a talált elem, gyermekcímkék. A CreateChild módszer az úton, miután létrehozta az új elemet, visszaadja nekünk, hogy csak máshol létrehozott elemet használhassuk.

      Szedés és kísérletezés 3 módot találtam a címkék létrehozására egy sablonban, így egyszerre 3 példát mutatunk be. PÉLDA:

      Meg kell teremteni

      belül

      $ szülő \u003d $ tpl -\u003e findbyid ("szülő"); $ Tpl -\u003e CreateChild ($ szülő, "div", "id \u003d gyermek, osztály \u003d teszt");
      Kapunk:


      2. példa:

      Meg kell teremteni

      Néhány szöveg
      belül

      $ szülő \u003d $ tpl -\u003e findbyid ("szülő"); $ Tpl -\u003e CreateChild ($ szülő, "div", "id \u003d gyermek, osztály \u003d teszt", "valamilyen szöveg");
      Kapunk:

      Néhány szöveg

      Példa:
      Meg kell teremteni

      Új elem
      Az első span elemben

      $ szülő \u003d $ tpl -\u003e findbytagname ("span"); # (1) $ tpl -\u003e CreateChild ($ szülő, "div", "új elem"); # (2)
      (1) A szülő megállapítása nem azonosító, és a címke megtalálja az első alkalmasságot
      (2) Ha nincs szükségünk attribútumokra, hanem csak az új elem értékére, nem tudod továbbítani őket

      Kapunk:

      Új elem

      És ezek után a manipulációk, már hívtam a Showpage-t. És itt simán közelítettünk meg további 2 érdekes pillanatot.
      Képzelje el azt a helyzetet, hogy van egy sablonunk, feltételezzük, hogy ez egy lista.tpl sablon, például mobiltelefonok:

      (Content.Brand)

      (Tartalom.model)

      (Content.info)

      Ha csak 1 telefonos információt adtunk meg, akkor egyszerűen cserélni fogja az értékük változóit, és ha több telefonon azonnal átmentünk az információkat, akkor az osztály többször másolja ezt a webhelyet, amennyire az értékek . És ezzel szemben, ezzel szemben, például az XTemplate osztályból, amely minden egyes értékű híváshoz számolt be hozzárendelést és elemzést
      Igaz, nincs egy nagyon kényelmes pillanat, ha a blokk után még néhány, például:

      (Content.Brand)

      (Tartalom.model)

      (Content.info)
      Még mindig van egy blokk

      Ezután egy ilyen helyzetben egy kis trükköt kell alkalmaznunk, csomagoljuk a mobiltelefonunkat

      (Content.Brand)

      (Tartalom.model)

      (Content.info)
      Még mindig van egy blokk

      Ebben az esetben minden mobiltelefon egymás után jelenik meg, belül
      és a "Néhány másik egység" az alábbiakban marad.

      És ha nem felejtettem el semmit, akkor az utolsó pillanat hozzáadja a többi sablon tartalmát az aktuális sablonhoz.
      Újra hívom a fantáziát.

      Képzeld el, hogy a mérőelem azt szeretné, hogy a lista.html fájlblokkhoz hozzáadjuk az oldal.html fájl tartalmát, ehhez a lista.html fájl kívánt helyén van oldal És amikor egy osztály látja ezt a címkét, akkor az oldal tartalmával helyettesíti az oldal.html fájl tartalmát

      Az ilyen betétek száma nem korlátozott, és helyük teljesen nem kritikus, így bármilyen és bármilyen mennyiségben beillesztheti őket.

      Ez valószínűleg minden, ha emlékszem valamire, akkor is jelentést teszek. Köszönjük, hogy elolvasta a végét.

      Címkék: PHP, osztály, sablon, tenderizer, parser