Prestashop 自定义 php 页面在标题中有 404 错误
Prestashop Custom php page has 404 error in the title
我有 3 个网站。
我创建了带有站点 header 和页脚的自定义 php 页面。
所有 3 个站点都使用相同的 php 文件。
在两个站点中,它运行良好,但在第三个站点中,页面标题显示 404 错误。
我不明白为什么会这样。
我检查了 .htacccess 文件并尝试匹配它们,但它似乎也不错。我一直在 Prestashop 论坛上寻找答案,但找不到任何答案。
在以下两个站点中,如果您查看浏览器选项卡,标题就没问题。
http://malverncomputerservices.com.au/payment.php
然而,在第三个站点中,标题显示 404 错误。该页面功能正常,但页面顶部始终有错误。我不知道这是怎么发生的,因为 php 文件只是原始文件的副本。
我找到了解决方案并且对我有用。在根文件夹或内部文件夹中的任意位置创建 php 文件并粘贴以下代码。使用 1.6 版本测试。
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/config/config.inc.php';
$current = getcwd();
class ContentPageCutomized extends FrontController
{
public function initContent()
{
parent::initContent();
}
public function displayHeader()
{
$hook_header = Hook::exec('displayHeader');
if ((Configuration::get('PS_CSS_THEME_CACHE') || Configuration::get('PS_JS_THEME_CACHE')) && is_writable(_PS_THEME_DIR_.'cache'))
{
// CSS compressor management
if (Configuration::get('PS_CSS_THEME_CACHE'))
$this->css_files = Media::cccCSS($this->css_files);
//JS compressor management
if (Configuration::get('PS_JS_THEME_CACHE'))
$this->js_files = Media::cccJs($this->js_files);
}
$this->context->smarty->assign(array(
'meta_title' => 'My title'
));
// Call hook before assign of css_files and js_files in order to include correctly all css and javascript files
$this->context->smarty->assign(array(
'HOOK_HEADER' => $hook_header,
'HOOK_TOP' => Hook::exec('displayTop'),
'HOOK_LEFT_COLUMN' => ($this->display_column_left ? Hook::exec('displayLeftColumn') : ''),
'HOOK_RIGHT_COLUMN' => ($this->display_column_right ? Hook::exec('displayRightColumn', array('cart' => $this->context->cart)) : ''),
'HOOK_FOOTER' => Hook::exec('displayFooter')
));
$this->context->smarty->assign(array(
'css_files' => $this->css_files,
'js_files' => ($this->getLayout() && (bool)Configuration::get('PS_JS_DEFER')) ? array() : $this->js_files,
'js_defer' => (bool)Configuration::get('PS_JS_DEFER'),
'errors' => $this->errors,
'display_header' => $this->display_header,
'display_footer' => $this->display_footer,
));
$layout = $this->getLayout();
if ($layout) {
if ($this->template) {
$template = $this->context->smarty->fetch($this->template);
echo 'might be';
} else {
// For retrocompatibility with 1.4 controller
ob_start();
$this->displayContent();
$template = ob_get_contents();
ob_clean();
}
$this->context->smarty->assign('template', $template);
$this->smartyOutputContent($layout);
} else {
Tools::displayAsDeprecated('layout.tpl is missing in your theme directory');
if ($this->display_header) {
$this->smartyOutputContent(_PS_THEME_DIR_.'header.tpl');
}
if ($this->template) {
$this->smartyOutputContent($this->template);
} else { // For retrocompatibility with 1.4 controller
$this->displayContent();
}
}
}
public function init()
{
parent::init();
}
public function displayContent()
{
?>
//Start your html content here
Your content here
//End your htmlcontent here
<?php
}
}
$controller=new ContentPageCutomized();
$controller->init();
$controller->setMedia();
$controller->initHeader();
$controller->displayHeader();
$controller->initContent();
?>
我有 3 个网站。 我创建了带有站点 header 和页脚的自定义 php 页面。 所有 3 个站点都使用相同的 php 文件。 在两个站点中,它运行良好,但在第三个站点中,页面标题显示 404 错误。
我不明白为什么会这样。 我检查了 .htacccess 文件并尝试匹配它们,但它似乎也不错。我一直在 Prestashop 论坛上寻找答案,但找不到任何答案。
在以下两个站点中,如果您查看浏览器选项卡,标题就没问题。
http://malverncomputerservices.com.au/payment.php
然而,在第三个站点中,标题显示 404 错误。该页面功能正常,但页面顶部始终有错误。我不知道这是怎么发生的,因为 php 文件只是原始文件的副本。
我找到了解决方案并且对我有用。在根文件夹或内部文件夹中的任意位置创建 php 文件并粘贴以下代码。使用 1.6 版本测试。
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/config/config.inc.php';
$current = getcwd();
class ContentPageCutomized extends FrontController
{
public function initContent()
{
parent::initContent();
}
public function displayHeader()
{
$hook_header = Hook::exec('displayHeader');
if ((Configuration::get('PS_CSS_THEME_CACHE') || Configuration::get('PS_JS_THEME_CACHE')) && is_writable(_PS_THEME_DIR_.'cache'))
{
// CSS compressor management
if (Configuration::get('PS_CSS_THEME_CACHE'))
$this->css_files = Media::cccCSS($this->css_files);
//JS compressor management
if (Configuration::get('PS_JS_THEME_CACHE'))
$this->js_files = Media::cccJs($this->js_files);
}
$this->context->smarty->assign(array(
'meta_title' => 'My title'
));
// Call hook before assign of css_files and js_files in order to include correctly all css and javascript files
$this->context->smarty->assign(array(
'HOOK_HEADER' => $hook_header,
'HOOK_TOP' => Hook::exec('displayTop'),
'HOOK_LEFT_COLUMN' => ($this->display_column_left ? Hook::exec('displayLeftColumn') : ''),
'HOOK_RIGHT_COLUMN' => ($this->display_column_right ? Hook::exec('displayRightColumn', array('cart' => $this->context->cart)) : ''),
'HOOK_FOOTER' => Hook::exec('displayFooter')
));
$this->context->smarty->assign(array(
'css_files' => $this->css_files,
'js_files' => ($this->getLayout() && (bool)Configuration::get('PS_JS_DEFER')) ? array() : $this->js_files,
'js_defer' => (bool)Configuration::get('PS_JS_DEFER'),
'errors' => $this->errors,
'display_header' => $this->display_header,
'display_footer' => $this->display_footer,
));
$layout = $this->getLayout();
if ($layout) {
if ($this->template) {
$template = $this->context->smarty->fetch($this->template);
echo 'might be';
} else {
// For retrocompatibility with 1.4 controller
ob_start();
$this->displayContent();
$template = ob_get_contents();
ob_clean();
}
$this->context->smarty->assign('template', $template);
$this->smartyOutputContent($layout);
} else {
Tools::displayAsDeprecated('layout.tpl is missing in your theme directory');
if ($this->display_header) {
$this->smartyOutputContent(_PS_THEME_DIR_.'header.tpl');
}
if ($this->template) {
$this->smartyOutputContent($this->template);
} else { // For retrocompatibility with 1.4 controller
$this->displayContent();
}
}
}
public function init()
{
parent::init();
}
public function displayContent()
{
?>
//Start your html content here
Your content here
//End your htmlcontent here
<?php
}
}
$controller=new ContentPageCutomized();
$controller->init();
$controller->setMedia();
$controller->initHeader();
$controller->displayHeader();
$controller->initContent();
?>