<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Как правильно добавить дополнительное поле в таблицу product_offer]]></title>
		<link>https://forum.readyscript.ru/topic/236/kak-pravilno-dobavit-dopolnitelnoe-pole-v-tablitsu-productoffer/</link>
		<atom:link href="https://forum.readyscript.ru/feed/rss/topic/236/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Как правильно добавить дополнительное поле в таблицу product_offer».]]></description>
		<lastBuildDate>Wed, 17 Dec 2014 09:06:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Как правильно добавить дополнительное поле в таблицу product_offer]]></title>
			<link>https://forum.readyscript.ru/post/814/#p814</link>
			<description><![CDATA[<p>Да, если в аргументе 2,3 метода bind - не задан callback на другой обработчик.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 17 Dec 2014 09:06:20 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/814/#p814</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как правильно добавить дополнительное поле в таблицу product_offer]]></title>
			<link>https://forum.readyscript.ru/post/813/#p813</link>
			<description><![CDATA[<p>я правильно понял, что на события для их обработаки навешивается функция которая именуется ВСЕГДА так</p><p>orm.init.catalog-offer = function OrmInitCatalogOffer</p>]]></description>
			<author><![CDATA[null@example.com (AleksC1976)]]></author>
			<pubDate>Wed, 17 Dec 2014 09:02:59 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/813/#p813</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как правильно добавить дополнительное поле в таблицу product_offer]]></title>
			<link>https://forum.readyscript.ru/post/810/#p810</link>
			<description><![CDATA[<p>Ошибка в следующем:</p><p>Вы подвешиваетесь на событие <strong>orm.init.catalog-offer</strong>. 2,3 аргумент у bind - не задан, соответственно это означает, что система будет искать в данном классе функцию для обработки события с названием события, за вычетом точек и минусов.</p><p>т.е. Вам необходимо назвать функцию вместо ormInitCatalogProduct так:<br /></p><div class="codebox"><pre><code>public static function ormInitCatalogOffer(\Catalog\Model\Orm\Offer $offer)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 17 Dec 2014 08:27:55 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/810/#p810</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как правильно добавить дополнительное поле в таблицу product_offer]]></title>
			<link>https://forum.readyscript.ru/post/809/#p809</link>
			<description><![CDATA[<p>Пользуясь случаем, хочу сказать, когда люди пишут на форум - это обычно означает, что они ознакомились с руководством на вашем сайте и что то пошло не так. Ну да ладно - это все лирическое отступление. По существу имею сказать следующее</p><p>вот такой файл <strong>handlers.inc.php</strong> упорно <strong><span style="color: red">не добавляет</span></strong> нужное поле в таблицу <strong>product_offer</strong></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-offer&#039;);
    }
    public static function ormInitCatalogProduct(\Catalog\Model\Orm\Offer $orm_offer)
    {
        $orm_offer-&gt;getPropertyIterator()-&gt;append(array( //Добавляем свойства к объекту
               
            &#039;offertype&#039; =&gt; new \RS\Orm\Type\Integer(array( //Тип поля. Задает тип в базе INT
            &#039;maxLength&#039; =&gt; 1, // Длина поля в базе будет INT(1)
            &#039;description&#039; =&gt; &#039;Признак заказной позиции&#039;, //Название поля

            ))
        ));
    }
}</code></pre></div><p>а&nbsp; вот такой файл <strong>handlers.inc.php</strong>&nbsp; <strong><span style="color: green">добавляет</span></strong> нужное поле в таблицу <strong>product</strong></p><div class="codebox"><pre><code>&lt;?php
namespace Custom\Config;
 
class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this-&gt;bind(orm.init.catalog-product&#039;);
    }

    public static function ormInitCatalogProduct(\Catalog\Model\Orm\product $orm_offer)
    {
        $orm_offer-&gt;getPropertyIterator()-&gt;append(array( //Добавляем свойства к объекту
               
            &#039;offertype&#039; =&gt; new \RS\Orm\Type\Integer(array( //Тип поля. Задает тип в базе INT
            &#039;maxLength&#039; =&gt; 1, // Длина поля в базе будет INT(1)
            &#039;description&#039; =&gt; &#039;Признак заказной позиции&#039;, //Название поля

            ))
        ));
    }
}</code></pre></div><p>Отличия в этих файлах всего 2</p><p>1) $this-&gt;bind(&#039;<strong>orm.init.catalog-product</strong>&#039;) <span style="color: green"><strong>/</strong></span> $this-&gt;bind(&#039;<strong>orm.init.catalog-offer</strong>&#039;)<br />2)&nbsp; public static function ormInitCatalogProduct(<strong>\Catalog\Model\Orm\product</strong> $orm_offer) <span style="color: green"><strong>/</strong></span> public static function ormInitCatalogProduct(<strong>\Catalog\Model\Orm\Offer</strong> $orm_offer)</p><p>Из чего я делаю вывод, что то не в порядке с именованием ORM видимо с моей стороны, именовал ORM в соответствии с руководством и вашим сообщением <a href="http://forum.readyscript.ru/post/806/#p806">http://forum.readyscript.ru/post/806/#p806</a>, я все эти операции уже проделал перед тем как написать на форум. Отчаялся заставить работать функцию из трех строчки&nbsp; и сделал с подменой классов, но после обновленя магазина все перестало работать - начались ошибки. при изменении структуры БД, о чем я уже писал в соседней ветке.</p><p>Получается что я не могу никак добавить поле в БД, только в PHPMyAdmin - что не есть хорошо. Хотелосб бы использовать модульность системы. Может я не вижу какую то запятую конечно ?&nbsp; ПОдскажите пожалуйста. Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (AleksC1976)]]></author>
			<pubDate>Wed, 17 Dec 2014 05:10:08 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/809/#p809</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как правильно добавить дополнительное поле в таблицу product_offer]]></title>
			<link>https://forum.readyscript.ru/post/806/#p806</link>
			<description><![CDATA[<p>Торговое предложение - это обычный ORM объект класса \Catalog\Model\Orm\Offer.<br />В нашей статье подробно расписано, как расширять ORM объект из дополнительного модуля. (см. обработку события orm.init.КОРОТКОЕ_ИМЯ_ORM_ОБЪЕКТА)<br /><a href="http://readyscript.ru/text-blog/Kak-pravilno-rasshiryat-funkcional-internetmagazinov-ReadyScript/">http://readyscript.ru/text-blog/Kak-pra … adyScript/</a></p><p>Следует учитывать, что Торговое предложение имеет не автоматически генерируемую форму отображения в админ. панели. Т.е. если необходимо выводить данное поле визуально в админ. панели, то необходимо будет править шаблон \modules\catalog\view\form\product\offers.tpl</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 15 Dec 2014 10:56:31 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/806/#p806</guid>
		</item>
		<item>
			<title><![CDATA[Как правильно добавить дополнительное поле в таблицу product_offer]]></title>
			<link>https://forum.readyscript.ru/post/805/#p805</link>
			<description><![CDATA[<p>Необходимо добавить дополнительное поле в БД в таблицу product_offer. <br />С товарами вроде все понятно, через ORM объекты, а как быть с товарными предложениями? Нужно добавить дополнительное поле в таблицу с товарными предложениями.</p><p>С подменой классов конечно все легко и просто - &quot;2 минуты делов&quot;, а вот с собственными модулями как то не очень. Непонятно, на какое событие можно повесить добавление поля к товарному предложению.</p>]]></description>
			<author><![CDATA[null@example.com (AleksC1976)]]></author>
			<pubDate>Mon, 15 Dec 2014 09:30:42 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/805/#p805</guid>
		</item>
	</channel>
</rss>
