DLE 9.8. Помогите перевести код в $tpl->

Einstein02
На сайте с 10.06.2009
Offline
147
738

Здравствуйте!

Подскажите, пожалуйста, как написать

{custom category="3" template="template_main1" aviable="main" from="0" limit="1" cache="no"}

через $tpl->

?

Например, {content} - это $tpl->result['content'].

Буду очень-очень признателен!!!

Продвиженто (https://prodvizhento.com/) – агентство по созданию семантических ядер. SEO аудиты недорого Ссылка на скайп (skype:yablokoed?chat) | почта: mail[собака]prodvizhento.com | icq: 606-255-5три2
siv1987
На сайте с 02.04.2009
Offline
427
#1

Никак. Все эти параметры парсятся отдельно, и к $tpl не имеют никакого отношения.

Einstein02:
Например, {content} - это $tpl->result['content'].

{content} это не $tpl->result['content'], а макрос. $tpl->result['content'] это скомпилированный шаблон, хотя и в некоторых местах макрос {content} заменяется на $tpl->result['content']

Einstein02
На сайте с 10.06.2009
Offline
147
#2

в моём случае макрос {content} полностью заменяется на $tpl->result['content']. Подскажите, пожалуйста, как парсить следующую стройчку через php: {custom category="3" template="template_main1" aviable="main" from="0" limit="1" cache="no"}...

siv1987:
$tpl не имеют никакого отношения

можно без $tpl, только бы работало :)

Спасибо за ответ!

siv1987
На сайте с 02.04.2009
Offline
427
#3

Ну смотрите как это в движке сделано

$tpl->copy_template = preg_replace_callback ( "#\\{custom(.+?)\\}#i", "custom_print", $tpl->copy_template );

и колбэк функция custom_print из /engine/modules/functions.php

Einstein02
На сайте с 10.06.2009
Offline
147
#4

Мне было нужно убрать id с урл новостей при ЧПУ 2го типа. Действовал согласно посту: /ru/forum/comment/11652890. id убрались, но перестал работать aviable="main" на страницах полных новостей. Заменил его на <? if ($_SERVER['REQUEST_URI']!="/") echo $tpl->result['content']; ?> - заработало, но мне ещё нужно скрыть код:

{custom category="3" template="template_main1" aviable="main" from="0" limit="1" cache="no"}

Но для этого мне нужно перевести этот код в php. Помогите, пожалуйста! =)

siv1987:
Ну смотрите как это в движке сделано
$tpl->copy_template = preg_replace_callback ( "#\\{custom(.+?)\\}#i", "custom_print", $tpl->copy_template );

и колбэк функция custom_print из /engine/modules/functions.php

Смотрел, но не знаю, что подставить, и что выводить из этого...

---------- Добавлено 27.07.2013 в 12:50 ----------

Выходит нужно использовать

siv1987:
preg_replace_callback ( "#\\{custom(.+?)\\}#i", "custom_print", $tpl->copy_template );

только подставить вместо "custom_print" переменные?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий