在 prestashop 中覆盖 "src" 控制器后台
override "src" controller back office in prestashop
首先,我尝试了与该主题相关的所有问题和答案。此外,我尝试了相关问题并尝试解决但没有成功。所以请仔细阅读我的问题。
我在下面参考了Link这个主题但没有得到解决方案
override-controller-in-prestashop-1-6
prestashop-1-6-controller-override
我想使用我的自定义模块覆盖 prestashopbundle 控制器。
我的自定义模块结构
- mymodule
- controllers
- admin
- prestashop
- override
- views
我想覆盖这个控制器
prestashop/src/prestashopbundle/controller/Admin/sell/Customer/CustomerController.php
我的模块路径
module/mymodule/
谢谢
经过长时间在 Prestashop 的研究之后我得到了最好的解决方案
Prestashop(1.7.*) 说:
As Controllers are not available for override and can be regarded as
internal classes, we don’t consider moving a Controller in another
namespace as a backward-compatibility break.
创建自定义 Hook 后注册我的自定义模块。在自定义钩子中实现功能并完成它:)
public function hookActionViewCustomers($params)
{
$creddit = Configuration::get('Credit_Checkbox_1');
$customerid =$params['request']->attributes->get('customerId');
$Status_HTMl =$this->Get_Status_HTML($customerid);
if(!$creddit)
{
// Checkbox Checked
$ButtonDisable =" <button type=\"submit\" disabled='disabled' title='Not Allow'> Check Status </button>";
}
else{
// Checkbox unChecked
$ButtonDisable =" <button type=\"submit\" title='Click Get Status'> Check Status </button>";
}
return $Status_HTMl.$ButtonDisable;
}
首先,我尝试了与该主题相关的所有问题和答案。此外,我尝试了相关问题并尝试解决但没有成功。所以请仔细阅读我的问题。
我在下面参考了Link这个主题但没有得到解决方案
override-controller-in-prestashop-1-6
prestashop-1-6-controller-override
我想使用我的自定义模块覆盖 prestashopbundle 控制器。
我的自定义模块结构
- mymodule
- controllers
- admin
- prestashop
- override
- views
我想覆盖这个控制器
prestashop/src/prestashopbundle/controller/Admin/sell/Customer/CustomerController.php
我的模块路径
module/mymodule/
谢谢
经过长时间在 Prestashop 的研究之后我得到了最好的解决方案
Prestashop(1.7.*) 说:
As Controllers are not available for override and can be regarded as internal classes, we don’t consider moving a Controller in another namespace as a backward-compatibility break.
创建自定义 Hook 后注册我的自定义模块。在自定义钩子中实现功能并完成它:)
public function hookActionViewCustomers($params)
{
$creddit = Configuration::get('Credit_Checkbox_1');
$customerid =$params['request']->attributes->get('customerId');
$Status_HTMl =$this->Get_Status_HTML($customerid);
if(!$creddit)
{
// Checkbox Checked
$ButtonDisable =" <button type=\"submit\" disabled='disabled' title='Not Allow'> Check Status </button>";
}
else{
// Checkbox unChecked
$ButtonDisable =" <button type=\"submit\" title='Click Get Status'> Check Status </button>";
}
return $Status_HTMl.$ButtonDisable;
}