修改了一下這個版型的 node.tpl.php,給每一篇文章的底部加上了個小貼紙,這樣一來,有需要的人,或是支持這個小地方的,可以透過小貼紙,方便你把它給加到你常用的 web2.0 的 list 裏頭。目前放了四個 web2.0 的小貼紙,分別是 HEMiDEMi, del.icio.us, digg 和 Technorati。
這四個 web2.0 的服務,都是讓你方便把常去的網站,或是在網路上看到一個不錯的網頁,透過這些服務,登入到裏頭。一來,可以做為你私人的「網路書籤」,二來,可以推薦給更多人知道,本著所謂「好東西與好朋友分享」的精神,也順道看看別人對於你推薦的網頁有什麼看法,再者,可以幫你推薦的網頁打個小廣告什麼的。
舉個例子,我在 del.icio.us 裏頭的書籤的聯結,裏頭我整理了不少與 3D 動畫相關的,當然還有一些像是 Linux 的啦,Apple 的 MacBook 啦(好吧,我承認,我真的很想要一台 MacBook Pro,不過好貴呀)之類的。然後我也在 HEMiDEMi 註冊了一個帳號。
目的:
在你的每一篇文章(node,ex, blog)的最下頭,加上現在 web2.0 很流行的小貼紙。
必要條件:
- Drupal 4.7
- 使用 phptemplate 的 theme
- 懂一點點 php
作法:
- 修改你安裝的 theme 裏頭的 node.tpl.php
- 決定你想把小貼紙放在哪,我是把它放在文章的最末端(links 的前頭)
- 我決定加上 hemidemi, del.icio.us, digg 和 technorati 等的小貼紙,然後就前往各家 social bookmarks service 的官網,找到他們加小貼紙的 url。
- 新增一個 stickers 的 css class 在你的 style.css。
- 加上如下的程式碼就搞定了 :) (其中的 div=“stickers” 這一段就是我加上去的)
in node.tpl.php
[ ](http://www.hemidemi.com/user_bookmark/new?title=&url=&description=&via=sticker) [ ](http://del.icio.us/post?url=&title=&tags=) [ ](http://digg.com/submit?phase=2&url=&title=&bodytext=&topic=) [ ](http://www.technorati.com/faves?add=)
in style.css
.stickers { text-align: right; }
in template.php
在 ooxx_node() 這個 function 裏頭(ooxx 代表你用的 theme 的名字),新增了一個 full_url 的變數給 theme,記得要加個 global $base_url; 在 ooxx_node() 的開頭,不然無法存取到。
'full_url' => $base_url . url('node/'. $node->nid),
心得:
- 使用了很直接的方法來得到 full_url,如果直接拿 node_url 這個變數的話,會得到相對路徑,這在站內的聯結是 ok 的,但要給別人時就不行了。
- 我在想,好像改寫 theme_node 這個 function 時,可以 ooxx_node 也可以 phptemplate_node,還不是很清楚差別,即使看了官方的文件也還是搞不清楚。
- drupal 官方的 handbook 雖然有很多寶,但有找東西還真是有點麻煩,尤其有時還得看完落落長的 comments 才會比較知道比較好的作法時,就覺得有點累人了~
- 有不少貼紙的參數都不曉得要給啥值,像是 tag, description, topic…
參考資料:
- Theme developer’s guide
- PHPTemplate Theme Snippets
- Using Theme Override Functions
- Themeable functions
最後,我也在 tw-drupal(現在改叫 Drupal Taiwan 了),一個推廣 Drupal 這套 CMS 的台灣社群裏頭,放了這篇。
PS. 後來,我發現,原來 Drupal 有個叫 Service links 的 module,做的事就是加小貼紙…