Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как использовать класс $tpl в админке модуля?

Как использовать класс $tpl в админке модуля?


     26.11.2018    Общие вопросы по PHP, Ламерские вопросы    1563

вопрос
Подскажите пожалуйста почему класс $db работает при вызове из админки модуля, а класс $tpl даёт непонятную ошибку
Fatal error: Call to a member function load_template() on null 

function match_block_by_matchid($match_id) {
    $timer = microtime(true);
    global $db;
    global $tpl;

$query = $db->query("SELECT id_team,id_last_match FROM ".PREFIX."_dotaapi_active_teams;");
$tpl->load_template('/dotaapi/team/match_block.tpl');
...

Ответил: PunPun


Подключить файл класса шаблона и инициализировать его.
engine/classes/template.class.php

10 комментариев

dj-avtosh
PHP-developer

dj-avtosh - 26 ноября 2018 12:12 -

Подключить для начала класс шаблонизатора, далее объявить его присвоив к переменной $tpl.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

UsurpatorVaticana
Юзер

UsurpatorVaticana - 26 ноября 2018 15:13 -

dj-avtosh, так пишу же global $tpl;
Для вызова из разделов сайта оно работало всегда в этом случае идёт вызов из админки, не могли бы показать код для примера?

UsurpatorVaticana
Юзер

UsurpatorVaticana - 26 ноября 2018 15:21 -

dj-avtosh, да и почему $db работает без дополнительных объявлений?

dj-avtosh
PHP-developer

dj-avtosh - 26 ноября 2018 15:22 -

потому что объявлена она где-то в init.php, вообще global - это ужасный подход. По поводу подключения класса, смотрите в коде движка где объявляется класс для сайта.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

UsurpatorVaticana
Юзер

UsurpatorVaticana - 26 ноября 2018 15:31 -

dj-avtosh, спасибо, понял где искать
был бы признателен, если бы пояснили почему так плох глобал, у меня небольшое приложение для которого надо работу пару функций, я не лезу в создание ООП структуры для него, мне просто надо чтобы стандартные классы и функции дле отработали внутри моей функции
С радостью почитал, если есть ссылки по этой теме.
Спасибо большое!

dj-avtosh
PHP-developer

dj-avtosh - 26 ноября 2018 15:50 -


По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

pavel31
Юзер

pavel31 - 30 ноября 2018 18:52 -

Код подключения класса шаблонов в DLE

// для dle 13, 13.1
include (DLEPlugins::Check(ENGINE_DIR . '/classes/templates.class.php'));

// для прежних версий dle
include ENGINE_DIR . '/classes/templates.class.php';

$tpl = new dle_template();
$tpl->dir = ROOT_DIR . '/templates/' . $config['skin'];

LazyDev
PHP-developer

LazyDev - 30 ноября 2018 18:54 -

pavel31, какой [code=php] ???? Есть только [code]

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

pavel31
Юзер

pavel31 - 30 ноября 2018 21:13 -

PunPun,
Спасибо, учту.

UsurpatorVaticana
Юзер

UsurpatorVaticana - 1 декабря 2018 01:06 -

pavel31, большое спасибо
правда когфиг при вызове из админки тоже пустой, но это уже ручками прописал

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх