<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Развитие шаблонизатора (XTemplate 2.8.1)</title>
		<link>https://www.cotonti.com</link>
		<description>Last topic posts</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Wed, 15 Apr 2026 07:55:17 -0000</pubDate>

		<item>
			<title>Argont</title>
			<description><![CDATA[<blockquote>
<pre class="brush:as3;">
{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}</pre>
</blockquote>

<p>пожалуйста, можете для примера подсказать, что здесь вэтой конструкции, в котонти может быть вместо "var_dump"</p>

<p>хоть пару примеров. спасибо</p>
]]></description>
			<pubDate>Wed, 08 Nov 2023 19:07:34 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post47327]]></link>
		</item>
		<item>
			<title>Alex300</title>
			<description><![CDATA[<p>В шаблонизатор добавлены операторы <strong>строго сравнения</strong>: <code>===</code> и <code>!==</code></p>

<p>Например проверить на строгое соотвествие <code>null</code> теперь можно так:</p>

<pre class="brush:plain;">
&lt;!-- IF {ADMIN_EXTENSIONS_DETAILS_ROW_ORDER_INSTALLED} !== null AND {ADMIN_EXTENSIONS_DETAILS_ROW_ORDER_INSTALLED} != {ADMIN_EXTENSIONS_DETAILS_ROW_ORDER} --&gt;
    &lt;span class="highlight_red"&gt;{ADMIN_EXTENSIONS_DETAILS_ROW_ORDER_INSTALLED}&lt;/span&gt; /
    &lt;span class="highlight_green"&gt;{ADMIN_EXTENSIONS_DETAILS_ROW_ORDER}&lt;/span&gt;
&lt;!-- ELSE --&gt;
    {ADMIN_EXTENSIONS_DETAILS_ROW_ORDER}
&lt;!-- ENDIF --&gt;</pre>

<p> </p>
]]></description>
			<pubDate>Mon, 06 Nov 2023 08:00:58 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post47308]]></link>
		</item>
		<item>
			<title>Kabak</title>
			<description><![CDATA[<blockquote class="fp"><a href="https://www.cotonti.com/forums?m=posts&amp;q=8721&amp;d=2#47184">#47184</a> <strong>Alex300: </strong>
<blockquote>
<p>не строя излишне сложных конструкций.</p>
</blockquote>

<p>Именно. Фреймворк должен давать инструменты, а не накладывать ограничения.</p>
</blockquote>

<p>Тогда нужно сдеать возможным выводить любую информацию в любой локации сайта на Cotonti.  Хотябы заменить старые плагины которые накладывают такие ограничения.  Тот же Recent Items не позволяет вывести некоторую информация о пользователе на  титульной странице. ( о создателе темы на форуме и о последнем ответившем )    Если он устарел, то нужно заменить его в коробочной версии Cotonti и написать статью, как можно выводить информацию из Страниц, Форумов и Коментариев в разных разделах сайта : на главной странице, в профиле пользователя.</p>

<p>Как, пометить какие-нибудь статьи или типики на форуме, чтобы можно было сделать на главной на них акцент - вывести отдельным блоком, типа важное или интересное обсуждение...</p>
<p class="updated"><strong>Добавлено 2 минуты спустя:</strong></p><blockquote class="fp"><a href="https://www.cotonti.com/forums?m=posts&amp;q=8721&amp;d=2#47181">#47181</a> <strong>Alex300: </strong>
<p>Вот <a href="https://github.com/Cotonti/Cotonti/commit/0a65d80bc6520b48c901e9c9c6a638556c1c6ced" rel="nofollow">этим коммитом</a> в <a href="https://github.com/Cotonti/Cotonti" rel="nofollow">мастер ветку</a> добавлена возможность подставлять функцию любые аргументы, а не только один через <strong>$this</strong>.<br />
Теперь можно писать и так, например:</p>

<pre class="brush:plain;">
{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}, $this, {PHP.cfg.mainurl}, {PHP|cot_url('page', 'c=news')}, {HEADER_TITLE})}</pre>

