Detail tentang * .tpl file dle template tujuan mereka. Menggunakan file TPL TPL Template PHP Cara Menggunakan

Segera saya akan mengatakan bahwa saya sudah menulis tentang topik ini di sini :. Namun, tidak semua orang mengerti materi ini, dan saya memutuskan untuk kembali kepadanya dan menulis semuanya sedikit berbeda. Bukan rahasia lagi bahwa mesin serius tidak akan pernah dicampur dalam kode Anda. Html. dan PHP.. Tapi, Html. dan PHP. Kode sangat saling terkait erat, sehingga agar tidak melanggar aturan "nada yang baik", ditemukan file TPL.. File-file ini disimpan Kode HTML dengan elemen templateyang diganti di Kode PHP.. Mari kita lihat lebih detail menggunakan file TPL Dengan contoh.

Kami bawa dengan Anda contoh paling dasar adalah panel pengguna di mana ada avatar dan nama dengan nama. Pertama-tama, buat file TPL.dan biarkan dia menelepon userpanel.tpl.. Saya mengingatkan Anda bahwa ini hanya sepotong Kode HTML dengan elemen template:

Halo nama%!




Tidak ada yang rumit, itu hanya biasa Kode HTML.. Hanya alih-alih nilai tertentu bernilai % Elemen_sablon%.

Sekarang kita akan mencari tahu Pemrosesan PHP. Semuanya akan lebih dari abstrak, tetapi, sayangnya, dengan cara apa pun. Yang utama adalah memahami prinsip pekerjaan. Begitu Kode PHP. Untuk diproses dibuat. file TPL.:

/ * Fitur ini, meskipun menggunakan buffer, tetapi esensi dari dasar: mengembalikan konten file * /
Fungsi GetTemplate ($ Name) (
Ob_start (); // mulailah menyimpan output ke buffer
Termasuk ($ nama. "TPL"); // Kirim isi file ke buffer
$ Text \u003d ob_get_clean (); // bersihkan buffer dan kembalikan isinya
Kembalikan $ Teks; // Kembali teks dari file
}
$ Name \u003d "Nikolai"; // Dihapus dari pangkalan
$ Avatar \u003d "Avatar / user_15.jpg"; // Dihapus dari pangkalan
/ * Mulai mengganti elemen template untuk data nyata * /
$ Userpanel \u003d str_replace (
Himpunan (
"% Nama%",
"% avatar%"
),
Himpunan (
$ Nama
$ Avatar.
),
Gettemplate ("userpanel")
);
Echo $ userPanel; // tampilkan hasil akhir
?>

Ini adalah opsi paling sederhana. Semuanya berkomentar, jadi seharusnya tidak ada pertanyaan untuk contoh ini. Dan pada kenyataannya, halaman mana pun terdiri dari blok tersebut. Tugas Anda mengambil blok kanan (fungsi gettemplate ()), Ganti data yang diperlukan (fungsi str_replace () dan data yang diperoleh, misalnya, dari basis), dan kemudian cukup menghubungkan semua blok sebagai garis biasa, dan keluarkan semuanya ke halaman.

Tentu saja tanpa Oop. Ini akan sangat bermasalah di sini. Anda meningkatkan sejumlah kondisi (banyak halaman), yang dengan cepat membingungkan. Tetapi prinsip penggunaannya file TPL.Saya harap Anda sadar. Pikirkan lebih lanjut tentang cara membungkus Oop.Sehingga semuanya sesederhana mungkin dalam hal memahami kode dan pemeliharaannya di masa depan.

Setelah membuat info-File, pada prinsipnya, topiknya sudah ditentukan. Ini berarti Anda dapat pergi ke bagian manajemen lapangan. http://mysite.ru/admin/build/themes. Dan sertakan topik Anda di sana. Secara alami, setelah menyalakannya tidak ada desain Anda tidak akan melihat - halaman akan memperoleh gaya "hitam pada putih" - pada teks hitam latar belakang putih.

