inspred 0 Опубликовано: 6 мая 2011 Рассказать Опубликовано: 6 мая 2011 Здравствуйте, заранее прошу прощения если такие вопросы не обсуждаются на форуме или я создал тему в неправильном разделе, прошу не блокировать мой аккаут а просто удалить тему если что-то не так, а я буду дальше сам разбираться. Пишу небольшой мод для 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. Буду очень благодарен если кто-то прольет лучи света на данную проблему. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 6 мая 2011 Рассказать Опубликовано: 6 мая 2011 Для этого нужно создать новый обьект, а не использовать старый, т.е. $tpl2 = new dle_template (); $tpl2->dir = TEMPLATE_DIR;[/code] и работать уже с объектом $tpl2, $tpl2->load_template('test.tpl'); и $tpl2->set и т.д. Цитата Ссылка на сообщение Поделиться на других сайтах
inspred 0 Опубликовано: 6 мая 2011 Рассказать Опубликовано: 6 мая 2011 (изменено) Автор Для этого нужно создать новый обьект, а не использовать старый, т.е. $tpl2 = new dle_template (); $tpl2->dir = TEMPLATE_DIR; и работать уже с объектом $tpl2, $tpl2->load_template('test.tpl'); и $tpl2->set и т.д. спасибо большое!!!! как-то вообще в голову не пришло... Изменено 6 мая 2011 пользователем inspred Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.