0

我正在尝试根据设备浏览器选择特定模板。我正在使用来自http://www.mobileesp.com的 Anthony Hand 的库来检测设备,然后我想以编程方式设置模板。图书馆是这样工作的

require_once 'mdetect.php';

//Instantiate the object
$uagent_obj = new uagent_info();

//Detect iPhone
if ($uagent_obj->DetectTierIphone() == $uagent_obj->true) {
    echo '<!-- Setting Theme for Smart devices -->';
}

//Detect All Other Mobile Devices
else if ($uagent_obj->DetectTierOtherPhones() == $uagent_obj->true) {
    echo '<!-- Setting Theme for Smart devices -->';
}

请指导我如何在 ZenCart 中做到这一点?

4

2 回答 2

0

模板在 MySQL 表中定义,template_select并在断点 110 处读取(根据 include/auto_loaders/config.core.php)。您应该在此断点之前定义以下常量以覆盖它:

  • DIR_WS_TEMPLATE
  • DIR_WS_TEMPLATE_IMAGES
  • DIR_WS_TEMPLATE_ICONS
  • 并设置变量 $template_dir

有关更多信息,请查看文件“includes/init_includes/init_templates.php”。

于 2013-08-01T10:44:53.883 回答
0

我找到了一个解决方案,不知道它是否符合标准。原因可能是我找不到任何设置模板的钩子。我所做的是我将脚本插入到init_templates.php位于~/includes/init_includes/init_templates.php定义之后的文件中$template_dir

require_once 'mdetect.php'; //set the path of file according to your folder structure. The link to mdetec script is given in the question detail.

//Instantiate the object
$uagent_obj = new uagent_info();

//Detect iPhone
if ($uagent_obj->DetectTierIphone() == $uagent_obj->true) {
   $template_dir = 'iphonetemplate';
}

//Detect All Other Mobile Devices
else if ($uagent_obj->DetectTierOtherPhones() == $uagent_obj->true) {
   $template_dir = 'mobiletemplate';
}

要完美地运行它,模板必须放在您的templates目录中。这些大多位于~/includes/templates/<template_name>

于 2013-07-30T08:27:49.503 回答