我正在开发一个X-Cart 5网站,需要在主页(a.k.a.店面)添加自定义html。
使用X-Cart开发文档,我创建了一个自定义模块,并使用@ListChild指令将修改添加到Crisp White模板。
但是,由于我将ListChild与 list = center.bottom 一起使用,我的自定义模块会显示在每个页面上。我们只希望代码只出现在主页上。
我有几个问题:
我可以使用哪些@ListChild值在主页上显示模块?
是否有网站可以查看所有可用@ListChild值的列表?我搜索了X-Cart文档,找不到可用的ListChild位置列表。
如果使用ListChild是不可能的,我知道我们可以查询模板中的当前页面。如何测试当前页面是否为主页?
再次感谢您的帮助。
答案 0 :(得分:0)
1)您使用过于通用的视图列表来插入模板。 list = center.bottom确实是每个页面的一部分。您可能希望通过网站管理员模式检查页面的页面结构,并查找更具体的视图列表。
或者,您可以创建一个显示模板的查看器类:https://devs.x-cart.com/design_changes/ways-to-apply-design-changes.html#registering-viewer-class-in-view-list
并指定要在此类上显示的页面。为此,您需要在查看器类中创建以下方法:
public static function getAllowedTargets()
{
return array_merge(parent::getAllowedTargets(), array('main'));
}
// main是主页的目标
没有网站可以查看所有可用的视图列表,但您可以通过网站管理员模式https://devs.x-cart.com/design_changes/ways-to-apply-design-changes.html#seeing-structure-of-specific-page查找特定页面,也可以查看分配给他们的所有视图列表和模板在xc_view_lists MySQL表中。
您无法在模板中检查,但您可以在类这样的类中获取其值:
\XLite\Core\Request::getInstance()->target;