добавить html страницы - 3 языка

Автор BSD-shnik, 27 февраля 2016, 15:25:24

« назад - далее »

BSD-shnik

Доброго времени уважаемые.

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}


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

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





Adik

Создаете модуль, в нем контроллер Mycontroller.php.
class mymoduleMycontrollerModuleFrontController extends ModuleFrontController
{
    public function init()
    {
        $this->page_name = 'help'; // page_name and body id
        parent::init();
        this->setTemplate('help.tpl');
    }
}

При смене языка будет менять текст, который был заполнен в админке (модуль должен быть мультиязычным).

BSD-shnik

#2
Adik
Предлагаемое можно осуществить с пом-ю СМС страниц. Хотя, там проблема с HTML тэгами и ссылками. Читал тему про расширенный HTML редактор..... не то.
Дело в том, что хотелось бы получить уже закомпиленный HTML, с менюшками, картинками.... создать необходимый  для этого шаблон проблематично.
Ссылка на страницу хэлпа устанавливается в модуле футера, через админку. То есть и модуль футера ковырять придётся......

Задачка в том, чтоб просто перенаправить п-теля в зависимости от $cookie->id_lang .
Спасибо за совет, буду считать этот вариант запасным.

DarinSr

ЦитироватьЗадачка в том, чтоб просто перенаправить п-теля в зависимости от $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
....

BSD-shnik

Решено.
Спасибо DarinSr, дельный совет. Правда получилось не совсем так, как советовалось, но задачка решена.

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