Detailid * .tpl failide DLE malli oma eesmärk. TPL-failide kasutamine TPL PHP mallid Kuidas kasutada

Kohe ma ütlen, et olen siin selle teema kohta juba kirjutanud :. Kuid mitte igaüks ei mõistnud seda materjali ja ma otsustasin tema juurde tagasi pöörduda ja kirjutada kõik veidi erinevalt. See ei ole saladus, et teie koodis ei segata tõsist mootorit. HTML. ja PHP.. Aga, HTML. ja PHP. koodid on väga omavahel tihedalt seotud, nii et mitte rikkuda "hea tooni" reegleid, leiutati tPL-failid. Need failid salvestatakse HTML-kood mallide elementidegakes on asendatud PHP kood. Vaatame rohkem üksikasjalikumalt tPL-failide kasutamine Näitega.

Võtame teiega kõige elementaarsem näide on kasutajapaneel, kus on tema avatari ja tervitus nime järgi. Kõigepealt looge tPL-fail.ja lase tal helistada userpanel.tpl. Ma tuletan teile meelde, et see on lihtsalt tükk HTML-kood mallide elementidega:

Tere,% nimi%!




Midagi keerulist, see on lihtsalt tavaline HTML-kood. Ainult teatud väärtuste asemel on väärt % Elemendid_sablon%.

Nüüd me näeme selle välja PHP töötlemine. Kõik on rohkem kui abstraktne, kuid kahjuks kuidagi. Peamine asi on mõista töö põhimõtet. Nii PHP kood Loodud töötlemiseks tPL-fail.:

/ * See funktsioon, kuigi kasutab puhvreid, kuid sisuliselt elementaarne: tagastage faili sisu * /
Funktsioon Gettemplate ($ nimi) (
Ob_start (); // alustage väljundi säästmist puhvrisse
Sisaldama ($ nimi. "TPL"); // Saada faili sisu puhvrisse
$ Text \u003d OB_GET_Clean (); // Puhastage puhver ja tagastage sisu
Tagasi $ tekst; // teksti tagasi failist
}
$ Nimi \u003d "Nikolai"; // eemaldatud alusest
$ avatari \u003d "Avatarid / User_15.jpg"; // eemaldatud alusest
/ * Hakkab asendama elemendid malli reaalsete andmete * /
$ UserPanel \u003d str_replace (
Massiivi (
"% Nimi%",
"% avatari%"
),
Massiivi (
$ Nimi
$ avatari
),
Gettemplate ("UserPANEL")
);
Echo $ USERPANEL; // Näita lõpptulemust
?>

See on lihtsaim valik. Kõik kommenteeris, nii et selle näite jaoks ei tohiks olla küsimusi. Ja tegelikult koosneb iga leht sellistest plokkidest. Teie ülesanne võtta õiged plokid (funktsioon gettemplate ()) Asendage vajalikud andmed (str_replace () funktsioon ja saadud andmed, näiteks alusest) ja seejärel ühendage kõik plokid tavaliste joontidena ja väljundades kõik lehele.

Kindlasti ilma Op Siin on väga problemaatiline. Sa suurendada selliseid mitmeid tingimusi (palju lehekülgi), mis kiiresti segadusse. Kuid kasutamise põhimõte tPL-failidLoodan, et sa mõistsid. Mõtlema, kuidas mähkida OpNii et kõik on võimalikult lihtne koodi ja selle hoolduse mõistmise osas tulevikus.

Pärast loomist info.-File, põhimõtteliselt teema on juba määratletud. See tähendab, et saate minna põllumajanduse juhtimise sektsioonile. http://mysite.ru/admin/build/themes. Ja lisage oma teema. Loomulikult pärast selle sisselülitamist ei näe te disaini, mida te ei näe - leht omandab "musta valge valge" stiili - valge taustal must tekst.

