Detalji o * .tpl datotekama DLE predloška njihove svrhe. Korištenje TPL datoteka TPL PHP predlošci Kako koristiti

Odmah ću reći da sam ovdje već napisao o ovoj temi :. Međutim, nisu svi razumjeli ovaj materijal, a ja sam odlučio da se vratim na njega i sve drugo napišem malo drugačije. Nije tajna da se svaki ozbiljni motor nikada neće pomešati u vašem kodu. Html i PHP.. Ali, Html i PHP. Kodovi su vrlo povezani, tako da nisu izmislili pravila "dobrog tona" tPL datoteke. Ove su datoteke pohranjene HTML kod sa elementima predloškakoji su zamijenjeni u PHP kod. Pogledajmo više detaljnije korištenje TPL datoteka Sa primerom.

Uzmimo s vama, većina elementarnog primjera je korisničko panel u kojem je njegov avatar i pozdrav po imenu. Prije svega, kreirajte tPL datoteka.i pusti ga da pozove userpanel.tpl. Podsjećam te da je ovo samo komad HTML kod sa elementima predloška:

Pozdrav,% naziva%!




Ništa komplicirano, to je samo običan HTML kod. Vrijede samo umjesto određenih vrijednosti % Elemenata_sablon%.

Sad ćemo to shvatiti PHP obrada. Sve će biti više nego apstraktno, ali, nažalost, na bilo koji način. Glavna stvar je razumjeti princip rada. Tako PHP kod Za obradu stvorene tPL datoteka.:

/ * Ova značajka, iako koristi pufere, ali suština osnovnog: vratite sadržaj datoteke * /
Funkcija getTemplate ($ name) (
OB_Start (); // počnite uštedjeti izlaz na međuspremnik
Uključuju ($ name. "TPL"); // pošaljite sadržaj datoteke u međuspremnik
$ Text \u003d OB_GET_CLEAN (); // Očistite tampon i vratite sadržaj
Vratite $ tekst; // Povratak teksta iz datoteke
}
$ Name \u003d "nikolai"; // uklonjena iz baze
$ avatar \u003d "avatars / user_15.jpg"; // uklonjena iz baze
/ * Počinje zamijeniti elemente predloška za stvarne podatke * /
$ UserPanel \u003d str_replace (
Niz (
"% Naziva%",
"% avatar%"
),
Niz (
$ Name
$ avatar
),
GetTemplate ("Userpanel")
);
Echo $ userpanel; // prikazati konačni rezultat
?>

Ovo je najjednostavnija opcija. Sve je komentirano, tako da ne bi trebalo biti pitanja za ovaj primjer. I u stvari, bilo koja stranica sastoji se od takvih blokova. Vaš zadatak uzima prave blokove (funkcija) getTemplate ()), Zamijenite potrebne podatke (funkcija STR_REPLACE () i dobivene podatke, na primjer, iz baze), a zatim jednostavno povežite sve blokove kao redovne linije i izlažite sve na stranicu.

Sigurno bez Oop Ovdje će biti vrlo problematično. Pojačate takav broj uslova (puno stranica), koji brzo zbunjuju. Ali princip upotrebe tPL datotekeNadam se da ste shvatili. Dalje razmišljajte o tome kako se zamotati OopTako da je sve što je moguće jednostavnije u pogledu razumijevanja kodeksa i njegovo održavanje u budućnosti.

Nakon kreiranja informacije.-Pile, u principu, tema je već definirana. To znači da možete otići u odjeljak za upravljanje terenskom terenskom. http://mysite.ru/admin/build/themes. I tamo uključite svoju temu. Prirodno, nakon što se nakon uključivanja nijedan dizajn ne vidite - stranica će steći stil "crno na bijeli" - na bijelom pozadini crni tekst.

Međutim, želim napomenuti da uprkos činjenici da u našoj temi nema datoteka mytheme.info. ne laže, stranica će raditi kao kao i prije - da povuče sav sadržaj, dodaju blokove u regije ( http://mysite.ru/admin/build/block) itd. To se objašnjava činjenicom da je jezgro Drupala uključeno obavezni modulikoji čak i uz potpuno odsustvo bilo koje datoteke u vašoj temi (osim izuzetkom informativne datoteke) omogućuju vam da nastavite sa radom s Drupalom.

U principu, sva stvaranja predloška svode se na preklapanje datoteka predloška (imaju produžetak) .tpl.php.) Standardni moduli našeg CMS..

