Sīkāka informācija par Dle veidnes * .tpl failiem un to mērķi. Izmantojot tpl failus tpl veidnes php kā lietot

Uzreiz teikšu, ka par šo tēmu jau rakstīju šeit :. Tomēr ne visi saprata šo materiālu, un es nolēmu pie tā atgriezties un visu uzrakstīt mazliet savādāk. Nav noslēpums, ka jebkurš nopietns dzinējs nekad nesajauks savu kodu Html un PHP... Bet, Html un PHP kodi ir ļoti cieši saistīti, tāpēc, lai nepārkāptu "labas gaumes" noteikumus, tika izgudroti tpl failus... Šie faili tiek izmantoti uzglabāšanai HTML kods ar veidnes elementiem kas ir aizstāti ar PHP kods... Apskatīsim tuvāk izmantojot tpl failus ar piemēru.

Ņemsim līdzi visvienkāršāko piemēru - tas ir lietotāja panelis, kurā ir viņa iemiesojums un sveiciens pēc vārda. Pirmkārt, radīsim tpl failu un lai to sauc userpanel.tpl... Es jums atgādinu, ka tas ir tikai gabals HTML kods ar veidnes elementiem:

Labdien,% name%!




Nekas izsmalcināts, tas ir vienkārši parasts HTML kods... Tikai noteiktu vērtību vietā ir % template_elements%.

Tagad tiksim galā PHP apstrāde... Šeit viss būs vairāk nekā abstrakts, bet diemžēl nav cita ceļa. Galvenais ir saprast, kā tas darbojas. Tātad PHP kods lai apstrādātu radīto tpl failu:

/ * Šī funkcija, lai gan tā izmanto buferus, taču būtība ir elementāra: atdot faila saturu * /
funkcija getTemplate ($ nosaukums) (
ob_start (); // Sāciet izvades saglabāšanu buferī
iekļaut ($ nosaukums. ". tpl"); // Nosūtīt faila saturu uz buferi
$ text = ob_get_clean (); // Notīriet buferi un atgrieziet saturu
atgriezt $ tekstu; // Atgriezt tekstu no faila
}
$ name = "Nikolajs"; // Iegūts no bāzes
$ avatar = "avatars / user_15.jpg"; // Iegūts no bāzes
/ * Sāk veidnes elementu aizstāšanu ar reāliem datiem * /
$ userpanel = str_replace (
masīvs (
"% name%",
"% iemiesojums%"
),
masīvs (
$ name,
$ iemiesojums
),
getTemplate ("lietotāja panelis")
);
echo $ userpanel; // Izdrukājiet gala rezultātu
?>

Šī ir vienkāršākā iespēja. Viss tiek komentēts, tāpēc par šo piemēru nevajadzētu būt nekādiem jautājumiem. Un patiesībā jebkura lapa sastāv no šādiem blokiem. Jūsu uzdevums ir uzņemt nepieciešamos blokus (funkcija getTemplate ()), aizstājiet ar nepieciešamajiem datiem (funkcija str_replace () un dati, kas iegūti, piemēram, no datu bāzes), un pēc tam vienkārši savienojiet visus blokus, piemēram, parastās virknes, un parādiet visu lapā.

Noteikti bez OOPšeit būs ļoti problemātiski. Jūs radīsit tik daudz nosacījumu (ir daudz lapu), ka jūs ātri sajauksit. Bet lietošanas princips tpl failus Ceru, ka sapratāt. Pēc tam pats domā par to, kā to visu ietīt OOP lai viss būtu pēc iespējas vienkāršāks koda izpratnē un tā saglabāšanā nākotnē.

Pēc radīšanas info-fails, principā tēma jau ir definēta. Tas nozīmē, ka varat doties uz tēmu pārvaldības sadaļu http://mysite.ru/admin/build/themes un iekļaujiet tajā savu tēmu. Protams, pēc tā ieslēgšanas jūs neredzēsit nekādu dizainu - lapa uzņems stilu "melns uz balta" - melns teksts uz balta fona.

