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

Как сделать новый load_template до комипиляции предыдущего ?


     24.08.2017    Все вопросы » Общие вопросы по PHP    1770

вопрос
Приветствую, пытаюсь создать модуля для авотматиеческого выбора навигации, в принципе все работает, все приходит как надо, у меня есть массив такого вида:

Как сделать новый load_template до комипиляции предыдущего ?



Php code:



		$tpl->load_template( 'cat-navig.tpl' );
		foreach($catDrop->getNavig() as $values){
			$tpl->set('{cat_title}', $values['name']);
			$tpl->set('{cat_href}', "/".$values['alt_name']."/");
			
				$tpl->load_template( 'catlist.tpl');
				foreach($catDrop->getNavig() as $value){
					foreach($value['posts'] as $val){

						$tpl->set('{href}', get_url($val['id']));
						$tpl->set('{name}', $val['title']);
						$tpl->compile( 'catlist' );
					}
				}
				
			$tpl->set('{navig-list}', $tpl->result['catlist']);
			$tpl->compile('cat-navig');
		}
		$cat_navigation = $tpl->result['cat-navig'];
		$tpl->load_template('catnavig-wrap.tpl');
		$tpl->set('{cat-navigation}', $cat_navigation);
		$tpl->compile('catnavig-wrap');
		
		echo $tpl->result['catnavig-wrap'];


таким вот образом пытаюсь вложить тег {catlist} с список новостей категории в {navig-list} шаблона cat-navig,
но у меня не получается, как я вижу проблему: шаблонизатор DLE не позволяет вкладывать одиг шаблон в другой или что то подобное.

Как вложить catlist.tpl в cat-navig.tpl, так что бы значения можно было воводить примерно так:


Файл catnavig-wrap.tpl :
<div>{cat-navigation}</div>

Файл catlist.tpl :
{cat_title}<br>
<a href="{href}">{title}</a> 


Примерно так, что бы список новостей, принадлежащих категории, были вложены в тег {navig-list} или любой другой, который в свою очередь выдает весь список этих самых новостей

Ответил: PunPun


$tpl->load_template( 'cat-navig.tpl' );
$tpl_2 = new dle_template();
$tpl_2->dir = TEMPLATE_DIR;

foreach($catDrop->getNavig() as $values) {
	$tpl->set('{cat_title}', $values['name']);
	$tpl->set('{cat_href}', "/".$values['alt_name']."/");
	
	$tpl_2->load_template( 'catlist.tpl');
	foreach($catDrop->getNavig() as $value) {
		foreach($value['posts'] as $val) {
			$tpl_2->set('{href}', get_url($val['id']));
			$tpl_2->set('{name}', $val['title']);
			$tpl_2->compile( 'catlist' );
		}
	}
	$tpl_2->clear();
	
	$tpl->set('{navig-list}', $tpl_2->result['catlist']);
	$tpl->compile('cat-navig');
}
$tpl->clear();
$cat_navigation = $tpl->result['cat-navig'];
$tpl->load_template('catnavig-wrap.tpl');
$tpl->set('{cat-navigation}', $cat_navigation);
$tpl->compile('catnavig-wrap');

echo $tpl->result['catnavig-wrap'];

1 комментарий

stiffmasster
Юзер

stiffmasster - 24 августа 2017 16:46 -

Обходя шаблонизатор DLE, смог реализовать то что мне нужно, но это костыль какай то получается:


		$tpl->load_template( 'cat-navig.tpl' );
		foreach($catDrop->getNavig() as $values){
			$tpl->set('{cat_title}', $values['name']);
			$tpl->set('{cat_href}', "/".$values['alt_name']."/");
			
				foreach($values['posts'] as $value){
					$list .= "<a href='".get_url($value['id'])."'>_{$value['title']}</a><br>";
				}
				
			$tpl->set('{navig-list}', $list); 
			unset($list);
			$tpl->compile('cat-navig');
		}
		$cat_navigation = $tpl->result['cat-navig'];
		$tpl->load_template('catnavig-wrap.tpl');
		$tpl->set('{cat-navigation}', $cat_navigation);
		$tpl->compile('catnavig-wrap');
		
		echo $tpl->result['catnavig-wrap'];


В данном случае, вместе того что бы генерировать список сложенных в категорию новостей при помощи foreach и шаблонизатора, я сделаю это при помощи foreach и стыковки, где результат стыковки ссылок, отправляю в {navig-list}



				foreach($values['posts'] as $value){
					$list .= "<a href='".get_url($value['id'])."'>_{$value['title']}</a><br>";
				}
				
			$tpl->set('{navig-list}', $list); 


считаю данную реализацию неверной, прошу помощи.

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

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

наверх