<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; Добавление нового метода к объекту товара.]]></title>
	<link rel="self" href="http://forum.readyscript.ru/feed/atom/topic/948/" />
	<updated>2016-10-11T08:21:05Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.readyscript.ru/topic/948/dobavlenie-novogo-metoda-k-obektu-tovara/</id>
		<entry>
			<title type="html"><![CDATA[Re: Добавление нового метода к объекту товара.]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4980/#p4980" />
			<content type="html"><![CDATA[<p>Все, спасибо! Не правильно был назван файл с классом CatalogProduct<br />было: catalogproduct.php, а надо было catalogproduct.inc.php</p>]]></content>
			<author>
				<name><![CDATA[Максим]]></name>
				<uri>http://forum.readyscript.ru/user/474/</uri>
			</author>
			<updated>2016-10-11T08:21:05Z</updated>
			<id>http://forum.readyscript.ru/post/4980/#p4980</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Добавление нового метода к объекту товара.]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4978/#p4978" />
			<content type="html"><![CDATA[<p>Сделал все по инструкции. Ошибка должна выводиться на самой странице? Выводится пустая страница, а в консоли - 500 (Internal Server Error).</p>]]></content>
			<author>
				<name><![CDATA[Максим]]></name>
				<uri>http://forum.readyscript.ru/user/474/</uri>
			</author>
			<updated>2016-10-11T08:05:35Z</updated>
			<id>http://forum.readyscript.ru/post/4978/#p4978</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Добавление нового метода к объекту товара.]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4976/#p4976" />
			<content type="html"><![CDATA[<p>Ну вы ошибки включили? Что ошибка говорит?</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-10-11T07:58:33Z</updated>
			<id>http://forum.readyscript.ru/post/4976/#p4976</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Добавление нового метода к объекту товара.]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4973/#p4973" />
			<content type="html"><![CDATA[<p>она ниже, вот полный код из файла handlers.inc.php:</p><div class="codebox"><pre><code>&lt;?php

namespace Custom\Config;
use Exchange\Model\Importers\Catalog;
use \RS\Orm\Type as OrmType;

/**
* Класс предназначен для объявления событий, которые будет прослушивать данный модуль и обработчиков этих событий.
*/
class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this
            -&gt;bind(&#039;orm.init.shop-order&#039;)
            -&gt;bind(&#039;initialize&#039;);
    }

    /**
     * Подключаем методы к объекту товара из стороннего модуля
     */
    public static function initialize()
    {
        \Catalog\Model\Orm\Product::attachClassBehavior(new \Custom\Model\Behavior\CatalogProduct);
    }

    /**
     * Расширяем объект заказа
     *
     * @param \Shop\Model\Orm\Order $order - объект закзаа
     */
    public static function ormInitShopOrder(\Shop\Model\Orm\Order $order)
    {
        $order-&gt;getPropertyIterator()-&gt;append(array(
            &#039;order_post_id&#039; =&gt; new OrmType\Varchar(array(
                &#039;maxLength&#039; =&gt; &#039;50&#039;,
                &#039;description&#039; =&gt; t(&#039;Идентификатор отправления&#039;),
            )),
            &#039;delivery_cost&#039; =&gt; new OrmType\Decimal(array(
                &#039;maxLength&#039; =&gt; &#039;15&#039;,
                &#039;decimal&#039; =&gt; 2,
                &#039;description&#039; =&gt; t(&#039;Стоимость доставки&#039;),
            )),
        ));
    }
}</code></pre></div><p>Модуль был создан ранее и с расширением объекта Заказ справлялся. Проблемы начались после добавления хука -&gt;bind(&#039;initialize&#039;) и соответствующей функции</p>]]></content>
			<author>
				<name><![CDATA[Максим]]></name>
				<uri>http://forum.readyscript.ru/user/474/</uri>
			</author>
			<updated>2016-10-11T07:52:50Z</updated>
			<id>http://forum.readyscript.ru/post/4973/#p4973</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Добавление нового метода к объекту товара.]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4971/#p4971" />
			<content type="html"><![CDATA[<p>Во первых включите отображение ошибок <br /><a href="https://readyscript.ru/faq/#faq-errors">https://readyscript.ru/faq/#faq-errors</a></p><p>А во вторых дело видимо в <br /></p><div class="codebox"><pre><code>-&gt;bind(&#039;orm.init.shop-order&#039;)</code></pre></div><p>У Вас хук объявлен, а функции не вижу.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-10-11T07:51:00Z</updated>
			<id>http://forum.readyscript.ru/post/4971/#p4971</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Добавление нового метода к объекту товара.]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4969/#p4969" />
			<content type="html"><![CDATA[<p>Добрый день! <br />При попытке расширить поведение ORM-объекта Product возникли сложности.<br />Исходя из того, насколько я понял видеоурок на эту тему - мною сделано следующее:</p><p>1. В стороннем модуле Custom в классе handlers.inc.php:<br /></p><div class="codebox"><pre><code>    function init()
    {
        $this
            -&gt;bind(&#039;orm.init.shop-order&#039;)
            -&gt;bind(&#039;initialize&#039;);
    }

    /**
     * Подключаем методы к объекту товара из стороннего модуля
     */
    public static function initialize()
    {
        \Catalog\Model\Orm\Product::attachClassBehavior(new \Custom\Model\Behavior\CatalogProduct);
    }</code></pre></div><p>2. В \custom\model\behavior\catalogproduct.php:<br /></p><div class="codebox"><pre><code>namespace Custom\Model\Behavior;
use RS\Behavior\BehaviorAbstract;

class CatalogProduct extends BehaviorAbstract
{
    /**
     * Возвращает массив товаров с с таким же базовым артикулом
     *
     */
    function getProductsLikeThis()
    {
        return &quot;test&quot;;
    }

}</code></pre></div><p>Вроде бы все по инструкции, но при очистке кэша - 500 (Internal Server Error)<br />До написания необходимой функции и использования ее в шаблоне - соответственно не дошел, так как уперся в данную проблему. Помогите найти ошибку.</p>]]></content>
			<author>
				<name><![CDATA[Максим]]></name>
				<uri>http://forum.readyscript.ru/user/474/</uri>
			</author>
			<updated>2016-10-11T04:58:31Z</updated>
			<id>http://forum.readyscript.ru/post/4969/#p4969</id>
		</entry>
</feed>
