我也在所有论坛中搜索,甚至我在whmcs论坛上发布我的问题,但没有回复。我需要的是我在模块中创建一个插件,我想在这个插件的钩子中更改模板(从六到五)。目的是为特定客户更改模板。 我已经测试过更改GET var但是没有工作:
$_GET['systpl'] = 'five';
我也对此进行了测试,但css文件无法加载。它将我重定向回家:
global $smarty;
$template = $smarty->getTemplateVars('template');
$template = 'six';
$smarty->assign('template', $template);
$template = $smarty->getTemplateVars('template');
有什么建议吗?
答案 0 :(得分:2)
我已经在我的一个产品中完成了这项工作 - 要使其工作,您必须提取全局$ systpl变量:
global $systpl;
$systpl = $tpl;
$GLOBALS['_SESSION']['Template'] = $tpl;
$GLOBALS['CONFIG']['Template'] = $tpl;
其中$ tpl是您要设置的模板名称,在您的情况下为“五”。您还必须在那里设置GLOBALS变量,以便使用该模板维护用户会话,以便系统知道在从配置中提取时使用该模板名称。
希望有所帮助。
答案 1 :(得分:0)
在WHMCS中为指定页面加载另一个模板文件夹,我做了:
<?php
use WHMCS\Database\Capsule;
use WHMCS\View\Menu\Item as MenuItem;
define("CLIENTAREA", true);
// Set the template you want to use for the custom page BEFORE init.php is called
$GLOBALS['_REQUEST']['systpl'] = 'five';
require("init.php");
// WHATEVER YOU ARE DOING IN HERE
// Set the session back to the default template:
$GLOBALS['_SESSION']['Template'] = 'six';
$ca->output();