<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Как сделать собственный шаблонизатор</title>
	<atom:link href="http://php.southpark.com.ua/2008/your-smarty/feed/" rel="self" type="application/rss+xml" />
	<link>http://php.southpark.com.ua/2008/your-smarty/</link>
	<description>Хитрости и секреты CakePHP</description>
	<lastBuildDate>Wed, 26 May 2010 07:56:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: aisthetes</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-773</link>
		<dc:creator>aisthetes</dc:creator>
		<pubDate>Fri, 04 Sep 2009 14:18:43 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-773</guid>
		<description>Столкнулся с проблемой, data($content) выводит результат не там где нужно: {content}, а нужно {content}.

function data($c){
	for($i = 0; $i  $c[$i][date],
			&#039;name&#039; =&gt; $c[$i][name],
			&#039;msg&#039; =&gt; $c[$i][msg]), &#039;msg.tpl&#039;);
	}
}
$s = mysql_query(&quot;
	select `date`, `uid`, `text`
	from `msg`&quot;) or die(mysql_error());
while($p = mysql_fetch_array($s)){
	$content[] = array(
		&#039;date&#039; =&gt; &quot;$p[date]&quot;,
		&#039;name&#039; =&gt; &quot;$p[uid]&quot;,
		&#039;msg&#039; =&gt; &quot;$p[text]&quot;);
}

print tmpl(array(
	&#039;title&#039;=&gt;&#039;title&#039;,
	&#039;content&#039;=&gt; data($content)), &#039;main.tpl&#039;);</description>
		<content:encoded><![CDATA[<p>Столкнулся с проблемой, data($content) выводит результат не там где нужно: {content}, а нужно {content}.</p>
<p>function data($c){<br />
	for($i = 0; $i  $c[$i][date],<br />
			&#8216;name&#8217; =&gt; $c[$i][name],<br />
			&#8216;msg&#8217; =&gt; $c[$i][msg]), &#8216;msg.tpl&#8217;);<br />
	}<br />
}<br />
$s = mysql_query(&#8221;<br />
	select `date`, `uid`, `text`<br />
	from `msg`&#8221;) or die(mysql_error());<br />
while($p = mysql_fetch_array($s)){<br />
	$content[] = array(<br />
		&#8216;date&#8217; =&gt; &#8220;$p[date]&#8220;,<br />
		&#8216;name&#8217; =&gt; &#8220;$p[uid]&#8220;,<br />
		&#8216;msg&#8217; =&gt; &#8220;$p[text]&#8220;);<br />
}</p>
<p>print tmpl(array(<br />
	&#8216;title&#8217;=&gt;&#8217;title&#8217;,<br />
	&#8216;content&#8217;=&gt; data($content)), &#8216;main.tpl&#8217;);</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elfet</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-772</link>
		<dc:creator>Elfet</dc:creator>
		<pubDate>Wed, 02 Sep 2009 21:46:39 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-772</guid>
		<description>Вот мой вариант, возможно он чуточку посложнее, но тоже очень удобен:
vars = $_vars;
		$this-&gt;file = $_file;
	}

	public static function SetViewPath($path)
	{
		self::$view_include_path = $path;
	}

	public function SetVars($_vars)
	{
		$this-&gt;vars += $_vars;
	}

	public function Get()
	{
		$return = &#039;&#039;;
		
		$include = self::$view_include_path . $this-&gt;file . &#039;.php&#039;;
		if( file_exists($include) )
		{
			ob_start();
			
			foreach ( $this-&gt;vars as $key =&gt; $value )
			{
				$$key = $value;
			}
			
			include ($include);
			
			$return = ob_get_contents();
			ob_end_clean();
		}
		else
		{
			throw new Exception(&quot;No view file: $include&quot;);
		}
		
		return $return;
	}

	public static function Call($skin, $vars = array())
	{
		$include = self::$view_include_path . $skin . &#039;.php&#039;;
		if( file_exists($include) )
		{
			$view = new self($skin);
			$view-&gt;SetVars($vars);
			return $view-&gt;Get();
		}
		else
		{
			return &#039;&#039;;
		}
	}
}
?&gt;</description>
		<content:encoded><![CDATA[<p>Вот мой вариант, возможно он чуточку посложнее, но тоже очень удобен:<br />
vars = $_vars;<br />
		$this-&gt;file = $_file;<br />
	}</p>
<p>	public static function SetViewPath($path)<br />
	{<br />
		self::$view_include_path = $path;<br />
	}</p>
<p>	public function SetVars($_vars)<br />
	{<br />
		$this-&gt;vars += $_vars;<br />
	}</p>
<p>	public function Get()<br />
	{<br />
		$return = &#8221;;</p>
<p>		$include = self::$view_include_path . $this-&gt;file . &#8216;.php&#8217;;<br />
		if( file_exists($include) )<br />
		{<br />
			ob_start();</p>
<p>			foreach ( $this-&gt;vars as $key =&gt; $value )<br />
			{<br />
				$$key = $value;<br />
			}</p>
<p>			include ($include);</p>
<p>			$return = ob_get_contents();<br />
			ob_end_clean();<br />
		}<br />
		else<br />
		{<br />
			throw new Exception(&#8220;No view file: $include&#8221;);<br />
		}</p>
<p>		return $return;<br />
	}</p>
<p>	public static function Call($skin, $vars = array())<br />
	{<br />
		$include = self::$view_include_path . $skin . &#8216;.php&#8217;;<br />
		if( file_exists($include) )<br />
		{<br />
			$view = new self($skin);<br />
			$view-&gt;SetVars($vars);<br />
			return $view-&gt;Get();<br />
		}<br />
		else<br />
		{<br />
			return &#8221;;<br />
		}<br />
	}<br />
}<br />
?&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mogz</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-770</link>
		<dc:creator>Mogz</dc:creator>
		<pubDate>Thu, 13 Aug 2009 10:14:02 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-770</guid>
		<description>Тупо, тупо и еще раз тупо. Так делают только первоклашки.
Вот вопрос. Как вы раелизуете меню (выводящееся на php) через такой &quot;шаблонизатор&quot; :))
например такого типа:

    &lt;a href=&quot;&quot; rel=&quot;nofollow&quot;&gt; text 1 &lt;/a&gt;
    &lt;a href=&quot;&quot; rel=&quot;nofollow&quot;&gt; text 2 &lt;/a&gt;
    &lt;a href=&quot;&quot; rel=&quot;nofollow&quot;&gt; text 3 &lt;/a&gt;
         
                text 4 
                text 5 
                text 6 
         
    
    &lt;a href=&quot;&quot; rel=&quot;nofollow&quot;&gt; text 2 &lt;/a&gt;


хотябы такого плана, причем  может быть любым по счету, хоть первым, хоть последним</description>
		<content:encoded><![CDATA[<p>Тупо, тупо и еще раз тупо. Так делают только первоклашки.<br />
Вот вопрос. Как вы раелизуете меню (выводящееся на php) через такой &#8220;шаблонизатор&#8221; <img src='http://php.southpark.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )<br />
например такого типа:</p>
<p>    <a href="" rel="nofollow"> text 1 </a><br />
    <a href="" rel="nofollow"> text 2 </a><br />
    <a href="" rel="nofollow"> text 3 </a></p>
<p>                text 4<br />
                text 5<br />
                text 6 </p>
<p>    <a href="" rel="nofollow"> text 2 </a></p>
<p>хотябы такого плана, причем  может быть любым по счету, хоть первым, хоть последним</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stasik</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-758</link>
		<dc:creator>stasik</dc:creator>
		<pubDate>Tue, 12 May 2009 18:14:49 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-758</guid>
		<description>Хорошие верстальщики и так без проблем сделают шаблон под ваш код если код будет читаемым... А плохим и нечего делать. Не шаблонизаторами заниматься надо, а тексты писать красивые без экранирования.</description>
		<content:encoded><![CDATA[<p>Хорошие верстальщики и так без проблем сделают шаблон под ваш код если код будет читаемым&#8230; А плохим и нечего делать. Не шаблонизаторами заниматься надо, а тексты писать красивые без экранирования.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yury</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-730</link>
		<dc:creator>Yury</dc:creator>
		<pubDate>Wed, 21 Jan 2009 10:47:56 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-730</guid>
		<description>Да, нормально. Я тоже так поступаю. Только немного попроще. В нужных местах шаблона ставлю типа %text%, а потом заменяю его на $text, которая подготовлена заранее и в которую можно вставлять все, что угодно, картинки, java и т. д.
Подробнее на http://acvarif.info/wbsphp.html

Только думаю код можно немного упростить. 
Зачем это делать?    
$html = str_replace(&#039;{=$&#039;.$key.&#039;}&#039;, $value, $html); 
Можно ведь так
$html = str_replace(&#039;$&#039;.$key, $value, $html);
И тогда в шаблоне просто
$title
$content</description>
		<content:encoded><![CDATA[<p>Да, нормально. Я тоже так поступаю. Только немного попроще. В нужных местах шаблона ставлю типа %text%, а потом заменяю его на $text, которая подготовлена заранее и в которую можно вставлять все, что угодно, картинки, java и т. д.<br />
Подробнее на <a href="http://acvarif.info/wbsphp.html" rel="nofollow">http://acvarif.info/wbsphp.html</a></p>
<p>Только думаю код можно немного упростить.<br />
Зачем это делать?<br />
$html = str_replace(&#8216;{=$&#8217;.$key.&#8217;}', $value, $html);<br />
Можно ведь так<br />
$html = str_replace(&#8216;$&#8217;.$key, $value, $html);<br />
И тогда в шаблоне просто<br />
$title<br />
$content</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Форум PHP</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-721</link>
		<dc:creator>Форум PHP</dc:creator>
		<pubDate>Thu, 27 Nov 2008 00:37:27 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-721</guid>
		<description>я предпочитаю парсить через preg_replace с ключем /e в шаблоне:

вот пример кода:
</description>
		<content:encoded><![CDATA[<p>я предпочитаю парсить через preg_replace с ключем /e в шаблоне:</p>
<p>вот пример кода:</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ZuBAR</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-711</link>
		<dc:creator>ZuBAR</dc:creator>
		<pubDate>Tue, 04 Nov 2008 08:49:35 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-711</guid>
		<description>А я пользуюсь своим и он мне нравится
http://maxreplace.zx6.ru/</description>
		<content:encoded><![CDATA[<p>А я пользуюсь своим и он мне нравится<br />
<a href="http://maxreplace.zx6.ru/" rel="nofollow">http://maxreplace.zx6.ru/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeurey</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-617</link>
		<dc:creator>Jeurey</dc:creator>
		<pubDate>Tue, 17 Jun 2008 03:20:37 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-617</guid>
		<description>Ну зачем сразу чужие шаблоны? Использовать MVC можно и без таких вещей... Если нужен цикл - используем 1 шаблон (который описывает отображение элемента) и оборачиваем во враппер (тобишь - другой шаблон).

И код от шаблона отделен, и функционал реализован ;)</description>
		<content:encoded><![CDATA[<p>Ну зачем сразу чужие шаблоны? Использовать MVC можно и без таких вещей&#8230; Если нужен цикл &#8211; используем 1 шаблон (который описывает отображение элемента) и оборачиваем во враппер (тобишь &#8211; другой шаблон).</p>
<p>И код от шаблона отделен, и функционал реализован <img src='http://php.southpark.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Владимир Лучанинов</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-609</link>
		<dc:creator>Владимир Лучанинов</dc:creator>
		<pubDate>Mon, 19 May 2008 09:53:14 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-609</guid>
		<description>Никак. Это не баг, а фича :)
Если нужно использовать управляющие конструкции PHP, то нужно пользоваться CakePHP и его шаблонами.</description>
		<content:encoded><![CDATA[<p>Никак. Это не баг, а фича <img src='http://php.southpark.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Если нужно использовать управляющие конструкции PHP, то нужно пользоваться CakePHP и его шаблонами.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Сеня</title>
		<link>http://php.southpark.com.ua/2008/your-smarty/comment-page-1/#comment-608</link>
		<dc:creator>Сеня</dc:creator>
		<pubDate>Sat, 17 May 2008 06:40:03 +0000</pubDate>
		<guid isPermaLink="false">http://php.southpark.com.ua/2008/your-smarty/#comment-608</guid>
		<description>.....я конечно извиняюсь...НО....как в этом шаблоне проделывать фокусы  с использованием

do{}
While()

или 

For()
куда я только не вписывл...и как только не пробывал....что-то не то получалось.
подскажите.....а
Заранее спасибо</description>
		<content:encoded><![CDATA[<p>&#8230;..я конечно извиняюсь&#8230;НО&#8230;.как в этом шаблоне проделывать фокусы  с использованием</p>
<p>do{}<br />
While()</p>
<p>или </p>
<p>For()<br />
куда я только не вписывл&#8230;и как только не пробывал&#8230;.что-то не то получалось.<br />
подскажите&#8230;..а<br />
Заранее спасибо</p>
]]></content:encoded>
	</item>
</channel>
</rss>
