thelia / easy-order-manager-module
Thelia 的 EasyOrderManager 模块
2.1.2
2024-06-07 14:15 UTC
Requires
- thelia/installer: ~1.1
README
在此处添加简短描述。如有需要,还可以添加截图。
安装
手动
- 将模块复制到
<thelia_root>/local/modules/
目录,并确保模块名称为 EasyOrderManager。 - 在 Thelia 管理面板中激活它
Composer
将其添加到主 Thelia composer.json 文件中
composer require your-vendor/easy-order-manager-module
使用方法
激活后,您将在 Thelia 后台办公室中看到一个新菜单链接。这个新页面允许您通过筛选器和搜索栏轻松管理所有订单。此模块使用 Datables。
事件
您可以使用 2 个事件为此模块添加筛选器
BeforeFilterEvent::ORDER_MANAGER_BEFORE_FILTER
TemplateFieldEvent::ORDER_MANAGER_TEMPLATE_FIELD
在 BeforeFilterEvent 中,您可以访问订单查询和请求。
在 TemplateFieldEvent 中,您可以使用函数 addTemplateField(fieldName, templateName) 添加带有您新筛选器的模板。您只需将 js-filter-element
类添加到筛选器输入中。
您可以使用一个事件为此模块添加或删除列
TemplateColumnDefinitionEvent::ORDER_MANAGER_TEMPLATE_COLUMN_DEFINITION
在 TemplateColumnDefinitionEvent 中,您可以使用函数 addColumnDefinition(template, index)
向 dataTable 添加新列。
//Example : <?php //*** class EasyOrderManagerListener implements EventSubscriberInterface { public function addFieldsToTemplate( TemplateFieldEvent $event) { $event->addTemplateField('item_to_filter','item_to_filter_template_name.html'); } public function addFilterOnQuery( BeforeFilterEvent $event) { $filters =$event->getRequest()->get('filter'); $search = $event->getQuery(); if ("" !== $filters['item_to_filter']) { //update $search to filter with the data in $filters['item_to_filter'] } } public function updateColumnDefinition( TemplateColumnDefinitionEvent $event) { $event->removeColumnDefinition('invoice_date'); $event->addColumnDefinition([ 'name' => 'id_column', 'targets' => 6, //index of column 'title' => 'title_column', 'orderable' => false, // /!\ orderable is not manageable for the moment always set false 'className' => "text-center",// class applied to the column 'render' => "defaultRender", // name of the js function when render data 'parseOrderData'=> function(Order $order){ //return the data wich will be used in the render function } ],6); // /!\ targets and the index param must be the same. } public static function getSubscribedEvents() { return [ BeforeFilterEvent::ORDER_MANAGER_BEFORE_FILTER => ['addFilterOnQuery'], TemplateFieldEvent::ORDER_MANAGER_TEMPLATE_FIELD => ['addFieldsToTemplate'], TemplateColumnDefinitionEvent::ORDER_MANAGER_TEMPLATE_COLUMN_DEFINITION => ['updateColumnDefinition'], ]; } //... }
您可以使用此函数在 JS 中渲染数据