我正在开发一个X-Cart 5网站,需要在主页(也称为店面)上添加自定义html。
使用X-Cart开发文档,我创建了一个自定义模块,并使用@ListChild指令将修改添加到Crisp-White模板中。
但是,由于我使用了ListChild和list=centre.bottom,我的自定义模块显示在每一页上。我们只希望代码只出现在主页上。
我有几个问题:
-
我可以使用哪些@ListChild值仅在主页上显示模块?
-
有没有一个网站可以让我看到所有可用@ListChild值的列表?我在X-Cart文档中搜索,找不到可用ListChild职位的列表。
-
如果不能使用ListChild,我知道我们可以在模板中查询当前页面。如何测试当前页面是否为主页?
再次感谢您的帮助。
1)您使用了过于通用的视图列表来插入模板。list=center.bottom实际上是每一页的一部分。您可能希望通过网站管理员模式检查页面的页面结构,并查找更具体的视图列表。
或者,您可以创建一个查看器类来显示您的模板:https://devs.x-cart.com/design_changes/ways-to-apply-design-changes.html#registering-视图列表中的查看器类
并指定要在哪些页面上显示此类。为此,您需要在查看器类中创建以下方法:
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-结构,或者您可以在xc_view_lists MySQL表中看到所有视图列表和分配给它们的模板。
你不能在模板中检查它,但你可以在这样的类中获得它的值:
XLiteCoreRequest::getInstance()->target;