Kuid ma tahan märkida, et vaatamata sellele, et meie teemal ei ole faile mytheme.info. ei valeta, sait töötab nagu enne - kõik sisu tühistamiseks, lisage plokid piirkondadele ( http://mysite.ru/admin/build/block) jne. Seda seletab asjaolu, et Drupali kernel kaasas kohustuslikud moodulidMis isegi selle teema failide täielik puudumine (välja arvatud infofail), võimaldab teil jätkata töötamist Drupaliga.

Põhimõtteliselt langeb kogu malli loomine mallifailide kattumisele (neil on laiendus .TPL.php.) Meie standardmoodulid CMS..

Kõige olulisem TPL-fail (TPL on vähendamine mall., mall) page.Tpl.php.. Ta vastutab iga saidi lehekülje ehitamise eest. Tegeleme sellega, mida malli fail on:

  • hTML-kood
  • pHP kood
  • javaScripti kood (ei ole vajalik)

Igas mallifailis edastab Drupali saidi andmeid standardse muutujate kujul. Iga mallifaili puhul on olemas kaks tüüpi muutujaid:

  • muutujad, mis edastatakse ainult sellele failile.
  • muutujad, mis edastatakse kõigile failidele

Siin on kõigi muutujate nimekiri page.Tpl.php.:

Üldised muutujad (kõigi failide puhul):

  • $ Base_path - Põhiline tee, kus Drupali paigaldati
  • $ CSS. - praeguse mallifailiga ühendatud CSS-failide hulgast
  • $ Directory. - tee kausta, kus teema on paigaldatud
  • $ is_front - tagastab tõe väärtuse, kui olete põhil lehel
  • $ Loggeged_in. - tagastab tõe väärtuse, kui olete sisse logitud
  • $ IS_ADMIN. - tagastab tõe väärtuse, kui teil on juurdepääs administraatorile

Metaandmed

  • $ Keel. - (objekt) Praegune keelmis kuvatakse kohapeal
  • $ Keele-\u003e Keel - sisaldab selle teksti esindust
  • $ Keel-\u003e Rež - sisaldab keele suunda. See või on "LTR" (vasak-paremal) või "RTL" (parempoolne vasakule)
  • $ HEAD_TITLE - muudetud lehekülje pealkirja versioon silte vahel
  • $ Pea. - Sildid . Sisaldab meta silte, märksõnad jne.
  • $ Styles. - Kasutatakse kõigi allalaadimiseks cSS.-Filets praegusele lehele
  • $ skriptid. - Kasutatakse kõigi allalaadimiseks javaScript "OV Praegusele lehele
  • $ Body_klassid - klasside kogum cSS. Taga jaoks . Sisaldab teavet veergude praeguse paigutuse kohta kohapeal, nende arv, praegune URL "E jne.

Teave saidi kohta

  • $ Front_page. - kohapealse lehekülje aadress. See on parem kasutada seda muutuja viide pealehtsest See sisaldab domeeni keelt ja eesliide
  • $ logo - tee saidi logo, kui see sisaldub saidil
  • $ Site_name. - saidi nimi. See võib olla tühi, kui lülitate selle infofaili funktsioonides välja. Konfigureeritud Mysite.ru/admin/Settings/Site-Information
  • $ Site_slogan. - loosungi sait. See võib olla tühi, kui lülitate selle infofaili funktsioonides välja. Konfigureeritud Mysite.ru/admin/Settings/Site-Information
  • Diskussioon - Missiooni sait. See võib olla tühi, kui see blokeerib selle infofaili funktsioonides. Konfigureeritud Mysite.ru/admin/Settings/Site-Information

Navigeerimine

  • $ Search_box - Sisaldab HTML-koodi, mis kuvab otsingutringi. Võib olla tühi, kui lülitate selle infofailis välja
  • $ esmane_links.
  • $ Dehric_links. - massiivi, mis sisaldab saidi navigatsioonilinke, kui need on infofaili funktsioonides lubatud

Vaikimisi lehe sisu

  • $ Vasakule. - piirkond. Sisaldab vasakpoolse veeru HTML-koodi. Kui infofailis, mis tahes piirkondade seadmiseks, siis see kaob
  • $ Breadcrumb. - "leivapuru" käesolev lehekülg
  • $ pealkiri - lehe pealkiri
  • $ Abi. - dünaamilised näpunäited, peamiselt administraatoris
  • $ Sõnumid. - kuvab saidil vead ja hoiatused
  • $ Tabs. - Viited (vahekaardid) Praeguse lehe ühendamisel oma subdikasvadega (näiteks selle redigeerimislehega)
  • $ Sisu - sisu praegune leht
  • $ õigus - piirkond. Sisaldab HTML-koodi paremale veerule. Kui infofailis, mis tahes piirkondade seadmiseks, siis see kaob

Alumine ala / sulgemismenetlused

  • $ Feed_icon. - String kõigi ikoonidega tagasiside Praeguse lehe jaoks
  • $ Foori_Message. - Sõnum lehe allosas. Konfigureeritud Mysite.ru/admin/Settings/Site-Information
  • $ Jalus. - piirkond. Sisaldab lehe allosas HTML-koodi. Kui infofailis, mis tahes piirkondade seadmiseks, siis see kaob
  • $ sulgemine. - kõik lehekülje muutnud moodulite sulgemise etikett. See muutuja peab olema kuvatud pärast iga dünaamilist sisu. Parim enne siltide keha sulgemist

Kõik on siin loetletud standardmuutujad. Kuid saate oma muutujaid siin kas piirkondade kaudu lisada info.-File või muu rolli faili kaudu template.php. (temast veidi hiljem).

Nüüd näitan, millist koodi peaks olema page.Tpl.php. Ja millises koodis on brauserid tõlgendanud seda. Enne koodi tükk page.Tpl.php.:

Esimeses piirkonnas on olemas kontroll, kas praegusel lehel on pealkiri. Kui see ei ole - siis ei pea silur lihtsalt selle koodi lihtsalt ja ei tule tema lõpuni. Kui päis on olemas, lisatakse HTML-i lehekülje kood

, pärast selle trükitud lehe pealkirja ja kõik see suletakse sildiga

. Kui vaatate selle lehe koodi brauseris, siis näeb välja selline:

Õppetund 4. Vajalikud failid malli loomiseks. Page.Tpl.php.

Seega peaaegu kõik saidi muutujad on pööratud ümber. Seda tehakse nii, et saame välja kirjutada sisu sisu, mitte teades, mis see juhtub.

Sel moel näeb välja standardfail. page.Tpl.php.Kes läheb koos Drupaliga. Muutke klasside nime, korrigeerige muutujad mõnes kohas - ja vaadake, mis selgub. See on vajalik selleks, et "paisuda", kuidas see toimib ja mis tuleneb tulemusena.

"- // W3C // DTD XHTML 1.0 range // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> "http://www.w3.org/1999/xhtml" XML: Lang \u003d "keel?\u003e " Lang \u003d. "keel?\u003e " dir \u003d. "dir?\u003e "> <?php print $head_title ; ?> "" >

Kallid sõbrad,

jätkame mitmete kasulike nõuandete avaldamist, mis hõlbustavad skripti mõningate tegevuste ja funktsioonide mõistmist. Hiljuti tulevad küsimused sageli meile taotlusega teha skripti muutmise taotluse, et saaksite kasutada erinevaid saidi erinevate osade malle. Näiteks peaks uudiste peamine lehekülg olema üks paigutusstruktuur ja näiteks tagasiside leht on täiesti erinev. Samal ajal motiveerides meid, et administraatori paneeli mustrid on võimalik muuta ainult saidi uudiste kategooriate jaoks. Tegelikult saab kõik seda rakendada standardsete vahenditega, mida see väike artikkel läheb.

Nii et esimene asi, mida peame pöörduma skripti dokumentatsiooni poole, mis loeb, et mall main.tpl Toetab järgmisi silte:

Tekst, mis kuvab silte lisatud teksti, kui saidi täpsustatud osa otsitakse.


ka sellel tagil on vastupidine

Tekst, mis kuvab silte suletud teksti, kui te vaatate lisaks määratud partitsiooni


Võta aluseks ülesande näiteks: Veenduge, et sait kasutab malli ühe disaini ja saidi tagasisidet kasutas teist. Selle põhjal peame avama malli. main.tpl ja täpsustage järgmised andmed:

Siin kogu malli kogu tekst, mis kuvatakse tagasiside vaatamisel
Siin kuvatakse kogu malli kogu tekst, mis kuvatakse kõikjal, välja arvatud tagasiside


Aga sellel on üks suur miinus, teie peamine malli fail main.tpl See on liiga suur, sest Sisuliselt on kaks erinevat disainilahendusi ja siin me jälle kaebuse dokumentatsiooni ja skripti ja õppida olemasolu ilus tag: (Lisage fail \u003d "my_block.tpl")mis ühendab määratud my_block.tpl faili malli.

Eespool öeldu põhjal on lõplik rakendamine järgmine:


Mallifailis feedback_main.tpl Teeme tagasiside disaini ja All_main.tpl faili me teeme disaini ülejäänud saidi. See on tegelikult, kõik on lihtne ja lihtne rakendada, ei ole vaja koostada skripti mingeid muudatusi. Võite paigutada ka iga partitsiooni kujunduse, saate kombineerida mitu osa jne. Loe lisaks ja hoolikamalt lugeda dokumentatsiooni skripti jaoks, seal on üsna palju kasulik rõhutada ise.

Lugupidamisega,


Andmeloogika eraldamine nende kuva loogikast on veebiarenduse väga oluline osa.
Iga programmeerija, kes tõusis veidi kõrgem kui tase "Hello World", hakkab tundma vajadust sellise jaotuse järele. Aga mitte igaüks ei jõua õiged järeldused ja lahendused.
Seetõttu annan siin kõige olulisematele eeskirjadele:
1. Kood ja andmete kuvamiskood tuleb jagada.
2. Iga järeldus peaks algama alles pärast seda, kui kõik andmed on selle jaoks valmis.
3. Selle tulemusena peaks iga skript tegelema ainult andmetöötlusega. Pärast seda saab ta kas saata mõningaid NTTR-ruume või helistage mallile, võttes talle koostatud andmeid või mõlemad koos.
4. Mis täpselt kasutada kümnendat. Lihtsaim ja taskukohasem - RNR ise, nii et näited toovad selle peale.

Eksiarvamus
Ei, ilmselt veebi programmeerimisel teema on nii ilmne, nagu arusaamatu kui mallidena. Varem või hiljem tuleb malle kasutamise vajaduse sõlmimiseks. Kuid see puudub mingil põhjusel mõnede kõige metsasemate eksiarvamuste ja fantaasia kaudu.

Lihtsaim ja ilmselge eksiarvamus on see, et uustulnukaid nimetatakse eraldi "disainis" failis - jagatud HTML-is kõigi saidi lehekülgede jaoks. Ja rahustage seda. Dünaamiline teave, mitte karm, vana hea kaja äravõtmine :-)
Tegelikult tegeleb Templateerija peamiselt lehekülgede muutuva sisu väljundiga. Ja järeldus "Design" on väike ülesanne.

