Получить текущее имя страницы в модуль Prestashop 1.7

В настоящее время я работаю над модулем Prestashop 1.7.1.0, ориентированным на сайты одежды. Мне нужно получить точное название страницы, которую в данный момент просматривает пользователь, например «индекс», «Женщины», «Топы», «Футболки», в модуль. Я пробовал использовать для этого глобальные переменные Smarty, но они, похоже, удалены в этой версии.

Любые предложения и помощь будут очень признательны.


person Dasun Nirmitha    schedule 09.06.2017    source источник


Ответы (5)


Чтобы получить это в tpl, новая переменная в версии 1.7 для этого выглядит следующим образом:

{$page.page_name}

Instead of:

{$page_name}

Вы можете использовать это в любом tpl вашего модуля.

У меня это работает в модуле Prestashop 1.7, который я создал, однако я не могу получить другие глобальные переменные smarty, например, shop_name, lang_iso и т. Д.

person Pat    schedule 20.07.2017
comment
Привет, у вас есть все новые глобальные переменные: victor-rodenas. ru / variables-globales-en-prestashop-1-7 - person Addis; 20.07.2017

FrontController загружает параметры страницы и назначает их.

Вы можете получить его в tpl с помощью {$ page}

        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


      (
        )

)
person issinatour muñoz    schedule 09.06.2017

{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}

Вы можете попробовать этот код, я думаю, он работает ...

person Karan Mehta    schedule 09.06.2017
comment
Боюсь, что с кодом Smarty мне не повезло. Мне удалось реализовать решение для этого, используя сам массив php $ _SERVER. Я отправлю его здесь в качестве ответа для справки другими. - person Dasun Nirmitha; 12.06.2017

Мне не удалось заставить функции 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>";
person Dasun Nirmitha    schedule 12.06.2017

Чтобы получить это в tpl, новая переменная в версии 1.7 для этого:

{$page.page_name}

Вместо того:

{$page_name}

Вы можете использовать это в любом tpl вашего модуля.

Надеюсь, это поможет тебе

person Addis    schedule 22.06.2017