Вывести ссылку в шапку OpenCart с соблюдением мультиязычности
|Я уже писал инструкцию «Как вывести статьи в шапку OpenCart«, но со временем функционал данного способа понадобилось расширять. А именно статей стало много, и их в шапку выводить не надо. А тот способ выводит все статьи без исключения.
В этой статье мы рассмотрим как вывести произвольную ссылку в шапку OpenCart. Даже более того, эта инструкция будет очень полезна для людей у которых сайт на нескольких языках. А именно чтобы в зависимости от языка менялись названия ссылок.
Итак, ради примера нам надо вывести как и в прошлой статье 5 кнопок. Главная, каталог, контакты, о нас, и линия поставок. Как вывести три первые ссылки мы уже знаем. В файл
www/ваш сайт/catalog/view/theme/название вашей темы/template/common/header.tpl |
Вписать код,
<li><a href="<?php echo $home; ?>"><?php echo $text_home; ?></a> </li> <li><a href="<?php echo $sitemap; ?>"><?php echo $text_sitemap; ?></a></li> <li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li> |
Все как по инструкции прошлой части
Но вот две другие выводятся общим кодом «кодом вывода всех статей», что нас не устраивает. Нам надо вывести всего две статьи «О нас» и «Line Card». В вашем же случае, это конечно могут быть другие произвольные какие-то статьи.
Итак, чтобы вывести ссылку которая будет меняться в зависимости от языка, в OpenCart нам надо сначала удалить код который выводит статьи.
Удаляем код:
div id="menu" <ul> <?php foreach ($informations as $information) { ?> <li> </li> <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li> <?php } ?> </ul> |
Далее мы должны придумать переменные которыми назовем статьи.
Для статьи «О нас» переменная будет
text_ONas |
Обязательно пишите перед переменной text_ , также в переменной не должно быть пробелов, подчеркиваний и тире.
Для линии поставок переменная будет
text_LineCard |
Теперь ищем код, который выводит первые три ссылки
<li><a href="<?php echo $home; ?>"><?php echo $text_home; ?></a> </li> <li><a href="<?php echo $sitemap; ?>"><?php echo $text_sitemap; ?></a></li> <li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li> |
и после него пишем
<li><a href="http://Домен сайта/about_us"><?php echo $text_ONas; ?></a></li> <li><a href="http://Домен сайта/Line-Card"><?php echo text_LineCard; ?></a></li> |
Естественно замените ссылку вида http://Домен сайта/about_us на ссылку где находиться ваша статья. Также не забудьте заменить переменные, на ваши переменные.
Если вы сейчас захотите посмотреть результат то в шапке вас будет поджидать ошибка. Это нормально. Чтобы ее устранить мы будем редактировать уже знакомый нам файл который находиться по пути
www/ваш сайт/catalog/controller/common/header.php |
После строчки которую мы уже тоже писали в прошлой части
$this->data['text_contact'] = $this->language->get('text_contact'); |
Если вы не писали эту строчку то ищите любую из строчек ниже
$this->data['description'] = $this->document->getDescription(); $this->data['keywords'] = $this->document->getKeywords(); $this->data['links'] = $this->document->getLinks(); |
Вставьте строчки
$this->data['text_LineCard'] = $this->language->get('text_LineCard'); $this->data['text_ONas'] = $this->language->get('text_ONas'); |
Естествено название переменных поменяйте на свои.
Следующим, последним этапом мы назначим переменным имена. Для этого идем
www/ваш сайт/catalog/language/Язык/Язык.php |
Язык поменяйте на ваш язык, к примеру russian, english и.т.д.
В этот файл после
// Text |
Допишите
$_['text_ONas'] = 'О нас'; $_['text_LineCard'] = 'Карта поставок'; |
Естественно поменяйте на свои переменные, и на свое название ссылок. Последний пункт повторите столько раз сколько у вас языков.
На этом все. Если вы все сделали правильно, то при переключении языков у вас должны меняться ссылки. Также если у вас остались вопросы пишите в комментариях или мне на почту.
Очень доходчиво,спасибо!!! «ГУРУ» на форуме не могли объяснить как это сделать :)!
Но есть ещё вопрос -«Естественно замените ссылку вида Домен сайта/about_us на ссылку где находиться ваша статья» ,а вот где создавать новую статью?Статьи в «Информация» лежат,я так понимаю,в базе,а где писать свою независимую?
статьи вы можете редактировать и создавать новый в разделе статьи. Его можно найти по маршруту Каталог->Статьи
если там создавать статью,то она появится в блоке»Информация» ,а я хочу чтобы допустим в «дополнительно» или «Служба поддержки» или надо ставить порядок сортировки -1 и выводить её так «
a href="Домен сайта/about_us" rel="nofollow">
«Да, надо поставить порядок сортировки статьи -1.
Выводить статью лучше без rel=»nofollow», я писал что на nofollow поисковики забивают. Если статью нужно скрыть от поисковиков то лучше почитать статью Как скрыть ссылки от индексации в WordPress и OpenCart Но в любом случае статья попадет в карту сайта, т.е. надо статью надо от туда исключать.
Статью создал(порядок сортировки статьи -1),в блоке «Служба поддержки»в футере ссылка появилась…всё работает,только вот в блоке «Информация» ссылка не пропала,хотя и -1 стоит,и кэш чистил :()
Над сортировкой статьи, там где вы ставили «-1» Есть пункт «Статья в низу сайта:» Уберите галочку с нее
Спасибо огромное!!! Всё работает.