Namun, saya ingin mencatat bahwa terlepas dari kenyataan bahwa tidak ada file dalam topik kami mytheme.info. tidak berbohong, situs akan bekerja seperti sebelumnya - untuk menarik semua konten, tambahkan blok ke daerah ( http://mysite.ru/admin/build/block.) dll. Ini dijelaskan oleh fakta bahwa kernel Drupal termasuk modul wajibYang bahkan dengan tidak adanya file apa pun dalam topik Anda (dengan pengecualian file info) memungkinkan Anda untuk terus bekerja dengan Drupal.

Pada prinsipnya, semua penciptaan templat turun ke file templat yang tumpang tindih (mereka memiliki ekstensi .tpl.php.) modul standar kami CMS..

File TPL yang paling penting (TPL adalah pengurangan dari template., template) halaman.tpl.php.. Dia bertanggung jawab untuk membangun setiap halaman situs. Mari kita berurusan dengan apa file template:

  • kode HTML.
  • kode PHP.
  • kode JavaScript (tidak perlu)

Dalam setiap file templat, Drupal mentransmisikan data situs dalam bentuk variabel standar. Untuk setiap file templat ada 2 jenis variabel:

  • variabel yang dikirimkan hanya ke file ini.
  • variabel yang ditransmisikan ke semua file

Berikut adalah daftar semua variabel untuk halaman.tpl.php.:

Variabel Umum (untuk semua file):

  • $ Base_path. - PATH dasar di mana Drupal dipasang
  • $ Css. - Array file CSS yang terhubung ke file template saat ini
  • $ Direktori. - PATH ke folder di mana topik diinstal
  • $ is_front. - Mengembalikan nilai kebenaran jika Anda berada di halaman utama
  • $ Login_in. - Mengembalikan nilai kebenaran jika Anda masuk
  • $ is_admin. - Mengembalikan nilai kebenaran jika Anda memiliki akses ke admin

Metadata Halaman

  • $ Bahasa. - (Sebuah Objek) Bahasa saat iniyang ditampilkan di situs
  • $ Bahasa-\u003e Bahasa - Berisi representasi teksnya
  • $ Bahasa-\u003e dir - Berisi arah bahasa. Ini atau akan "ltr" (kiri-ke-kanan) atau "RTL" (kanan-ke kiri)
  • $ Head_title. - Versi judul halaman yang dimodifikasi untuk digunakan antar tag
  • $ Kepala. - Dimasukkan antar tag . Berisi meta tag, kata kunci. dll.
  • $ gaya. - Digunakan untuk mengunduh semua orang cSS.-Filet ke halaman saat ini
  • $ skrip. - Digunakan untuk mengunduh semua orang javascript "ov. ke halaman saat ini
  • $ body_classes. - Set kelas cSS. Untuk Taga. . Berisi informasi tentang pengaturan kolom saat ini di situs, jumlahnya, URL saat ini "E, dll.

Informasi tentang situs

  • $ Front_page. - Alamat halaman utama situs. Lebih baik menggunakan variabel ini untuk referensi halaman Utamakarena Ini termasuk bahasa domain dan awalan
  • $ logo. - PATH ke logo situs, jika termasuk di situs
  • $ Site_Name. - Nama situs. Itu bisa kosong jika Anda mematikannya di fitur dalam file info. Dikonfigurasi di mysite.ru/admin/settings/site-information.
  • $ Site_slogan. - Situs slogan. Itu bisa kosong jika Anda mematikannya di fitur dalam file info. Dikonfigurasi di mysite.ru/admin/settings/site-information.
  • $ Misi. - Situs Misi. Ini bisa kosong jika menonaktifkannya di fitur dalam file info. Dikonfigurasi di mysite.ru/admin/settings/site-information.

Navigasi

  • $ search_box. - Berisi kode HTML yang menampilkan string pencarian. Dapat kosong jika Anda mematikannya di file info
  • $ primer_links.
  • $ Sekunder_links. - Array yang berisi tautan navigasi untuk situs jika diizinkan dalam fitur file info

Konten Halaman Default

  • $ Tersisa. - wilayah. Berisi kode HTML untuk kolom kiri. Jika dalam file info untuk mengatur daerah apa pun, maka itu menghilang
  • $ Remah roti. - "remah roti"Untuk halaman saat ini
  • $ title. - Judul halaman
  • $ Bantuan. - Tips dinamis, terutama ditampilkan di admin
  • $ Messages. - Menampilkan kesalahan dan peringatan di situs
  • $ Tab. - Referensi (Tab) Menghubungkan halaman saat ini dengan subdrapsnya (misalnya, untuk artikel - dengan halaman pengeditannya)
  • $ Konten - Halaman Konten Saat Ini
  • $ Kanan - wilayah. Berisi kode HTML untuk kolom kanan. Jika dalam file info untuk mengatur daerah apa pun, maka itu menghilang

Data area bawah / penutupan

  • $ Feed_icon. - String dengan semua ikon umpan balik Untuk halaman saat ini
  • $ Footer_message. - Pesan di bagian bawah halaman. Dikonfigurasi di mysite.ru/admin/settings/site-information.
  • $ Footer. - wilayah. Berisi kode HTML untuk bagian bawah halaman. Jika dalam file info untuk mengatur daerah apa pun, maka itu menghilang
  • $ penutupan. - Label penutup untuk semua modul yang mengubah halaman. Variabel ini harus ditampilkan setelah semua konten dinamis. Terbaik sebelum tag bodi penutup

Semua terdaftar di sini variabel standar. Tetapi Anda dapat menambahkan variabel Anda di sini baik sebagai daerah melalui info-File atau dalam peran lain melalui file template.php. (tentang dia sedikit kemudian).

Sekarang saya akan menunjukkan kode apa yang seharusnya masuk halaman.tpl.php. Dan dalam kode apa itu kemudian ditafsirkan oleh browser. Sebelum Anda sepotong kode dari halaman.tpl.php.:

Di baris pertama ada cek, apakah ada judul di halaman saat ini. Jika tidak - maka debugger hanya akan ketinggalan kode ini, dan tidak akan sampai pada akhirnya. Jika header ada, kode halaman ditambahkan ke HTML

, setelah itu akan dicetak judul halaman, dan semua ini akan ditutup dengan tag

. Jika Anda melihat kode halaman ini di browser, maka akan terlihat seperti ini:

Pelajaran 4. Memperlukan file untuk membuat templat. Halaman.tpl.php.

Dengan demikian, hampir semua variabel situs dibalik. Ini dilakukan agar kita dapat meresepkan gaya untuk konten, tidak tahu apa yang terjadi.

Dengan cara ini terlihat seperti file standar. halaman.tpl.php.yang sejalan dengan Drupal. Ubah nama kelas, atur ulang variabel di beberapa tempat - dan lihat apa yang ternyata. Perlu untuk "membengkak" cara kerjanya dan apa yang diturunkan sebagai hasilnya.

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

Teman-teman,

kami melanjutkan publikasi serangkaian tips berguna yang memfasilitasi pemahaman tentang beberapa tindakan dan fitur skrip. Baru-baru ini, pertanyaan sering datang kepada kami dengan permintaan untuk membuat modifikasi skrip sehingga Anda dapat menggunakan berbagai templat untuk berbagai bagian situs. Misalnya, halaman utama dengan berita harus memiliki satu struktur tata letak, dan misalnya, halaman umpan balik sama sekali berbeda. Pada saat yang sama, memotivasi kepada kami bahwa dimungkinkan untuk mengubah pola di panel admin hanya untuk kategori berita situs. Tetapi pada kenyataannya, semua ini dapat diimplementasikan dengan cara standar, yang artikel kecil ini akan pergi.

Jadi hal pertama yang perlu kita putar ke dokumentasi skrip, yang berbunyi template main.tpl. Mendukung tag berikut:

Teks yang menampilkan teks yang terlampir dalam tag jika bagian yang ditentukan dari situs dicari.


tag ini juga memiliki kebalikannya

Teks yang menampilkan teks terlampir dalam tag jika Anda melihat partisi mana pun selain yang ditentukan


Ambil sebagai dasar contoh tugas: Pastikan situs tersebut menggunakan satu desain template, dan umpan balik di situs menggunakan yang lain. Berdasarkan ini, kita perlu membuka template. main.tpl. dan tentukan yang berikut:

Di sini seluruh teks templat yang akan ditampilkan saat melihat umpan balik
Di sini seluruh teks template, yang akan ditampilkan di mana-mana kecuali umpan balik


Tetapi memiliki satu minus besar, file template utama Anda main.tpl. Itu akan terlalu besar, karena Intinya, akan ada dua desain yang berbeda, dan di sini kita kembali memohon pada dokumentasi dan skrip dan belajar tentang keberadaan tag yang indah: (Termasuk file \u003d "my_block.tpl")yang menghubungkan file my_block.tpl yang ditentukan ke template.

Berdasarkan semua di atas, implementasi akhir adalah sebagai berikut:


Dalam file template feedback_main.tpl. Kami membuat desain umpan balik, dan dalam file all_main.tpl kami membuat desain sisa situs. Itu sebenarnya, semuanya mudah dan mudah diimplementasikan, tidak perlu menghasilkan modifikasi skrip. Anda juga dapat menempatkan desain partisi apa pun, Anda dapat menggabungkan beberapa bagian, dll. Baca selengkapnya dan lebih hati-hati, baca dokumentasi untuk skrip, ada cukup banyak berguna untuk ditekankan sendiri.

Salam sejahtera,


Pemisahan logika data dari logika tampilan mereka adalah komponen yang sangat penting dari pengembangan web.
Setiap programmer yang naik sedikit lebih tinggi dari tingkat "Hello World", mulai merasakan kebutuhan akan divisi seperti itu. Tetapi tidak semua orang datang ke kesimpulan dan solusi yang tepat.
Oleh karena itu, saya akan memberikan di sini aturan paling penting:
1. Menerima kode dan kode tampilan data harus dibagi.
2. Kesimpulan apa pun harus dimulai hanya setelah semua data siap untuk itu.
3. Akibatnya, skrip apa pun hanya boleh berurusan dengan pemrosesan data. Setelah itu, ia dapat mengirim beberapa pos NTTR, atau memanggil template, setelah ditransfer ke data yang disiapkan, atau keduanya bersama-sama.
4. Apa yang sebenarnya digunakan kesepuluh adalah kasusnya. Yang paling mudah dan paling terjangkau - RNR itu sendiri, jadi contohnya akan dibawa.

Kesalahpahaman
Tidak, mungkin, di web pemrograman temanya sejelas, sama tidak bisa dipahami sebagai templat. Masing-masing, cepat atau lambat, sampai pada kesimpulan dari kebutuhan untuk menggunakan template. Tetapi datang, untuk beberapa alasan, melalui beberapa kesalahpahaman dan fantasi terliar.

Kesalahpahaman paling sederhana dan jelas adalah bahwa pendatang baru disebut template yang dibuat dalam file "desain" yang terpisah - berbagi HTML untuk semua halaman situs. Dan menenangkannya. Informasi dinamis, tidak ada yang keras, menarik echo yang baik :-)
Bahkan, templatizer terutama bergerak dalam output dari konten yang berubah dari halaman halaman. Dan kesimpulan "desain" adalah tugas kecil.

