Перейти к публикации

Результат компиляции .tpl файла


Рекомендованные сообщения

Здравствуйте, заранее прошу прощения если такие вопросы не обсуждаются на форуме или я создал тему в неправильном разделе, прошу не блокировать мой аккаут а просто удалить тему если что-то не так, а я буду дальше сам разбираться.

Пишу небольшой мод для DLE, проблема в том что запрос в базу тяжелый и нужно получить результат компиляции .tpl шаблона чтобы засунуть все это добро в кеш.

Я раньше такое делал и все было ОК, загружал шаблон $tpl->load_template('test.tpl'); задавал несколько сетов потом это все компилировал и $tpl->result в кеш и в сет -> все работало, но тогда код подключался в index.php, сейчас когда мне нужно добавить код в show.full - не работает так как раньше уже пробовал разными способами...

То-есть проблема вот в чем в engine грузится шаблон потом в show.full сначала задается несколько сетов и в самом конце все компилируется в контент, но мне нужно в середине кода show.full подгрузить шаблон модуля, задать несколько сетов которые будут относится к моему моду, и самое сложное сделать чтобы только эти сеты компилировались в $tpl->compile['my_mod'] и с него получить $tpl->result['my_mod'] - где будет сам шаблончик мода с уже замененными сетами на данные - но вот проблема в том что $tpl->compile['my_mod'] по идее будет заменять сеты которые были заданы в коде еще выше и должны были бы быть обработаны $tpl->compile['content'] :(((( (ну или я чего-то недопонимаю)

Хотел узнать может есть какой-то более простой метод реализации данной задачи, ато в другом случае нужно менять сам класс обработки шаблонов в результате чего $tpl->compile() будут передаваться дополнительные параметры которые будут сообщать ему какие именно типы $tpl->set нужно обработать и сохранить в массив $tpl->result - но из класса может получится ересь, хотя с другой стороны было бы удобно:) Я думаю что есть метод по проще просто я что-то упустил.

Если в кратце то мне нужно в середине кода show.full погрузить шаблон модуля, задать сеты, скомпилировать именно сеты которые относятся к модулю чтобы все сохранить в $tpl->result, как это сделать если выше в коде идут сеты которые должны компилироваться $tpl->compile['content'] а их в свою очередь заберет $tpl->compile['my_mod'] :(

Конечно можно было бы не парится с шаблонизатором, а просто сохранить кусок HTML кода в переменную, но это как-то не прилично:)

Может я недопонимаю принцып работы класса dle_templte.

Буду очень благодарен если кто-то прольет лучи света на данную проблему.

Ссылка на сообщение
Поделиться на других сайтах

Для этого нужно создать новый обьект, а не использовать старый, т.е.

$tpl2 = new dle_template ();
$tpl2->dir = TEMPLATE_DIR;[/code]

и работать уже с объектом $tpl2, $tpl2->load_template('test.tpl'); и $tpl2->set и т.д.

Ссылка на сообщение
Поделиться на других сайтах

Для этого нужно создать новый обьект, а не использовать старый, т.е.

$tpl2 = new dle_template ();

$tpl2->dir = TEMPLATE_DIR;

и работать уже с объектом $tpl2, $tpl2->load_template('test.tpl'); и $tpl2->set и т.д.

спасибо большое!!!! как-то вообще в голову не пришло...

Изменено пользователем inspred
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...