我在prestashop应用程序中面临一个关于hook :: exec的问题,其中正确安装了module和hook方法。但是当我尝试执行此模块时,它返回false。请建议我。模块和钩子方法显示在“模块和服务/位置”以及数据库中的ps_hook
表中。
模块基本文件定义为:
public function __construct()
{
$this->name = 'callback';
$this->tab = 'front_office_features';
$this->version = '1.0';
$this->author = 'Amit Jha';
$this->need_instance = 0;
$this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_);
$this->bootstrap = true;
parent::__construct();
$this->displayName = $this->l( 'Call Back' );
$this->description = $this->l( '....' );
$this->confirmUninstall = $this->l( 'Are you sure you want to uninstall? .... ' );
}
安装方法如下:
if ( parent::install() && $this->registerHook( 'displayCallBack' ) && $this->registerHook( 'displayHeader' ) && $this->registerHook( 'displayCallBackCart' ) && $this->registerHook( 'displayCallBackLinkOnCartPopup' ) && $this->registerHook( 'displayCallBackLinkOnCartPopupWishlist' ) ) {
if ( !$this->alterTable( 'add' ) ) {
return false;
}
return true;
}
钩子方法:
public function hookDisplayCallBack( $params )
{
$results = CallBackServiceCore::searchDetail();
if ( count( $results ) <= 0 ) {
return;
}
foreach ( $results as $item ) {
$this->context->smarty->assign( array(
'description_text' => $item["description_text"],
'recall_promise' => $item["recall_promise"]
) );
}
$arrDate = $this->getCallingTime();
$this->context->smarty->assign( array(
'arrTimeList' => $arrDate,
'product_id' => $params["product"]->id,
'product_name' => $params["product"]->name,
'category' => $params["product"]->category
)
);
return $this->display( __file__, 'display.tpl' );
}
请说明我弄错了。