Najvažnija TPL datoteka (TPL je smanjenje iz predložak., predložak) stranica.tpl.php.. Odgovoran je za izgradnju svake stranice stranice. Suočajmo se sa onim što je datoteka predloška:

  • hTML kod
  • pHP kod
  • javaScript kod (nije potrebno)

U svakoj datoteci predloška Drupal prenosi podatke o web mjestu u obliku standardnih varijabli. Za svaku datoteku predloška postoje 2 vrste varijabli:

  • varijable koje se prenose samo u ovu datoteku.
  • varijable koje se prenose svim datotekama

Evo popisa svih varijabli za stranica.tpl.php.:

Opće varijable (za sve datoteke):

  • $ Base_path - osnovni put u kojem je instaliran Drupal
  • $ CSS. - niz CSS datoteka povezanih na trenutnu datoteku predloška
  • $ Directory. - Put do mape u kojoj je tema instalirana
  • $ IS_FRONT - Vraća vrijednost istine ako ste na glavnoj stranici
  • $ Logged_in. - Vraća vrijednost istine ako ste prijavljeni
  • $ IS_ADMIN. - Vraća vrijednost istine ako imate pristup administratoru

Stranice metapodataka

  • $ Jezik. - (objekt) Trenutni jezikkoja se prikazuje na web mjestu
  • $ Jezik-\u003e Jezik - sadrži njegov tekst za reprezentaciju
  • $ Jezik-\u003e DIR - Sadrži smjer jezika. Ovo ili će biti "ltr" (lijevo-desno) ili "RTL" (desno ulijevo)
  • $ Head_title - Modifikovana verzija naslova stranica za upotrebu između oznaka
  • $ Glava. - umetnuto između oznaka . Sadrži meta oznake, ključne riječi itd.
  • $ stilovi. - koristi se za preuzimanje svih cSS.-Premote na trenutnu stranicu
  • $ skripte. - koristi se za preuzimanje svih javaScript "ov na trenutnu stranicu
  • $ body_klase - skup časova cSS. Za tagu . Sadrži informacije o trenutnom rasporedu stupaca na mjestu, njihovom broju, trenutnom URL-u "E. itd.

Informacije o web mjestu

  • $ Front_page. - Adresa glavne stranice stranice. Bolje je koristiti ovu varijablu za referencu na glavna stranicajer Sadrži jezik domene i prefiks
  • $ logo. - Put do logotipa web lokacije, ako je uključen na web mjesto
  • $ Stranica_name. - Naziv stranice. Može se biti prazan ako ga isključite u funkcijama u informativnoj datoteci. Konfigurirano u mysite.ru/admin/settings/site-information
  • $ site_slogan. - slogan stranica. Može se biti prazan ako ga isključite u funkcijama u informativnoj datoteci. Konfigurirano u mysite.ru/admin/settings/site-information
  • $ Misija - Misija stranica. Može se isprazniti ako ga onemogućite u značajkama u informativnoj datoteci. Konfigurirano u mysite.ru/admin/settings/site-information

Navigacija

  • $ Search_Box - Sadrži HTML kod koji prikazuje string za pretraživanje. Može biti prazan ako ga isključite u informativnoj datoteci
  • $ Primarna_Links.
  • $ Sekundary_links. - niz koji sadrži navigacijske veze za web mjesto ako su im dopuštene u značajkama informativne datoteke

Standardni sadržaj stranice

  • $ Levo. - Regija. Sadrži HTML kod za lijevu stupcu. Ako u informativnoj datoteci postavite bilo koje regije, onda nestaje
  • $ Breadcrumb. - "mrvice hljeba"Za trenutna stranica
  • $ Naslov - naslov stranice
  • $ Pomoć. - Dinamični savjeti, uglavnom prikazani na administratoru
  • $ Poruke. - Prikazuje greške i upozorenja na web mjestu
  • $ Tabs. - reference (kartice) koji povezuju trenutnu stranicu sa svojim subraktima (na primjer, za članak - sa svojom stranom za uređivanje)
  • $ Sadržaj - Sadržaj Trenutna stranica
  • $ desno - Regija. Sadrži HTML kod za desni stup. Ako u informativnoj datoteci postavite bilo koje regije, onda nestaje

