php - Prestashop PHP 包含在 .tpl 中不起作用

标签 php prestashop

我正在使用 Prestashop 为客户创建店面。 Prestashop 使用 Smarty .TPL 文件。我通读了 smarty 文档并搜索了网络,但所有建议均无效。

我首先使用常规 .php 页面制作了一个网站,我在每个页面上都包含了 header.php。

然后我为 prestashop 创建了一个目录并进行了设置。我编辑了 header.tpl 文件并能够在 header.php 代码中进行硬编码。问题是;当我想编辑标题(导航栏、图像、社交媒体)时,我将不得不在两个不同的地方进行编辑。所以我尝试“包含”我的 header.php 文件。

虽然,当我尝试使用 smarty 的 {include_PHP "file.php"} 和/或 {PHP}include...{PHP} 时,Prestashop 出错并给我一个空白的白页 - 没有给出错误 - (在chrome 它给了我一个“服务器错误”),直到我取出包含。

我尝试将整个 header.tpl 代码替换为一个 smarty include 和另一段具有 header 钩子(Hook)的代码,但这些都不起作用。有什么建议么?我只想要一个标题,我只需编辑一次即可进行更改。

使用 Prestashop v 1.4.4.0

编辑:我将 allow_php 从 false 更改为 true。现在它正在尝试添加该文件,尽管它说找不到该文件。我把它放在 header.tpl 旁边,然后使用:

{php}
            include('navBar.php'); 
       {/php} 

最佳答案

已回答!

当使用 Smarty .TPL 文件时,当您包含某些内容时,您不会从您正在处理的文件的路径中包含内容。您包括索引所在的位置。

例子:

我正在处理 header.tpl,它位于: siteroot/smartyinstall/themes/themename/header.tpl

当 include 查找文件时,它实际上是在 smarty 根文件夹中查找它,因为 header.tpl 被拉入 smartyinstall 文件夹中的 index.html 页面.

所以,你必须从那里开始。就我而言,我试图包含的 header 位于: siteroot/includes/navBar.php

所以,我不得不编写 include('../includes/navBar.php');,只向上一个目录,而不是四个。

我希望这对遇到此类问题的每个人都有帮助!

关于php - Prestashop PHP 包含在 .tpl 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7273602/

相关文章:

prestashop - 在结帐 prestashop 1.7 中添加字段

php - 错误 : "SQLSTATE[28000] [1045] Access denied for user" on cPanel SQL database

PHP:如何将尾部斜杠添加到绝对 URL

php - 使用数据库输入命名数组

.htaccess - PRESTASHOP NGINX + 重写规则

prestashop - 如何在 prestashop 中获取商店基本 URL 以在管理选项卡 tpl 文件中使用?

php - 如何将大量数据以一个值传输到 MySQL 服务器?

php - Laravel 5.2 - PHPExcel_Writer_Exception : Unable to load PDF Rendering library in

php - 每个用户一个 session ,新登录时断开旧 session 吗?

prestashop - Prestashop 管理面板中的模块错误