您在這裡

香港獨立媒體專案

joetsuihk's 的頭像
joetsuihk 在 2008-06-18 (三) 14:18 發表

原文: http://www.joetsuihk.com/node/102

香港獨立媒體 http://www.inmediahk.net

這次的job 是幫香港獨立媒體的網頁由舊有的openACS 轉到 Drupal
而香港獨立媒體是因為參照台灣的苦勞網而決定使用Drupal
經由苦勞的jimmy 大 而找到我
所以要先感謝jimmy 大的推薦, 和苦勞網借出全站source code 參考
特此鳴謝

content access
advertisement
cck
javascript tools
js calendar
BUEditor
comment rss
date api
Google analytics
Google sitemap
logintoboggan
mailout
related links
Captcha
Tagadelic
JQuery interface library
Message effects
calendar
views

轉正題, 上列的名單便是Drupal5.7 以外的使用模組名單
數起來不算太多
因為花了很多心思在"使用輕使", "最大化各模組功能" 的原則上
所以panels 都沒有使用
Drupal 5.7 core 也完全沒有修過
core 中的user.module 因為要增加搜尋用戶email 的功能, 使用了patch: http://drupal.org/node/113983
各附加的模組中, 修改了calendar 1.7 的一個bug
其餘都是css, theme 和"最大化模組功能"的結果

首頁完全使用自定義regions 作客製
將page.tpl.php 分為page-is-front.tpl.php 和 page-normal.tpl.php
分開兩組regions 放不同的block
首頁右欄的regions 因為不同於一般頁面, 所以特別定制了 page-is-front.tpl.php
放特別的regions 以顯示首頁專用的 block.

[inmediahk] content type 自動 taxonomy link
要實現的功能是 "自動放一個內容類型連結"
例如一個"專欄文章"的node, 便放一個連結到頁尾, 可以連結到"專欄文章列表"
"站外連結"node 便連到"站外連結列表"
難度在於"自動"的一部份
因為taxonomy 是用戶選的
連內建的forum 也需要用戶選擇正確的分類
所以連結不難, 但"自動化"便難

原本打算使用taxonomy, 再自己hack 一下form api, 讓它自動成為某一taxonomy
但後來用了一個更好, 更方便, 但沒有那麼直觀的方法
便是用views 的argument, 配合themes

首先在node.tpl.php內, 找出node 的type
但 $node->type 只有一個machine readable 的類型名字
連node_load() 也只有 一個英文的類型名字
番了api, node_get_types('name',$node) 才是正確得出內容類型名字的函數

而連結的地址是一個views (content_type/[node-type])
例如"專欄文章"便連到content_type/column
"站外連結"便是content_type/external_links
[node-type] 可以用 $node->type 找到
先建立一個views頁面, url 為 content_type
再在views 的 argument 內加上Node type
而其他的顯示設定和一般的taxonomy
便得到一個"偽"taxonomy link 了

又一次見證views 的強大
這個方法雖然沒有原生一個taxonomy
但同樣做到taxonomy 做的東西

[inmediahk] block 標題使用html, 特別的 'more' 連結
大家可能經常遇到一個問題, 就是想使用一個帶有html 的block title
我也看見過其他人在論壇上討論過, 得出使用一個module 的解答

但便用了另一個方法, 給大家參考
因為這次要將首頁右邊的一些block 的title 連到一些頁面
而它們都是使用views 的
很自然便使用views 的"標題" 功能, html 輸出
但我發覺一個小妙用
就是將標題用 包起, 放在在views 的 block header 中, 選用full html
這樣就連CSS 都不用改, 原生已經變成block title 使用的樣式了

還有一點要留意, 用這個方法的話,
empty text 是不會輸出title 的
所以, empty text 也要使用 加標題

這個方法的還有一個延伸應用
就是block 底的 "more" 連結
同樣, views 的footer 使用 便可以使用任何自定義的連結
而獨立媒體的行動日誌便是使用了這個方法
令一個views 的block 連到另一個 views 的頁面的