Niže područje / zatvaranje podataka

  • $ Feed_icon. - String sa svim ikonama povratne informacije Za trenutnu stranicu
  • $ FOETER_MESSAGE. - Poruka pri dnu stranice. Konfigurirano u mysite.ru/admin/settings/site-information
  • $ Podnožje. - Regija. Sadrži HTML kod za dno stranice. Ako u informativnoj datoteci postavite bilo koje regije, onda nestaje
  • $ Zatvaranje. - Završna oznaka za sve module koji su promijenili stranicu. Ova varijabla mora biti prikazana nakon svih dinamičkih sadržaja. Najbolje prije zatvaranja tijela oznaka

Svi su ovdje navedeni standardne varijable. Ali možete dodati varijable ovdje ili kao regije kroz informacije.-Pile ili u bilo kojoj drugoj ulozi kroz datoteku template.php. (o njemu malo kasnije).

Sada ću pokazati koji bi kôd trebao biti u stranica.tpl.php. I u kojem se kodu preglednicima tumače preglednike. Prije nego što vid koda iz stranica.tpl.php.:

U prvom redu postoji ček, postoji li naslov na trenutnom stranu. Ako nije - tada će debugger jednostavno propustiti ovaj kôd i neće doći do kraja njega. Ako zaglavlje postoji, kod stranice se dodaje u HTML

, nakon što će se tiskati naslov stranice, a sve će to biti zatvoreno oznakom

. Ako pogledate kod ove stranice u pretraživaču, tada bi izgledalo ovako:

Lekcija 4. Obavezna datoteka za stvaranje predloška. Stranica.tpl.php.

Stoga su gotovo sve varijable stranica okrenute. To se radi tako da možemo propisati stilove za sadržaj, ne znajući šta se događa.

Ovako izgleda kao standardna datoteka. stranica.tpl.php.Ko ide zajedno sa Drupalom. Promijenite naziv klase, preuredite varijable na nekim mjestima - i pogledajte kako se ispada. Potrebno je kako bi se "nabubri" kako to radi i ono što je izvedeno kao rezultat.

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

Dragi prijatelji,

nastavljamo objavljivanje niza korisnih savjeta koji olakšavaju razumijevanje nekih akcija i karakteristika skripte. Nedavno, pitanja često dolaze kod nas sa zahtjevom za izmjenu skripte tako da možete koristiti različite predloške za različite dijelove web mjesta. Na primjer, glavna stranica s vijestima treba imati jednu strukturu izgleda i na primjer, stranica povratne informacije je potpuno drugačija. Istovremeno, motivirajući nam je da je moguće promijeniti obrasce na administrativnom panelu samo za vijesti o web mjestu. Ali u stvari, sve se to može implementirati standardnim sredstvima, što će ovaj mali članak ići.

Dakle, prvo što se moramo obratiti dokumentaciji skripte, što glasi taj predložak main.tpl Podržava sljedeće oznake:

Tekst koji prikazuje tekst priloženi u oznakama ako se pretraže navedeni dio stranice.


takođe ova tag ima suprotno

Tekst koji prikazuje tekst priloženi u oznakama ako vam je bilo koja particija pored navedenog


Uzmite kao osnov primjer zadatka: Provjerite da li web mjesto koristi jedan dizajn predloška, \u200b\u200ba povratne informacije na web mjestu koriste drugu. Na osnovu toga moramo otvoriti predložak. main.tpl i odredite sljedeće:

Ovdje cijeli tekst predloška koji će se prikazati prilikom gledanja povratnih informacija
Ovdje je cijeli tekst predloška, \u200b\u200bkoji će biti prikazan svuda osim povratnih informacija


Ali ima jedan veliki minus, vašu glavnu datoteku predloška main.tpl Biće prevelika, jer U suštini će biti dva različita dizajna, a ovdje se ponovo žali na dokumentaciju i skriptu i saznajemo o postojanju prekrasne oznake: (Uključite datoteku \u003d "my_block.tpl")koji povezuje navedenu datoteku My_block.tpl u predložak.

