Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как загрузить tpl в уже загруженный tpl через Php

Как загрузить tpl в уже загруженный tpl через Php


     30.01.2014    Общие вопросы, Шаблоны (TPL), Общие вопросы по PHP    1517

вопрос
В начале скрипта загружен TPL
$tpl->load_template( 'test.tpl' );

в зависимости от условия надо подгрузить тегом {test} в основной шаблон (тест) один из трех шаблонов, без замены основного.

Я пробовал напрямую типо так:

$tpl->load_template( 'test.tpl' );

if(условие){
$content = $tpl->load_template( 'test1.tpl' );
}else{
$content = $tpl->load_template( 'test2.tpl' );
}

$tpl->set( '{test}', $content );


Но после этого способа слетал основной шаблон. Помогите как реализовать.

Ответа пока нет


Комментарии пользователей (12)

ПафНутиЙ
1065

3395 | 2433

ПафНутиЙ - 30 января 2014 22:31 - Админ

Опять готовите к выходу очередной "модуль"?

Каков вопрос - таков и ответ. Просто помните об этом.

golden_eagle_god
26

247 | 34

golden_eagle_god - 31 января 2014 11:49 - Юзер

Это не ваше дело, вы не пользовались моим модулем, не вам судить! Знаете как сделать?

golden_eagle_god
26

247 | 34

golden_eagle_god - 1 февраля 2014 08:56 - Юзер

Поднимаю вопрос

R00t
36 | 9

R00t - 2 февраля 2014 22:22 - Юзер

не пробовал, но может и заработает )))))))))
$tpl->load_template( 'test.tpl' );

if(условие){
    $tpl->load_template( 'test1.tpl' );
    $tpl->set( '{test1}', "test1" );
    $tpl->compile( 'test1' );
    $tpl->clear();
    $content .= $tpl->result['test1];
}else{
    $tpl->load_template( 'test2.tpl' );
    $tpl->set( '{test2}', "test2" );
    $tpl->compile( 'test2' );
    $tpl->clear();
    $content .= $tpl->result['test2];
}


$tpl->set( '{test}', $content );
$tpl -> compile('content');
$tpl -> clear();

golden_eagle_god
26

247 | 34

golden_eagle_god - 3 февраля 2014 11:50 - Юзер

спасибо буду пробовать!)

golden_eagle_god
26

247 | 34

golden_eagle_god - 4 февраля 2014 13:56 - Юзер

Не работает, так же пустую страницу выдает

golden_eagle_god
26

247 | 34

golden_eagle_god - 4 февраля 2014 15:43 - Юзер

Поднимаю вопрос 2

rocksmart
64

307 | 115

rocksmart - 4 февраля 2014 17:02 - Юзер

Жесть
Нужно объявлять имя tpl отличным от основного и соответственно сам вызов класса. Ладно седня расскажу с компа.

golden_eagle_god
26

247 | 34

golden_eagle_god - 4 февраля 2014 18:08 - Юзер

Хорошо, жду.

rocksmart
64

307 | 115

rocksmart - 4 февраля 2014 19:08 - Юзер

$tpl->load_template( 'test.tpl' );

    
$Mytpl = new dle_template();
$Mytpl->dir = TEMPLATE_DIR;    
if(условие){
$Mytpl->load_template( 'test1.tpl' );
}else{
$Mytpl->load_template( 'test2.tpl' );
}

$tpl->set( '{test}',$Mytpl->copy_template);

stanley
22 | 24

stanley - 5 февраля 2014 06:46 - Юзер

столкнулся с такой же проблемой... Как советовал Rocksmart, тоже выводит только тег {test}

golden_eagle_god
26

247 | 34

golden_eagle_god - 5 февраля 2014 08:02 - Юзер

Я делал также, вот:
$tpl->load_template( 'test.tpl' );

$tpl_2 = new dle_template( );
$tpl_2->dir = TEMPLATE_DIR;

$tpl_2->load_template( 'test1.tpl' );
$tpl_2->compile( 'test1' );
$tpl_2->clear();
    
$content.=$tpl_2->result['test1'];

$tpl->set( '{output}', $content );

$tpl -> compile('content');
$tpl -> clear();


Но думал что есть способ проще. Почему например в show.full.php подгружается много TPL без создания нового класса?

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

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