原文:Theming options: beginner, intermediate, advancedphp
一篇關於定製Drupal網站外觀的主題(Theme)的好文。css
注:如下Theme統稱爲主題,Theme,theming等字眼再也不出現。node
正文:ide
當開始一個Drupal站點的時候有許多關於主題的選項。爲了幫助你更快地熟悉主題相關內容,本文根據不一樣的熟練水平列出不一樣的選項供參考。函數
本文涵蓋了Drupal站點的外觀樣式與設計的不一樣的選項。另外一方面,關於站點的功能與特性等等,參看(譯文)Drupal站點建設:初級,中級,高級。工具
若是你正在建設第一個Drupal站點,而且也許你沒有CSS和主題的經驗,建議你一開始安裝(installing)和你的需求接近的開箱即用的主題。好比:佈局
在這裏要提醒你們的是,站點外觀的一部分屬性經過Drupal的管理界面就能夠輕鬆的修改,好比:學習
還有許多其餘的模塊(參看文檔documentation)能夠容許你經過管理界面定製主題的某部分。好比網站
若是你正在學習CSS設計,有一些方法能夠用來打造只屬於你本身的主題。你能夠複製一份主題並進行修改,或者在基礎上創建子主題(sub-theme)。ui
一個好的學習方法是修改現有的主題,使用一個在上文初級部分提到過的方法,或者複製一份在內核themes目錄下的主題。每一個主題都有本身的目錄,要複製的話,創建一個目錄,比方說sites/all/themes/mytheme。而後你能夠拷貝全部文件到此目錄下,好比拷貝themes/bartik文件到sites/themes/mytheme。而後修改一下.info文件,使得主題具備你本身想要的名字。
第二個選項是製做一個子主題(sub-theme),這樣未來升級起來更容易。這個方法的優勢是不用複製全部的文件。方法是創建一個目錄好比sites/all/themes/mysubtheme,而後放置一個.info文件到目錄中並放置一行說明,說明它的父主題("parent" theme)便可。
無論用哪種方法,配置主題的一個起點就是修改style.css文件(在你本身的主題目錄中),這樣的話,所做的修改將會覆蓋掉(override)默認設置。你能夠特事可能的CSS改變,這裏推薦一個很實用的工具 Firebug,能夠一點一點修改頁面的樣式並當即獲得效果上的反饋。
若是須要更多的信心,請移步Tools, best practices and conventions。關於CSS方面的知識,可參看wiki上的Cascading Style Sheet article。
另外還有一個第三個選項,有某些主題提供了 local.css 文件供修改。
下一步你就能夠從最基礎的starter theme開始製做子主題,並本身添加CSS文件來定製。
上面提到了Starter Themes,做爲一個基礎主題,一樣對於熟練地CSS設計人員來講也是很是好的節省時間的辦法,他們只要添加CSS代碼便可。可是,當你有了必定的主題方面的經驗,你大概已經準備好了基於主題的模板文件(template files)或者主題函數(theme functions)來進行工做了。
主題模板文件是一些在你的主題目錄中以.tpl.php結尾的文件。你須要作的知識創建包含你的主題的目錄,而後將模板文件放入其中。放入後的模板文件將會覆蓋掉默認版本的模板文件。你能夠放置多個.tpl.php文件到目錄中,以便覆蓋特定的內容類型的模板。開始的時候,你應該是但願從主要的關於頁面的模板文件開始進行修改。
主模板文件叫作page.tpl.php。這個文件包含的基本是HTML代碼,因此搞清楚如何使用它將不會特別困難。這個文件用於創建每個頁面的HTML。若是你修改了這個文件,你也就修改了一個頁面的佈局方式。
你能夠複製一份主模板文件,而後放置想要的HTML代碼或者PHP代碼以便頁面按照你要的方式來生成。在文件中幾乎全部的PHP代碼是條件判斷語句,用來當某些部分沒有內容的時候隱藏它們。
第二種創建你本身的模板的方式是覆蓋PHP函數,這包括找到原有的函數,用你的主題的函數覆蓋(overriding)它們。稍後咱們將討論這個方法。
更多關於如何創建你本身的模板的細節能夠參看Drupal Theming Guide, 以及Drupal書籍 books。一樣的查看forum 和 group 當中有關主題製做的高級內容。
然後,若是你願意的話,你能夠貢獻(contribute )出你設計(design)的主題,這樣能夠在主題方面幫助其餘人。
能夠查看converting 6.x themes to 7.x page來得知在Drupal 6版本和Drupal 7版本主題之間的不一樣之處。