我尝试使用覆盖类别控制器
<?php
class CategoryController extends CategoryControllerCore
{
public function initContent()
{
parent::initContent();
mail('test@gmail.com', 'subject', 'message');
$this->setTemplate($this->getTpl());
mail('test@gmail.com', 'subject', 'message2');
}
protected function getTpl()
{
$layout = _PS_THEME_DIR_ . 'category.tpl';
if ($parents = $this->category->getParentsCategories(Configuration::get('PS_LANG_DEFAULT')))
{
foreach ($parents as $parent)
{
$parent = (object) $parent;
if (isset($parent->link_rewrite))
{
$categoryLayoutOverride = _PS_THEME_DIR_ . 'layouts/categories/' . $parent->link_rewrite . '/category.tpl';
if (file_exists($categoryLayoutOverride))
{
$layout = $categoryLayoutOverride;
break;
}
}
}
}
return $layout;
}
}
但是我永远不会执行邮件功能。这意味着这个控制器永远不会首先执行。我该如何解决这个问题?
文件名为 CategoryController.php 并放入此文件夹 override / controllers / front / CategoryController.php
由于
答案 0 :(得分:4)
要使覆盖生效,您必须删除cache/class_index.php
。