Tomēr es vēlos atzīmēt, ka, neskatoties uz to, ka mūsu tēmā nav failu, izņemot mytheme.info nemelo, vietne darbosies tāpat kā iepriekš - parādiet visu saturu, pievienojiet blokus reģioniem ( http://mysite.ru/admin/build/block) utt. Tas ir saistīts ar faktu, ka Drupal kodols ietver nepieciešamie moduļi, kas pat tad, ja jūsu motīvā nav neviena faila (izņemot informācijas failu), ļauj turpināt darbu ar Drupal.

Principā visa veidnes izveide tiek samazināta līdz veidņu failiem, kas pārklājas (tiem ir paplašinājums .tpl.php) mūsu standarta moduļi SPS.

Vissvarīgākais tpl fails (tpl ir saīsinājums veidne, modelis) ir page.tpl.php... Viņš ir atbildīgs par katras vietnes lapas izveidi. Apskatīsim, no kā sastāv veidnes fails:

  • html kods
  • php kods
  • javascript kods(nav nepieciešams)

Drupal pārsūta vietnes datus uz katru veidnes failu standarta mainīgo veidā. Katram veidnes failam ir divu veidu mainīgie:

  • mainīgie, kas tiek nodoti tikai šim failam
  • mainīgie, kas tiek nodoti visiem failiem

Šeit ir visu mainīgo saraksts page.tpl.php:

Bieži mainīgie (visiem failiem):

  • $ base_path- bāzes ceļš, kurā tika instalēts Drupal
  • $ css- css failu masīvs, kas savienots ar pašreizējo veidnes failu
  • $ direktorijā- ceļš uz mapi, kurā motīvs ir instalēts
  • $ is_front- atgriež TRUE, ja atrodaties galvenajā lapā
  • $ logged_in- atgriež vērtību TRUE, ja esat pieteicies
  • $ is_admin- atgriež vērtību TRUE, ja jums ir piekļuve administratora panelim

Lapas metadati

  • $ valoda- (objekts) Pašreizējā valoda kas tiek parādīts vietnē
  • $ valoda-> valoda- satur tā tekstuālo attēlojumu
  • $ valoda-> rež- satur valodas virzienu. Tas būs vai nu "ltr" (no kreisās uz labo), vai "rtl" (no labās uz kreiso)
  • $ head_title- modificēta lapas nosaukuma versija lietošanai starp tagiem
  • $ galva- ievietots starp tagiem ... Satur metatagus, atslēgvārdus utt.
  • $ stili- kalpo visu lejupielādēšanai css-faili uz pašreizējo lapu
  • $ skripti- kalpo visu lejupielādēšanai javascript "s uz pašreizējo lapu
  • $ body_classes- nodarbību komplekts css par tagu ... Tajā ir informācija par kolonnu pašreizējo atrašanās vietu vietnē, to skaitu, pašreizējo URL "e" utt.

Informācija par vietni

  • $ front_page- vietnes galvenās lapas adrese. Labāk izmantot šo mainīgo, lai atsauktos mājas lapa kopš tas ietver domēna valodu un prefiksu
  • $ logotips- ceļš uz vietnes logotipu, ja tas ir iekļauts vietnē
  • $ site_name- vietnes nosaukums. Tas var būt tukšs, ja to atspējojat informācijas faila funkcijās. Konfigurējams vietnē mysite.ru/admin/settings/site-information
  • $ site_slogan- vietnes sauklis. Tas var būt tukšs, ja to atspējojat informācijas faila funkcijās. Konfigurējams vietnē mysite.ru/admin/settings/site-information
  • $ misija- vietnes misija. Tas var būt tukšs, ja to atspējojat informācijas faila funkcijās. Konfigurējams vietnē mysite.ru/admin/settings/site-information

Navigācija

  • $ search_box- satur html kodu, kas parāda meklēšanas virkni. Var būt tukšs, ja to izslēdzat informācijas failā
  • $ Primary_links
  • $ Second_links- masīvs, kas satur vietnes navigācijas saites, ja tās ir atļautas informācijas faila funkcijās

Lapas noklusējuma saturs

  • $ palicis- novads. Satur kreisās kolonnas html kodu. Ja informācijas failā norādāt reģionus, tas pazūd
  • $ rīvmaize - "maizes drupačas" priekš Pašreizējā lapa
  • $ nosaukums- lapas nosaukums
  • $ palīdzība- dinamiski padomi, kas galvenokārt tiek parādīti administratora panelī
  • $ ziņas- parāda ziņojumus par kļūdām un brīdinājumiem vietnē
  • $ cilnes- saites (cilnes), kas savieno pašreizējo lapu ar tās apakšlapām (piemēram, rakstam - ar tās rediģēšanas lapu)
  • $ saturu- pašreizējās lapas saturs
  • $ pareizi- novads. Satur labās kolonnas html kodu. Ja informācijas failā norādāt reģionus, tas pazūd

Apakšējā zona / pārklājuma dati

  • $ feed_icon- līnija ar visām ikonām atsauksmes pašreizējai lapai
  • $ footer_message- ziņojums lapas apakšā. Konfigurējams vietnē mysite.ru/admin/settings/site-information
  • $ kājene- novads. Satur lapas apakšdaļas html kodu. Ja informācijas failā norādāt reģionus, tas pazūd
  • $ slēgšana- noslēguma etiķete visiem moduļiem, kas mainīja lapu. Šis mainīgais ir jāparāda pēc visa dinamiskā satura. Vislabāk pirms BODY birkas aizvēršanas

Visi ir uzskaitīti šeit standarta mainīgie... Bet šeit varat pievienot savus mainīgos vai nu kā reģionus info-failu vai jebkurā citā lomā, izmantojot failu veidne.php(par viņu nedaudz vēlāk).

Tagad es jums parādīšu, kādam kodam vajadzētu būt page.tpl.php un kādā kodā to pēc tam interpretē pārlūkprogrammas. Šeit ir koda fragments no page.tpl.php:

Pirmajā rindā tiek pārbaudīts, vai pašreizējai lapai vispār ir virsraksts. Ja tā tur nav, atkļūdotājs šo kodu vienkārši izlaidīs un neievadīs. Ja nosaukums pastāv, tad tags tiks pievienots lapas html kodam

, pēc tam tiks izdrukāts lapas nosaukums, un tas viss tiks aizvērts ar atzīmi

... Ja pārlūkojat šīs lapas kodu, tas izskatās šādi:

4. nodarbība. Nepieciešamie faili, lai izveidotu veidni. Page.tpl.php

Gandrīz visi vietnes mainīgie ir ietīti šādā veidā. Tas tiek darīts, lai mēs varētu noformēt saturu, iepriekš nezinot, kas tas būs.

Tas izskatās šādi standarta fails page.tpl.php kas nāk ar Drupal. Mainiet klašu nosaukumu, pārkārtojiet mainīgos - un redziet, kas notiek. Tas ir nepieciešams, lai "sajustu", kā tas darbojas un kas tiek parādīts rezultātā.

"- // 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 = "valoda?> " lang = "valoda?> " dir = "dir?> "> <?php print $head_title ; ?> "" >

Dārgie draugi,

Mēs turpinām publicēt virkni noderīgu padomu, kas atvieglo dažu skripta darbību un funkciju izprašanu. Nesen mēs bieži esam saņēmuši jautājumus ar lūgumu mainīt skriptu, lai mēs varētu izmantot dažādas veidnes dažādām vietnes sadaļām. Piemēram, galvenajai lapai ar jaunumiem jābūt vienādai izkārtojuma struktūrai, un, piemēram, atsauksmju lapai jābūt pilnīgi atšķirīgai. Tajā pašā laikā motivējot mūs, ka jūs varat mainīt veidnes administratora panelī tikai vietnes ziņu kategorijām. Bet patiesībā to visu var īstenot ar standarta līdzekļiem, par ko būs šis īsais raksts.

Tātad pirmā lieta, kas mums nepieciešama, ir atsaukties uz skripta dokumentāciju, kurā teikts, ka veidne galvenais.tpl atbalsta šādus tagus:

Teksts, kas parāda tagos iekļauto tekstu, ja tiek skatīta norādītā vietnes sadaļa


arī šai atzīmei ir pretējs

Teksts, kas parāda tagos iekļauto tekstu, ja tiek apskatīta cita sadaļa, nevis norādītā


Par pamatu ņemsim uzdevuma piemēru: lai vietne izmantotu vienu veidnes dizainu, un atsauksmes par vietni izmanto citu. Pamatojoties uz to, mums jāatver veidne galvenais.tpl un norādiet sekojošo:

Šeit ir viss veidnes teksts, kas tiks parādīts, apskatot atsauksmes
šeit ir viss veidnes teksts, kas tiks parādīts visur, izņemot atsauksmes


Bet tam ir viens liels trūkums, jūsu galvenais veidnes fails ir galvenais.tpl būs pārāk liels, jo patiesībā tajā būs divi dažādi dizaini, un šeit mēs atkal pievēršamies dokumentācijai un skriptam un uzzinām par skaista birka esamību: (iekļaut failu = "my_block.tpl") kas savieno norādīto failu my_block.tpl ar veidni.

Pamatojoties uz iepriekš minēto, galīgā ieviešana izskatās šādi:


Veidnes failā feedback_main.tpl mēs izstrādājam atsauksmes, un failā all_main.tpl mēs izstrādājam pārējās vietnes dizainu. Tas arī viss, to ir pietiekami viegli un vienkārši ieviest, jums nav jāveic nekādas izmaiņas skriptā. Varat arī pielāgot jebkuras sadaļas dizainu, varat apvienot vairākas sadaļas utt. Biežāk un uzmanīgāk izlasiet skripta dokumentāciju, tur jūs varat uzsvērt daudz noderīgas informācijas sev.

Ar cieņu


Datu saņemšanas loģikas atdalīšana no to attēlošanas loģikas ir ļoti svarīga tīmekļa izstrādes sastāvdaļa.
Jebkurš programmētājs, kurš ir nedaudz pacēlies virs "Hello world" līmeņa, sāk izjust nepieciešamību pēc šādas atdalīšanās. Bet ne visi nonāk pie pareiziem secinājumiem un lēmumiem.
Tāpēc šeit ir vissvarīgākie noteikumi:
1. Saņemošais kods un datu parādīšanas kods ir jāatdala.
2. Jebkura izvade jāsāk tikai pēc tam, kad visi dati tam ir gatavi.
3. Līdz ar to jebkuram skriptam vajadzētu attiekties tikai uz datu apstrādi. Pēc tam viņš var nosūtīt sava veida HTTP galveni vai piezvanīt veidnei, nododot tai sagatavotos datus, vai abus kopā.
4. Kuru veidnes motoru izmantot, ir desmitā lieta. Vienkāršākais un pieejamākais ir pats PHP, tāpēc par to tiks sniegti piemēri.

Maldi
Iespējams, tīmekļa programmēšanā nav tādas tēmas, kas būtu tik acīmredzama, cik nesaprotama kā veidnes. Ikviens agrāk vai vēlāk nonāk pie secinājuma, ka ir jāizmanto veidnes. Bet tas kaut kādu iemeslu dēļ nāk caur dažiem mežonīgākajiem maldiem un fantāzijām.

Vienkāršākais un acīmredzamākais nepareizs priekšstats ir tāds, ka iesācēji kā veidni sauc “dizaina” failu, kas ir parasts html visām vietnes lapām. Un uz to viņi nomierinās. Dinamiska informācija, nekas vilcinās, parādot veco labo atbalsi :-)
Faktiski veidņu dzinējs galvenokārt ir saistīts ar vietnes lapu mainīgā satura parādīšanu. Un "dizaina" secinājums ir sekundārs uzdevums.

