挂钩一个模块到一个新的页面,您可以使遵循此步骤:
在我的例子钩被评为卓
创建一个新的钩
INSERT INTO `ps_hook` (`id_hook`, `name`, `title`, `description`, `position`) VALUES ("", "topSearch", "Top search block", "Description top search block", "1")
允许你的模块这种新的钩链接
您只需编辑您的module.php增加一个与钩,例如命名函数:
public function hookTopSearch($params){
global $smarty;
$smarty->assign('test', 'it works !');
return $this->display(__FILE__, 'viewfile.tpl');
}
然后链接对应模块,以新的钩
后台办公室 - >模块 - >位置 - >嫁接模块
执行你的钩子在.tpl文件
您已创建一个新的page.php,它包含include(dirname(_ FILE _)。'/ header.php');因此通过创建一个名为FrontController.php的覆盖/ classes/来覆盖您的FrontController.php。
那么你的钩子添加到displayHeader功能
<?php
class FrontController extends FrontControllerCore{
public function displayHeader(){
global $css_files, $js_files;
if (!self::$initialized)
$this->init();
// P3P Policies (http://www.w3.org/TR/2002/REC-P3P-20020416/#compact_policies)
header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"');
/* Hooks are volontary out the initialize array (need those variables already assigned) */
self::$smarty->assign(array(
'time' => time(),
'img_update_time' => Configuration::get('PS_IMG_UPDATE_TIME'),
'static_token' => Tools::getToken(false),
'token' => Tools::getToken(),
'logo_image_width' => Configuration::get('SHOP_LOGO_WIDTH'),
'logo_image_height' => Configuration::get('SHOP_LOGO_HEIGHT'),
'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_,
'content_only' => (int)Tools::getValue('content_only'),
'exclude_page' => array('category','manufacturer')
));
self::$smarty->assign(array(
'HOOK_HEADER' => Module::hookExec('header'),
'HOOK_TOP' => Module::hookExec('top'),
'HOOK_TOP_SEARCH' => Module::hookExec('topSearch'),
'HOOK_BUTTON_BRAND' => Module::hookExec('buttonBrand'),
'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn')
));
if ((Configuration::get('PS_CSS_THEME_CACHE') OR Configuration::get('PS_JS_THEME_CACHE')) AND is_writable(_PS_THEME_DIR_.'cache'))
{
// CSS compressor management
if (Configuration::get('PS_CSS_THEME_CACHE'))
Tools::cccCss();
//JS compressor management
if (Configuration::get('PS_JS_THEME_CACHE'))
Tools::cccJs();
}
self::$smarty->assign('css_files', $css_files);
self::$smarty->assign('js_files', array_unique($js_files));
self::$smarty->display(_PS_THEME_DIR_.'header.tpl');
}
}
要完成对应Smarty的VAR添加到您的模板文件
{$HOOK_TOP_SEARCH}
,谢谢,我会做了一下后,当我得到的时间,但只是一个简单的问题:我将能够添加{$ HOOK_TOP_SEARCH}是我创建的页面使用我上面链接的教程? – aurel
是的,因为你包含header.php和header.php,所以调用函数displayHeader(),以便你可以在你想要的地方使用你的钩子:) – Awea