<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Вопрос по генерации полей формы в админке getFormObject() ORM]]></title>
		<link>http://forum.readyscript.ru/topic/539/vopros-po-generatsii-polei-formy-v-adminke-getformobject-orm/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/539/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Вопрос по генерации полей формы в админке getFormObject() ORM».]]></description>
		<lastBuildDate>Mon, 30 Nov 2015 12:44:22 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вопрос по генерации полей формы в админке getFormObject() ORM]]></title>
			<link>http://forum.readyscript.ru/post/2274/#p2274</link>
			<description><![CDATA[<p>Да, действительно как вы и сказали.<br />Спасибо, сейчас все выводится.</p>]]></description>
			<author><![CDATA[null@example.com (Денис)]]></author>
			<pubDate>Mon, 30 Nov 2015 12:44:22 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/2274/#p2274</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по генерации полей формы в админке getFormObject() ORM]]></title>
			<link>http://forum.readyscript.ru/post/2268/#p2268</link>
			<description><![CDATA[<p>Скорее всего у вас display_errors=on не применился, поэтому fatal error - не виден.<br />Выведите phpinfo(), посмотрите состояние display_errors</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 30 Nov 2015 07:42:10 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/2268/#p2268</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по генерации полей формы в админке getFormObject() ORM]]></title>
			<link>http://forum.readyscript.ru/post/2266/#p2266</link>
			<description><![CDATA[<p>Это что за уровень HTML такой?</p><p>Вобщем вот api функция:<br /></p><div class="codebox"><pre><code>    /**
     * Добавим желание
     * 
     * @param \Catalog\Model\Orm\Product $product
     * @param \Users\Model\Orm\User      $user
     * @return bool
     */
    public function addWish(\Catalog\Model\Orm\Product $product, \Users\Model\Orm\User $user)
    {
          $current_site = \RS\Site\Manager::getSite();
        $data = array(
            &#039;site_id&#039; =&gt; $current_site[&#039;id&#039;],
            &#039;user_id&#039; =&gt; $user[&#039;id&#039;],
            &#039;user_name&#039; =&gt; $user[&#039;name&#039;],
            &#039;product_id&#039; =&gt; $product[&#039;id&#039;],
            &#039;product_name&#039; =&gt; $product[&#039;title&#039;]
        );

        if (self::getElement()-&gt;checkData($data))
        {
            return self::save(null, $data);
        } 
        else 
        {
            return false;
        }
    }</code></pre></div><p>Вот вызов в блочном контроллере:<br /></p><div class="codebox"><pre><code>if ($method == &#039;add&#039;) { // Если метод add - добавяем желание
                $product = array($product); // Для создания ошибки
                if ($api-&gt;addWish($product, $user)) {
                    $this-&gt;refreshPage();
                }
                else {
                    $this-&gt;view-&gt;assign(&#039;error&#039;, $api-&gt;getElement()-&gt;getLastError());
                    return false;
                }
            }</code></pre></div><p>Вот HTML:<br /><span class="postimg"><img src="http://22.groupvm.z8.ru/pic/where_is_error.jpg" alt="http://22.groupvm.z8.ru/pic/where_is_error.jpg" /></span><br />Где ошибка?</p>]]></description>
			<author><![CDATA[null@example.com (Денис)]]></author>
			<pubDate>Sun, 29 Nov 2015 19:53:41 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/2266/#p2266</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по генерации полей формы в админке getFormObject() ORM]]></title>
			<link>http://forum.readyscript.ru/post/2265/#p2265</link>
			<description><![CDATA[<p>Система написала ошибку, просто она отобразилась на уровне Вашего html. Посмотрите html который получается у Вас в итоге - в то место где прерывается.</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Sat, 28 Nov 2015 22:11:11 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/2265/#p2265</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по генерации полей формы в админке getFormObject() ORM]]></title>
			<link>http://forum.readyscript.ru/post/2262/#p2262</link>
			<description><![CDATA[<p>Спасибо, с магией массивов все ясно. Как я понял, такой принцип работает почти везде во фреймворке - и это удобно.</p><p>А вот с выводом ошибок есть уточнение:</p><p>Я поставил настройки \Setup::$DETAILED_EXCEPTION = true и display_errors on.<br />Далее моделирую ситуацию - передаю массив в api-функцию, принимающую только объект. Действие прописано в блочном контроллере.<br />Система просто прерывает рендеринг на этом самом блоке, не выводя никаких сообщений.</p><p>1. Так и должно быть?<br />2. Нужно ли использовать какой-нибудь print_r($this-&gt;getErrors()) или что-то подобное для вывода ошибок на экран?</p>]]></description>
			<author><![CDATA[null@example.com (Денис)]]></author>
			<pubDate>Sat, 28 Nov 2015 11:19:52 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/2262/#p2262</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по генерации полей формы в админке getFormObject() ORM]]></title>
			<link>http://forum.readyscript.ru/post/2261/#p2261</link>
			<description><![CDATA[<p>setList устанавливает callback, который будет вызван при генерации списка возможных значений, <br />первый аргумент - это array (callback), все последующие будут переданы аргументами в callback</p><p>соответственно объявление в formObject&#039;е:</p><div class="codebox"><pre><code>&#039;list&#039; =&gt; array(array(&#039;\Catalog\Model\PropertyApi&#039;,&#039;staticSelectList&#039;), true),</code></pre></div><p>Означает, что будет вызвано:<br /></p><div class="codebox"><pre><code>\Catalog\Model\PropertyApi::staticSelectList(true);</code></pre></div><br /><p>Теперь по второму вопросу, чтобы включить максимальный вывод ошибок:</p><p>в .htaccess включаем display_errors on (для отображения fatal error)<br />в админке включаем &quot;Подробно отображать информацию об исключениях&quot; (это равносильно включению \Setup::$DETAILED_EXCEPTION = true) (для отображения exception&#039;ов)</p><p>В данном случае все ошибки будут выводиться на экран.</p><p>----------------------------------------------------</p><p>Вы можете отключить все ошибки и установить логирование exception в файл:<br />display_errors off<br />\Setup::$DETAILED_EXCEPTION = false;<br />\Setup::$WRITE_EXCEPTIONS_TO_FILE = true; //рекомендуем включать только на период отладки</p><p>в таком случае сведения о fatal error вы можете получать в error_log файле вашего веб-сервера.<br />А сведения об исключениях в файле /exceptions.auto.txt в корне вашего сайта</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Fri, 27 Nov 2015 16:09:27 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/2261/#p2261</guid>
		</item>
		<item>
			<title><![CDATA[Вопрос по генерации полей формы в админке getFormObject() ORM]]></title>
			<link>http://forum.readyscript.ru/post/2258/#p2258</link>
			<description><![CDATA[<p>При генерации поля формы в модуле доставки я использую метод RS::Orm::Type::AbstractObject::setList </p><p>Выглядит это так (поле service_id):<br /></p><div class="codebox"><pre><code>function getFormObject()
    {
        $properties = new \RS\Orm\PropertyIterator(array(
            &#039;max_weight&#039; =&gt; new Type\String(array(
                &#039;description&#039; =&gt; t(&#039;Максимальный вес, грамм&#039;),
            )),
            &#039;service_id&#039; =&gt; new Type\String(array(
                &#039;description&#039; =&gt; t(&#039;Услуга доставки&#039;),
                &#039;hint&#039; =&gt; t(&#039;Все услуги, предоставляемые IML&#039;),
                &#039;list&#039; =&gt; array(array(&#039;\Shop\Model\DeliveryType\IML&#039;,&#039;staticGetServices&#039;)),
            )),
            &#039;timeout&#039; =&gt; new Type\Integer(array(
                &#039;description&#039; =&gt; t(&#039;Время ожидания ответа IML, сек&#039;),
                &#039;hint&#039; =&gt; t(&#039;Иногда запросы к IML идут очень долго,&lt;br/&gt; чтобы не дожидатся ответа используется это значение.&lt;br/&gt;Рекоммендуемое значение 2 сек.&#039;),
                &#039;default&#039; =&gt; 2,
            )),  
        ));
        return new \RS\Orm\FormObject($properties);
    }</code></pre></div><p>Так вот, я посмотрел в других классах, и иногда первый массив, передающийся в &#039;list&#039;, имеет второй параметр.<br />Например в классе Sheepla в поле &quot;width&quot; это true:<br /></p><div class="codebox"><pre><code>&#039;list&#039; =&gt; array(array(&#039;\Catalog\Model\PropertyApi&#039;,&#039;staticSelectList&#039;),true),</code></pre></div><p>В классе Cdek в поле &quot;tariffTypeCode&quot; - false:<br /></p><div class="codebox"><pre><code>&#039;List&#039; =&gt; array(array(&#039;\Shop\Model\DeliveryType\Cdek\CdekInfo&#039;,&#039;getAllTariffs&#039;), false),</code></pre></div><p>(Кстати, а почему ключ с большой буквы? Ключи что, не регистрозависимы?)<br />А, например, в том же Sheepla в поле &quot;template_id&quot; вообще $this:<br /></p><div class="codebox"><pre><code>&#039;list&#039; =&gt; array(array(&#039;\Shop\Model\DeliveryType\Sheepla&#039;,&#039;staticGetTemplates&#039;),$this),</code></pre></div><p>Я нигде не нашел документацию по этому параметру. Объясните пожалуйста, что он делает.</p><p>P.S. И еще вопросик по debug&#039;у (не режим отладки фронта). Как и куда <strong>правильно</strong> выводить отладочную инфу php?</p>]]></description>
			<author><![CDATA[null@example.com (Денис)]]></author>
			<pubDate>Fri, 27 Nov 2015 10:50:25 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/2258/#p2258</guid>
		</item>
	</channel>
</rss>
