五月 29, 2016 | 後端和Drupal

Features打包大哉問:究竟如何打包Admin Views與Commerce Views

Features是協同開發合作上面,不可或缺的一環,有好的開發流程,才能夠如實的作出盡善盡美的成品。而如何用Features打包整體的環境是很重要的一環,然而在打包的過程當中,常常我們都會遇到一些無法打包的狀況,而這次的例子,主要是針對一些系統或模組產生出來的Views,該如何進行打包。

前言

Features是協同開發合作上面,不可或缺的一環,有好的開發流程,才能夠如實的作出盡善盡美的成品。而如何用Features打包整體的環境是很重要的一環,然而在打包的過程當中,常常我們都會遇到一些無法打包的狀況,而這次的例子,主要是針對一些系統或模組產生出來的Views,該如何進行打包。

何種狀況

在Drupal的眾多模組裡面,有些模組安裝後,預設會產生出一些Views,而這些Views是無法被打包的,例如:Administration ViewsDrupal Commerce...
這些模組所產生出來的Views,是可以於線上端修改,或著本機修改,但是若要運用Features打包,則會發現無法找到對應的Features這個殘酷的事情。

找不到任何Administration Views/Commerce產生出來的Views於Featues畫面

解決方法

因此,以下提供一個簡單的解決方式。

  1. 複製想要修改的Views,並且照你所想修改吧
    首先進入系統的Views之後,Clone這個Views,並且照您所想,修改任何的欄位吧。在飯裡裡面取名叫做custom order(機器名稱為:custom_order)

  2. Unset原本預設的Views。(於自己的Custom Module裡面)

function mymodule_views_default_views_alter(&$views){
      //array裡面輸入機器名稱
      $views_to_disable = array('commerce_products','commerce_orders');
      foreach ($views_to_disable as $view) {
        if (isset($views[$view])) {
          unset($views[$view]);
         }
      }
}
  1. 使用Features打包他吧
  2. 完成。

結論

Features是協同開發非常重要的一環,Views更是整個Drupal的核心中的核心,若遇到無法打包的狀況,真的會讓人非常的沮喪,用上述的方式,則可以完美的解決無法打包的問題。Enjoy!