Prestashop 1.5.6.0覆盖控制器永远不会执行

时间:2014-03-21 03:13:15

标签: prestashop-1.5

我尝试使用覆盖类别控制器

<?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

由于

1 个答案:

答案 0 :(得分:4)

要使覆盖生效,您必须删除cache/class_index.php