Ir divas galvenās fantāzijas:
1. "Dizainerim" ir vajadzīgas veidnes, lai viņš varētu tās rediģēt, nesaprotot PHP.
2. Tādējādi veidnes kalpo PHP atdalīšanai no HTML.

Mēģināsim padomāt par pirmo apgalvojumu. Kas ir dizainers? Šī ir persona, kas strādā Photoshop. Visbiežāk viņš vispār nezina HTML. Un vai nu īpašs maketētājs, vai - visbiežāk ... pats programmētājs - strādā pie veidnes! Smieklīgi, vai ne?
Tagad secinājums par PHP atdalīšanu no HTML. Labi. Mūsu priekšā ir svētais mērķis šķirties. Tāpēc mēs izdomājam Smarty un rakstām:
(foreach atslēga = cid vienums = con no = $ kontakti)
($ con.name) - ($ con.nick)

(/ katram)

Vēl jocīgāk.
"Dizaineris", kuram viss tika iesākts, no laimes ģībst.

Teorija
Izrādās, ka mūsu iemesli, kāpēc mēs nolēmām izmantot veidnes, nav ne santīma vērti. Un ko tagad - vai tie nav vajadzīgi, izrādās, veidnes kopumā? Nepieciešams. Bet vispirms jums jāatbild uz jautājumu - "kāpēc?" Par ko vajag veidnes. Un pārbaudiet atbildi ar praksi. Šo jautājumu esmu daudzkārt uzdevusi cilvēkiem. Bet gandrīz neviens nevar uz to atbildēt. Kāpēc viņam ir vajadzīgas veidnes. Izrādās, ka cilvēki kaut ko dara, nezinot, kāpēc.
Šī ir jocīgākā lieta.