<p>Нуждается в тестировании и фидбеке ).</p>
</blockquote>

<p>Как только разберусь как это работает, попробую это использовать и расскажу что нравится, а что нет </p>
]]></description>
			<pubDate>Sun, 01 Oct 2023 07:58:18 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post47185]]></link>
		</item>
		<item>
			<title>Alex300</title>
			<description><![CDATA[<blockquote>
<p>не строя излишне сложных конструкций.</p>
</blockquote>

<p>Именно. Фреймворк должен давать инструменты, а не накладывать ограничения.</p>
]]></description>
			<pubDate>Sun, 01 Oct 2023 06:39:37 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post47184]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[<p>До этого момента вызов функции в шаблоне можно было делать или с явным указанием аргументов или с динамической подстановкой только одного:</p>

<pre class="brush:xml;">
// Явно указываем аргумент $params
{PHP|cot_url('page', 'c=docs')}

// Аргумент формируется "на лету" для "раздело-зависимого" результата
{PHP.c|cot_url('page', 'c=$this')}</pre>

<p>cot_url() здесь только для примера, и на самом деле динамическая подстановка аргумента очень удобная на практике штука. Например, для таких вещей:</p>

<pre class="brush:xml;">
{USERS_DETAILS_ID|sedby_comlist(‘comlist’, 5, 'com_date DESC', 'com_authorid = $this'}</pre>

<p>т.е. вывод последних пяти комментов от пользователя на его странице. Привязка к тегу со значением user_id.</p>

<p>Вообще, если с аргументами начинаются сложности, все можно решить плагином с хуком, соответствующим проблемной локации:</p>

<pre class="brush:xml;">
$someresult = cot_somefunction($c, $usr['id'], $pag['page_id']);</pre>

<p>После чего вывести в шаблоне уже готовую переменную:</p>

<pre class="brush:xml;">
{PHP.someresult}</pre>

<p>Ну или так:</p>

<pre class="brush:php;">
$t-&gt;assign('SOME_TAG', cot_somefunction($c, $usr['id'], $pag['page_id']));
</pre>

<p>И тогда в шаблоне просто:</p>

<pre class="brush:xml;">
{SOME_TAG}</pre>

<p>Естественно, аргументы для примера.</p>

<p>Добавление в шаблонизатор возможности использовать более одного аргумента принципиально ничего не изменит. Такие случаи не так часты. Однако для тех пользователей, которые предпочитают большинство задач решать через шаблонизатор, это позволит расширить диапазон таких задач, не строя излишне сложных конструкций.</p>

<p>Использование плагинов и данная фича никак не связаны))</p>
]]></description>
			<pubDate>Sun, 01 Oct 2023 06:09:58 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post47183]]></link>
		</item>
		<item>
			<title>Kabak</title>
			<description><![CDATA[<blockquote class="fp"><a href="https://www.cotonti.com/forums?m=posts&amp;q=8721&amp;d=2#47181">#47181</a> <strong>Alex300: </strong>
<p>Вот <a href="https://github.com/Cotonti/Cotonti/commit/0a65d80bc6520b48c901e9c9c6a638556c1c6ced" rel="nofollow">этим коммитом</a> в <a href="https://github.com/Cotonti/Cotonti" rel="nofollow">мастер ветку</a> добавлена возможность подставлять функцию любые аргументы, а не только один через <strong>$this</strong>.<br />
Теперь можно писать и так, например:</p>

<pre class="brush:plain;">
{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}, $this, {PHP.cfg.mainurl}, {PHP|cot_url('page', 'c=news')}, {HEADER_TITLE})}</pre>

<p>Нуждается в тестировании и фидбеке ).</p>
</blockquote>

