Автор Тема: добавить html страницы - 3 языка  (Прочитано 312 раз)

27 Февраль 2016, 15:25:24
  • Фрилансер
  • *
  • Сообщений: 158
  • Репутация: +5/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени уважаемые.

Prestashop 1.6

Хочу спросить совета и помощи. PHP-программер из меня начинающий, но задачи от этого легче не становятся.....
Итак: Мультиязычный сайт, скомпиллировал html help по экземпляру на каждый язык. Разумеется, простая ссылка даёт возможность отобразить только один из вариантов.
То есть, несмотря на выбранный п-телем язык, будет выведен только один (напр. русский) вариант.

Очивидно, следует написать контроллер и шаблон, который будет перенаправлять в зависимости от текущего языка.

Логика, в общем, элементарная, что-то типа

{if $cookie->id_lang == "1"}
 header('/help/en.html');
{/if}
{if $cookie->id_lang == "2"}
header('/help/es.html');
{/if}
{if $cookie->id_lang == "3"}
 header('/help/ru.html');
{/if}

Для начала, первый вопрос:
 Можно ли для этой цели использовать существующий класс контроллера? Если да, то какой?

Думаю, для поставленной задачи есть несколько вариантов решения. Ткните.




27 Февраль 2016, 16:37:39
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 14056
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
Создаете модуль, в нем контроллер Mycontroller.php.
class mymoduleMycontrollerModuleFrontController extends ModuleFrontController
{
    public function init()
    {
        $this->page_name = 'help'; // page_name and body id
        parent::init();
        this->setTemplate('help.tpl');
    }
}
При смене языка будет менять текст, который был заполнен в админке (модуль должен быть мультиязычным).
28 Февраль 2016, 11:31:57
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 158
  • Репутация: +5/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Adik
Предлагаемое можно осуществить с пом-ю СМС страниц. Хотя, там проблема с HTML тэгами и ссылками. Читал тему про расширенный HTML редактор..... не то.
Дело в том, что хотелось бы получить уже закомпиленный HTML, с менюшками, картинками.... создать необходимый  для этого шаблон проблематично.
Ссылка на страницу хэлпа устанавливается в модуле футера, через админку. То есть и модуль футера ковырять придётся......

Задачка в том, чтоб просто перенаправить п-теля в зависимости от $cookie->id_lang .
Спасибо за совет, буду считать этот вариант запасным.
28 Февраль 2016, 12:16:12
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 86543
  • Репутация: +25419/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Задачка в том, чтоб просто перенаправить п-теля в зависимости от $cookie->id_lang .
Чтобы использовать переменные prestashop, нужно создать контроллер от базового класса FrontController.
Если вам не нужно показывать сетку из вашей темы, хотите выводить свой html, тогда переопределяте
public function __construct()
{
parent::__construct();

$this->display_column_left = false;
$this->display_column_right = false;
$this->display_header = false;
$this->display_footer = false;

$this->context = Context::getContext();
}
подключате свои стили
public function setMedia()
{
    $this->addCSS(__PS_BASE_URI__.'modules/'.$this->module->name.'/css/'.$this->module->name.'.css');
}   
и используете методы prestashop
$this->context->....
$this->context->cookie
....
29 Февраль 2016, 11:51:24
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 158
  • Репутация: +5/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Решено.
Спасибо DarinSr, дельный совет. Правда получилось не совсем так, как советовалось, но задачка решена.

Как обычно, общими усилиями, задачу решили. СПАСИБО ВСЕМ!