Как вывести статьи в шапку в OpenCart

Каждый начинающий вебдизайнер рано или поздно сталкивается с тем что в шаблоне, который он купил или скачал для своего магазина в шапке выводятся категории, какая-то информация, к примеру «О нас», «Контакты»  но не статьи. В этой статье (извините за тавтологию) мы рассмотрим как побороть любой шаблон и вывести необходимые статьи наверх.

Чтобы вывести в шапку список статей нам надо будет править 2 файла.

Первый www/ваш сайт/catalog/controller/common/header.php. В этом файле найдите строчку

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template')

и перед ней впишите

$this->load->model('catalog/information');
$this->data['informations'] = array();
foreach ($this->model_catalog_information->getInformations() as $result) {
$this->data['informations'][] = array(
'title' => $result['title'],
'href' => $this->url->link('information/information', 'information_id=' . $result['information_id'])
);
}

Тем самым вы загружаете необходимые данные для дальнейшей передачи в файл шаблона. Далее нам надо править файл шаблона, он находится по пути:

www/ваш сайт/catalog/view/theme/название вашей темы/template/common/header.tpl

И в нужное место вам надо вставить код:

<div id="menu">
  <ul>
 <?php foreach ($informations as $information) { ?>
  <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
  <?php } ?>
  </ul>
 </div>

В моем случае, надо было вывести всего одну статью, «О нас» поэтому я отключил лишние из панели администратора. Но у меня не вывелась разделительная горизонтальная палочка, что конечно же мешало нормальному чтению сайта и значительно ухудшало его юзабилити.

Разделительная палочка в шапке OpenCart

 

Это исправить очень просто. Достаточно в последний код, перед

<li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>

Вставить такой код: (еще один пункт списка)

  <li> </li>

Как убрать категории в шапке сайта на OpenCart  и вывести туда статьи и произвольные элементы?

Для тех кто хочет сделать как у меня, создать свою  шапку из произвольных элементов, я написал еще одну инструкцию.

Буду все показывать на примере сайта в котором в шапке были только рубрики, а надо было вывести такие кнопки:

  1. Главная
  2. Каталог (список категория, и подкатегорий к ним). Удобно для пользователя, и очень хорошо для индексации сайта.
  3. Контакты
  4. О нас

С начала, как и в первом случаее идем в файл www/ваш_сайт/catalog/controller/common/header.php  и перед строчкой

$this->data['description'] = $this->document->getDescription();

Вписываем:

$this->data['sitemap'] = $this->url->link('information/sitemap');
 $this->data['text_sitemap'] = $this->language->get('text_sitemap');
 $this->data['text_contact'] = $this->language->get('text_contact');

Далее будет править файл шаблона, напомню, находится в папке www/ваш сайт/catalog/view/theme/название вашей темы/template/common/header.tpl

По умолчанию, вывод категорий в шапке  выводиться таким кодом:

<div id="menu">
<ul>
<?php foreach ($categories as $category) { ?>
<li><?php if ($category['active']) { ?>
<a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
<?php } else { ?>
<?php } ?>
<?php if ($category['children']) { ?>
<div>
<?php for ($i = 0; $i < count($category['children']);) { ?>
<ul>
<?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
<?php for (; $i < $j; $i++) { ?>
<?php if (isset($category['children'][$i])) { ?>
<li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
<?php } ?>
<?php } ?>
</ul>
<?php } ?>
</div>
<?php } ?>
</li>
<?php } ?>
</ul>
</div>

Чтобы сделать как у меня (вывести четыре кнопки), меняем  его на такой код:

<div id="menu">
 <ul>
 <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>
 <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>
</div>
</ul>
</div>

Если вам что-то не надо выводить, к примеру «каталог» вы можете убрать соответствующие строки:

<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>  — отвечает за вывод кнопки «Контакты»

Если у вас возникли вопросы, напишите пожалуйста в комментариях, попробую вам помочь.

загрузка...
11 комментариев
    • Andrey
    • Andrey
    • Andrey
    • Andrey

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *