Drupal 7 主題(Theme)選擇:初級,中級,高級(譯文)

原文:Theming options: beginner, intermediate, advancedphp

一篇關於定製Drupal網站外觀的主題(Theme)的好文。css

注:如下Theme統稱爲主題,Theme,theming等字眼再也不出現。node

正文:ide

當開始一個Drupal站點的時候有許多關於主題的選項。爲了幫助你更快地熟悉主題相關內容,本文根據不一樣的熟練水平列出不一樣的選項供參考。函數

本文涵蓋了Drupal站點的外觀樣式與設計的不一樣的選項。另外一方面,關於站點的功能與特性等等,參看(譯文)Drupal站點建設:初級,中級,高級工具

初級主題選項

若是你正在建設第一個Drupal站點,而且也許你沒有CSS和主題的經驗,建議你一開始安裝(installing)和你的需求接近的開箱即用的主題。好比:佈局

  • drupal.org上免費的社區貢獻(contributed themes)的主題。其中一些主題的演示(demo)能夠到Theme Garden查看
  • 其餘的Drupal主題(Drupal themes),包括免費的和付費的等等。
  • 僱傭Drupal主題設計人員(Drupal designers)打造獨一無二的主題。

在這裏要提醒你們的是,站點外觀的一部分屬性經過Drupal的管理界面就能夠輕鬆的修改,好比:學習

  • 改變某個主題的顏色規劃(color scheme),好比內核自帶的Bartik主題(版本6.x須要Color模塊)。在Drupal 7 中這個操做變得相對容易。
  • 改變缺省的站點logo,標語和站點圖標(favicon)。
  • Field模塊(在Drupal 6中叫作CCK,Content Construction Kit);主要用來定製新的內容類型,它提供了改變標籤和字段(Field)的顯示順序的能力。
  • 在用戶界面上便可進行定製的主題,好比Acquia的Drupal Gardens(定製完還能夠導出,用到本身的站點上),Lollabot的 Buzzr。另外還有一些能夠自動生成主題的工具,參看 theme generators

還有許多其餘的模塊(參看文檔documentation)能夠容許你經過管理界面定製主題的某部分。好比網站

  • Views模塊:能夠顯示節點(nodes)的列表。這些列表可根據須要顯示的字段來進行配置。
  • 一些衆所周知的使用了Skinr模塊的主題(themes using the Skinr module),他們爲Drupal用戶提供了改變樣式的選項,並且不須要編寫CSS。

中級主題選項

若是你正在學習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版本主題之間的不一樣之處。

相關文章
相關標籤/搜索