Development

查找一個選單的欄位的可選項 Get display values of a dropdown list

在 views 的 $views->exposed filter 可以提取已經提交的表單值
但除了值之外, 一般還需要欄位的其他資料,
例如欄位旳值和顯示值不一樣的時候,

可以使用:

[Contribution to Doc] Webform confirmation page

需要修改 webform 模組的完成頁面,
而且需要根據 webform 的內容客製化,
例如 "感謝[firstname] [lastname] 的聯絡, 我們會盡快回覆."
Google 一下, 找到 Confirmation Page Usage of Form Components or Variables

但根據了指示仍不得要領, 發現了一個 bug,
webform.submissions.inc 的路徑改變了, 所以就成就了以下的修改
http://drupal.org/node/600696/revisions/view/738336/1354722

Computed Field: 在另一個檔案提供代碼算式 compute in file

Computed Field 是一種 cck 使用的 field type,
類似 imagefield, 但主要提供是一個地方,
放的是一個算式的結果.

例如有中英數三個整數欄位,
我可以加一個 computed field, 儲存的數值是他們三個的和
然後我就可以輕鬆根據這個數值, 使用 views, 例出, 排序學生們的總分

Computed field 提供一個 textarea 輸入算式, 但也提供以特定的函數命名提供算式
它自己的說明清楚提示這個命名, 但就沒有這個函數應該使用的參數和返回值, 實例如下:

建立一個自定義的區塊模組, 管理複雜的內容和權限設定 custom block module for complex block content and visability

專為右欄複雜的內容和複雜的顯示設定而建立一個模組管理有幾個好處:

1. 返回NULL 便可以令系統跳過
很方便的就可以處理不顯示的狀態
先檢查顯示與否, 不顯示或權限不足便返回 NULL

2. 源碼管理軟件 (scm) 可以助管理
傳統的 add block 方法將block 內容和顯示的邏輯放到資料庫
不利於 scm 管理
而且使用文件的方式儲存代碼更加有更新容易, 除錯容易等等的優點
身為開發者, 而不是使用者, 有責任為網站提供一個更容易維護的環境

3. 避免將錯誤的PHP 放到資料庫
在顯示設定很多時候都會用到 PHP code
而錯誤的 syntax error 的 PHP code 放到資料庫,
會為頁面不能顯示, 也不可以使用 web 介面修改
要到資料庫中修改, 很麻煩

Multiple display::attachment to views

Display::attachment 是 views 2.x 新加的一個 display 類
用法類似block, 但它的特別之處是它的位置一定要在另一個 display::page 的前或後
所以才有 "attachment" 的名號

例如, "最近文章" (/recent_post) 前需要一個 "特選文章" 的block
當然可以建立一個 block, 然後使用 region 的方式放到 "最近文章" 頁面前
但也可以使用 attachment, attach 到 page 的前面就可以了

attachment 都有自己的 templates, 操作上和原理上都和一般的 display 沒有大分別
但比起 region+block 的方式就方便多, 也不需要自己增加 region 了

2010-05-18 Drupal db_query vs views 的比較, 開發時要注意的地方

-
Free tags: 

一直看到國內的進階 Drupal 教程都會提到使用 db_query() 用以代替 views, 例如: http://drupalchina.org/node/9021
觀點大概是 views 使用太多資源了, 使用 db_query() 能直接存取數據資料, 性能上會比較好,
也更自由等等

以下是我的個人意見:

雖然是進階的教程, 但開發者在有其他可使用的方法之下直接存取是不可取的, 原因:

iPhone opera mini deep review from developer view, and my guesses.

As soon as a break through app, Opera mini lands, I find it exciting in both:

  • browsers war happens in iPhone, too
  • it is VERY FAST

I am not going to write a user level review, but from developer/technical point of view. Starting from least mentioned in media:

Pages

Google