2017-04-20 159 views
0

我想知道在啓用主題時是否可以配置一些商店的選項。通過主題配置配置prestashop

讓我解釋一下,我已經在主題zip的根目錄下生成了一個config.xml來啓用/禁用一些模塊或鉤子。但我想做更多。

確實,我希望能夠,例如,啓用CCC「移動JavaScript到最後」時的主題。

我看到一些主題(including the community theme)在主題文件夾中包含​​3210。我經常看到像<ccc available="true" />這樣的東西。

但我不確定它做了什麼。它有什麼作用嗎?

我無法找到該config.xml文件的任何參考,有沒有什麼辦法來實現我想要的?

使用最新的Prestashop 1.6。

回答

0

這些行檢查配置值,但只有當<ccc available="false" />

所以如果你有<ccc available="true" />你是說你的主題是CCC不兼容,如果店內有CCC啓用與否並不重要。

如果您設置,爲false,安裝會檢查是否涉及到CCC設置將被禁用,否則會拋出一個錯誤,他們的CCC配置不會與你的主題工作的用戶。

您可以看到特徵定義here

'ccc' => array(
     'attributes' => array(
      'available' => array(
       'value' => 'true', 
       /* 
       * accepted attribute value if value doesn't match, prestashop configuration value must have those values 
       */ 
       'check_if_not_valid' => array(
        'PS_CSS_THEME_CACHE' => 0, 
        'PS_JS_THEME_CACHE' => 0, 
        'PS_HTML_THEME_COMPRESSION' => 0, 
        'PS_JS_HTML_THEME_COMPRESSION' => 0, 
       ), 
      ), 
     ), 
     'error' => 'This theme may not correctly use PrestaShop\'s "combine, compress and cache" options.', 
     'tab' => 'AdminPerformance', 
    ) 

所以,如果你在設置你的​​3210 <ccc available="false" />它會檢查,在check_if_not_valid陣列中的所有四種配置都設置爲0,否則是會拋出一個錯誤信息This theme may not correctly use PrestaShop's "combine, compress and cache" options.

至於配置主題安裝的設置,我沒有看到一種方法來做到這一點與XML配置沒有重寫AdminThemesController類,但我猜你想分配這個主題,所以重寫不是一個選項。

你可以做的是安裝一個簡單的配置設置模塊以及連接到displayAfterThemeInstallation的主題。

public function hookDisplayAfterThemeInstallation($params) 
{ 
    $theme_name = $params['theme_name']; 
    if ($theme_name != 'mythemename') { 
     return false; 
    } 
    // Enable Move JS to bottom setting 
    Configuration::updateValue('PS_JS_DEFER', 1); 

    // Optional text or html to display 
    return 'Your settings have been changed'; 
} 
+0

這樣做,謝謝。 :) –

+0

社區主題實際上包含了一個類似的主題:https://github.com/PrestaShop/community-theme-16/blob/dev/modules/ctconfiguration/ctconfiguration.php –

+0

s/theme/module/... –