總有很多原因讓你不喜歡在 Drupal Block 中編寫 PHP 代碼。那如何是好?當然可以自建一個模組處理。但如果對模組認識不多,其實也可以透過版型來解決的。不同方法各有優點,自我按情況決定吧。
透過版型修改 BLOCK 的 PHP 內容跟寫版型是完全沒有分別的,看看以下示範代碼:
首先按一般方式建立一個 BLOCK,然後掛在喜歡的區域中,再編寫『版型下的 block.tpl.php』
<div class="content"> <?php print $block->content // 原本的 BLOCK 內容 ?> <?php print '<br/> BLOCK ID:' . $block->bid . '<br/>'; // 取得 BLCOK ID,給下面使用 ?> <?php if($block->bid == '10'): // 判斷是否顯示 ?> <?php print '改變由這裏開始,編寫您自定的 PHP 代碼'; ?> <?php endif; ?> </div>
執行效果:

PHP 代碼簡潔到沒法再解釋。
如果只有一個 BLOCK,可以依 Drupal 版型規則建一個獨立 .tpl 檔案處理,這更可省略判斷是否顯示的代碼。我們可以建立 『block-block-1.tpl.php 』,然後可以任意修改。
值得注意的是:這裏的 "1" 跟上面例子的是有分別,如何找呢?
可以在 BLOCK 管理頁面看路徑:

也可以使用 PHP 列印出來:
<?php print $block->delta; ?>
透過 Devel Themer 看得更詳細:

當然透過 HTML 也可以的,不說了。

寫下您的回覆