<?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>https://forum.readyscript.ru/topic/21/kak-dobavit-pole-tovaru/</link>
		<atom:link href="https://forum.readyscript.ru/feed/rss/topic/21/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Как добавить поле товару?».]]></description>
		<lastBuildDate>Fri, 12 Sep 2014 14:41:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Как добавить поле товару?]]></title>
			<link>https://forum.readyscript.ru/post/129/#p129</link>
			<description><![CDATA[<p>Нужно дописать модуль, который будет подписываться на <a href="http://readyscript.ru/dev-manual/dev_hooks.html">хуки системы</a>.<br />Вот как надо:</p><p>1. В папке&nbsp; modules делаем папку с названием модуля. Например custom<br />2. В ней создаём папку config<br />3. В папке config создаём файл file.inc.php с содержимым:<br /></p><div class="codebox"><pre><code>&lt;?php
namespace Custom\Config;

class File extends \RS\Orm\ConfigObject
{
    /**
    * Возвращает значения свойств по-умолчанию
    * 
    * @return array
    */
    public static function getDefaultValues()
    {
        return array(
            //Default - значения
            &#039;name&#039; =&gt; t(&#039;Собственный модуль&#039;),
            &#039;description&#039; =&gt; t(&#039;Позволяет расширять функционал сайта&#039;),
            &#039;version&#039; =&gt; &#039;1.0.0.0&#039;,
            &#039;author&#039; =&gt; &#039;Alexander Zakusilo&#039;
        );
    }      
}</code></pre></div><p> <br />Сохраняем.<br />4. В папке config создаём файл handlers.inc.php с содержимым:<br /></p><div class="codebox"><pre><code>&lt;?php
namespace Custom\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this-&gt;bind(&#039;orm.init.catalog-product&#039;); //Хук на инициализацию объекта товара.
    }
    
    
    /**
    * Функция подвешивается на инициализацию товара
    * 
    */
    public static function ormInitCatalogProduct(\Catalog\Model\Orm\Product $product)
    {
        $product-&gt;getPropertyIterator()-&gt;append(array(
            t(&#039;Основные&#039;),
           &#039;new_image&#039; =&gt; new Type\Image(array(
                        &#039;maxLength&#039; =&gt; &#039;255&#039;, //Длинна поля
                        &#039;max_file_size&#039; =&gt; 10000000, //Максимальный размер загружаемой картинки
                        &#039;allow_file_types&#039; =&gt; array(&#039;image/pjpeg&#039;, &#039;image/jpeg&#039;, &#039;image/png&#039;, &#039;image/gif&#039;), //Поддерживаемые типы
                        &#039;description&#039; =&gt; &#039;Новая картинка&#039;, //Название поля
            )),
        ));
        return $product;
    }
}</code></pre></div><p>Сохраняем.<br />6.Собственно далее идём в Веб-сайт -&gt; Настройка модулей. Сбрасываем кэш. Должен появится наш модуль. После чего устанавливаем его.<br />7. Идём Управление -&gt; Настройки системы. Справа ищем &quot;Исправить структуру БД&quot;. Нажимаем ждём результат.<br />Всё. Теперь у товара появится поле с добавлением картинки. Тоже самое действие для всех ORM объектов. </p><p>P.S. <br />Ну и напоследок как же к нему обратится?<br />В обычном случае в шаблонах это выглядит так<br /></p><div class="codebox"><pre><code>{$product.new_picture}</code></pre></div><p>т.е. $product.алиас поля добавленного<br />Но в нашем случае используется изображение, поэтому для отображения существует функция:<br /></p><div class="codebox"><pre><code>{$product-&gt;__new_picture-&gt;getUrl(700, 304, &#039;xy&#039;)} </code></pre></div><p>{$product-&gt;__new_picture-&gt;getUrl(ширина, высота, &#039;метод обрезки&#039;)} </p><p>Подробнее о <a href="http://readyscript.ru/dev-manual/dev_image_system.html">системе изображений здесь </a></p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Fri, 12 Sep 2014 14:41:01 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/129/#p129</guid>
		</item>
		<item>
			<title><![CDATA[Как добавить поле товару?]]></title>
			<link>https://forum.readyscript.ru/post/59/#p59</link>
			<description><![CDATA[<p>Подскажите пожалуйста, как добавить дополнительное поле товару. А именно:<br />Заказчик хочет, добавить ещё изображение чтобы отображать картинку бренда для товаров(продают майки).<br />Как добавить такое поле?</p>]]></description>
			<author><![CDATA[null@example.com (Федя)]]></author>
			<pubDate>Fri, 29 Aug 2014 14:01:04 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/59/#p59</guid>
		</item>
	</channel>
</rss>
