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

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


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

вопрос
В начале скрипта загружен 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 комментариев

ПафНутиЙ
Админ

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

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

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

golden_eagle_god
Юзер

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

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

golden_eagle_god
Юзер

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

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

R00t
Юзер

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
Юзер

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

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

golden_eagle_god
Юзер

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

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

golden_eagle_god
Юзер

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

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

rocksmart
Юзер

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

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

golden_eagle_god
Юзер

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

Хорошо, жду.

rocksmart
Юзер

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
Юзер

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

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

golden_eagle_god
Юзер

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 без создания нового класса?

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

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

наверх