<p>какие возможности это открывает ?   что конкретно можно делать такими вызовами и от каких плагинов теперь можно отказаться благодаря этому новшеству ?</p>
]]></description>
			<pubDate>Sat, 30 Sep 2023 11:52:33 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post47182]]></link>
		</item>
		<item>
			<title>Alex300</title>
			<description><![CDATA[<p>Вот <a href="https://github.com/Cotonti/Cotonti/commit/0a65d80bc6520b48c901e9c9c6a638556c1c6ced" rel="nofollow" target="_blank" rel="nofollow noreferrer noopener">этим коммитом</a> в <a href="https://github.com/Cotonti/Cotonti" rel="nofollow" target="_blank" rel="nofollow noreferrer noopener">мастер ветку</a> добавлена возможность подставлять функцию любые аргументы, а не только один через <strong>$this</strong>.<br />
Теперь можно писать и так, например:</p>

<pre class="brush:plain;">
{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}, $this, {PHP.cfg.mainurl}, {PHP|cot_url('page', 'c=news')}, {HEADER_TITLE})}</pre>

<p> </p>

<p>И теперь он еще понимает в функциях и условиях что <strong>TRUE</strong> или <strong>true</strong> - это <strong>true</strong>, а <strong>'true'</strong> или <strong>"True"</strong> - с кавычками - это строка. То же самое для <strong>false,null</strong>.<br />
<strong>1</strong> и <strong>10.5</strong> - это числа, а<strong> '1'</strong>, <strong>"10.5"</strong> это строки.</p>

<p>т.е. <code>{PHP|cot_url('page', c={PHP.c}, '', false, true)}</code> должно корректно работать. Т.е. он должен понять что <strong>false</strong> это именно <strong>FALSE</strong>, а не строка, содержащая 'false', которая будет преобразована в TRUE при выполнении.</p>

<p>Нуждается в тестировании и фидбеке ).</p>
]]></description>
			<pubDate>Sat, 30 Sep 2023 11:08:35 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post47181]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>У меня кстати всюду без проблем работает. И на последнем php и котонти, я все обновляю. Так что можно юзать!</p>
]]></description>
			<pubDate>Wed, 22 Apr 2020 16:33:33 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post44595]]></link>
		</item>
		<item>
			<title>Roffun</title>
			<description><![CDATA[<blockquote class="fp"><a href="https://www.cotonti.com/forums?m=posts&amp;q=8721&amp;d=2#43753">#43753</a> <strong>Dr2005alex:</strong>

<p>Рад что виден смысл в использовании. Данное добавление расширяен возможности шаблонизатора и исключает необходимость писать доп функции для сайта.</p>
</blockquote>

<p>Алексей, а в ветку на <a href="https://github.com/Cotonti/Cotonti" rel="nofollow">github.com</a> не планируется предложение улучшений ?</p>

<p>Одно дело дополнительная функция, другое дело шаблонизатор. Получается правка ядра, и при обновлении из репозитория, или сборки биржи, изменения перезапишутся.</p>
]]></description>
			<pubDate>Sun, 20 Jan 2019 12:56:32 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43992]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<p>Спасибо за тест!</p>
]]></description>
			<pubDate>Sun, 20 Jan 2019 09:18:06 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43991]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>Прошло куча времени - полет ОК. Спс!</p>
]]></description>
			<pubDate>Sat, 19 Jan 2019 10:04:21 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43990]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<blockquote>
<p>я так понял что можно и более двух переменных закидывать?</p>
</blockquote>

<p>ДА </p>
]]></description>
			<pubDate>Thu, 25 Oct 2018 13:58:13 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43783]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<blockquote class="fp"><a href="https://www.cotonti.com/forums?m=posts&amp;q=8721&amp;d=2#43753">#43753</a> <strong>Dr2005alex: </strong>

<p>Все именно так!!! С целью сокращения костылей в этом духе что в примере.</p>

<p>Рад что виден смысл в использовании. Данное добавление расширяен возможности шаблонизатора и исключает необходимость писать доп функции для сайта.</p>
</blockquote>

<p> </p>

