貴哥版的 Drupal 圖片管理方案


管理圖片並不是 drupal 的強項。 認真搜尋爬文之後, 我得到這樣的結論: 直至 drupal 7 為止, 圖片/相片的管理, 還是並未出現一個最佳的解決方案。

貴哥版的圖片管理方案, 採取自由軟體世界 「分工互助」 的概念, 分為兩部分。 第一部分, 先用另外的相片架站軟體 piwigo 或 zenphoto 上傳 及管理大量照片。 強烈建議檔名及目錄名稱 完全避免採用中文!

第二部分, 在 drupal 裡面建立一個 「只透過 <img src="..." /> 引用而不真的儲存相片」 的內容類型:

  1. 「架構」 => 「內容類型」 => 「新增內容類型」。 取名為 「相片」 好了。 按下 「儲存及新增欄位」, 進入欄位管理畫面。
  2. 刪掉 「Body」 欄位 -- 我們不需要 「長文字欄及摘要」。
  3. 新增一個欄位叫做 「相片網址(及連結)」, 欄位類型是 「文字」。 最大長度設為 1020 比較保險。
  4. 順便 「新增現有欄位」 把 「標籤 (Tags)」 加上去, 方便日後在製作幻燈片或其他特效時時, 可以選用 tags 作為相片分類/過濾的條件。
  5. 設定 「相片網址(及連結)」 欄位的時候: (1) 勾選 「必須填寫欄位」 (2) 「文字處理」 選取 「過濾文字」 而不是 「純文字」 (3) 「預設值」 這樣填: <a href="連結網址"> <img src="相片網址" width="200" title="說明文字" alt="給文字瀏覽器看的說明文字" /> </a>

設定 「相片網址(及連結)」 欄位的時候, 我也在 「說明文字」 寫了一長串提示:

請填入 「連結網址」、 「相片網址」、 希望把相片縮放到多寬、 「說明文字」、 「給文字瀏覽器看的說明文字」 等等內容。 (後兩者可相同) 如果不需要連結, 可以把外圍的 &lt;a href="連結網址"&gt; 跟 &lt;/a&gt; 刪掉, 只留下 &lt;img ... /&gt;

(因為這段文字會被當做 filtered html 處理, 所以要用 &...; 來表達 & < > 等等字元。)

採用這個方案, 主要的相片管理還是以 piwigo 或 zenphoto 為主。 只有少數需要搭配 views 或其他模組製造特效的情況, 才需要用這個新的內容類型建立相片。 至於一般內文要用到的圖片/相片, 就直接把 <img ... /> 貼在內文的原始碼就好了, 不需要用這個內容類型建立相片。

以今日的資訊教育的標準來看, 讓貼相片的用戶寫原始碼好像有點殘酷; 不過我認為不論是從 長線學習投資 的角度來看, 或是從後續彈性的角度來看, 這都是目前看來最好的處置方式。 比方說, 如果採用官方的 ImageField 方式, 不僅一張相片不能在多處重複使用, 想要 「讓相片變成超連結」 也有點困難。 (Link Image Field 不能指定超連結; Rewrite results 有點複雜) 相形之下, 請貼相片的用戶直接填 html, 彈性就大多了。 而且這又不是叫他徒手撰寫整篇 html, 只不過是照著樣版填寫而已, 應該不算太殘忍 :-) 總之後面的篇章就要以這個方案為基礎啦。