Передать переменную из init.php(hw_subscribe_popup) в .tpl шаблона

Тема в разделе "Cs-cart", создана пользователем stasok, 20 янв 2015.

  1. stasok

    stasok Постоялец

    Регистр.:
    25 фев 2013
    Сообщения:
    106
    Симпатии:
    9
    В файл /templates/addons/hw_subscribe_popup/hooks/index/footer.post.tpl

    В двух словах в init.php у меня формируется переменная - регион посетителя по ip.
    Мне нужно на её основании в шаблоне вывести тот или иной код.
    Буду очень благодарен.

    Код:
    $ip;
        if (!empty($_SERVER['HTTP_CLIENT_IP']))
         { $ip=$_SERVER['HTTP_CLIENT_IP']; }
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
         {$ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
        else {$ip=$_SERVER['REMOTE_ADDR']; }
     
        include("SxGeo/SxGeo.php");
        $SxGeo = new SxGeo('SxGeo/SxGeoCity.dat', SXGEO_BATCH | SXGEO_MEMORY);
     
        $SxGeo->getCityFull($ip);
        $gorod  = $SxGeo->getCityFull($ip);
     
        //echo $gorod[city][name_en]; - выводится.
        //$this->assign('pop_country', $gorod[city][name_en]); - даёт ошибку.
     
  2. Алекс-73

    Алекс-73 Писатель

    Регистр.:
    14 сен 2015
    Сообщения:
    24
    Симпатии:
    0
    Самое простое решение - это записать в массив $_SESSION['auth] - нужное значение при вызове данного скрипта. И уже обращаться к нему через переменную $auth. К сожалению передать перменную через смарти можно лишь в том контроллере, который вызовет нужный шаблон.
     
  3. alekse

    alekse

    Регистр.:
    19 июн 2007
    Сообщения:
    694
    Симпатии:
    120
    //$this->assign('pop_country', $gorod[city][name_en]); - даёт ошибку.
    Какая версия CS-Cart? В 4.3.3 нужно передавать переменную так:
    Tygh::$app['view']->assign('pop_country', $gorod[city][name_en]);