Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未加载Magento块模板文件_Php_Magento - Fatal编程技术网

Php 未加载Magento块模板文件

Php 未加载Magento块模板文件,php,magento,Php,Magento,我正在尝试做一些非常基本的事情:编辑类别产品页面模板的一小部分。我将pager.phtml从../base/default/template/page/html/复制到我自己主题的template/page/html文件夹中,并在新文件中更改了我需要更改的内容。不幸的是,前端没有任何改变 我尝试过启用“模板路径提示”,它明确显示了正在加载的自定义模板。当我清空我的主题的pager.phtml时,所有的内容都会保留下来(就好像它仍在加载默认模板一样)。当我编辑默认模板时,仍然没有任何更改!啊哈!它

我正在尝试做一些非常基本的事情:编辑类别产品页面模板的一小部分。我将
pager.phtml
../base/default/template/page/html/
复制到我自己主题的
template/page/html
文件夹中,并在新文件中更改了我需要更改的内容。不幸的是,前端没有任何改变

我尝试过启用“模板路径提示”,它明确显示了正在加载的自定义模板。当我清空我的主题的
pager.phtml
时,所有的内容都会保留下来(就好像它仍在加载默认模板一样)。当我编辑默认模板时,仍然没有任何更改!啊哈!它必须被缓存

但我已经禁用了缓存(这是一个开发站点),并尝试刷新所有缓存。没有什么变化。我在这个网站上编辑了许多模板,它们都按预期工作,这是唯一给我带来麻烦的
pager.phtml

如果有人能给我指出正确的方向,或者甚至向我提出更多的调试想法,那就太好了。提前感谢。

也请尝试:

  • 重新编制索引(可以更改模板,但可以加载旧索引)
  • 清除/var/cache文件夹本身 站点是否使用litespeed或任何其他缓存实用程序?可能还需要清理那些缓存

    也可以尝试:

  • 重新编制索引(可以更改模板,但可以加载旧索引)
  • 清除/var/cache文件夹本身
    站点是否使用litespeed或任何其他缓存实用程序?可能还需要清理那些缓存

    如果您的缓存已关闭,并且您编辑的
    base/default
    package/theme无效,则听起来您编辑的文件是错误的

    碰巧的是,它是1.4版本上的1.3模板,因为寻呼机设置在两个版本之间发生了变化,并且会导致您所描述的特殊问题

    您是否测试过重写另一个
    .phtml
    文件,以查看它是否实际工作(即,您是否正确设置了它)

    最后,缓存是最后一种手段,您是否安装了APC/Eaccelerator,并将
    mtime
    /
    stat
    参数设置为false?因为这将忽略文件修改时间,并直接从其内部缓存提供数据。Apache/PHP重启将证明这一点

    通过运行进行验证

    php -i | grep mtime
    php -i | grep stat
    

    或者通过创建测试
    phpinfo()文件

    如果您的缓存已关闭,并且您编辑的
    基本/默认
    包/主题无效,则听起来您编辑的文件是错误的

    碰巧的是,它是1.4版本上的1.3模板,因为寻呼机设置在两个版本之间发生了变化,并且会导致您所描述的特殊问题

    您是否测试过重写另一个
    .phtml
    文件,以查看它是否实际工作(即,您是否正确设置了它)

    最后,缓存是最后一种手段,您是否安装了APC/Eaccelerator,并将
    mtime
    /
    stat
    参数设置为false?因为这将忽略文件修改时间,并直接从其内部缓存提供数据。Apache/PHP重启将证明这一点

    通过运行进行验证

    php -i | grep mtime
    php -i | grep stat
    

    或者通过创建测试
    phpinfo()文件

    请检查路径。说真的,与Magento一起工作会让人们(包括我自己)错过一些比明显程度低一级的事情

    一旦你做到了,跳到

    app/code/core/Mage/Core/Block/Template.php
    
    查找包含模板文件的行

    $includeFilePath = realpath($this->_viewDir . DS . $fileName);
    if (strpos($includeFilePath, realpath($this->_viewDir)) === 0 || $this->_getAllowSymlinks()) {
        include $includeFilePath;
    } else {
        Mage::log('Not valid template file:'.$fileName, Zend_Log::CRIT, null, null, true);
    }
    

    并添加调试代码,以了解为什么不包括phtml

    请检查路径。说真的,与Magento一起工作会让人们(包括我自己)错过一些比明显程度低一级的事情

    一旦你做到了,跳到

    app/code/core/Mage/Core/Block/Template.php
    
    查找包含模板文件的行

    $includeFilePath = realpath($this->_viewDir . DS . $fileName);
    if (strpos($includeFilePath, realpath($this->_viewDir)) === 0 || $this->_getAllowSymlinks()) {
        include $includeFilePath;
    } else {
        Mage::log('Not valid template file:'.$fileName, Zend_Log::CRIT, null, null, true);
    }
    

    并添加调试代码,以了解为什么不包括phtml

    在系统->配置->常规->设计->包中检查您的设计设置(示例:默认)
    系统->配置->常规->设计->主题->默认(设置主题目录名称)。

    在系统->配置->常规->设计->包中检查设计设置(示例:默认)
    系统->配置->常规->设计->主题->默认设置(设置主题目录名称)。

    重新索引与模板/布局无关。它只用于目录。我不会说它与模板“无关”。这取决于您在模板中更改的内容。如果要在模板文件中更新目录中的某些内容,则在重新索引.1之前,更改将不可见。您不应该更改
    .phtml
    文件中的任何内容,它仅用于输出。2.您描述的是一个无限循环-要获得要更新的模板,您需要重新编制索引;但是模板首先是提示重新索引的文件…你是对的,你不应该在模板文件中做这样的事情。。。但这并不意味着人们不这样做。我每天都在模板中做一些我不应该做的事情,主要是为了在我将事情转移到适当的模块类之前进行测试/开发,但仅仅因为这不是最佳实践并不意味着它没有用处或人们不这样做。但你的答案与问题无关。重新索引将如何帮助他的模板文件显示。索引仅用于目录数据。索引与模板/布局无关。它只用于目录。我不会说它与模板“无关”。这取决于您在模板中更改的内容。如果要在模板文件中更新目录中的某些内容,则在重新索引.1之前,更改将不可见。您不应该更改
    .phtml
    文件中的任何内容,它仅用于输出。2.您描述的是一个无限循环-要获得要更新的模板,您需要重新编制索引;但是模板是首先提示重新索引的文件…你是对的,你应该