Fantaasiad on peamised kaks:
1. Mallid on vajalikud "disainer" nii, et ta saaks neid redigeerida ilma PHP mõistmata.
2. Järelikult teenivad mallid eraldage PHP HTML-st.

Püüdkem mõelda esimesele avaldusele. Kes on disainer? See on isik, kes töötab Photoshopis. HTML ta kõige sagedamini ei tea üldse. Ja malli kohal on kas spetsiaalne kiht või - kõige sagedamini ... programmeerija ise! Naljakas, kas pole?
Nüüd tagajärg, umbes PHP eraldamise HTML. Suurepärane. Enne meie ees on Püha eesmärk eraldada. Seetõttu me tuleme aruka ja kirjutada:
(Foreach võti \u003d cid ese \u003d con from \u003d $ kontaktid)
($ Con. Nimi) - ($ Con .nick)

(/ igaühele)

Rohkem naljakam.
"Designer", mille jaoks kõik seisis, õnnestunud õnne.

Teooria
Tuleb välja, et meie põhjused, miks me otsustasime kasutada malle ei ole väärt senti. Ja mis nüüd - ei ole vaja, selgub, Shabons üldse? Vajadus. Aga kõigepealt peate vastama küsimusele - "Miks?" Milleks Me vajame mustreid. Ja kontrollige vastuse praktikat. Ma küsisin seda küsimust mitu korda. Aga peaaegu keegi ei saa sellele vastata. Miks ta vajab malle. Selgub, inimesed teevad midagi, ei tea, miks.
See on naljakas asi.