Fantasi adalah dua utama:
1. Template diperlukan untuk "desainer" sehingga ia dapat mengeditnya tanpa memahami PHP.
2. Akibatnya, template berfungsi untuk memisahkan PHP dari HTML.

Mari kita coba pikirkan pernyataan pertama. Siapa desainer? Ini adalah orang yang bekerja di Photoshop. Html dia paling sering tidak tahu sama sekali. Dan di atas template ada lapisan khusus atau - paling sering ... programmer sendiri! Lucu, bukan?
Sekarang konsekuensinya, tentang pemisahan PHP dari HTML. Luar biasa. Sebelum kita adalah tujuan suci untuk memisahkan. Karena itu, kami datang dengan cerdas dan menulis:
(Foreach key \u003d cid item \u003d con from \u003d $ kontak)
($ con. Nama) - ($ con .nick)

(/ untuk setiap)

Lebih lucu.
"Desainer", yang semuanya berdiri, pingsan dari kebahagiaan.

Teori
Ternyata alasan kami yang kami putuskan untuk menggunakan template tidak bernilai satu sen. Dan apa yang sekarang - tidak diperlukan, ternyata, Shabons sama sekali? Perlu. Tetapi pertama-tama Anda perlu menjawab pertanyaan - "Kenapa?" Untuk apa Kami membutuhkan pola. Dan periksa praktik respons. Saya bertanya seratus kali pertanyaan ini. Tetapi hampir tidak ada yang bisa menjawabnya. Mengapa dia butuh template. Ternyata, orang melakukan sesuatu, tidak tahu mengapa.
Ini adalah hal yang lucu.

