2016-01-13 9 views
0

Я тоже искал на всех форумах и даже отправлял свой вопрос на форуме whmcs, но не ответил. Мне нужно, чтобы я создал аддон в модулях, и я хочу изменить шаблон (от шести до пяти) в перехватах этого аддона. Цель состоит в том, чтобы изменить шаблон для конкретных клиентов. я уже проверить, чтобы изменить GET вар, но не работает:Изменить шаблон whmcs от hook

$_GET['systpl'] = 'five'; 

Я также проверил это, но CSS файлы не загружаются. Он перенаправляет меня на родину:

global $smarty; 
$template = $smarty->getTemplateVars('template'); 
$template = 'six'; 
$smarty->assign('template', $template); 
$template = $smarty->getTemplateVars('template'); 

Любое предложение пожалуйста?

+0

Нет ответа ???? – Codinga

ответ

2

Я делал это в одном из моих продуктов - чтобы получить эту работу, вы должны тянуть глобальную переменную $ systpl:

global $systpl; 
$systpl = $tpl; 

$GLOBALS['_SESSION']['Template'] = $tpl; 
$GLOBALS['CONFIG']['Template']  = $tpl; 

Где $ TPL это имя шаблона вы хотите установить, в вашем случае «пять». Вы также должны установить там переменные GLOBALS, чтобы сеанс пользователя поддерживался с этим шаблоном, и поэтому система знает, как использовать это имя шаблона при выводе из конфигурации.

Надеюсь, что это поможет.

+0

благодаря этой работе отлично, но как мне вернуться к шаблону по умолчанию? – user467241

+0

Решение для моего aswer: output(); – user467241

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();