<p>Я уже уполовинил свой файл с кастомными функциями. С учетом того что у меня овердофига функционала и плагинов как биржи так и прочего и все работает как и прежде с новым файлом котемплейта - он нигде не конфликтует. </p>

<p>Спасибо!</p>
<p class="updated"><strong>Added 48 minutes later:</strong></p>я так понял что можно и более двух переменных закидывать? ]]></description>
			<pubDate>Thu, 25 Oct 2018 12:09:01 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43754]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<p>Все именно так!!! С целью сокращения костылей в этом духе что в примере.</p>

<p>Рад что виден смысл в использовании. Данное добавление расширяен возможности шаблонизатора и исключает необходимость писать доп функции для сайта.</p>
]]></description>
			<pubDate>Thu, 25 Oct 2018 10:29:46 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43753]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>Пока все что работало со старым и с новым файлом работает. </p>

<p class="updated"><strong>Added 2 weeks later:</strong></p>

<p>Подскажите как использовать</p>

<p>Есть функция к примеру function cot_social_check_friend_plusmonth($userid, $friendid)</p>

<p>Как написать запрос?</p>

<p>{CALL|cot_social_check_friend_plusmonth('$0%','$1%')|PHP.usr.id,PHP.urr.user_id} как то так? Вроде бы так работает, но может что то усложнил?</p>
<p class="updated"><strong>Added 33 minutes later:</strong></p><p><span style="color:#FF0000;"><em><strong>Вроде все работает идеально!</strong></em></span></p>

<p><em><strong>Дополню примерами</strong></em></p>

<p><strong>Было кастомная функция</strong></p>

<pre class="brush:php;gutter:false;toolbar:false;">
/** Исключаем из запроса историй этого же юзера саму себя **/
function get_item_user_and_id($item_id){
   global $db, $db_folio;
        $string = '';
        
		if($item_id){
			$string = $db-&gt;query("SELECT item_id FROM $db_folio WHERE item_id=".$item_id)-&gt;fetchColumn();
			$string = (int)$string;
		}
        
		if($item_id){
			$iuser = $db-&gt;query("SELECT item_userid FROM $db_folio WHERE item_id=".$item_id)-&gt;fetchColumn();
			$string .= " AND item_userid = $iuser";
		}
		return $string;
}
</pre>

<p>{PRD_ID|get_item_user_and_id($this)|cot_getfoliolist('from-user', 4, 'item_id!=$this', "item_rating_real DESC")}</p>

<p><strong>Стало одна строчка</strong></p>

<p>{CALL|cot_getfoliolist('from-user', 4, 'item_id!=$0% AND item_userid=$1%', "item_rating_real DESC")|PRD_ID,PRD_OWNER_ID}</p>

<p> </p>
]]></description>
			<pubDate>Mon, 08 Oct 2018 13:46:02 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43744]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<p>Обновил концепцию, и обновил файл и описание в первом посте. Можно тестить.</p>
]]></description>
			<pubDate>Sat, 06 Oct 2018 21:24:47 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43743]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p><img alt="yes" height="23" src="https://www.cotonti.com/plugins/ckeditor/lib/plugins/smiley/images/thumbs_up.png" title="yes" width="23" /></p>
]]></description>
			<pubDate>Fri, 05 Oct 2018 06:16:43 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43742]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<p>Ага понял, есть косяк. Надо менять подход. Посмотримс..</p>

<p>Ps Спасибо за тест.</p>
]]></description>
			<pubDate>Fri, 05 Oct 2018 05:47:01 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43741]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>Скачал дистрибут и заменил котемплейтпхп - появились ссылки на предыдущее и следующее фолио. </p>

