【发布时间】:2015-12-12 02:40:24
【问题描述】:
我在 override\classes\controller\FrontController.php 中覆盖了 frontController。我只添加了简单的代码
class FrontController extends FrontControllerCore
{
init()
{
[...]
$logo_image_url = 'themes/'._THEME_NAME_.'/img/shop/'.Tools::getValue('controller').'.png';
if (!file_exists($logo_image_url)) $logo_image_url = 'themes/'._THEME_NAME_.'/img/shop/main.png';
[...]
$this->context->smarty->assign(array(
// Usefull for layout.tpl
[...]
'logo_shop_image' => $logo_image_url,
));
[...]
}
}
在 header.tpl 我添加了带有 src="{$logo_shop_image}" 的 img。我删除 class_index.php 并在页面刷新后它在我的本地主机上工作(class_index.php 已重新生成)。
覆盖的代码在我的服务器上不起作用。 $logo_shop_image 始终为空。我也重新生成了 class_index.php,看起来 presta 仍然使用 original FrontController 因为当我覆盖原始代码时它可以工作。如何在覆盖目录中强制使用覆盖文件?
我对 class_index.php 文件感兴趣,我看到了一些奇怪的东西。
'FrontController' =>
array (
'path' => 'override/classes/controller/FrontController.php',
'type' => 'class',
'override' => false,
),
为什么“覆盖”=> 错误?这是来自工作本地主机的文件。重要吗?
【问题讨论】:
标签: php prestashop-1.6 overriding