為了回應 Jimmy, 阿翔, kid814 等人,同時也想試著寫個 Drupal 的模組來練習一下,於是有了這個 Thumbview Field 的模組誕生了~

幾個月前,我寫了篇「Drupal:許每篇文章一張圖」,目的在做出 Cool Hunting 網站上的視覺效果來,使用了 Computed Field 這個模組,搭配 htmlparser 來抓出每篇文章的第一張圖,然後再使用 Views 與 Imagecache 來秀圖。過程非常的複雜,容易出錯。幾個月後,有了這個模組,目的是在簡化整個過程…
接下來的全文,會有非常多的圖,請有心理準備。
首先,我在自己的機器上,使用 Drupal 架了個臨時站,然後發表了幾篇文章,如下圖:

緊接著,我總計安裝了如下幾個模組:CCK (Content), Imagecache, Views 以及敝人寫的 Thumbview Field:


接著,我挑了網站上文章類型為 blog 的,要讓它可以自動產生一張縮圖。現在就讓我們在 blog 這個 node type 上頭動些手腳:

我在上頭新增了一個 Field,Field type 是 Thumbview Field:

於是乎,現在每一篇 blog 都有一個叫 thumb(隨意自行定的名字)的 field 了:

感覺上,應該就大功告成了? 其實還沒 = = 接著我想利用 Imagecache 來產生縮圖(PS. 我使用的 Imagecache 有修改過,請至本文章最下頭下載)。我先使用 Imagecache 產生一個叫 square100 的,然後設定了一下,目的在讓它產生一張 100x100 的正方型縮圖來:

接著,我回到 blog 這個 content type,在它的 Display Field 裏頭,設定 Teaser mode 時,使用剛剛產生的 square100 來秀:

以為大功告成了,很開心地連到首頁,卻發覺什麼也沒變化,有種被耍了的感覺…

這是因為 Thumbview Field 的設計理念是,在新產生或修改一篇文章時,才去找出文章中的第一張圖來,然後存起來,留到有人要來看時,就可以直接拿去用,這樣程式跑起來會比較快。也就是說,讓寫文章的人覺得網站在更新時慢沒關係,因為寫文章的人,通常都是自己,不會太在意這一點點 lag。但是讓來覽瀏的人快一些是有好處的,至少他不會因此而不想再來你的網站 :p
我加寫了一個功能,透過 node_operations 來模擬「修改」或「編輯」這個行為。使用的方式很簡單,先連到 Administrator -> Content management -> Content,然後挑選出你要修改的 node 來,接著在 Update options 裏頭選「Update the selected nodes」,就行了:

經過上面這個一個步驟,你剛剛選出來的 node,都被「更新」過了。於是你再連回首頁,會發覺每一篇都多了一張小縮圖了:

檔案下載
- Thumbview Field
- 修改過的 Imagecache(請先安裝原來的版本,然後再把這個壓縮檔解開來,會有一個 imagecache.module,覆蓋過去即可)
後記
- 後來我發覺,這是個命名得很爛的模組。Thumbview 是取其「縮圖」的功能,但如果認真想想,它真正做的事,其實是抓出文章中的第一個圖片聯結,就這樣而已。至於要把這張圖以什麼樣子秀出來,則是透過 Imagecache 與 Views 來做到的,跟它根本沒有關係 = = 換句話說,它應該取個叫 FirstImg Field 什麼來的才對…
- 為了讓這個模組正常作用,還得修改 Imagecache,感覺不是一個好作法,有想好不用動到 Imagecache 的作法了,不過有點懶 :p
- Drupal 6 已經出來,現在就等 Views 與 CCK 的穩定版出來,聽說 Form API 與 CCK 改了很多,藉時這隻程式一定得改寫,不過我其實沒有把握,會有多少人對這個模組感興趣 @@
- 寫這種 step-by-step 的文章,而且還放了滿滿的圖片,說明卻只有一點點,感覺挺有趣的,像是一位不負責任的推銷員,隨意地把腦子裏的東西唸完後,就覺得了事了似的,哈。
- Drake's blog
- 7281 reads
- Email this Blog entry



