<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Вывод информации из другой таблицы в шаблоне]]></title>
		<link>http://forum.readyscript.ru/topic/309/vyvod-informatsii-iz-drugoi-tablitsy-v-shablone/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/309/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Вывод информации из другой таблицы в шаблоне».]]></description>
		<lastBuildDate>Thu, 26 Mar 2015 15:39:49 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вывод информации из другой таблицы в шаблоне]]></title>
			<link>http://forum.readyscript.ru/post/1086/#p1086</link>
			<description><![CDATA[<p>Не за что)</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Thu, 26 Mar 2015 15:39:49 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1086/#p1086</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод информации из другой таблицы в шаблоне]]></title>
			<link>http://forum.readyscript.ru/post/1085/#p1085</link>
			<description><![CDATA[<p>Да, все получилось реализовать первым способом, второй хоть и попроще, но из-за особенности исполнения модуля не получится им реализовать. <br />Спасибо огромное за подробное и комментированное объяснение.</p>]]></description>
			<author><![CDATA[null@example.com (Дмитрий)]]></author>
			<pubDate>Thu, 26 Mar 2015 14:44:28 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1085/#p1085</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод информации из другой таблицы в шаблоне]]></title>
			<link>http://forum.readyscript.ru/post/1084/#p1084</link>
			<description><![CDATA[<p>Ну что получилось?</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Thu, 26 Mar 2015 07:40:14 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1084/#p1084</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод информации из другой таблицы в шаблоне]]></title>
			<link>http://forum.readyscript.ru/post/1075/#p1075</link>
			<description><![CDATA[<p>Добрый день.<br />Ну чтож, тут есть сразу не сколько решений. Давайте Рассмотрим всё по порядку:</p><p><strong>Вариант 1 </strong><br />Нами к smarty(шаблонозатор системы) написан плагин, который позволяет вызывать статический метод&nbsp; у любого класса системы прямо в шаблоне, главное чтобы это был метод public static<br />Т.е. допустим у Вас имеется свой собственный класс по пути <strong>\Custom\Model\CustomApi </strong>и метод <strong>loadInfo</strong>. Чтобы его вызвать нужно воспользоваться следующей конструкцией:</p><p>В шаблоне<br /></p><div class="codebox"><pre><code>{* $list - список Ваших объектов *}
{$list}

{* Вызов метода loadInfo в \Custom\Model\CustomApi *}
{static_call var=new_list callback=[&#039;\Custom\Model\CustomApi&#039;,&#039;loadInfo&#039;] params=[$list]}</code></pre></div><p>Таким образом мы сделаем аналог вызова функции вот так:<br /></p><div class="codebox"><pre><code>$new_list = \Custom\Model\CustomApi::loadInfo($list);</code></pre></div><p>Т.е. в шаблоне все данные, которые будут возвращены в шаблон, возвратятся в $new_list</p><p>В Вашем классе надо будет сделать так<br /></p><div class="codebox"><pre><code>/**
*
* @param array $list - массив входящих объектов
*/
public static function loadInfo($list){
    //Пройдёмся в цикле по списку
    foreach ($list as $k=&gt;$item){
       //Получим объект товара сделав запрос к таблице товаров через \RS\ORM\Request 
       $product = \RS\ORM\Request::make()
                             -&gt;from(new \Catalog\Model\Orm\Product()) //Укажем что запрос будет в таблицу товаров
                             -&gt;where(array(
                                   &#039;id&#039; =&gt; $item[&#039;product_id&#039;] 
                             ))
                             -&gt;object(); //Получим объект \Catalog\Model\Orm\Product
       
       //Ну или вот так ещё короче $product= new \Catalog\Model\Orm\Product($item[&#039;product_id&#039;]);
        
       $list[&#039;product_title&#039;] = $product[&#039;title&#039;]; //Создаём новый ключ массива, куда и запишем значение названия товара
       //Или можно записать весь объект
       $list[&#039;product&#039;] = $product;
       return $list;
    }
}</code></pre></div><p>Получить ссылку на товар можно тогда так:<br /></p><div class="codebox"><pre><code>{$new_list.0.product-&gt;getUrl()}
{*
   Аналог
   $new_list[0][&#039;product&#039;]-&gt;getUrl();
*}</code></pre></div><p>Подробнее метод static_call описани в <a href="http://readyscript.ru/dev-manual/dev_smarty_rsplugins.html#dev_smarty_rsplugins_function_static_call">документации</a></p><br /><p><strong>Вариант 2 </strong><br />Если используете блок контроллер или front контроллер, то можно прямо в контроллере подгрузить эти сведения о товаре. Например через join.<br />Рассмотрим на примере: <br />Допустим Вы запросом получаете сведения из одной таблицы, и вам нужно прикрепить данные из другой таблицы.</p><div class="codebox"><pre><code>//Получим список комплектаций с подгруженным полем из товара
$list = \RS\Orm\Request::make()
                 -&gt;select(&#039;O.*, P.title as product_title&#039;) //Выбрать только все поля таблицы комплектаций и одно поле товара
                 -&gt;from(new \Catalog\Model\Orm\Offer(),&#039;O&#039;)  //Запрос к такблице комплектаций с алиасом O
                 -&gt;join(new \Catalog\Model\Orm\Product(),&#039;O.product_id=P.id&#039;,&#039;P&#039;) //Join к таблице товаров с алиасом P
                 -&gt;where(&quot;O.product_id&gt;0&quot;) // WHERE  O.product_id&gt;0
                 -&gt;objects();</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Wed, 25 Mar 2015 09:10:43 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1075/#p1075</guid>
		</item>
		<item>
			<title><![CDATA[Вывод информации из другой таблицы в шаблоне]]></title>
			<link>http://forum.readyscript.ru/post/1074/#p1074</link>
			<description><![CDATA[<p>Добрый день. Возникла необходимость вывести в шаблоне модуля информацию из другой таблицы. <br />Иными словами я гружу информацию в шаблоне из таблицы, в которой у меня есть поле product_id, а мне необходимо вместо id вывести название этого товара с ссылкой на него. <br />Пробовал несколько вариантов но что-то так и не пришел к умозаключению. Заранее спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Дмитрий)]]></author>
			<pubDate>Wed, 25 Mar 2015 07:08:59 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1074/#p1074</guid>
		</item>
	</channel>
</rss>
