cck

CCK fields hook_form_alter CCK 欄位的修改

如果大家一直都有看我的 blog
相信都對使用 hook_form_alter() 很熟識
修改, 新增各種說明文字是小菜
將整個表單完全改頭換成志玲一樣美都沒有難度

這次是修改 CCK 的欄位
一個日期的欄位, 只是很簡單的需要多一點說明的文字,
再組合兩個日期
但我發覺 hook_form_alter 的 $form是沒有 CCK 的欄位的
因為 form API 的流程還沒有經過 CCK
所以需要延後處理$form
form API 的 #after_build 正是為這而設

[Contribution to module] CCK table field

CCk table field is an handy field that let user create a table output by entering

1|2|3
4|5|6

But it lags a check to ensure there is the same number of columns in each row

So there is the patch to fix:
Validate correct number of columns in each rows
http://drupal.org/node/1013224

解決樹狀分類層級不明的問題 solving the unknown level of taxonomy trees

Taxonomy 分類是可以多層的, 樹狀的
但有一個很大的問題, 就是 taxonomy_get_term(), node_load() 的時候的分類並沒有有關層的參數
即是, 雖然分類有層級, 但我並不知道這個分類是最頂層, 中間, 還是最底
這個問題一直很困擾, 因為像以下的例子:

  • China
    • Beijing
    • Shanghai

就不能輕易找出"城巿"了

最近找到一個比較可行的方法
1. hierarchical_select
一個方便的功能, 能令你的層級選擇的時候更人性化
我使用的設定是將每一層的分類都儲存, 而不是只是儲存末諯分類

2. content taxonomy
不使用原生的 分類連到 content type
而使用 cck 將 taxonomy 到 content type

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

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

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

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

2010-11-01 features module - 一個 Drupal 內建的 views 版本管理系統

一直以來, Drupal 都沒有有效的方法可以管理 views 的設定參數
意思是說, 例如測試環境對 views 模組所做的變更,
沒有方便的方法可以將它轉移到真的對外伺服器之上
而只可以用 mysqldump, 或者複雜的使用 views 的 export
相似的問題出現在 cck 之上

最新的解決方法就是 features 模組
它的主體功能是將選取的設定輸出到一個全新的, 自定名稱的 "設定模組"
讓你下載 解壓 上傳 啟用 "設定模組"
然後只要 views cck 設定有改變
features 模組會知道
並給予:
輸出 (輸出新的 "設定模組"到真的對外環境)
還原 (還原到 "設定模組"的設定)

而你從此便可以對 views 和 cck 的設定參數作 SCM 了

edit: Part 2 (2010-11-22)

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", 難以管理

2008-07-13 cck 6.x-2.0rc4

-
Free tags: 

既然views 和cck 已經成為Drupal 中不可或缺的元素,
當然也要寫一篇Drupal6.x cck 的rc 試用報告

如果你還在問什麼是cck, 它是用來做什麼的話,
建議你先看看 什麼是cck
這篇試用文假設讀者們已經有過簡單使用cck 的經驗為基礎的

假如還是有一點點不明白
用OOP 為比喻
內建的post, story 就是base class, 基類
cck 就提供了extend 擴展方法
令node 這個物件有它自己的子類
子類又有它自己的參數, 成員, 作為一種管理資料的手段

cck2.0 相對1.0 的版本
改變算不上多, 主要的加強包括內建了 "欄級權限控制"
和一些介面上的改進

Google