我目前正致力于针对服装网站的Prestashop 1.7.1.0模块。我需要获取用户当前正在浏览的确切页面名称,例如' index','女性' Tops&#39 ;,' T恤',进入模块。 我尝试使用Smarty全局变量,但这个版本似乎已被删除。
任何建议&帮助将非常感激。
答案 0 :(得分:7)
要在tpl中获取此内容,1.7版本中的新变量如下所示:
{$page.page_name}
Instead of:
{$page_name}
您可以在模块的任何tpl中使用它。
它在我创建的Prestashop 1.7模块中适用于我,但是我无法获得其他全局智能变量,即shop_name,lang_iso等...
答案 1 :(得分:2)
FrontController加载页面选项并指定它。
您可以使用{$ page}
在tpl中获取它 Array
(
[title] =>
[canonical] =>
[meta] => Array
(
[title] => 'title'
[description] =>
[keywords] =>
[robots] => index
)
[page_name] => 'page name is here'
[body_classes] => Array
(
[lang-es] => 1
[lang-rtl] =>
[country-ES] => 1
[currency-EUR] => 1
[layout-full-width] => 1
[page-] => 1
[tax-display-enabled] => 1
[pm_details_layout1] => 1
[header_static] => 1
)
[admin_notifications] => Array
(
)
)
答案 2 :(得分:1)
{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}
您可以尝试使用此代码,我认为它的工作正在......
答案 3 :(得分:0)
我无法让Smarty函数在我的模块上运行,但我设法使用PHP $ _SERVER数组函数编写一个简单的解决方案。我将发布以下代码供其他人参考。
$protocol = null;
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on")
{
$protocol = 'https';
}
else
{
$protocol = 'http';
}
$port = "";
if ($_SERVER["SERVER_PORT"] != "80")
{
$port = ":".$_SERVER["SERVER_PORT"];
}
$currentPageUrl = $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
echo '<b>Current Page URL : </b>' . $currentPageUrl . "<br>";
答案 4 :(得分:0)
要在tpl中获取此功能,1.7版本中的新变量是:
{$page.page_name}
而不是:
{$page_name}
您可以在模块的任何tpl中使用它。
希望对你有所帮助