Oma tegevuse ajal sõnastasin ma enda jaoks kolm põhjust, mille jaoks mallid vajavad isiklikult. Sisuliselt on neist kaks. Ja mine lõpuks, et üks:

Üks kood - mitmed vaated.

Sageli juhtub see, et ühe teabe asemel, mida peate teise näitama. Näiteks töökoodi andmebaasiga saab teksti asemel veateate. Sellisel juhul peate uudiste lehe asemel näitama täiesti erinevat - vabandused ja nõudma hiljem. Kasutades malle, see on tehtud elementaarne.

Sageli üks ja sama teave tuleks näidata mitmes liigis. Näiteks tavaline lehekülg ja prindileht. Teave on sama, selle valmistamise kood on sama ja väljundkood on erinev. Sellise olukorraga silmitsi seisab oma koodi väga kiiresti kaheks osaks, millest üks on väljundi eest vastutav ja teine \u200b\u200bei reageeri. Teine näide: Oletame, et tahtsime saada teavet mitte otse HTML-ile, kuid Ajaxi taotluse kaudu JSON-vormingus. Kui me oleme kasutatud templateerija, siis me muudame meie koodi täpselt ühe rea - helistage Templateerijale, et helistada json_encode (). Ja kui meie järeldus segati andmete omandamise koodiga, siis kood oleks kogu ümber kirjutada!

