您在這裡

Drupal 6 可否在自訂區塊自行寫程式撈資料顯示?

kenming's 的頭像
kenming 在 2008-03-08 (週六) 19:36 發表

Drupal 6 的 Views 2 模組目前功能還蠻粗糙,甚至連 Event 包括 start_date, end_date 等欄位都無法讓其顯示。說真的, Drupal 若是沒有 Views 模組,好像去了一大半,許多 "View" 都非常難於客製化自行列出。

現在也無法再等 Views2 的正式版本了,個人是打算是否可以在自訂的區塊內寫上程式碼,透過 Drupal 6 APIs 撈資料來顯示於區塊上呢? 這是權宜之計,是打算等 Views 2 完整提供後就要換掉。

但是我找了 Drupal6 相關的設計文件,不知道該如何找,一直都沒看到有這樣的 Documents or Tutorials ,可否有人可以提供協助或建議呢?

我這篇文章是多問了,當然是可以,在 PHP snippets 這裡可以找到許多相關文章與範例。

我想請教一個功能是,當在首頁的自訂的 Block 顯示 10 筆 List 資料,而在最後有 {Read More ...} 讓你點選後可以列出所有的列表資料,這利用 View 模組當然是很簡單,但是若是自行撰寫程式時,是否是寫兩段程式碼,一段 for Block;另一段 for Page?

另一個額外的問題是, 若 Block 命名為 123_block, 那麼請問它的自訂樣式的檔名該為何? 是 123_block.block.tpl 嗎? 同理,若為 123_page_view, 是否自訂樣式是在 123_page_view.page.tpl ?

1. 是的。這時就會覺得 Views 非常的好用。

2. 如果是使用預設的 phptemplate 這個 theme engine 的話,它對 page, block 有所謂的 suggestion list,順序如下:

page: (ex, http://www.example.com/node/1/edit)
page-node-edit.tpl.php
page-node-1.tpl.php
page-node.tpl.php
(page-front.tpl.php,是首頁的話)
page.tpl.php

block:
$suggestions[] = 'block-' . $block->module . '-' . $block->delta;
$suggestions[] = 'block-' . $block->module;
$suggestions[] = 'block-' . $block->region;
$suggestions[] = 'block';

參考 ~/themes/engines/phptemplate/phptemplate.engine