Seperti yang kita ketahui, fail page.tpl.php adalah bertanggungjawab untuk mengendali dan memaparkan kandungan halaman berupaya "page" secara keseluruhan dalam Drupal 7. Di bahagian ini terkandung kod-kod dan pemboleh ubah yang boleh digunakan sebagai elemen untuk reka bentuk laman.

Salah satu kod yang disediakan dalam fail ini adalah "region" (sila rujuk aritkel: Konsep "Region", "Block" dan "Menu"). Region bertanggungjawab untuk memaparkan kandungan berbentuk blok yang dijana menerusi sistem Drupal. Blok membolehkan kandungan disusun dalam ruang region menerusi paparan grafik Drupal (GUI) tanpa memerlukan sebarang perubahan kod dibuat terhadap fizikal fail.

Walau bagaimanapun terdapat keadaan di mana perlu mewujudkan region yang baru diluar ruang yang dikawal oleh fail page.tpl.php. Sebagai contohnya di dalam kandungan (fail node.tpl.php) atau di bahagian komen (comment.tpl.php). Pemboleh ubah ini tidak wujud dan tidak boleh digunakan pada fail-fail selain daripada page.tpl.php.

Bagi membenarkan fungsi paparan region ini disalurkan ke bahagian fail yang lain, kita perlu mengisytiharkan panggilan fungsi dalam hook_preprocess_node() atau template_preprocess_comment().

Pertama adalah isytihar region yang diperlukan dalam fail .info di folder theme.

regions[node_region] = Node Region

Seterusnya isytihar kod ini dalam fail template.php supaya fungsi ini dipanggil semasa proses rendering dijalankan.

<?php
function THEMENAME_preprocess_node(&$variables) {
     if ($blocks = block_get_blocks_by_region('node_region')) {
      $variables['node_region'] = $blocks;
  }
}
?>

Tukarkan THEMENAME kepada nama theme yang anda gunakan (berdasarkan kepada nama folder). Pastikan anda padamkan semua cache selepas fail suntingan fail disimpan.

Dan akhirnya masukkan kod ini dalam fail node.tpl.php.

<?php if ($node_region = render($node_region)): ?>
  <div class="node-region">
    <?php print $node_region; ?>
  </div>
<?php endif; ?>

Sekiranya region yang diperlukan mahu diwujudkan dalam fail comment.tpl.php, isytiharkan panggilan fungsi ini menerusi THEMENAME_preprocess_comment(&$variables). Seterusnya lengkapkan panggilan kod rendering dalam fail comment.tpl.php.

Penilaian: 
5
Average: 5 (1 vote)