<?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/1243/vkladka-so-svoei-formoi/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/1243/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Вкладка со своей формой».]]></description>
		<lastBuildDate>Fri, 12 May 2017 13:39:32 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7112/#p7112</link>
			<description><![CDATA[<p>спасибо, надо будет запомнить )))</p>]]></description>
			<author><![CDATA[null@example.com (Евгений)]]></author>
			<pubDate>Fri, 12 May 2017 13:39:32 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7112/#p7112</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7108/#p7108</link>
			<description><![CDATA[<div class="codebox"><pre><code>{$price|format_price}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Fri, 12 May 2017 12:22:54 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7108/#p7108</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7107/#p7107</link>
			<description><![CDATA[<p>Еще побеспокою, как можно отформатировать число под цену, может есть какие-то хелперы. Типа было 20000, стало 20 000...</p>]]></description>
			<author><![CDATA[null@example.com (Евгений)]]></author>
			<pubDate>Fri, 12 May 2017 11:33:33 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7107/#p7107</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7103/#p7103</link>
			<description><![CDATA[<p><strong>Александр</strong>, спасибо в освоении системы, все получилось...</p>]]></description>
			<author><![CDATA[null@example.com (Евгений)]]></author>
			<pubDate>Fri, 12 May 2017 02:50:01 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7103/#p7103</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7087/#p7087</link>
			<description><![CDATA[<p>Если Вам нужно диалоговое окно, то Вам проще всего реализовать всё на основе рекомендованных товаров как это сделано при редактировании товара. А именно как у объекта <strong>\Catalog\Model\Orm\Product</strong> (файл <strong>/modules/catalog/model/orm/product.inc.php</strong>).<br /></p><div class="codebox"><pre><code>&#039;recommended&#039; =&gt; new Type\Varchar(array(
    &#039;maxLength&#039; =&gt; 4000,
    &#039;description&#039; =&gt; t(&#039;Рекомендуемые товары&#039;),
    &#039;visible&#039; =&gt; false,
        )),
&#039;recommended_arr&#039; =&gt; new Type\ArrayList(array(
    &#039;visible&#039; =&gt; false
        )),
t(&#039;Рекомендуемые товары&#039;),
    &#039;_recomended_&#039; =&gt; new Type\UserTemplate(
                        &#039;%catalog%/form/product/recomended.tpl&#039;,
                        &#039;%catalog%/form/product/merecomended.tpl&#039;,array(
        &#039;meVisible&#039; =&gt; true  //Видимость при мультиредактировании
    )),</code></pre></div><p>&nbsp; &nbsp; <br />Вот здесь 3 поля. Два скрытых. И одно, которое отвечает за отображение всей вкладки. Это происходит за счёт того, что используется тип поля UserTemplate. Если вы его используете, то оно распрастраняется полностью на ближайшую вкладку. В данном случае рекомендованные товары.<br />Первое поле служит для хранения массива товаров или каталогов выбранных в сериализованном виде, а вот второе содержит уже рассериализованный массив, чтобы было удобно с ним работать. Когда товар загружается из базы при его инициализации поле первое рассериализовывается и передаётся <br />значение во второе.</p><div class="codebox"><pre><code>/**
* Вызывается после загрузки объекта
* @return void
*/
function afterObjectLoad()
{
    if (!empty($this[&#039;recommended&#039;])) {
        $this[&#039;recommended_arr&#039;] = @unserialize($this[&#039;recommended&#039;]);
    }
}</code></pre></div><p>Вам нужно будет использовать хук orm.afterload.catalog-product.<br />При сохранении товара, поле recommended_arr сохраняет сериализованный массив в recommended.</p><div class="codebox"><pre><code> /**
 * Вызывается перед сохранением объекта
 * 
 * @param string $flag - строковое представление текущей операции (insert или update)
 * @return void
 */
function beforeWrite($flag)
{
    if ($this-&gt;isModified(&#039;recommended_arr&#039;)){ //Если изменялись рекомендуемые
        $this[&#039;recommended&#039;] = serialize($this[&#039;recommended_arr&#039;]);
    }
}</code></pre></div><p>На вкладке отрабатывает шаблон &#039;<strong>%catalog%/form/product/recomended.tpl</strong>&#039;. %catalog% - путь к папке шаблоном модуля catalog (<strong>/modules/catalog/view/</strong>). Там вызывается функция getProductDialog, которая принадлежит объекту товара. Она же и выводит нужную Вам кнопку. <br />Однако эта функция использует поля для рекомендуемых товаров, соответсвенно Вам нужно сделать будет свою функцию просто скопировав и заменив нужное и расширить объект товара, чтобы он видел уже Вашу другую функцию для отображания. Это можно сделать через </p><div class="codebox"><pre><code>behavior</code></pre></div><p>.<br /><a href="https://www.youtube.com/watch?v=7jsv06VNy5Y&amp;list=PLh6R2ixK62TjPL31OFFGG2fL4X2UTC6Aw&amp;index=4">https://www.youtube.com/watch?v=7jsv06V … mp;index=4</a></p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 11 May 2017 08:06:30 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7087/#p7087</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7079/#p7079</link>
			<description><![CDATA[<div class="quotebox"><cite>Евгений пишет:</cite><blockquote><p>никто не подскажет как вывести кнопку????</p></blockquote></div><p>В документации все есть.</p>]]></description>
			<author><![CDATA[null@example.com (ustasby)]]></author>
			<pubDate>Wed, 10 May 2017 18:47:35 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7079/#p7079</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7074/#p7074</link>
			<description><![CDATA[<p>никто не подскажет как вывести кнопку????</p>]]></description>
			<author><![CDATA[null@example.com (Евгений)]]></author>
			<pubDate>Wed, 10 May 2017 10:45:17 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7074/#p7074</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7072/#p7072</link>
			<description><![CDATA[<p>в принципе даже не надо форму выводить, можно просто вывести кнопку диалога выбора товара, типа как сделано для сопутствующих товаров в карточке товара</p>]]></description>
			<author><![CDATA[null@example.com (Евгений)]]></author>
			<pubDate>Wed, 10 May 2017 06:08:43 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7072/#p7072</guid>
		</item>
		<item>
			<title><![CDATA[Вкладка со своей формой]]></title>
			<link>http://forum.readyscript.ru/post/7070/#p7070</link>
			<description><![CDATA[<p>Доброго утра!</p><p>Такой вопросик, мне нужно в окне редактирования, к примеру, бренда сделать новую вкладку и на ней разместить произвольную форму, которую можно подгрузить из view. Вкладка сама получается, а вот как описать размещение сверстанной формы? Вот код:<br /></p><div class="codebox"><pre><code>public static function ormInitCatalogBrand(\Catalog\Model\Orm\Brand $brand)
    {
        $brand-&gt;getPropertyIterator()-&gt;append(array( //Добавляем свойства к объекту
            &#039;Моя закладка&#039;, //Закладка, появится в форме редактирования бренда
             
            &#039;test_property&#039; =&gt; new \RS\Orm\Type\Template(array( //Тип поля. Вот здесь надо Template или UserTemplate, как я понял
             // а как дальше прописывать?
                
            ))
        ));*/
    }</code></pre></div><p>помогите советом....</p>]]></description>
			<author><![CDATA[null@example.com (Евгений)]]></author>
			<pubDate>Wed, 10 May 2017 05:22:29 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/7070/#p7070</guid>
		</item>
	</channel>
</rss>
