覆盖prestshop 1.7.7的控制器



请,是否有人有管理员控制器覆盖Prestashop 1.7.7(基于symfony)的例子

谢谢你的回答。

我为此创建了一个示例模块,可以从这里(在发布版下)下载。

覆盖特定路由/adminXXXX/index.php/sell/orders/的过程如下:

  1. 你在你的项目中创建了一个Symfony控制器(代码在下面一点)。我在src/Controller中创建它们,这是惯例。这个控制器必须扩展PrestaShopBundleControllerAdminFrameworkBundleAdminController班。我使用composer auto loader加载我的类,下面是设置:
"autoload": {
"psr-4": {
"Skaparate\": "src/"
},
"classmap": [
"sk_testmodule.php"
],
"exclude-from-classmap": []
},
  1. 您需要在项目的根目录下创建一个文件夹config。这一点很重要,因为PrestaShop将从那里加载路由和服务。
  2. 在之前创建的文件夹中创建一个名为routes.yml的文件
  3. routes.yml中定义你想要覆盖的路由。在本例中,路由名为admin_orders_index,因此我们这样写:
admin_orders_index:
path: /sell/orders/
# POST is required because admin_order_index is also setup as the grid reset return route.
methods: [GET,POST]
defaults:
_controller: 'SkaparateControllerAdminCustomOrdersController::indexAction'
_disable_module_prefix: true
  1. 最后,这是实际的控制器:
<?php
namespace SkaparateControllerAdmin;
if (!defined('_PS_VERSION_')) {
die;
}
use PrestaShopBundleControllerAdminFrameworkBundleAdminController;
use PrestaShopBundleSecurityAnnotationAdminSecurity;
use PrestaShopBundleSecurityAnnotationModuleActivated;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationRequest;
class CustomOrdersController extends FrameworkBundleAdminController
{
/**
* Shows list of orders
*
* @param Request $request
* @param OrderFilters $filters
*
* @return Response
*/
public function indexAction(Request $request)
{
return $this->render(
'@Modules/sk_testmodule/views/templates/admin/sell/order/index.html.twig',
[
'enableSidebar' => true,
]
);
}
}

这个项目结构应该是:

├── composer.json
├── composer.lock
├── config
│   └── routes.yml
├── README.md
├── sk_testmodule.php
├── src
│   └── Controller
│       └── Admin
│           └── CustomOrdersController.php
└── views
└── templates
└── admin
└── sell
└── order
└── index.html.twig

当然,您需要创建文件views/templates/admin/sell/orders/index.html.twig。我把它放在那个路径中是为了维护PrestaShop结构,但这不是必需的。

作为参考,Symfony路由在src/PrestaShopBundle/Resources/config/routes中定义(相对于PrestaShop安装)

问候!

相关内容

  • 没有找到相关文章

最新更新