Savā tīmekļa programmētāja amatā es sev esmu formulējis trīs iemeslus, kāpēc man personīgi ir vajadzīgas veidnes. Patiesībā ir divi no tiem. Un galu galā nonāk pie vienas lietas:

Viens kods - vairāki skati.

Bieži gadās, ka vienas informācijas vietā jums ir jāparāda cita. Piemēram, kods darbam ar datu bāzi saņem kļūdas ziņojumu, nevis ziņu tekstu. Šajā gadījumā ziņu lapas vietā jums ir jāparāda pavisam cita - ar atvainošanos un lūgumu atgriezties vēlāk. To ir ļoti viegli izdarīt, izmantojot veidnes.

Bieži vien viena un tā pati informācija ir jāparāda vairākos veidos. Piemēram, parasta lapa un drukāta lapa. Informācija ir vienāda, izguves kods ir vienāds, un izvades kods ir atšķirīgs. Saskaroties ar šādu situāciju, jūs varat ļoti ātri sadalīt savu kodu divās daļās, no kurām viena ir atbildīga par izvadi, bet otra nav atbildīga. Vēl viens piemērs: pieņemsim, ka mēs vēlējāmies izvadīt informāciju nevis tieši HTML formātā, bet, izmantojot AJAX pieprasījumu, JSON formātā. Ja mēs izmantojām veidņu dzinēju, tad mēs savā kodā mainām tieši vienu rindu - izsaucot veidnes dzinēju uz zvanu json_encode (). Un, ja mūsu produkcija tika sajaukta ar kodu datu saņemšanai, tad viss kods būtu jāpārraksta!