Sarnas olukorras: Oletame, meie skript on kahel alal. Pluss meid koopia kodus. Ja kodus leidsime suure vea. Extraver seda. Nüüd on vaja uuendada koodi saitidel. Ja nii ta on tõe hetk: kui malle kasutati õigesti, siis me lihtsalt valame mõlemale saidile koodi ja kõik jätkame tööd, justkui midagi ei juhtunud! Selline olukord, nagu ma arvan, on valitud lähenemise ideaalne kontroll mallile.

Teine oluline punkt, et paljud puuduvad (nende teoreetilistel põhjendustel, silmitsi tema praktikas!) skripti täitmise kord ei lange alati kokku malli väljundi järjekorraga. Õpiku näide on sildi artikli päise toodang . Kui me saame teavet, kui jõuame, ei saa me lihtsalt seda teha - mütsi <i>juba</i> Välja antud ajaks, mil me teksti uudiste saamist alustasime.</p><p>Samuti tuleb meeles pidada, et lisaks RNR-i tekstile väljuvad skriptid HTTP pealkirju. Mis on vaja enne teksti enne teksti või isegi teksti asemel kuvada (kui me tahame kasutada kasutajat teisele lehele suunata). Kui me esimest korda rakendada loogika taotluse, ilma midagi, siis te ei anna vajalikku NTTR pealkirja meile meie jaoks.</p><p>Teil võib olla oma põhjused kasutada malle. Aga ainult ühe tingimusega - need põhjused peavad olema tingitud tõelisest, elutähtsast vajadust, mitte "kõrgeimate kaalutluste" ja hoolde eest mõnede tundmatute inimeste eest.</p><p><b><a name="example">Praktika</a> </b><br> Nüüd teooriast, me pöördume praktika poole. <br> Kõige lihtsamal juhul osaleme iga lehe näitusel alati kaks malle: ühine veebisaidi mall ja konkreetne lehekülje sisu mall. <br> Oletame, et tahame teha lehe linke sõprade saitidele. <br> Sellisel juhul näeb koodi lihtsustatud kood sellisena:</p><p>Lingid.php fail ise. Miski ei kuvata. Lihtsalt valmistab andmeid ja põhjustab seejärel malli. <br><span><?<br><span>// kaasavad seaded. <br></span>lisage "Settings.php";</p><p>// saada andmeid baasist, määrata muutujad <br></span>$ Pagetitle \u003d "(! Lang: lingid" ;!} <br>$ Andmed \u003d $ dB -\u003e Getall ("Vali * linkidest");</p><p>// määrake lehe malli ja helistage üldisele veebisaidi mallile. <br></span>$ TPL \u003d "TPL_LINKS.PHP"; <br>sisaldama "tpl_main.php"; <br> </p><p>Üldine mall (TPL_MAIN.PHP):</p><p><html xmlns="http://www.w3.org/1999/xhtml"><br> <head><br> <title>Minu sait.<?=$pagetitle?>






