<?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>http://forum.readyscript.ru/topic/766/sozdat-otdelnuyu-stranitsu/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/766/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Создать отдельную страницу».]]></description>
		<lastBuildDate>Thu, 14 Jul 2016 15:52:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3972/#p3972</link>
			<description><![CDATA[<p>К публичной части можно через <strong>getUrlPattern</strong>(&#039;catalog-front-product&#039;, array(&#039;:id&#039; =&gt; &#039;@entity_id&#039;));<br />Аналог getAdminPattern соответственно.</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 14 Jul 2016 15:52:24 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3972/#p3972</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3958/#p3958</link>
			<description><![CDATA[<p>Видите у Вас <strong>id</strong> пустой. В <strong>select</strong> вы добавили, чтобы <strong>entity_id</strong> доставался?</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 13 Jul 2016 12:57:00 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3958/#p3958</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3950/#p3950</link>
			<description><![CDATA[<p>Не может этого быть, т.к. это просто класс для ссылки. У вас ссылка какая получается?</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 13 Jul 2016 10:32:01 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3950/#p3950</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3948/#p3948</link>
			<description><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Тогда уберите:<br /></p><div class="codebox"><pre><code>, &#039;LinkAttr&#039; =&gt; array(&#039;class&#039; =&gt; &#039;crud-edit&#039;)</code></pre></div></blockquote></div><p>Таким образом переходит, на &quot;Добавить товар&quot;</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 13 Jul 2016 08:40:37 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3948/#p3948</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3946/#p3946</link>
			<description><![CDATA[<p>Тогда уберите:<br /></p><div class="codebox"><pre><code>, &#039;LinkAttr&#039; =&gt; array(&#039;class&#039; =&gt; &#039;crud-edit&#039;)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 13 Jul 2016 08:10:39 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3946/#p3946</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3944/#p3944</link>
			<description><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Надо ещё в <strong>select</strong> получать <strong>A.entity_id</strong>.<br />Тогда:<br /></p><div class="codebox"><pre><code>new TableType\Text(&#039;title&#039;, t(&#039;Товар&#039;), array(&#039;href&#039; =&gt; $this-&gt;router-&gt;getAdminPattern(&#039;edit&#039;, array(&#039;:id&#039; =&gt; &#039;@entity_id&#039;), &#039;catalog-ctrl&#039; ), &#039;LinkAttr&#039; =&gt; array(&#039;class&#039; =&gt; &#039;crud-edit&#039;) )),</code></pre></div></blockquote></div><p>Так выводится окно с редактированием, а что бы был переход в карточку товара?</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 13 Jul 2016 08:01:42 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3944/#p3944</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3942/#p3942</link>
			<description><![CDATA[<p>Надо ещё в <strong>select</strong> получать <strong>A.entity_id</strong>.<br />Тогда:<br /></p><div class="codebox"><pre><code>new TableType\Text(&#039;title&#039;, t(&#039;Товар&#039;), array(&#039;href&#039; =&gt; $this-&gt;router-&gt;getAdminPattern(&#039;edit&#039;, array(&#039;:id&#039; =&gt; &#039;@entity_id&#039;), &#039;catalog-ctrl&#039; ), &#039;LinkAttr&#039; =&gt; array(&#039;class&#039; =&gt; &#039;crud-edit&#039;) )),</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 13 Jul 2016 07:44:36 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3942/#p3942</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3939/#p3939</link>
			<description><![CDATA[<p>А как правильно указать ссылку на товар?<br /></p><div class="codebox"><pre><code>new TableType\Text(&#039;title&#039;, t(&#039;Товар&#039;), array(&#039;href&#039; =&gt; $this-&gt;router-&gt;getAdminPattern(&#039;edit&#039;, array(&#039;:id&#039; =&gt; &#039;@id&#039;) ), &#039;LinkAttr&#039; =&gt; array(&#039;class&#039; =&gt; &#039;crud-edit&#039;) )),</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 13 Jul 2016 07:14:05 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3939/#p3939</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3925/#p3925</link>
			<description><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Но я думаю при переносе у Вас ничего не получилось, т.к. Вы написали запрос в ручную и скорее всего у Вас на удалёнке свой префикс к таблицам БД совсем другой.</p></blockquote></div><p>Блин точно, про префикс то я совсем и забыл.</p><div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Я иногда проверяю сам запрос просто выполнив его, например на удалённом PHPMyAdmin, если он доступен. Чтобы не запоминать префиксы, правильно будет строить запросы ORM запросом, тогда всё будет учтено.</p></blockquote></div><p>Думал допустить ошибку в создании запроса, потом оставил его в таком виде.</p><div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Я думаю, что правильный код контроллера должен быть такой:</p></blockquote></div><p>Да спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Tue, 12 Jul 2016 08:44:04 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3925/#p3925</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3922/#p3922</link>
			<description><![CDATA[<p>Ну естественно, Вы в файле API несколько раз переназначили с чем оно работает при вызове&nbsp; <strong>parent::__construct(</strong>. <br />Правильный API должен содержать только один экземпляр объекта того с чем он работает.<br /></p><div class="codebox"><pre><code>&lt;?php
namespace Newpage\Model;
/**
* Класс API
*/
class MyApi extends \RS\Module\AbstractModel\EntityList
{
    
    function __construct()
    {
        parent::__construct(new \Shop\Model\Orm\OrderItem, //С какой таблицей через ORM объект работать
        array(
            &#039;multisite&#039; =&gt; false, //Объект является не мультисайтовым (без поля site_id)
            //&#039;defaultOrder&#039; =&gt; &#039;id DESC&#039; //Сортировка по умолчанию при выборке
        ));
    }

}</code></pre></div><p>Этим самым мы объявили, что мы будем работать через API только с объектом <strong>\Shop\Model\Orm\OrderItem</strong>. А именно с таблицей <strong>order_items</strong>.</p><p>Теперь, что касается контроллера... Там в самом начале Вы уже объявили API с которым работает контроллер через присвоение АПИ контроллеру в конструкторе класса.<br /></p><div class="codebox"><pre><code>function __construct()
    {
         parent::__construct(new \Newpage\Model\MyApi()); //API с которым будет работать контроллер
    }</code></pre></div><p>Но я думаю при переносе у Вас ничего не получилось, т.к. Вы написали запрос в ручную и скорее всего у Вас на удалёнке свой префикс к таблицам БД совсем другой. Я иногда проверяю сам запрос просто выполнив его, например на удалённом PHPMyAdmin, если он доступен. Чтобы не запоминать префиксы, правильно будет строить запросы ORM запросом, тогда всё будет учтено.<br />Я думаю, что правильный код контроллера должен быть такой:<br /></p><div class="codebox"><pre><code>namespace Newpage\Controller\Admin;
use \RS\Html\Table\Type as TableType,
    \RS\Html\Toolbar\Button as ToolbarButton,
    \RS\Html\Toolbar,
    \RS\Html\Tree,
    \RS\Html\Table,
    \RS\Html\Filter;


class MyCtrl extends \RS\Controller\Admin\Crud
{
        function __construct()
    {
         parent::__construct(new \Newpage\Model\MyApi());
    }
    
    function helperIndex()
    {
           
        
        $helper = parent::helperIndex();
        $q = $this-&gt;api-&gt;queryObj(); //Получаем объект запроса
        //Изменяем запрос под наши нужды
        $q-&gt;join(new \Newpage\Model\Orm\Mydiscount(), &#039;A.order_id=B.order_id&#039;, &#039;B&#039;) //JOIN к таблице с нужными сведениями
             -&gt;join(new \Shop\Model\Orm\Discount(), &#039;B.discount_id=C.id&#039;, &#039;C&#039;); //JOIN к таблице с скидками

        //Теперь, что выбирать
        $q-&gt;select = &quot;A.order_id, A.title, B.discount_id, C.descr &quot;;
            
        $helper = parent::helperIndex();
        $helper-&gt;setTopTitle(t(&#039;Товары со скидками&#039;));
        $edit_pattern = $this-&gt;router-&gt;getAdminPattern(&#039;edit&#039;, array(&#039;:id&#039; =&gt; &#039;@id&#039;));
        $helper-&gt;setTable(new Table\Element(array(
            &#039;Columns&#039; =&gt; array(         
                new TableType\String(&#039;order_id&#039;, &#039;1&#039;),
                new TableType\String(&#039;title&#039;, t(&#039;2&#039;)), 
                new TableType\String(&#039;discount_id&#039;, t(&#039;3&#039;)),
                new TableType\String(&#039;descr&#039;, t(&#039;14&#039;)),             
        ))));

        return $helper;
    }
    
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Tue, 12 Jul 2016 08:35:48 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3922/#p3922</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3919/#p3919</link>
			<description><![CDATA[<p>Подскажите пожалуйста, где допущена ошибка, потому что выводит данные только из таблицы mydiscount.<br />P.S. я проверил все на отдельном файле в корне и через var_dump(), все работает правильно, но при переносе в модуль у меня выводит данные только из таблицы mydiscount. Мне кажется все дело в api файле. Подскажите верное решение. </p><p>содержание файла myctrl.inc.php<br /></p><div class="codebox"><pre><code>namespace Newpage\Controller\Admin;
use \RS\Html\Table\Type as TableType,
    \RS\Html\Toolbar\Button as ToolbarButton,
    \RS\Html\Toolbar,
    \RS\Html\Tree,
    \RS\Html\Table,
    \RS\Html\Filter;


class MyCtrl extends \RS\Controller\Admin\Crud
{
        function __construct()
    {
         parent::__construct(new \Newpage\Model\MyApi());
    }
    
    function helperIndex()
    {
           
        
        $helper = parent::helperIndex();
        $q = $this-&gt;api-&gt;queryObj();
        $q = \RS\Db\Adapter::sqlExec(&#039;
        SELECT iazw_order_items.order_id, iazw_order_items.title, iazw_order_mydiscount.discount_id, iazw_order_discount.descr 
        FROM iazw_order_items 
        INNER JOIN iazw_order_mydiscount ON iazw_order_mydiscount.order_id = iazw_order_items.order_id INNER JOIN iazw_order_discount ON iazw_order_mydiscount.discount_id = iazw_order_discount.id&#039;);

            
        $helper = parent::helperIndex();
        $helper-&gt;setTopTitle(t(&#039;Товары со скидками&#039;));
        $edit_pattern = $this-&gt;router-&gt;getAdminPattern(&#039;edit&#039;, array(&#039;:id&#039; =&gt; &#039;@id&#039;));
        $helper-&gt;setTable(new Table\Element(array(
            &#039;Columns&#039; =&gt; array(         
                new TableType\String(&#039;order_id&#039;, &#039;1&#039;),
                new TableType\String(&#039;title&#039;, t(&#039;2&#039;)), 
                new TableType\String(&#039;discount_id&#039;, t(&#039;3&#039;)),
                new TableType\String(&#039;descr&#039;, t(&#039;14&#039;)),             
        ))));

        return $helper;
    }
    
}</code></pre></div><p><strong><br />myapi.inc.php</strong><br /></p><div class="codebox"><pre><code>&lt;?php
/**
* ReadyScript ([url]http://readyscript.ru[/url])
*
* @copyright Copyright (c) ReadyScript lab. ([url]http://readyscript.ru[/url])
* @license [url]http://readyscript.ru/licenseAgreement/[/url]
*/
namespace Newpage\Model;

class MyApi extends \RS\Module\AbstractModel\EntityList
{
    
    function __construct()
    {
        parent::__construct(new \Shop\Model\Orm\OrderItem, //С какой таблицей через ORM объект работать
        array(
            &#039;multisite&#039; =&gt; false, //Объект является не мультисайтовым (без поля site_id)
            //&#039;defaultOrder&#039; =&gt; &#039;id DESC&#039; //Сортировка по умолчанию при выборке
        ));

        parent::__construct(new \Shop\Model\Orm\Discount,
        array(
            &#039;multisite&#039; =&gt; true
        ));
        parent::__construct(new \Newpage\Model\Orm\Mydiscount,
        array(
           &#039;multisite&#039; =&gt; false
        ));

    }

}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Mon, 11 Jul 2016 11:02:07 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3919/#p3919</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3758/#p3758</link>
			<description><![CDATA[<p>Спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Mon, 04 Jul 2016 05:35:58 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3758/#p3758</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3755/#p3755</link>
			<description><![CDATA[<p>Правильно это надо сделать так:<br /></p><div class="codebox"><pre><code>public static function OrmAfterwriteShopOrder($data) 
{

    $order = $data[&#039;orm&#039;]; 
    $coupons = $order-&gt;getCart()-&gt;getCouponItems(); //Получение купонов заказа
    if (!empty($coupons)) {
         foreach ($coupons as $uniq=&gt;$coupon){
               $cartitem = $coupon[&#039;cartitem&#039;]; //Получаем связь купона
         }

         //Предварительно удалим старые связи
         \RS\Orm\Request::make()
                     -&gt;delete()
                     -&gt;from(new \Newpage\Model\Orm\Mydiscount())
                     -&gt;where(array{
                              &#039;order_id&#039; =&gt; $order[&#039;id&#039;]
                     })-&gt;exec();

         $order_id = new \Newpage\Model\Orm\Mydiscount();
         $order_id[&#039;order_id&#039;] = $order[&#039;order_num&#039;];
         $order_id[&#039;discount_id&#039;] = $cartitem[&#039;entity_id&#039;];
         $res = $order_id-&gt;insert();

    }   


    

}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Fri, 01 Jul 2016 12:37:34 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3755/#p3755</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3753/#p3753</link>
			<description><![CDATA[<p>Переберите цикл и возьмите. Вы же знаете как циклы перебирать? Если нет, то Вам нужно учить PHP, т.к. это базовые знания по программированию. Иначе дальше Вы ни на шаг не провинитесь.</p><p>Почитайте книгу<br /><a href="http://www.internet-technologies.ru/books/book_190.html">http://www.internet-technologies.ru/books/book_190.html</a></p><p>или посмотрите видеоуроки по программированию на php</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Fri, 01 Jul 2016 09:44:50 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3753/#p3753</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создать отдельную страницу]]></title>
			<link>http://forum.readyscript.ru/post/3750/#p3750</link>
			<description><![CDATA[<p>Ну вот берите. В чём проблема? <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Fri, 01 Jul 2016 09:10:17 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/3750/#p3750</guid>
		</item>
	</channel>
</rss>
