获取当前页面名称到Prestashop 1.7模块

时间:2017-06-09 11:39:15

标签: smarty prestashop prestashop-1.7

我目前正致力于针对服装网站的Prestashop 1.7.1.0模块。我需要获取用户当前正在浏览的确切页面名称,例如' index','女性' Tops&#39 ;,' T恤',进入模块。 我尝试使用Smarty全局变量,但这个版本似乎已被删除。

任何建议&帮助将非常感激。

5 个答案:

答案 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中使用它。

希望对你有所帮助