<p>https://ibb.co/g2PtPK<br />
https://ibb.co/ksLBBz</p>
<p class="updated"><strong>Added 4 minutes later:</strong></p><p>на час отойду</p>
]]></description>
			<pubDate>Thu, 04 Oct 2018 17:39:02 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43740]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<p>Тогда еще один тест. Скачиваем последнюю версию котонти и берем оттуда шаблонизатор на свой сайт. (заменяем файл шаблонизатора) Смотрим все ли работает? Если работает то я постараюсь найти в чем проблема в моих правках. Если нет, то ваша версия движка несовместима.</p>
]]></description>
			<pubDate>Thu, 04 Oct 2018 17:34:57 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43739]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>PHP engine version 5.6.37</p>

<p>2 пункт сделал кеш почистил и не помогло</p>

<p>Нет функционала этого плагина и нет ошибок. При этом все остальное вроде как норм.</p>
<p class="updated"><strong>Added 2 minutes later:</strong></p><p>Котонти и биржа самое последнее что есть. </p>
<p class="updated"><strong>Added 1 minute later:</strong></p><pre class="brush:php;gutter:false;toolbar:false;">
PHP engine version	5.6.37
Zend engine version	2.6.0
Interface between webserver and PHP	litespeed
Cotonti Version 0.9.19</pre>

<p> </p>
]]></description>
			<pubDate>Thu, 04 Oct 2018 17:29:48 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43738]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<blockquote class="fp"><a href="https://www.cotonti.com/forums?m=posts&amp;q=8721&amp;d=1#43736">#43736</a> <strong>Kopusha: </strong>
<p>кеш я чистил - не помогает</p>

<p>тут у меня скорее спортивный интререс - я в том куцом коде плагина не могу понять ЧТО не проходит, там нечему не работать) но факт - просто ничего не отображается в самом тпл. </p>
</blockquote>

<p>По идее правки были тока по вызову функции.</p>

<p>1) Есть просьба. Скажите какая версия PHP в у вас используется.</p>

<p>2) Откройте плиз файл шаблонизатора и поменяйте в 404 строке this на $this</p>

<pre class="brush:php;gutter:false;toolbar:false;">
return $var-&gt;evaluate($this);</pre>

<p>Вот так будет. Отпишитесь, появилось ли все.</p>

<p>Ах да, версия движка какая?</p>

<p> </p>
]]></description>
			<pubDate>Thu, 04 Oct 2018 17:22:22 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43737]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>кеш я чистил - не помогает</p>

<p>тут у меня скорее спортивный интререс - я в том куцом коде плагина не могу понять ЧТО не проходит, там нечему не работать) но факт - просто ничего не отображается в самом тпл. </p>
]]></description>
			<pubDate>Thu, 04 Oct 2018 17:06:08 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43736]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<p>Как вариант почистите кеш. </p>
]]></description>
			<pubDate>Thu, 04 Oct 2018 10:45:57 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43735]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>просто перестал генерировать в тпл https://github.com/Freecer/freecer.net/blob/9ed2a2b190bafed2a02388785fee9d4d6ffe9eea/plugins/folioPagiButton/folioPagiButton.setup.main.php#L11</p>

<p> </p>

<p>вообще ничего. кода там 3 строчки и странно что перестало работать... вроде не должно... остальное пока что пашет.</p>
]]></description>
			<pubDate>Thu, 04 Oct 2018 09:56:30 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43734]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<blockquote class="fp"><a href="https://www.cotonti.com/forums?m=posts&amp;q=8721&amp;d=1#43732">#43732</a> <strong>Kopusha: </strong>
<p>То есть ничего старого не прекратит работать а просто появятся новые возможности?</p>

<p class="updated"><strong>Added 13 minutes later:</strong></p>

<p>Сразу же отвалилась работа этого плагина (ошибки не бьет, но перестали кнопки показываться, я не рылся пока в коде, просто констатация) https://github.com/Freecer/freecer.net/tree/9ed2a2b190bafed2a02388785fee9d4d6ffe9eea/plugins/folioPagiButton</p>
</blockquote>

<p>Было бы полезно узнать от чего отвалилось. Я естественно повторить ваш код не могу. Это биржа..</p>
]]></description>
			<pubDate>Thu, 04 Oct 2018 05:58:23 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43733]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>То есть ничего старого не прекратит работать а просто появятся новые возможности?</p>
