Dengan menggunakan kaedah ini, sebarang elemen atau kod persendirian boleh dimasukan ke dalam setiap paparan nodes secara automatik tanpa perlu menulisnya setiap kalu kemasukan kandungan baru.

Selain dari cara ini, modul seperti Panel boleh melakukannya tetapi perlu dilakukan beberapa tetapan untuk setiap halaman yang dibina. Kaedah ini akan mengubah suai fail templat yang ada dalam folder theme Drupal.

Situasi:

Katakan saya ingin memasukkan elemen gambar pada setiap halaman menggunakan jenis kandungan tertentu dan hanya dipaparkan pada paparan penuh sahaja (full node).

Kenal pasti dahulu jenis kandungan yang akan diimplementasikan fungsi ini. Dalam contoh ini saya menggunakan "Page".

  • Buka direktori theme atau sites/all/themes dan cari folder untuk templat tersebut.
  • Buat satu salinan fail node.tpl.php dan namakannya kepada node-page.tpl.php. Dengan cara ini, untuk semua kandungan yang dihantar melalui jenis kandungan "Page" akan menggunakan templat ini.
  • Selepas itu, pergi ke Administer Site configuration Performance dan jalankan "Clear cached data". Selepas membuang semua cache, Drupal akan membina semula pendaftaran templat dan proses "overriding" telah dijalankan.
  • Sunting fail node-page.tpl.php dengan editor asas, seperti Notepad.

Masukkan kod tambahan ini di antara "submitted" dan "content" seperti berikut:

  <?php if ($submitted): ?>
    <span class="submitted"><?php print $submitted; ?></span>
  <?php endif; ?>

  <div class="embed-image">
    <img src="http://localhost/drupal6/iklan.jpg" alt="Iklan kandungan"/>
  </div>

  <div class="content clear-block">
    <?php print $content ?>
  </div>

Kemudian buka fail style.css dan masukkan kod arahan ini untuk membolehkan elemen gambar yang kita masukkan tadi berada di bahagian kanan kandungan.

.embed-image {
  display: block;
  float: right;
  padding-left: 10px;
}

Simpan fail ini dan lakukan proses pembersihan cache sekali lagi. Dan anda akan dapat lihat elemen tersebut telah pun muncul pada semua kandungan yang dihantar menggunakan "Page" sahaja.

 
Penilaian: 
1
Average: 1 (1 vote)