Na osnovu svega navedenog, konačna implementacija je sljedeća:


U datoteci predloška feedback_main.tpl Napravimo dizajn povratnih informacija, a u datoteci all_main.tpl izrađujemo dizajn ostatka web stranice. To je zapravo, sve je lako i lako implementirati, nema potrebe da se izvrši nikakve izmjene skripte. Možete postaviti i dizajn bilo koje particije, možete kombinirati nekoliko dijelova itd. Pročitajte sve pažljivije, pročitajte dokumentaciju za skriptu, ima puno korisnih za isticanje za sebe.

Tvoj vjerno,


Odvajanje logike podataka sa logike njihovog zaslona vrlo je važna komponenta web razvoja.
Bilo koji programer koji je porastao malo višim od nivoa "zdravog svijeta", počinje osjetiti potrebu za takvom podjelom. Ali ne i svi dolaze u prave zaključke i rješenja.
Stoga ću ovdje dati najvažnija pravila:
1. Primanje kôda i prikazivanja podataka mora se podijeliti.
2. Svaki zaključak treba započeti tek nakon što su svi podaci spremni za to.
3. Kao rezultat toga, svaki bi se skripta bavio samo obradom podataka. Nakon toga može ili poslati neki NTTR naslov ili nazvati predložak, prebacivši se na njega pripremljene podatke ili oba zajedno.
4. Šta tačno koristi deseta je slučaj. Najlakši i najpovoljniji - sam RNR, tako da će se primeri donijeti na njega.

Zabluda
Ne, vjerovatno, u web programiranju tema je kao očigledna kao predlošci. Svako, prije ili kasnije, dolazi do zaključka potrebe za korištenjem predložaka. Ali dolazi, iz nekog razloga, kroz neke od najluđih zabluda i fantazije.

Najjednostavnija i očigledna zabluda je da se pridošlici nazivaju predloškom napravljenim u zasebnom "dizajnu" datoteku - podijeljen HTML za sve stranice web stranice. I umiru na to. Dinamičke informacije, ne oštar, povlačenje starog dobrog odjek :-)
U stvari, templatejzer se uglavnom bavi izlazom promjene sadržaja stranica stranica. A zaključivanje "dizajna" je manji zadatak.

Fantazije su glavna dva:
1. Predlošci su potrebni za "dizajner" tako da ih može uređivati \u200b\u200bbez razumijevanja PHP-a.
2. Slijedom toga, predlošci služe za odvajanje PHP-a iz HTML-a.

Pokušajmo razmišljati o prvoj izjavi. Ko je dizajner? Ovo je osoba koja radi u Photoshopu. HTML on najčešće ne zna uopće. I iznad predloška postoji ili poseban sloj ili - najčešće ... samog programera! Smiješno, zar ne?
Sada je posljedica, o PHP odvajanju od HTML-a. Odlično. Prije nas je sveti cilj za odvajanje. Stoga dolazimo sa pametnim i pisati:
(Foreach Key \u003d CID artikl \u003d Con iz \u003d $ Kontakti)
($ con. ime) - ($ con .nick)

(/ za svaki)

Više smiješnijeg.
"Dizajner", za koji je sve stajalo, onesviješteno od sreće.

Teorija
Ispada da su naši razlozi za koje smo odlučili koristiti predloške ne vrijede peni. I šta sada - nije potrebno, ispostavilo se, šaboni uopće? Potreba. Ali prvo morate odgovoriti na pitanje - "Zašto?" Za što Trebaju nam obrasci. I provjerite praksu odgovora. Pitao sam mnogo puta ovo pitanje. Ali gotovo niko ne može odgovoriti. Zašto mu treba predloške. Ispada, ljudi nešto rade, ne znajući zašto.
Ovo je smiješna stvar.

Tokom svojih aktivnosti, kao web programer sam formulisao tri razloga za sebe, za koje predloške su lično potrebne. U suštini su ih dvoje. I spustite se, na kraju, na jedan:

Jedan kod - nekoliko pogleda.

Često se dešava da umjesto jednog podataka morate pokazati drugi. Na primjer, radni kôd s bazom podataka prima poruku o pogrešci umjesto teksta. U ovom slučaju, umjesto stranice vijesti, morate pokazati potpuno drugačiju - uz izvinjenje i zahtjev da dođete kasnije. Koristeći predloške, to se radi osnovno.