Selama kegiatan mereka, sebagai programmer web, saya merumuskan tiga alasan untuk diri saya sendiri, untuk mana template perlu secara pribadi. Intinya, ada dua dari mereka. Dan turun, pada akhirnya, untuk satu:

Satu kode - beberapa tampilan.

Sering terjadi bahwa alih-alih satu informasi yang Anda butuhkan untuk menunjukkan yang lain. Misalnya, kode kerja dengan basis data menerima pesan kesalahan alih-alih teks. Dalam hal ini, alih-alih halaman berita, Anda perlu menunjukkan yang sama sekali berbeda - dengan permintaan maaf dan permintaan datang nanti. Menggunakan template, ini dilakukan dasar.

Seringkali satu dan informasi yang sama harus ditampilkan dalam beberapa spesies. Misalnya, halaman biasa dan halaman cetak. Informasinya sama, kode untuk persiapannya sama, dan kode outputnya berbeda. Menghadapi situasi ini, sangat cepat membagi kode Anda menjadi dua bagian, salah satunya bertanggung jawab atas output, dan yang kedua tidak merespons. Contoh lain: Katakanlah kami ingin menampilkan informasi tidak langsung ke HTML, tetapi melalui permintaan Ajax, dalam format JSON. Jika kami telah menggunakan templatizer, maka kami mengubah kode kami tepat satu baris - hubungi templatizer untuk memanggil json_encode (). Dan jika kesimpulan kami dicampur dengan kode akuisisi data, maka kode harus menulis ulang keseluruhan!

