2

我的 Shopware5 联系我们页面需要使用不同的设计模板。

目前这个表单是从“Form”控制器加载的,视图是“frontend/form/index.tpl”,如果我可以在“frontend/form/”目录下创建一个自定义模板,我可以解决这个问题。

我的问题是,当 url 或某个 id 是“contact-us2”或其他东西时,我如何告诉我的控制器使用新模板。

4

1 回答 1

0

有两种不同的方法可以做到这一点。

1. 在视图中切换:

您将能够在视图中获取 Url 段。因此,一种非常肮脏的方式:只需根据给定的 Url 决定 Smarty 中将包含哪个子模板。但正如我已经说过的,这不是你应该做的!虽然是一种方式...

2.通过事件订阅者切换:

只需创建一个 Shopware 插件,监听 Enlight_Controller_Action_PostDispatch_Frontend_Form 事件。然后检查确定应该加载哪个视图所需的任何内容 - 可能是当前的 Shops 区域设置或其他任何内容。做就是了

$this->View()->loadTemplate('frontend/path/to/your/file.tpl'); 

并且控制器应该加载您指定的模板。

亲切的问候

于 2016-03-14T20:37:44.193 回答