ShopScript - Добавить отчет Есть решение

Пишу свой плагин для магазина, потребовалось добавить свой отчет в раздел "Отчеты" ("Продажи", ..., "Воронка оформления заказа").



Сам пункт в меню добавляется с помощь хука backend_reports:



public function hookBackendReports()

{

    return array('menu_li' => '<li><a href="http://#/my/" target="_blank" rel="nofollow">My report</a></li>');

}



Внедрить свой раздел получилось только по аналогии со стандартными отчетами,

добавив wa-apps\shop\templates\actions\reports\ReportsMy.html, wa-apps\shop\lib\actions\reports\shopReportsMy.action.php

и изменив wa-apps\shop\js\reports.js:



checkoutflowAction: function() {

    $("#reportscontent").load('?module=reports&action=checkoutflow'+this.getTimeframeParams());

},

// My begin

myAction: function () {

    $("#reportscontent").load('?module=reports&action=my'+this.getTimeframeParams());

},

// My end


Соответственно возник вопрос:



как подключить экшен "my" (выводит отчет), расположенный в плагине "repo"?



Можно ли как-то назвать класс экшена так, чтобы он был доступен по ссылке "?action=reports#/my/"?

Или как для этого грамотно использовать роутинг\маршрутизацию?

Какой JS скрипт добавить к хуку "backend_reports", чтобы отчет открывался также как и стандартные, а не на все окно?

3 ответа

  • 1
    Дмитрий | Дизайн со вкусом 9 апреля 2014 01:36 # Решение
    Я так делал, php action кидать не буду он большой, делай по аналогии со стандартными

    <?php
    class shopStatusorderPlugin extends shopPlugin
    {
    public function backendMenu()
    {
    $view = wa()->getView();
    $content = $view->fetch($this->path.'/templates/menuli.html');
    return array('menu_li' => $content);
    }
    }
    ?>


    <li>
    <a href="#/status/">[`Status order`]</a>
    </li>
    <script type="text/javascript">
    $(document).ready(function(){
    $.reports.statusAction = function(){
    $("#reportscontent").load('?plugin=statusorder&action=report'+this.getTimeframeParams());
    };
    });
    </script>
  • 0
    info@srinternet.net 12 ноября 2014 01:49 #
    I amusing hook backend_orders and have same problem of loading plugin page "?plugin=exportzirius&action=orders".
    right now i am using onclick=\'$("#s-content").load("?plugin=exportzirius&action=orders");\'

    have problem in adding class selected.

    Is there any standard way of writing java here.

    Is there any similar way { $ .reports.statusAction = function(){ $("#reportscontent").load('?plugin=statusorder&action=report'+this.getTimeframeParams()); }; });

    Please reply in english...
  • -2

    Здравствуйте!

    Хочу перейти со старого движка на новый.Предложите свои услуги. Заранее спасибо.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите