天天看點

《Drupal實戰》——第2章 為圖書添加各種字段 2.1 下載下傳并安裝常用子產品

2.1 下載下傳并安裝常用子產品

2.2 添加圖書内容類型

2.3 為圖書添加對應的字段

2.4 管理作者字段的顯示

2.5 使用node clone快速添加測試資料

2.6 小結

現在讓我們下載下傳最常用的一些子產品。在搭建網站的時候,我總是喜歡在開始的時候把相關的、自己确定一定會使用的子產品一次性地下載下傳下來。我們現在搭建的是電子商務網站,自然離不開ubercart。drupal 7的使用者有兩種選擇,一是ubercart,二是commerce,這兩個子產品的作者都是rszrama,裡面的功能也極其相似。commerce是後來寫的,對ubercart在多個方面做了很大的改進。可能會有人問,為什麼不用commerce作為例子?這是因為我對ubercart更熟悉一些,commerce有很多改進,當ubercart 3.0的正式版出來以後,兩者之間的差距縮小了很多,并不像有些人所說的那麼大。還有一點,無論是ubercart還是commerce,用來搭建中國的電子商務網站都需要大量的定制、改造,這些工作在ubercart上,我做了很多的積累。

我下載下傳的常用子產品如圖2-1所示。

《Drupal實戰》——第2章 為圖書添加各種字段 2.1 下載下傳并安裝常用子產品

views、ctools、panels、entity、rules、flag、views slideshow是必備的子產品,其他的則是項目中常用的子產品。這些子產品的功能,我們将會在後面逐一介紹。在啟用這些子產品的過程中,遇到了子產品間存在依賴關系的問題,如圖2-2所示。

《Drupal實戰》——第2章 為圖書添加各種字段 2.1 下載下傳并安裝常用子產品

views slideshow:cycle子產品所依賴的另一個子產品libraries不存在,而當一個子產品依賴的子產品不存在時,這個子產品就無法啟用。子產品之間的依賴關系是在info檔案裡面定義的,如果我們打開該子產品的info檔案,就會看到這樣的代碼,如圖2-3所示。

《Drupal實戰》——第2章 為圖書添加各種字段 2.1 下載下傳并安裝常用子產品

這種依賴關系在子產品的啟用和解除安裝時會用到。以views slideshow:cycle和libraries為例,在啟用子產品的時候,首先需要啟用libraries,然後才能啟用views slideshow:cycle;在子產品解除安裝時,順序恰好相反,必須先解除安裝views slideshow:cycle,然後才能解除安裝libraries。

libraries是管理各種jquery庫檔案的一個基礎子產品,很多具體的jquery效果子產品都依賴于這個子產品。我們下載下傳安裝libraries子產品,注意,安裝子產品在drupal 7下面的含義和drupal 6下面的含義是不同的。在drupal 6下面通常就是安裝并啟用的意思;在drupal 7下面指的是下載下傳并解壓縮到drupal的子產品檔案目錄下面。

現在讓我們啟用子產品views slideshow:cycle,如果我們隻選了views slideshow:cycle,而沒有選中libraries子產品,此時會出現一個提示頁面,如圖2-4所示。

《Drupal實戰》——第2章 為圖書添加各種字段 2.1 下載下傳并安裝常用子產品

我們單擊“繼續”按鈕,這樣系統便會先啟用libraries子產品,然後再啟用views slideshow:cycle子產品。此時,我們啟用了以下這些子產品:chaos tools、page manager、views content panes、features、field collection、flag、hierarchical select、hierarchical select taxonomy、entity api、entity tokens、libraries、pathauto、token、panels、rules、rules ui、cart、order、product、store、payment、shipping quotes、cart links、userpoints、better exposed filters、views、views bulk operations、views slideshow、views slideshow: cycle、views ui、fivestar、voting api。

我們在子產品的清單頁面中會看到更多的子產品,這是因為一個子產品可以由多個相關的子子產品共同組成。這裡的資訊量比較大,如果你剛接觸drupal不久,按照我所說的子產品啟用即可,不需要現在就了解這些子產品的具體功能。我們不可能把每個子產品的安裝都詳細地示範一下,因為每個子產品的安裝都大同小異。