<p class="updated"><strong>Added 13 minutes later:</strong></p><p>Сразу же отвалилась работа этого плагина (ошибки не бьет, но перестали кнопки показываться, я не рылся пока в коде, просто констатация) https://github.com/Freecer/freecer.net/tree/9ed2a2b190bafed2a02388785fee9d4d6ffe9eea/plugins/folioPagiButton</p>
]]></description>
			<pubDate>Wed, 03 Oct 2018 20:02:52 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43732]]></link>
		</item>
		<item>
			<title>prostogorod</title>
			<description><![CDATA[<p>Спасибо! Интересная идея! Буду тестировать...</p>
]]></description>
			<pubDate>Wed, 03 Oct 2018 10:12:04 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43731]]></link>
		</item>
		<item>
			<title>Dr2005alex</title>
			<description><![CDATA[<p>И пришла идея начать доработку текущего <span style="font-family:'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;font-size:15px;">XTemplate.</span></p>

<p>И так, если коротко, выкладываю для тестов обновленный в некоторых местах <span style="font-family:'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;font-size:15px;">XTemplate</span></p>

<p><span style="font-family:'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;font-size:15px;">Что изменилось:</span></p>

<ul><li>PHP 7 не выдает ошибку <span style="color:rgb(102,126,114);font-family:Georgia, serif;font-size:12.16px;background-color:rgb(248,248,248);"> Using $this when not in object context </span>(на 2.8.0  версии это есть)</li>
	<li>Есть возможность передавать в вызов функции более одного динамического аргумента.</li>
</ul><p>Для нового функционала и поддержки старого, пришлось ввести новый вид тега.</p>

<pre class="brush:php;gutter:false;toolbar:false;">
{CALL | функция | динамические аргументы через запятую | дополниельные функции}</pre>

<p><strong>Пример</strong></p>

<pre class="brush:php;gutter:false;toolbar:false;">
{CALL|cot_url('page','id=$0%&amp;alias=$1%')|PAGE_ID,PAGE_ALIAS|htmlspecialchars}
</pre>

<p>Как из примера видно, я отказался от метки $this.(но старый вариан с $this я оставил и он тоже работает через {PHP.MYTAG|function($this)})</p>

<p>В данном примере создается ссылка, где параметр $0% будет заменен на значение тега PAGE_ID, а $1% на значение тега PAGE_ALIAS. Далее, результат выполнения функции передается в дополнительную функцию htmlspecialchars</p>

<p>В динамических аргументах могут быть Теги и Глобальные переменные.</p>

<p><strong style="font-size:15px;font-family:'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;">Пример</strong></p>

<pre class="brush:php;gutter:false;toolbar:false;">
{CALL|cot_url('page','id=$0%&amp;c=$1%')|PHP.pag.page_id,PHP.pag.page_cat}</pre>

<p>$0% или $1% это порядковый номер динамического аргумента начиная с нуля. </p>

<ul><li><span style="font-family:'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;font-size:15px;">$0% - заменится значением </span>PHP.pag.page_id</li>
	<li><span style="font-size:15px;font-family:'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;">$1% - заменится значением </span><span style="font-family:'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;font-size:15px;">PHP.pag.page_cat</span></li>
</ul><p>Для тестов, просто разархивируйте файл. И замените текущий файл шаблонизатора cotemplate.php на файл из архива.</p>

<p>Удачных тестов! И может еще идеи у кого будут... милости просим делиться.</p>

<p><span style="font-family:'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;font-size:15px;">Файл: </span><a href="https://www.cotonti.com/datas/users/cotemplate_2.8.1_84.rar">cotemplate_2.8.1.rar</a></p>

<p> </p>
]]></description>
			<pubDate>Tue, 02 Oct 2018 18:14:26 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=8721&d=0#post43728]]></link>
		</item>
	</channel>
</rss>