Dalam situasi yang sama: katakanlah, skrip kami ada di dua situs. Ditambah salinan kami di rumah. Dan di rumah kami menemukan bug besar. Mengekstraknya. Sekarang Anda perlu memperbarui kode di situs. Jadi dia adalah momen kebenaran: Jika template digunakan dengan benar, maka kita cukup menuangkan kode di kedua situs, dan semuanya terus bekerja, seolah-olah tidak ada yang terjadi! Situasi seperti yang saya pikir adalah pemeriksaan sempurna dari pendekatan yang dipilih untuk template.

Poin penting lain yang banyak hilang (dalam alasan teoretis mereka, sementara terus-menerus menghadapinya dalam praktik!) - prosedur untuk melaksanakan skrip tidak selalu bertepatan dengan urutan output dalam template. Contoh buku teks adalah output dari header artikel di tag . Jika kita mendapatkan informasi saat kita tiba, kita tidak bisa melakukan ini - topi <i>sudah</i> Dirilis, pada saat kami mulai menerima berita teks.</p><p>Harus juga diingat bahwa selain teks RNR, skrip juga menghasilkan headline HTTP. Yang diperlukan untuk menampilkan sebelum teks apa pun, atau bahkan bukannya teks secara umum (jika kita, misalnya, kita ingin mengarahkan pengguna ke halaman lain). Jika kami pertama kali mengimplementasikan logika aplikasi, tanpa menampilkan apa pun, maka Anda tidak akan memberikan NTTR yang diperlukan untuk kami untuk kami.</p><p>Anda mungkin memiliki alasan sendiri untuk menggunakan template. Tetapi hanya dengan satu syarat - alasan-alasan ini harus disebabkan oleh kebutuhan nyata, vital, dan bukan oleh "pertimbangan tertinggi" dan merawat beberapa orang yang tidak dikenal.</p><p><b><a name="example">Praktek</a> </b><br> Sekarang dari teori, kita beralih ke latihan. <br> Dalam kasus paling sederhana, dalam pertunjukan halaman mana pun, kami akan selalu berpartisipasi dua template: template situs web umum dan templat konten halaman konkret. <br> Misalkan kami ingin membuat halaman dengan tautan ke situs teman. <br> Dalam hal ini, kode kode yang disederhanakan akan terlihat seperti ini:</p><p>File links.php itu sendiri. Tidak ada yang ditampilkan. Hanya menyiapkan data dan kemudian menyebabkan template. <br><span><?<br><span>// pengaturan inklusif. <br></span>termasuk "pengaturan.php";</p><p>// Terima data dari basis, tentukan variabel <br></span>$ PAGETITLE \u003d "(! LANG: Tautan" ;!} <br>$ Data \u003d $ dB -\u003e getall ("pilih * dari tautan");</p><p>// Atur template halaman dan hubungi templat situs web umum. <br></span>$ TPL \u003d "TPL_LINKS.PHP"; <br>termasuk "TPL_MAIN.PHP"; <br> </p><p>Template Umum (TPL_MAIN.php):</p><p><html xmlns="http://www.w3.org/1999/xhtml"><br> <head><br> <title>SITUSKU.<?=$pagetitle?>






