gpt4 book ai didi

prestashop - 如何将模块连接到 prestashop 中的新页面?

转载 作者:行者123 更新时间:2023-12-04 04:35:13 29 4
gpt4 key购买 nike

我试图在 prestashop 中有一个静态页面作为主页。我能想到的唯一方法是创建一个新页面(即shop.php),然后将主页中当前 Hook 的模型 Hook 到新的shop.php。

我试着关注这个 http://alvinjiang.blogspot.com/2011/01/prestashop-tips-how-to-create-complete.html要创建一个新页面,它确实可以显示静态文本,即“hello world” - 但是我不知道将 homefeatured 模块(例如)连接到它。

你能以任何方式提供帮助吗?

谢谢

最佳答案

要将模块 Hook 到新页面,您可以按照以下步骤操作:

在我的示例中,钩子(Hook)被命名为 热门搜索

创建一个新的钩子(Hook)

INSERT INTO `ps_hook` (`id_hook`, `name`, `title`, `description`, `position`) VALUES ("", "topSearch", "Top search block", "Description top search block", "1")

允许你的模块链接到这个新的钩子(Hook)

你只需要编辑你的 module.php 来添加一个以钩子(Hook)命名的函数,例如:
public function hookTopSearch($params){
global $smarty;
$smarty->assign('test', 'it works !');
return $this->display(__FILE__, 'viewfile.tpl');
}

然后将对应的模块链接到你的新钩子(Hook)

后台 -> 模块 -> 职位 -> 嫁接一个模块

在 .tpl 文件中执行你的钩子(Hook)

您已经创建了一个新的 page.php,它包含 包括(目录名(_FILE_)。'/header.php'); 所以通过创建一个名为 的新文件来覆盖您的 FrontController.php FrontController.php 覆盖/类/ .

然后将您的钩子(Hook)添加到 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}

关于prestashop - 如何将模块连接到 prestashop 中的新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7467735/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com