Često se jedna i iste informacije trebaju biti prikazane u nekoliko vrsta. Na primjer, redovna stranica i stranica za ispis. Informacije su iste, kodeks za njegovu pripremu je isti, a izlazni kod je različit. Suočen sa ovom situacijom, vrlo brzo podijelite svoj kôd u dva dijela, od kojih je jedna odgovorna za izlaz, a druga ne reagira. Još jedan primjer: Recimo da smo željeli izlazni podaci ne izravno na HTML, već putem Ajax zahtjeva, u JSON formatu. Ako smo korišteni templatejzer, onda se mijenjamo u naš kod točno jednu liniju - nazovite templatejzer da pozove json_encode (). A ako je naš zaključak pomiješan sa kodom za prikupljanje podataka, tada kod bi morao prepisati cjelinu!

U sličnoj situaciji: Recimo, naša skripta je na dva mjesta. Plus kopiju nas kod kuće. A kod kuće smo našli veliku grešku. Izručeni. Sada morate ažurirati kod na web lokacijama. I tako je on trenutak istine: Ako su predlošci pravilno korišteni, onda jednostavno izlimo kod na oba mjesta i sve nastavlja raditi, kao da se ništa ne dogodi! Takva situacija kao što mislim da je savršen ček odabranog pristupa predlošci.

Još jedna važna stvar koju mnogi nedostaju (u njihovom teorijskom rezonovanju, dok se neprestano suočavamo u praksi!) - postupak izvršenja skripte ne podudara se uvijek s redoslijedom izlaza u predlošku. Primjer udžbenika je izlaz zaglavlja članka u oznaci . Ako izvedemo informacije, kao što stižemo, to jednostavno ne možemo - šešir <i>već</i> Objavljeno, do trenutka kada smo počeli primati tekstualne vijesti.</p><p>Također bi se trebalo pamtiti da pored teksta RNR-a, skripte također izlazne HTTP naslove. Koji se zahtijevaju za prikaz prije bilo kojeg teksta, ili čak umjesto teksta uopšte (ako mi, na primjer, želimo preusmjeriti korisnika na drugu stranicu). Ako prvi put provedemo logiku aplikacije, bez ičega, tada nećete dati potrebni NTTR naslovljeni za nas za nas.</p><p>Možda imate svoje razloge za upotrebu predložaka. Ali samo sa jednim uvjetima - ti razlozi moraju biti uzrokovani stvarnim, vitalnim potrebama, a ne "najvećim razmatranjima" i brige za neke nepoznate ljude.</p><p><b><a name="example">Vježbati</a> </b><br> Sada iz teorije okrećemo se u praksu. <br> U najjednostavnijem slučaju, u emisiji bilo koje stranice uvijek ćemo sudjelovati dva predloška: zajednički predložak web stranice i predložak sadržaja konkretnog stranica. <br> Pretpostavimo da želimo napraviti stranicu sa vezama za web lokacije prijatelja. <br> U tom slučaju pojednostavljeni kod koda izgledat će ovako:</p><p>Links.php datoteka sama. Ništa se ne prikazuje. Samo priprema podatke, a zatim uzrokuje predložak. <br><span><?<br><span>// inkluzivna podešavanja. <br></span>uključuju "Settings.php";</p><p>// Primite podatke iz baze, odredite varijable <br></span>$ Pagetitle \u003d "(! Lang: linkovi" ;!} <br>$ Podaci \u003d $ db -\u003e getall ("Select * iz veza");</p><p>// Podesite predložak stranice i nazovite opće predložak web stranice. <br></span>$ Tpl \u003d "tplo_links.php"; <br>uključuju "tpl_main.php"; <br> </p><p>Opći predložak (tplo_main.php):</p><p><html xmlns="http://www.w3.org/1999/xhtml"><br> <head><br> <title>Moja stranica.<?=$pagetitle?>