Situācija ir nedaudz līdzīga: pieņemsim, ka mūsu skripts ir divās vietnēs. Plus kopija pie mums. Un tā mēs mājās atradām lielu kļūdu. Aizveriet to. Tagad mums ir jāatjaunina kods vietnēs. Un šeit tas ir - patiesības brīdis: ja veidnes tika izmantotas pareizi, tad mēs vienkārši augšupielādējam kodu abās vietnēs, un viss turpina darboties, it kā nekas nebūtu noticis! Šī situācija, manuprāt, ir ideāls pārbaudījums izvēlētajai veidnes pieejai.

Vēl viens svarīgs punkts, kas daudziem cilvēkiem pietrūkst (savā teorētiskajā spriešanā, vienlaikus pastāvīgi saskaroties ar to praksē!) - skripta izpildes secība ne vienmēr atbilst veidnes izvades secībai... Mācību grāmatas piemērs - raksta nosaukuma parādīšana tagā ... Ja mēs parādām informāciju, kad tā kļūst pieejama, mēs vienkārši nevaram to izdarīt - vietnes galvene <i>jau</i> līdz brīdim, kad sākām saņemt ziņu tekstu.</p><p>Jāatceras arī tas, ka papildus PHP tekstam skripti parāda arī HTTP galvenes. Kas jāparāda pirms jebkura teksta vai pat teksta vietā kopumā (ja, piemēram, vēlamies novirzīt lietotāju uz citu lapu). Ja mēs vispirms ieviešam lietojumprogrammas loģiku, neko nerādot, tad nepieciešamās HTTP galvenes izsniegšana mums neradīs nekādas problēmas.</p><p>Veidņu izmantošanai var būt savi iemesli. Bet tikai ar vienu nosacījumu - šo iemeslu pamatā ir jābūt patiesai, vitālai nepieciešamībai, nevis "augstākiem apsvērumiem" un rūpēm par dažiem nezināmiem cilvēkiem.</p><p><b><a name="example">Prakse</a> </b><br>Tagad pāriesim no teorijas uz praksi. <br>Vienkāršākajā gadījumā jebkuras lapas displejā mums vienmēr būs divas veidnes: vispārīga vietnes veidne un konkrētas lapas satura veidne. <br>Pieņemsim, ka vēlamies izveidot lapu ar saitēm uz draugu vietnēm. <br>Šajā gadījumā vienkāršotais kods izskatīsies šādi:</p><p>Pats links.php fails. Rezultāti NEKAS. Tas tikai sagatavo datus un pēc tam izsauc veidni. <br><span><?<br><span>// iespējot iestatījumus. <br></span> iekļaut "settings.php";</p><p>// iegūt datus no datu bāzes, definēt mainīgos <br></span>$ pagetitle = "(! LANG: Saites" ;!} <br>$ DATA = $ db -> getAll ("SELECT * FROM links");</p><p>// iestatiet lapas veidni un izsauciet vispārējo vietnes veidni <br></span>$ tpl = "tpl_links.php"; <br>iekļaut "tpl_main.php"; <br> </p><p>Vispārējā veidne (tpl_main.php):</p><p><html xmlns="http://www.w3.org/1999/xhtml"><br> <head><br> <title>Mana vietne.<?=$pagetitle?>






