Drupal 6.x

2011-02-07 為 form 增加新的 validation 規則

hook_form_alter() 本來是為了修改 form 的各種屬性
例如增加欄位, 修改欄位的預設值等等
但其實還可以增加 validation 規則和增加提交後的處理

增加 validation 規則:

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

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

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

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

[2012-12-21] 續 apache solr (二)

我測試的 apachesolr module 是 6.x-2.0-beta3

我發覺站內的內容並不是即時更新到 solr 的 index 之內的
應該是有以下的步驟:

  1. 新建/修改的 node 會在 Drupal 內部先整理好, 再一次送到 solr, 可選立即送, 而admin page 有一個數字顯示目前未被送出之 node 的數目
  2. Solr 收到更新名單, 但仍需要時間建立 index, 已建立的數字可以在 admin page 看到, 但 index 的更新不可以手動發動, 要等, 或者重啟 solr

暫時未看到有 patch core 的需要, 但我只測試英文內容, 不知道有否關連

Move / convert drupal multi site to separate instances (從 multi sites 分成多個 Drupal)

ok, multi sites is just too difficult to manage
我承認 multi sites 是太難管理了, 它帶來的好處比不上它的壞處:

1. file paths are crazy
2. upgrade and development of one of the multi sites are potentially dangerous
1. 檔案路徑太混亂
2. 為其中一個site 的模組升級和開發有可能影響到其他 sites, 需要很小心

so steps to convert multi sites settings to separate Drupal instance:
要從 multi sites 分成多個 Drupal:

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 了

Drupal, Views date format

Drupal 內需要顯示日期的時間有很多,
node 的內頁, index page 的文章按日期排列等等

但 Drupal 只內建long, medium, short 三種預定了的日期格式
需要其他的格式當然可以自己在 theme 的層面使用 php 的 date()
但其實 Drupal 的 date module 可以使用 Drupal 設定的方式改變輸出的格式
Administer ›› Site configuration ›› Date and time ›› format ›› add (admin/settings/date-time/formats/add)
就可以將 "short" 改成 Aug 21, 2010 之類的格式了

Node "back" referenc-ing 反向節點連結


Node reference 是一種 cck 的欄位
用以放入另一個節點, 建立節點之間的關係
簡單的樹狀結構便可以使用 node reference 來建立主從關係

但今次要討論的是 "反向的 node reference"
想像兩個 content type "project" 和 "task"
"task" 需要一個 node reference 欄位指定它的所屬 "project"
但 "project" 頁面便需要一個 list of tasks
而也不可能在 "project" 同樣建立 node reference 到 "task"
太費時了, 既是雙重輸入 (double entry), 又 "project" 可以有很多 "task", 難以管理

2010-07-05 Exploring ubercart

-
Free tags: 

Trying to setup a site for simple seats reservations.
ubercart is such a huge module set...
to be continue..

Pages

Google