Prestashop 1.7-为子主题添加自定义挂钩

时间:2018-07-24 12:47:27

标签: prestashop prestashop-1.7

如何修改子主题的钩子?我以经典主题为父。

这是子主题的theme.yml:

parent: classic
name: steel
display_name: steel
version: 1.0.0
assets:
  use_parent_assets: false

global_settings:

  hooks:
    modules_to_hook:

      newHook:
        - ps_languageselector

  image_types:
    cart_default:
      width: 125
      height: 125
      scope: [products]
    small_default:
      width: 98
      height: 98
      scope: [products, categories, manufacturers, suppliers]
    medium_default:
      width: 452
      height: 452
      scope: [products, manufacturers, suppliers]
    home_default:
      width: 250
      height: 250
      scope: [products]
    large_default:
      width: 800
      height: 800
      scope: [products, manufacturers, suppliers]
    category_default:
      width: 141
      height: 180
      scope: [categories]
    stores_default:
      width: 170
      height: 115
      scope: [stores]

如您所见,我已经覆盖了父主题的hooks数组-删除了所有默认设置并添加了我创建的新主题。我还向tpl文件{hook h='newHook'}添加了hook标记。 (顺便说一句,我还必须复制image_types数组,否则会出现错误-我也必须复制它吗?这有点多余)

问题是-模板完全不变。在管理面板的“位置”页面中,还列出了所有旧的挂钩。

我试图将shop设置为经典模板,然后将其设置为child子模板以“重新加载”它-没有帮助。我还使用了Reset to defaults按钮。

我试图也修改父主题的theme.yml,也没有做任何更改。

启动:

我检查了ps_hook db表并找到了新的钩子。但是正如您在上面的配置中看到的那样,语言选择器应该出现在其中。但事实并非如此。它也出现在位置管理页面上,但仅当我选中“显示不可定位的挂钩”时才显示。

而且-它不适用于父主题-分配给新钩子的任何模块都不会出现。修改旧的钩子很好用。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。

似乎前端上显示的每个钩子都必须具有以display开头的名称。我的不是那样的。