<?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/751/rasshirenii-poleiadminnaya-chast/</link>
		<atom:link href="https://forum.readyscript.ru/feed/rss/topic/751/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Расширений полей(Админная часть)».]]></description>
		<lastBuildDate>Thu, 16 Jun 2016 14:46:54 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Расширений полей(Админная часть)]]></title>
			<link>https://forum.readyscript.ru/post/3542/#p3542</link>
			<description><![CDATA[<p>Ну если Вы внимательно читали документацию, то Вам в этом методе приходит массив в параметре. Где в этом массиве есть ключ <strong>orm</strong>, который хранит объект ORM для которого Вы вызываете событие.<br />Например:<br /></p><div class="codebox"><pre><code>/**
* Событие перед записью объекта в данном случае заказа в БД
*
* @param array $data - массив данных
*/
public static function ormBeforeWriteShopOrder($data)
{
     /**
     * @var \Shop\Model\Orm\Order
     */
     $order = $data[&#039;orm&#039;]; //Получаем объект заказа

     if (isset($_POST[&#039;mystock&#039;])){ //Если нужное поле пришло из запроса
          $order[&#039;mystock&#039;] = \RS\Http\Request::commonInstance()-&gt;request(&#039;mystock&#039;, TYPE_STRING); //Присваеваем из поста значение с экранированием.
     }
     
}</code></pre></div><p>Запись произойдёт т.к. модифицировать объект объявленного класса можно редактировать из любого места (В соответствии с правилами PHP).</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 16 Jun 2016 14:46:54 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/3542/#p3542</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширений полей(Админная часть)]]></title>
			<link>https://forum.readyscript.ru/post/3540/#p3540</link>
			<description><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><div class="quotebox"><cite>Илья пишет:</cite><blockquote><p>Не могли бы на счет echo $_POST[&#039;mystock&#039;];подробнее подсказать?<br />Данный хук у меня уже используется, что бы вычитать из поля итого.</p></blockquote></div><p>Что конкретно у Вас не получается?</p></blockquote></div><p>$mystock = $_POST[&#039;mystock&#039;]; вот я вытаскиваю значение поля, а дальше как мне занести значение в бд?</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 16 Jun 2016 13:23:37 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/3540/#p3540</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширений полей(Админная часть)]]></title>
			<link>https://forum.readyscript.ru/post/3538/#p3538</link>
			<description><![CDATA[<div class="quotebox"><cite>Илья пишет:</cite><blockquote><p>Не могли бы на счет echo $_POST[&#039;total_stock&#039;];подробнее подсказать?<br />Данный хук у меня уже используется, что бы вычитать из поля итого.</p></blockquote></div><p>Что конкретно у Вас не получается?</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 16 Jun 2016 13:01:56 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/3538/#p3538</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширений полей(Админная часть)]]></title>
			<link>https://forum.readyscript.ru/post/3536/#p3536</link>
			<description><![CDATA[<p>Не могли бы на счет echo $_POST[&#039;mystock&#039;];подробнее подсказать?<br />Данный хук у меня уже используется, что бы вычитать из поля итого.</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 16 Jun 2016 12:04:49 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/3536/#p3536</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширений полей(Админная часть)]]></title>
			<link>https://forum.readyscript.ru/post/3531/#p3531</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>1. Что бы данные передавались в базу, пришлось добавить в файл orderctrl.inc.php после , &#039;user_phone&#039;&nbsp; добавил , &#039;mystock&#039;. Можно ли как то без этого обойтись?</p></blockquote></div><p>Поле <strong>user_phone</strong> надо поменять, т.е. оно уже зарезервировано.<br />Можно подвесится на событие перед записью объекта заказа, и из POST вытащить значения Ваших полей, чтобы их записать.<br />Для этого нужен хук <strong>orm.beforewrite.КОРОТКОЕ_ИМЯ_ORM_ОБЪЕКТА </strong><br />А именно:<br /><strong>orm.beforewrite.shop-order</strong><br /><a href="http://readyscript.ru/dev-manual/dev_hooks.html#dev_hooks_list">http://readyscript.ru/dev-manual/dev_ho … hooks_list</a><br />И в этой функции произвести нужные действия.</p><div class="quotebox"><blockquote><p>2. Как сделать что бы в конце суммы добавлялось .руб и что бы выводилось 1 999, а не 1999</p></blockquote></div><p>Просто в шаблоне написать руб.</p><div class="quotebox"><blockquote><p>и что бы выводилось 1 999, а не 1999</p></blockquote></div><p>Есть модификатор <strong>format_price</strong>. Например если есть переменная $price, то вывод будет такой:<br /></p><div class="codebox"><pre><code>{$price|format_price}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 16 Jun 2016 07:51:24 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/3531/#p3531</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширений полей(Админная часть)]]></title>
			<link>https://forum.readyscript.ru/post/3525/#p3525</link>
			<description><![CDATA[<p>Вообщем сделал следующим образом. Сделал модуль на расширение новых полей, <strong>скидка</strong> и <strong>новая цена</strong>. И из <strong>totalcost</strong> вычитаю <strong>скидку</strong>, и полученный результат записываю в ячейку <strong>новая цена</strong>. Сделал что бы значение поле скидка не записывалось в базу. Сейчас выведу, новую&nbsp; цену в админку где мне нужно. Вариант конечно не идеальный но пока что пойдет.&nbsp; </p><p>Осталось у меня пару вапросов:<br />1. Что бы данные передавались в базу, пришлось добавить в файл <strong>orderctrl.inc.php</strong> после <strong>, &#039;user_phone&#039;</strong>&nbsp; добавил <strong>, &#039;mystock&#039;</strong>. Можно ли как то без этого обойтись?</p><p>2. Как сделать что бы в конце суммы добавлялось <strong>.руб</strong> и что бы выводилось 1 999, а не 1999</p><p>P.S. Будем ждать глобальное обновление корзины <img src="https://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 16 Jun 2016 05:15:14 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/3525/#p3525</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширений полей(Админная часть)]]></title>
			<link>https://forum.readyscript.ru/post/3518/#p3518</link>
			<description><![CDATA[<p>Дело всё в том, что заказ это практически единственный ORM объект, который обладает своим уникальным шаблоном для редактирования в виду жёсткой специфики. И там жестко прописан вывод полей в самом шаблоне.<br />Т.е. если подменить шаблон на свой в своей теме оформления, то можно вывести Ваше поле.</p><p>Сам шаблон находится здесь:<br /><strong>/modules/shop/view/orderview.tpl</strong><br />Его можно подменить для своей темы скопировав в :<br /><strong>/templates/Ваша тема/moduleview/shop/orderview.tpl</strong></p><div class="quotebox"><blockquote><p>Скидка: &lt;span class=&quot;summary&quot;&gt;{$order_data.mystock}&lt;/span&gt;</p></blockquote></div><p>Ну всё правильно. Если вы сделаете <strong>var_dump($order_data)</strong>, то увидите, что это объект не <strong>\Shop\Model\Orm\Order</strong>, который Вы расширяете, а <strong>\Shop\Model\Orm\OrderItem</strong>. Это разные вещи. У вас объект заказа в Вашем шаблоне находится в переменной <strong>$order</strong></p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 15 Jun 2016 08:05:30 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/3518/#p3518</guid>
		</item>
		<item>
			<title><![CDATA[Расширений полей(Админная часть)]]></title>
			<link>https://forum.readyscript.ru/post/3516/#p3516</link>
			<description><![CDATA[<p>Добрый день. Подскажите пожалуйста, что я забыл сделать, в базу поле добавилось. Но где оно должно было вывестись на сайте? <br />И почему я пытаюсь получить его из базы путем <br /></p><div class="codebox"><pre><code>Скидка: &lt;span class=&quot;summary&quot;&gt;{$order_data.mystock}&lt;/span&gt;</code></pre></div><p>Но ничего не выводится?</p><p><a href="http://radikal.ru/fp/ec009cc57f0c4a0cadae134093bcbbdb"><span class="postimg"><img src="http://s019.radikal.ru/i643/1606/bc/4b009512f393t.jpg" alt="http://s019.radikal.ru/i643/1606/bc/4b009512f393t.jpg" /></span></a></p><div class="codebox"><pre><code>&lt;?php
namespace Custom\Config;
use \RS\Orm\Type as OrmType;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this
            -&gt;bind(&#039;orm.init.shop-order&#039;);

    }

    // @param \Shop\Model\Orm\Order $order - обьект заказа
    public static function ormInitShopOrder (\Shop\Model\Orm\Order $order) {

        $order-&gt;getPropertyIterator()-&gt;append(array(
            &#039;mystock&#039; =&gt; new OrmType\Varchar(array(
                    &#039;maxLength&#039; =&gt; &#039;255&#039;,
                    &#039;description&#039; =&gt; t(&#039;Скидка&#039;),
            )),

        ));    
    }
        
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 15 Jun 2016 06:16:44 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/3516/#p3516</guid>
		</item>
	</channel>
</rss>