Parempoolses kohas lülitub sisse pan_links.php (tpl_links.php):





  • "Target \u003d" _ tühi "\u003e


    • Tere kõigile. Ma tahan tutvustada PHP-s kirjutatud teist bike, kasutades dokumendiobjekti mudeli abil. Milline on tema erinevus teiste kolme rattajälgede esindajatest sama liigi esindajatest? Tegelikult ei ole erinevused nii palju, see ühendab paljude parimate. Näiteks:

      1. Täielik partitsiooni HTML ja PHP.
      2. Täiendavaid silte tüüp mustrid


      3. Võime kinnistada teiste mallide sisu sisu nii PHP-l kui ka spetsiaalse sildi abil paigutuses.
      4. Võime luua HTML-tag lennata.
      5. Võime salvestada HTML-faili kõik, mis on loodud ja kogutud.
      6. Kontrollige soovitud lehekülje HTML-faili olemasolu enne malli genereerimist.

      Nii et igaüks kohe sai selgeks, kui mugav see on mugav ja lihtne edasi kaevata, ütlen ja näidata, kuidas ma seda kasutasin ühe minu projektide loomiseks (kahtlustan, et ma kinnitan kõiki minu projekte selle all).

      Esimene asi, mida ma tavaliselt teen, kas ma saan kogu teabe andmebaasist lehekülje kohta (märksõnad, lehekülje kirjeldus, malli nimi ja CSS ja JS-failid). Ma hoian seda kõike $ peaga. Lisaks annan andmebaasile sisu ja hoidke massiivi $ Page. Ja jätkake tööga koos klassiga.

      Seega kutsun kõigepealt klassi konstruktorit ja edastama kõik vajalikud parameetrid:

      $ TPL \u003d uus mall; $ TPL -\u003e Ext \u003d TPL_Extension; # Failide laiendamine $ TPL malli kataloogi -\u003e htm \u003d cache_extension; # Laienemine juba loodud lehekülgedel $ TPL -\u003e Skin_dir \u003d dir_templates; # Kataloog, milles kõik saidi mallid on valetavad (näiteks mallid) $ TPL -\u003e js_dir \u003d dir_js; # Kataloog Kus vaja otsida JS-faile $ TPL -\u003e CSS_DIR \u003d DIR_CSS; # Kataloog Kus on CSS $ TPL -\u003e img_dir \u003d dir_img; # Directory kus $ TPL pilte -\u003e Naha \u003d $ _Session ["nahk"]; # Nimi malli, et ma tahan kasutada $ TPL -\u003e cache \u003d dir_cache; # Kus säästa valmis HTML $ TPL -\u003e log \u003d file_t_logs; # Kust kirjutada logs $ TPL -\u003e tag_start \u003d sümbol_start_tag; # Iseloom, millest muutujad algavad $ TPL-mallis -\u003e Tag_end \u003d Symbol_end_tag; # Sümbol, mis lõpetab muutujate $ TPL malli -\u003e dir_delimeter \u003d kataloogi_separator; $ TPL -\u003e Space \u003d Sümbol_Space; # Sümbol asendades ruumi.
      FUF tundub kõik möödunud muutujad, lähevad kaugemale.
      Selleks et mitte sundida klassi täiendava töö tegemiseks, siis kõigepealt kontrollime, äkki on meil juba soovitud lehekülje valmis HTML-fail.
      Kui ($ TPL -\u003e TestpageStatus () \u003d\u003d\u003d TRUE) (nõuavad $ TPL -\u003e Cachefilename;) Else ($ TPL -\u003e Lehekülg ("Index"); # Me edastame malli faili nime, seda võib läbida paar, läbi koma $ TPL -\u003e määrata ("pea", $ pea); $ TPL -\u003e Määra ("Sisu", $ Page); $ TPL -\u003e Build (); # Anname meeskonnale Koguge malli $ TPL-i -\u003e showpage (); # võtab alla.)
      Siin on tegelikult kõik meetodid, mida tuleb lehe eemaldamiseks kasutada.

      Nüüd analüüsime paar kasulikku meetodit selle klassi. Oletame, et oleme juba läbinud klassi kõik, mida vajate, kuid nad ei andnud talle meeskonna järeldusele, sest nad äkki meenutasid, et me peame looma malli mitu HTML-silte. Seda tehakse ka väga lihtne. Kõigepealt peate leidma ploki, milles me tahame midagi lisada. Leiate 2 viisi:

      $ TPL -\u003e Findbyid ("FindMe"); $ TPL -\u003e FindbyTagname ("Div");
      Leiabiidi meetod loogiliselt tähendab, et malli kõik sildid on unikaalsed malli. Ja FindbyTagme'i meetod tagastab esimese sobiva.
      Tulemuseks me saime otsingu me peame läbima $ TPL meetod -\u003e Creathechild (), et oleks võimalik luua leitud element, lapse silte. CRETECHILD meetod muide pärast uue elemendi loomist tagastab selle meile, nii et saame kasutada ainult mujal loodud elementi.

      Picking ja katsetamine Ma leidsin 3 võimalust luua silte malli, nii et ma näitan 3 näiteid korraga. Näide1:

      Me peame looma

      sees

      $ Parent \u003d $ TPL -\u003e Findbyid ("vanem"); $ TPL -\u003e Creathechild ($ vanem "Div", "id \u003d laps, klass \u003d test");
      Saame:


      Näide 2:

      Me peame looma

      Mõned tekstid
      sees

      $ Parent \u003d $ TPL -\u003e Findbyid ("vanem"); $ TPL -\u003e Creathekild ($ vanem "Div", "id \u003d laps, klass \u003d test", "mõned tekstid");
      Saame:

      Mõned tekstid

      Näide3:
      Me peame looma

      Uus element
      Esimeses ulatuses

      $ Parent \u003d $ TPL -\u003e FindbyTagme ("span"); # (1) $ TPL -\u003e Creathekild ($ vanem "Div", "Uus element"); # (2)
      (1) Vanema leidmine ei ole ID-ga ja tagil on esimene sobiva
      (2) Kui me ei vaja atribuute, vaid ainult uue elemendi väärtust, ei saa te neid edastada

      Saame:

      Uus element

      Ja pärast nende manipulatsiooni, ma juba helistasin showpage. Ja siin oleme sujuvalt lähenenud veel 2 huvitavamale hetkele.
      Kujutage ette olukorda, mis meil on malli, oletame, et see on nimekirja, näiteks mobiiltelefonide nimekirjaga mall:

      (Sisu.brand)

      (Content.Model)

      (Content.info)

      Kui oleme läbinud ainult ühe telefoniteabe, asendatakse see lihtsalt nende väärtuste muutujatega ja kui oleme läbinud kohese teabe vahetult mitme telefoniga, kopeerib klass selle saidi nii palju kordi kui väärtuste võimalused . Ja see teeb selle ise, vastupidi näiteks klassi XTemplate'ilt, mis moodustas iga väärtuse kõnede eest
      Tõsi, seal on üks mitte väga mugav hetk, kui pärast seda plokki on veelgi rohkem: näiteks:

      (Sisu.brand)

      (Content.Model)

      (Content.info)
      Veel mõned plokid

      Siis peame sellises olukorras rakendama väikese trikki, pakkima meie mobiiltelefoni

      (Sisu.brand)

      (Content.Model)

      (Content.info)
      Veel mõned plokid

      Sellisel juhul ilmuvad kõik mobiiltelefonid üksteise järel sees
      Ja "mõni teine \u200b\u200büksus" jääb alla.

      Ja kui ma ei unusta midagi, siis viimane hetk lisab sisu teiste mallide praeguse malli.
      Ma helistan uuesti teie fantaasiale.

      Kujutage ette, et gabariilariius soovib lehekülje sisu. leht Ja kui klass näeb seda sildi, asendab ta selle lehekülje sisuga .htmli fail

      Selliste lisade arv ei ole piiratud ja nende asukoht ei ole absoluutselt kriitiline, nii et saate need midagi ja mis tahes koguses sisestada.

      See on ilmselt kõik, kui ma mäletan midagi, ma teatan lisaks. Täname teid lõpuni lugemise eest.

      Sildid: PHP, klass, mall, pakkuja, parser