Īstajā vietā tajā ir iekļauta mūsu lapas veidne (tpl_links.php):





  • "target =" _ blank ">


    • Sveiki visiem. Es vēlos iepazīstināt ar citu velosipēdu, kas rakstīts PHP, izmantojot dokumenta objekta modeli. Kā tas atšķiras no citiem vienas sugas trīsriteņu pārstāvjiem? Patiesībā atšķirību nav tik daudz, tas apvieno labāko no daudziem. Piemēram:

      1. Pilnīga html un php atdalīšana.
      2. Veidnēs, piemēram, nav papildu etiķešu


      3. Spēja ievietot izkārtojumā citu veidņu failu saturu, gan no php, gan izmantojot izkārtojumā īpašu tagu.
      4. Spēja izveidot jebkuru html tagu lidojuma laikā.
      5. Spēja saglabāt visu ģenerēto un savākto html failā.
      6. Pirms veidnes ģenerēšanas pārbaudiet pieprasītās lapas html faila esamību.

      Lai visiem uzreiz būtu skaidrs, cik ērti un viegli to lietot, es pastāstīšu un parādīšu, kā es to izmantoju, lai izveidotu vienu no saviem projektiem (man ir aizdomas, ka es tam pārrakstīšu visus savus projektus).

      Pirmā lieta, ko es parasti daru, ir iegūt visu informāciju no datubāzes par lapu (atslēgvārdi, lapas apraksts, veidnes nosaukums un css un js failu adreses). Es to visu saglabāju $ head masīvā. Tad es saņemu saturu no datu bāzes un saglabāju to $ page masīvā. Un es sāku strādāt ar klasi.

      Tātad, vispirms es piezvanu klases konstruktoram un nododu tajā visus nepieciešamos parametrus:

      $ tpl = jauna veidne; $ tpl -> ext = TPL_EXTENSION; # failu paplašinājums veidņu direktorijā $ tpl -> htm = CACHE_EXTENSION; # paplašinājums jau ģenerētām lapām $ tpl -> skin_dir = DIR_TEMPLATES; # katalogs, kurā ir visas vietņu veidnes (piemēram, veidnes) $ tpl -> js_dir = DIR_JS; # direktorijā, kur jāmeklē JS faili $ tpl -> css_dir = DIR_CSS; # direktorijs, kurā atrodas CSS $ tpl -> img_dir = DIR_IMG; # direktorijs, kurā attēli $ tpl -> āda = $ _SESSION ["āda"]; # tās veidnes nosaukums, kuru vēlos izmantot $ tpl -> cache = DIR_CACHE; # kur saglabāt gatavo html $ tpl -> log = FILE_T_LOGS; # kur rakstīt žurnālus $ tpl -> tag_start = SYMBOL_START_TAG; # Rakstzīme, kuras veidnes mainīgie sākas ar $ tpl -> tag_end = SYMBOL_END_TAG; # Rakstzīme, kas beidz mainīgos šablonā $ tpl -> dir_delimeter = DIRECTORY_SEPARATOR; $ tpl -> atstarpe = SYMBOL_SPACE; # rakstzīme, kas aizstāj atstarpi.
      Fuf, tāpat kā visi mainīgie tika nodoti, turpināsim.
      Lai nepiespiestu klasi veikt nevajadzīgu darbu, vispirms pārbaudām, vai mums jau ir gatavs pieprasītās lapas Html fails.
      ja ($ tpl -> TestPageStatus () === TRUE) (nepieciešams $ tpl -> cacheFileName;) cits ($ tpl -> page ("index"); # starp citu, jūs nododat veidnes faila nosaukumu var nodot vairākus no tiem, atdalot tos ar komatiem $ tpl -> assign ("HEAD", $ head); $ tpl -> assign ("CONTENT", $ page); $ tpl -> build (); # dodiet komandu veidot veidni $ tpl -> ShowPage (); # izvade.)
      Šeit ir visas metodes, kas jums jāizmanto, lai parādītu lapu.

      Tagad apskatīsim vēl dažas noderīgas šīs klases metodes. Pieņemsim, ka mēs visu nepieciešamo esam jau nodevuši klasei, bet vēl neesam devuši tai komandu izvadīšanai, jo pēkšņi atcerējāmies, ka veidnē ir jāizveido vairāki Html tagi. To ir arī ļoti viegli izdarīt. Pirmkārt, mums jāatrod bloks, kurā mēs vēlamies kaut ko pievienot. Jūs to varat atrast 2 veidos:

      $ tpl -> findById ("atrastMe"); $ tpl -> findByTagName ("div");
      FindById metode loģiski pieņem, ka visi tagu ID veidnē ir unikāli. Un metode findByTagName atgriezīs pirmo atbilstošo.
      Mums ir jāpārsūta rezultāts, ko ieguvām, veicot meklēšanu, uz metodi $ tpl -> createChild (), lai atrastajā elementā varētu izveidot pakārtotos tagus. Metode createChild, starp citu, pēc jauna elementa izveides to atdod mums, lai mēs varētu izmantot jaunizveidoto elementu citur.

      Pārlūkojot un eksperimentējot, es atklāju 3 veidus, kā veidnē izveidot tagus, tāpēc es jums parādīšu 3 piemērus uzreiz. 1. piemērs:

      Mums ir jārada

      iekšā

      $ parent = $ tpl -> findById ("vecāks"); $ tpl -> createChild ($ parent, "div", "id = child, class = test");
      Mēs iegūstam:


      2. piemērs:

      Mums ir jārada

      Kaut kāds teksts
      iekšā

      $ parent = $ tpl -> findById ("vecāks"); $ tpl -> createChild ($ parent, "div", "id = child, class = test", "Some text");
      Mēs iegūstam:

      Kaut kāds teksts

      3. piemērs:
      Mums ir jārada

      Jauns elements
      pirmajā laiduma elementā, kas nāk pāri

      $ parent = $ tpl -> findByTagName ("span"); # (1) $ tpl -> createChild ($ parent, "div", "New Element"); # (2)
      (1) Meklējot vecāku nevis pēc ID, bet pēc atzīmes, tiks atrasts pirmais atbilstošais
      (2) Ja mums nav vajadzīgi atribūti, bet tikai jaunā elementa vērtība, tad tos var izlaist.

      Mēs iegūstam:

      Jauns elements

      Un pēc šīm manipulācijām es jau saucu ShowPage. Un šeit mēs gludi nonākam pie vēl 2 interesantiem punktiem.
      Iedomājieties situāciju, kad mums ir veidne, pieņemsim, ka tā ir list.tpl veidne ar, piemēram, mobilo tālruņu sarakstu:

      (SATURS. Zīmols)

      (SATURS. Modelis)

      (SATURS. Informācija)

      Ja mēs pārsūtījām informāciju tikai caur 1 tālruni, tad mainīgie vienkārši tiks aizstāti ar to vērtībām, un, ja mēs nosūtījām informāciju, izmantojot vairākus tālruņus vienlaikus, tad klase kopēs šo sadaļu tik reižu, cik nonāca vērtību varianti to. Un viņš to darīs pats, atšķirībā, piemēram, no klases xTemplate, kurai katrai vērtībai bija piešķirts un parsēts
      Tiesa, ir viens ne pārāk ērts brīdis, ja pēc šī bloka ir vēl daži, piemēram:

      (SATURS. Zīmols)

      (SATURS. Modelis)

      (SATURS. Informācija)
      Vēl viens bloks

      Tad šādā situācijā mums būs jāizmanto neliels triks, iepakojot mobilo tālruni

      (SATURS. Zīmols)

      (SATURS. Modelis)

      (SATURS. Informācija)
      Vēl viens bloks

      Šajā gadījumā visi mobilie tālruņi parādīsies viens pēc otra, iekšpusē
      , un "Daži citi bloki" paliks zemāk.

      Un, ja es neko neesmu aizmirsis, tad pēdējais brīdis ir citu veidņu satura pievienošana pašreizējai veidnei.
      Es vēlreiz piesaku jūsu iztēli.

      Iedomājieties, ka izkārtojuma noformētājs vēlas, lai faila page.html saturs tiktu pievienots faila blokam list.html, tāpēc viņš pievieno failu list.html pareizajā vietā. lappuse un, kad klase redz šo tagu, tā to aizstāj ar faila page.html saturu

      Šādu ieliktņu skaits nav ierobežots, un to atrašanās vieta nav absolūti kritiska, tāpēc jūs varat tos ievietot, kā vēlaties un jebkurā daudzumā.

      Tas, iespējams, ir viss, ja kaut ko atcerēšos, es jūs papildus informēšu. Paldies, ka izlasījāt līdz galam.

      Tagi: php, klase, veidne, veidņu dzinējs, parsētājs