Na pravom mjestu se uključuje na Pan_Links.php (tplo_links.php):





  • "Target \u003d" _ prazno "\u003e


    • Zdravo svima. Želim uvesti još jedan bicikl napisan u PHP koristeći model dokumenata objekta. Koja je njegova razlika iz ostalih predstavnika na tri kotača iste vrste? U stvari, razlike nisu toliko, to kombinira najbolje od mnogih. Na primjer:

      1. Potpuna particija HTML i PHP.
      2. Nema dodatnih naljepnica u uzorcima tipa


      3. Sposobnost da se ugradi da postavi sadržaj drugih datoteka predloška, \u200b\u200bi iz PHP-a i koristeći posebnu oznaku u rasporedu.
      4. Sposobnost stvaranja bilo koje HTML-oznake u muhu.
      5. Mogućnost spremanja u HTML datoteku Sve što je generirano i sakupljeno.
      6. Provjerite postojanje HTML datoteke tražene stranice prije generiranja predloška.

      Tako da su svi odmah postali jasni koliko je ugodno ugodno i lako žaliti, reći ću i pokazati kako sam ga koristio za stvaranje jednog od mojih projekata (sumnjam da ću iznijeti sve svoje projekte ispod njega).

      Prvo što obično radim je da dobijem sve informacije iz baze podataka o stranici (ključne riječi, opis stranice, naziv predloška i CSS i JS datoteke). Sve to čuvam u nizu od $ glave. Nadalje dobivam sadržaj iz baze podataka i čuvam niz $ stranica. I nastavite sa radom sa klasom.

      Dakle, prvo, zovem Constructor Constructor i prenosim sve potrebne parametre na njega:

      $ Tpl \u003d novi predložak; $ TPL -\u003e ext \u003d tpl_extension; # Proširenje datoteka u $ TPL katalog predloška -\u003e HTM \u003d Cache_Extension; # Ekspanzija za već generirane stranice $ TPL -\u003e Skin_Dir \u003d dir_templates; # Direktorij u kojem laže sve predloške web lokacije (na primjer, predlošci) $ TPL -\u003e JS_DIR \u003d dir_js; # Direktorij gdje trebate potražiti JS datoteke $ TPL -\u003e CSS_DIR \u003d dir_css; # Direktorij gdje su CSS $ TPL -\u003e img_dir \u003d dir_img; # Direktorij gdje $ tpl slike -\u003e koža \u003d $ _Session ["koža"]; # Ime predloška koji želim koristiti $ TPL -\u003e predmemorija \u003d dir_cache; # Gdje uštedjeti gotove HTML $ TPL -\u003e Log \u003d file_t_logs; # Gdje pisati zapisnike $ TPL -\u003e tag_start \u003d simbol_start_tag; # Lik iz kojeg počinju varijable u $ TPL predlošku -\u003e tag_end \u003d simbol_end_tag; # Simbol koji završavaju varijable u $ TPL predlošku -\u003e dir_delimetar \u003d direktorij_sepator; $ Tpl -\u003e razmak \u003d simbol_space; # Simbol zamena prostora.
      FUF, čini se da su sve proslijeđene varijable, idite dalje.
      Da ne bi prisilio nastavu da napravi dodatni posao, prvo provjeravamo, odjednom, već imamo gotovu HTML datoteku tražene stranice.
      ako ($ TPL -\u003e testpagestatus () \u003d\u003d\u003d TRUE) (zahtijevaju $ TPL -\u003e Cachefilename;) inače ($ TPL -\u003e Stranica ("indeks"), na način na koji se proslijedimo naziv datoteke predloške može proći nekoliko, kroz zarez $ TPL -\u003e dodijeliti ("glava", $ glava); $ tpl -\u003e dodijeliti ("sadržaj", $ stranica); $ tpl (); # Prikupite predložak $ TPL -\u003e ShowPage (); # Skinite.)
      Evo zapravo sve metode koje se moraju koristiti za uklanjanje stranice.

      Sada ćemo analizirati nekoliko korisnih metoda ove klase. Pretpostavimo da smo već prešli u klasu sve što vam treba, ali nisu mu dali tim za zaključivanje, jer se iznenada sjećali da u predlošku trebamo stvoriti nekoliko HTML oznaka u predlošku. To se takođe radi vrlo jednostavno. Prvo morate pronaći blok u kojem želimo dodati nešto. Možete pronaći 2 načina:

      $ Tpl -\u003e findbyid ("findme"); $ Tpl -\u003e findbytagname ("div");
      Metoda FendByid logično podrazumijeva da su u predlošku sve oznake jedinstvene u predlošku. A metoda FindBytagname vratit će prvi pogodan.
      Rezultat smo dobili pretragu Moramo preći na $ TPL metodu -\u003e CreateChechild () da biste mogli stvoriti na pronađenom elementu, dječjim oznakama. CreateChechild metoda usput, nakon kreiranja novog predmeta, vraća nam ga, tako da element možemo koristiti samo stvoren negdje drugdje.

      Branje i eksperimentiranje Pronašao sam 3 načina za stvaranje oznaka u predlošku, pa ću pokazati 3 primjera odjednom. Primjer1:

      Moramo stvoriti

      iznutra

      $ roditelj \u003d $ TPL -\u003e findbyid ("roditelj"); $ TPL -\u003e CreateChechild ($ Roditelj, "Div", "ID \u003d dijete, klasa \u003d test");
      Dobijamo:


      Primjer 2:

      Moramo stvoriti

      Neki tekst
      iznutra

      $ roditelj \u003d $ TPL -\u003e findbyid ("roditelj"); $ TPL -\u003e CreateChechild ($ Roditelj, "Div", "ID \u003d dijete, klasa \u003d test", "neki tekst");
      Dobijamo:

      Neki tekst

      Primjer3:
      Moramo stvoriti

      Novi element
      U prvom rasponu elementa

      $ roditelj \u003d $ TPL -\u003e findbytagname ("raspon"); # (1) $ TPL -\u003e CreateChechild ($ roditelj, "DIV", "Novi element"); # (2)
      (1) Pronalaženje roditelja nije po ID-u, a u oznaci će pronaći prvi pogodan
      (2) Ako nam ne trebaju atributi, već samo vrijednost novog predmeta, ne možete ih prenijeti

      Dobijamo:

      Novi element

      I nakon ovih manipulacija već nazivam showage. I evo nas glatko približavali još 2 zanimljivim trenucima.
      Zamislite situaciju da imamo predložak, pretpostavimo da je ovo popis.tpl predložak sa popisom, na primjer, mobilni telefoni:

      (Sadržaj.brand)

      (Sadržaj.Model)

      (Sadržaj.info)

      Ako smo položili samo 1 telefonske informacije, to će jednostavno zamijeniti varijablama na njihovim vrijednostima, a ako bismo podaci odmah proslijedili nekoliko telefona, tada će klasa kopirati ovu web lokaciju onoliko puta koliko su došle opcije vrijednosti . I to će ga učiniti, nasuprot, na primjer, iz klase XTemplate, koji je činio za svaku vrijednost poziva i raščlanjivanja
      Istina, postoji jedan nije vrlo zgodan trenutak, ako je nakon ovog bloka još neki, na primjer:

      (Sadržaj.brand)

      (Sadržaj.Model)

      (Sadržaj.info)
      Još uvijek neki blok

      Tada ćemo u takvoj situaciji morati primijeniti mali trik, pakirati naš mobilni telefon

      (Sadržaj.brand)

      (Sadržaj.Model)

      (Sadržaj.info)
      Još uvijek neki blok

      U ovom se slučaju svi mobilni telefoni pojavit će se međusobno, iznutra
      , a "neka druga jedinica" će ostati u nastavku.

      A ako nisam ništa zaboravio, onda posljednji trenutak dodaje sadržaj drugih predložaka na trenutni predložak.
      Ponovo nazivam vašoj fantaziji.

      Zamislite da mjerač želi sadržaj datoteke stranice stranice.html da bi se dodao u listu.html datotečni blok, za to je na željenoj lokaciji datoteke liste.html datoteke stranica A kad klasa vidi ovu oznaku, zamijenit će ga sadržajem stranice.html datoteke

      Broj takvih umetaka nije ograničen, a njihova lokacija apsolutno nije kritična, tako da ih možete umetnuti bilo što i u bilo kojoj količini.

      To je vjerovatno sve, ako se sjećam nečega, izvijestiću dodatno. Hvala vam što ste pročitali do kraja.

      Oznake: PHP, klasa, predložak, tender, parser