2017-04-20 64 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/... –