Di tempat yang tepat dihidupkan ke pan_links.php (tpl_links.php):





  • "Target \u003d" _ kosong "\u003e


    • Halo semuanya. Saya ingin memperkenalkan sepeda lain yang ditulis dalam PHP menggunakan model objek dokumen. Apa perbedaannya dari perwakilan roda tiga lainnya dari spesies yang sama? Bahkan, perbedaannya tidak begitu banyak, itu menggabungkan yang terbaik dari banyak orang. Sebagai contoh:

      1. Partisi penuh HTML dan PHP.
      2. Tidak ada label tambahan dalam jenis pola


      3. Kemampuan untuk menanamkan untuk meletakkan isi file template lainnya, baik dari PHP dan menggunakan tag khusus dalam tata letak.
      4. Kemampuan untuk membuat tag HTML apa pun dengan cepat.
      5. Kemampuan untuk menyimpan ke file HTML semua yang telah dihasilkan dan dikumpulkan.
      6. Pastikan keberadaan file HTML dari halaman yang diminta sebelum membuat template.

      Sehingga setiap orang segera menjadi jelas betapa nyamannya nyaman dan mudah untuk mengajukan banding, saya akan memberi tahu dan menunjukkan bagaimana saya menggunakannya untuk membuat salah satu proyek saya (saya curiga bahwa saya akan menekan semua proyek saya di bawahnya).

      Hal pertama yang biasanya saya lakukan adalah mendapatkan semua informasi dari database tentang halaman (kata kunci, deskripsi halaman, nama template dan file CSS dan JS). Saya menyimpan semua ini dalam array $ kepala. Selanjutnya saya mendapatkan konten dari database dan menyimpan array $ halaman. Dan lanjutkan untuk bekerja dengan kelas.

      Jadi, pertama, saya memanggil konstruktor kelas dan mengirimkan semua parameter yang diperlukan untuk itu:

      $ TPL \u003d template baru; $ TPL -\u003e ext \u003d tpl_extension; # Ekspansi file dalam katalog template $ TPL -\u003e htm \u003d cache_extension; # Ekspansi untuk halaman yang sudah dihasilkan $ TPL -\u003e skin_dir \u003d dir_templates; # Direktori di mana semua template situs berbohong (misalnya, templat) $ TPL -\u003e js_dir \u003d dir_js; # Direktori di mana Anda perlu mencari file js $ TPL -\u003e css_dir \u003d dir_css; # Direktori di mana CSS $ TPL -\u003e IMG_DIR \u003d DIR_IMG; # Direktori di mana $ TPL gambar -\u003e kulit \u003d $ _SESI ["" kulit "]; # Nama template yang ingin saya gunakan $ TPL -\u003e cache \u003d dir_cache; # Di mana menyimpan html $ TPL Ready-buatan -\u003e log \u003d file_t_logs; # Di mana menulis log $ TPL -\u003e tag_start \u003d smart_start_tag; # Karakter dari mana variabel mulai dalam templat $ TPL -\u003e tag_end \u003d simbol_end_tag; # Simbol yang mengakhiri variabel dalam templat $ TPL -\u003e dir_delimeter \u003d Directory_SeSarator; $ TPL -\u003e Space \u003d smart_space; # Simbol mengganti ruang.
      FUF, sepertinya semua variabel berlalu, melangkah lebih jauh.
      Agar tidak memaksa kelas untuk membuat pekerjaan tambahan, pertama-tama kita periksa, tiba-tiba kita sudah memiliki file HTML yang sudah jadi dari halaman yang diminta.
      Jika ($ TPL -\u003e TestPagestatus () \u003d\u003d\u003d Benar) (memerlukan $ TPL -\u003e Cachefilename;) Lainnya ($ TPL -\u003e Halaman ("Index"); # Kami meneruskan nama file template, dengan cara Anda dapat melewati beberapa, melalui koma $ TPL -\u003e menetapkan ("kepala", $ head); $ tpl -\u003e menetapkan ("konten", $ halaman); $ TPL -\u003e membangun (); # kami memberikan tim untuk Kumpulkan template $ TPL -\u003e ShowPage (); # Take Down.)
      Di sini sebenarnya semua metode yang perlu digunakan untuk menghapus halaman.

      Sekarang kita akan menganalisis beberapa metode berguna kelas ini. Misalkan kita telah melewati kelas semua yang Anda butuhkan, tetapi mereka tidak memberinya tim untuk menyimpulkan, karena mereka tiba-tiba ingat bahwa kita perlu membuat beberapa tag HTML di template. Ini juga dilakukan dengan sangat sederhana. Pertama, Anda perlu menemukan blok di mana kami ingin menambahkan sesuatu. Anda dapat menemukan 2 cara:

      $ TPL -\u003e FindByid ("FindMe"); $ TPL -\u003e findbytagname ("Div");
      Metode findbyid secara logis menyiratkan bahwa pada templat semua tag unik di template. Dan metode findbytagname akan mengembalikan yang pertama cocok.
      Hasilnya kami menerima pencarian, kami harus lulus ke metode $ TPL -\u003e CreatiChild () untuk dapat membuat dalam elemen yang ditemukan, tag anak. Metode CreatiChild dengan cara, setelah membuat item baru, mengembalikannya kepada kami, sehingga kami hanya dapat menggunakan elemen yang dibuat di tempat lain.

      Memilih dan bereksperimen saya menemukan 3 cara untuk membuat tag dalam template, jadi saya akan menampilkan 3 contoh sekaligus. Contoh 1:

      Kita perlu membuat

      dalam

      $ Parent \u003d $ TPL -\u003e Findbyid ("Induk"); $ TPL -\u003e Creativild ($ Parent, "Div", "ID \u003d Child, Class \u003d Test");
      Kita mendapatkan:


      Contoh 2:

      Kita perlu membuat

      Beberapa teks
      dalam

      $ Parent \u003d $ TPL -\u003e Findbyid ("Induk"); $ TPL -\u003e creativild ($ parent, "div", "id \u003d child, class \u003d test", "beberapa teks");
      Kita mendapatkan:

      Beberapa teks

      Contoh3:
      Kita perlu membuat

      Elemen baru.
      Di elemen rentang pertama

      $ parent \u003d $ TPL -\u003e findbytagname ("span"); # (1) $ TPL -\u003e CreatiChild ($ Parent, "Div", "elemen baru"); # (2)
      (1) Menemukan orangtua bukan dengan ID, dan dalam tag akan menemukan yang pertama cocok
      (2) Jika kita tidak memerlukan atribut, tetapi hanya nilai item baru, Anda tidak dapat mengirimkannya

      Kita mendapatkan:

      Elemen baru.

      Dan setelah manipulasi ini, saya sudah menyebut showpage. Dan di sini kami dengan lancar mendekati 2 momen menarik lainnya.
      Bayangkan situasi yang kami miliki templat, misalkan ini adalah template list.tpl dengan daftar, misalnya, ponsel:

      (Konten.Brand)

      (Konten.model)

      (Konten.info)

      Jika kami telah lulus hanya 1 informasi telepon, itu hanya akan diganti dengan variabel pada nilai-nilai mereka, dan jika kami telah segera lulus informasi oleh beberapa telepon, maka kelas akan menyalin situs ini sebanyak opsi nilai datang . Dan itu akan membuatnya sendiri, berbeda, misalnya, dari kelas XTemplate, yang menyumbang setiap panggilan nilai menetapkan dan mengurai
      Benar ada satu momen yang sangat nyaman, jika setelah blok ini lebih, misalnya:

      (Konten.Brand)

      (Konten.model)

      (Konten.info)
      Masih beberapa blok

      Kemudian dalam situasi seperti itu kita harus menerapkan trik kecil, mengepak ponsel kita

      (Konten.Brand)

      (Konten.model)

      (Konten.info)
      Masih beberapa blok

      Dalam hal ini, semua ponsel akan muncul satu sama lain, di dalam
      , dan "beberapa unit lain" akan tetap di bawah.

      Dan jika saya tidak melupakan apa-apa, maka saat terakhir menambahkan isi template lain ke template saat ini.
      Saya menelepon lagi ke fantasi Anda.

      Bayangkan bahwa ukuran menginginkan isi file halaman.html ditambahkan ke daftar file list.html, untuk ini ada di lokasi yang diinginkan dari daftar file. halaman Dan ketika sebuah kelas melihat tag ini, ia akan menggantinya dengan isi file halaman.html

      Jumlah sisipan tersebut tidak terbatas dan lokasinya sama sekali tidak kritis, sehingga Anda dapat memasukkannya apa pun dan dalam jumlah berapa pun.

      Itu mungkin segalanya, jika saya ingat sesuatu, saya akan melaporkan juga. Terima kasih telah membaca sampai akhir.

      Tag: PHP, kelas, template, pelunak, parser