9 comments
Drake,看過一些你在DTW上的文章,讓我這樣的菜鳥非常容易搞懂。
你寫的文章非常到位,很喜歡,我個人希望你能介紹幾個“DRUPAL網站案例的構建”過程文章。并且給予一定的提示幫助。
比如:目前大多數的網站大致分為幾類:
1:新聞模式的
2:blog日志模式的
3:圖片/相冊模式的(也許是模板展示之類的)
4:論壇/BBS/FORUM
5:購物、商品展示之類的(這一累類似商業網站)
用到的模組,和難點,以及實現同一個展示/外觀效果使用的不同方式、不同方式的利弊共用等。
親自動手實驗室學習的最基礎,但像我等初學乍練的新手,往往是不知道從何處入手,所以提了這個要求,希望 Drake有空的時候考慮一下,為我們好好講講。
先謝謝哦!
Zerro, 快速地回應你的留言,說一下我目前的想法:
首先非常感謝你花了這麼多時間,留了段以稱讚開頭的留言,而且看得出來,還是想了一陣子才有的內容,讓這段留言顯得彌足珍貴 :)
我使用 Drupal 的經驗還沒有到那麼豐富,主要的優點可能是,我會盡量以「一般人看得懂,但又不是把大家當完全不懂的人」的心態來寫文章,雖然也常常會有無法達到這個目的的時候,不過我的確是有盡量在注意我寫的文章內容的「普及性」。
就 CMS (Drupal 就是一個 CMS 的實作)來說,所有在 Internet 上的網站,都可以算是 CMS 的一種呈現,所以呢,Drupal 可以做到的事,遠比我們想像中的廣一些。不過你提到的這五類(portal, blog, photo, forum, e-commerce)則是目前最熱門的 :)
我想來想去,就一直不覺得現在我有什麼值得寫下來,對你(對更多人當然是更好)有直接幫助的,所以我決定把你的問題丟到你所說的 DTW(是指 DrupalTaiwan 是嗎?),讓更多人參與這個議題,最後再統整起來,說不定會有讓人很滿意的觀點出來 :)
http://drupaltaiwan.org/forum/20081110/2768
YES!
感謝你的回復,期待這個話題可以有個圓滿的總結,以幫助我們這些渴望學習并深究DRUPAL的入門學生。
多謝啊!
我會經常來你的網站學習的,希望您能經常寫些東西,相信很多像我一樣的瀏覽者、朋友會很期待你的文章。
PS:
DTW就是指drupaltaiwan.org
我看了很多相關資料,還是做不到<安裝Thumbview Field >的一步
始終就是卡住了>~<
那個Thumbview Field 下載了後,只有一個 thumbview_field <<沒副檔名的>>
那我在後面加上.module又不行 ><
直接上載又不行 ><
到底是我解壓縮有問題嗎??
==========================================================
我想用你這個模組來實現
每個drupal站的會員的部落格的每篇blog都自動做一篇縮圖,通通放在一個頁面上,
這樣能實現嗎?
你可以把抓下來的檔案,副檔名改成 .tar.gz 再試試看喔 :)
請問你的最後一個步驟”使用 Views 來只秀出縮圖”及”配合 CSS”,可以詳細說明嗎?
我不斷的爬文,知道"views"相當厲害,可是我卻怎麼學到看不懂
麻煩你說明一下,拜託!拜託!
建議可以去 http://www.joetsuihk.com/3_drupal_views_theming_views 與 http://www.joetsuihk.com/4_drupal_theming_views ,JoeT 介紹得非常詳盡。
这个idea很不错, subscribe下, 有机会可以在项目中使用。
哈哈~感覺中了open source的毒越來越深啊...
Post new comment