Jump to content

Edit History

_eSCe_

_eSCe_

Cześć wszystkim,

piszę moduł, w którym chcę zrobić automatyzację zmian hurtowych na liście zamówień.

Aktualnie zrobiłem to tak, przykład hurtowej zmiany cen:

\views\PrestaShop\Admin\Sell\Order\Order\index.html.twig - nadpisałem sobie index i dodałem sobie modala ze zmianą ceny:

{% include '@PrestaShop/Admin/Sell/Order/Order/Blocks/change_orders_price_modal.html.twig' %}

 

W module dodałem sobie akcję bulk:

        $definition->getBulkActions()->add(

                (new ButtonBulkAction('subscribe_newsletter'))

                    ->setName('Subscribe newsletter')

                    ->setOptions([

                        'class' => 'dropdown-item js-bulk-modal-form-submit-btn',

                        'attributes'  => [

                              'data-modal-id' => "changeOrdersPricesModal",

                        ],

                    ])

            );

 

Modal się wyświetla, przekierowuje akcję na kontroler Symfony, który ma ogarnąć hurtową zamianę. Mam natomiast problem z przekazaniem danych do głównego widoku z listą zamówień tak żeby zrenderować modala:

'changeOrderPricesForm' => $changeOrderPricesForm->createView(),

 

Chodzi konkretnie o kontroller OrderController.

    public function indexAction(Request $request, OrderFilters $filters)
    {
        $orderKpiFactory = $this->get('prestashop.core.kpi_row.factory.orders');
        $orderGrid = $this->get('prestashop.core.grid.factory.order')->getGrid($filters);

        $changeOrderStatusesForm = $this->createForm(ChangeOrdersStatusType::class);
        $changeOrderPricesForm = $this->createForm(ChangeOrdersPriceType::class);

        return $this->render(
            '@PrestaShop/Admin/Sell/Order/Order/index.html.twig',
            [
                'orderGrid' => $this->presentGrid($orderGrid),
                'help_link' => $this->generateSidebarLink($request->attributes->get('_legacy_controller')),
                'enableSidebar' => true,
                'changeOrderStatusesForm' => $changeOrderStatusesForm->createView(),
                'changeOrderPricesForm' => $changeOrderPricesForm->createView(),
                'orderKpi' => $orderKpiFactory->build(),
                'layoutHeaderToolbarBtn' => $this->getOrderToolbarButtons(),
            ]
        );
    }

 

Czy jest jakiś hook, gdzie mogę wstrzyknąć ten formularz do głównego szablonu zamówień lub jakiś sposób jak to zrobić?

Nie chciałbym nadpisywać oryginalnego kontrolera zamówień.

Dzięki za pomoc ;)

_eSCe_

_eSCe_

Cześć wszystkim,

piszę moduł, w którym chcę zrobić automatyzację zmian hurtowych na liście produktów.

Aktualnie zrobiłem to tak, przykład hurtowej zmiany cen:

\views\PrestaShop\Admin\Sell\Order\Order\index.html.twig - nadpisałem sobie index i dodałem sobie modala ze zmianą ceny:

{% include '@PrestaShop/Admin/Sell/Order/Order/Blocks/change_orders_price_modal.html.twig' %}

 

W module dodałem sobie akcję bulk:

        $definition->getBulkActions()->add(

                (new ButtonBulkAction('subscribe_newsletter'))

                    ->setName('Subscribe newsletter')

                    ->setOptions([

                        'class' => 'dropdown-item js-bulk-modal-form-submit-btn',

                        'attributes'  => [

                              'data-modal-id' => "changeOrdersPricesModal",

                        ],

                    ])

            );

 

Modal się wyświetla, przekierowuje akcję na kontroler Symfony, który ma ogarnąć hurtową zamianę. Mam natomiast problem z przekazaniem danych do głównego widoku z listą produktów tak żeby zrenderować modala:

'changeOrderPricesForm' => $changeOrderPricesForm->createView(),

 

Chodzi konkretnie o kontroller OrderController.

    public function indexAction(Request $request, OrderFilters $filters)
    {
        $orderKpiFactory = $this->get('prestashop.core.kpi_row.factory.orders');
        $orderGrid = $this->get('prestashop.core.grid.factory.order')->getGrid($filters);

        $changeOrderStatusesForm = $this->createForm(ChangeOrdersStatusType::class);
        $changeOrderPricesForm = $this->createForm(ChangeOrdersPriceType::class);

        return $this->render(
            '@PrestaShop/Admin/Sell/Order/Order/index.html.twig',
            [
                'orderGrid' => $this->presentGrid($orderGrid),
                'help_link' => $this->generateSidebarLink($request->attributes->get('_legacy_controller')),
                'enableSidebar' => true,
                'changeOrderStatusesForm' => $changeOrderStatusesForm->createView(),
                'changeOrderPricesForm' => $changeOrderPricesForm->createView(),
                'orderKpi' => $orderKpiFactory->build(),
                'layoutHeaderToolbarBtn' => $this->getOrderToolbarButtons(),
            ]
        );
    }

 

Czy jest jakiś hook, gdzie mogę wstrzyknąć ten formularz do głównego szablonu zamówień lub jakiś sposób jak to zrobić?

Dzięki za pomoc

×
×
  • Create New...