Вывод информационных ссылок в шапку сайта opencart
Добавляем возможность вывода ссылок в шапку интернет магазина opencart
Создание, разработка, изготовление сайтов | WEB-STYDIA.COM

5/520 ratings

Ребята насколько часто у вас возникали ситуации когда вам нужно было отобразить ссылку на информационную статью в нужном месте на вашем сайте аналогично тех что вы выводите в подвале сайта, к примеру вам нужно добавить ссылку на страницу в меню или в другом месте в шапке интернет магазина!?
Первым что приходит на ум прописать нужную вам ссылку прям в шаблоне магазина, но я считаю этот подход не совсем верным, и на это есть несколько причин.

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

По этому тут вам решать какой метод для вас более приемлем, но я сегодня хочу рассказать как вывести ссылку в шапку интернет магазина или меню аналогично тем что вы выводите в подвале с возможностью включать и выключать нужную информационную страницу.

Как это выглядит можете наглядно посмотреть на скриншоте ниже:

Ну что же приступим к выполнению нашей задачи и добавим возможность показывать информационные ссылки добавленные в админ панели магазина opencart в шапку или меню.

Первым делом добавим возможность в админ панели включать или выключать отображение ссылки на  нужную статью.



1. Открываем файл admin/view/template/catalog/information_form.tpl

Находим кусок кода:

И после него добавляем:

2. Открываем файл admin/controller/catalog/information.php

Ищем строку:

После которой добавляем:

Далее находим код:

После которого добавляем следующее:

3. Открываем языковый файл admin/language/russian/catalog/information.php

Находим рядок:

После которого добавляем:

То же самое проделываем и с другими языковыми файлами.

4. Открываем файл admin/model/catalog/information.php

Находим строку:

и заменяем ее на:

Данная строка встречается два раза и оба раза мы делаем замену.

5. Идем в базу данных нашего магазина используя phpmyadmin  или любой другой способ которым вы пользуетесь для управления таблицами базы:

Ищем таблицу:

и в данной таблице добавим новое поле после поля bottom в которое будем записывать значение включения или отключения вывода ссылки:

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



1. Открываем файл: catalog/controller/common/header.php

Находим в нем рядок с кодом:

И перед данной строкой добавляем следующий код:

2. Открываем файл catalog/view/theme/default/template/common/header.tpl

В нем ищем вывод меню и где то в конце вывода самого меню:
Добавляем:

Вот в принципе и все, теперь вы можете включать или выключать нужные вам стати из админ панели и выводить их в меню сайта.

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

Тогда самый последний пункт выполняем немного по другому то есть ищем строку:

и добавляем в нее:

Что бы в итоге было так:

Ну в общем то и все!

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

Тестируйте и комментируйте , удачи.

Вас также может заинтересовать

17 комментариев

  •   09.08.2018 в 18:48

    Доброго времени суток!
    Отличное решение!
    Спасибо!

    Но есть небольшая проблема…
    У меня ocStore 2.3.0.2.1. Код там немного другой и пришлось поразбираться. Может что не до конца понял. Ссылка в шапке появляется и прекрасно работает как ей и положено. Но если вывести сайт на обслуживание, то при попытке открыть его выдается ошибка
    Fatal error: Call to a member function getInformations() on null in /home/c23449/public_html/catalog/controller/common/header.php on line 46

    Ответить
    • Василий
        10.08.2018 в 19:20

      Я страницей обслуживания не заморачивался, там нужно еще немного переписывать код…
      Самое простое это отключить шапку и подвал на данной странице и показывать только текст, к примеру так:
      Файл: catalog/controller/common/maintenance.php
      Комментируем строки:

      Чтоб получилось так:

      Ответить
      •   11.08.2018 в 18:28

        Точно!
        Там шапка и не нужна совсем… Можно ведь просто свою картинку присандалить и все дела.
        Спасибо!

        Ответить
  •   21.08.2018 в 16:44

    Спс за статью, все сделал через ocmod, все получилось, но вот в админке вылезает ошибка Notice: Undefined index: top я понимаю что надо лезть в phpmyadmin — как добавить запрос в базу данных не переходя в phpmyadmin?

    Ответить
    • Василий
        21.08.2018 в 17:33

      Все верно, нужно добавить новое поле в базе данных, выполните пункт 5.
      Как добавить без муадмин, зависит от вашего хостера, и вашей панели управления базой данных, возможно нужно использовать какое то не стандартное решение в Вашем случае….

      Ответить
  •   06.02.2020 в 16:33

    Все работает, аж странно, привык, что в похожих советах, которые находишь в инете, приходиться дорабатывать, а тут — как часы. Спасибо!

    Ответить
  •   01.03.2020 в 02:09

    Всем привет.
    Отличное дополнение, а есть у кого готовое решение для ocStore 2.3.0.2
    Ну очень бы пригодилось для сайта))

    Ответить
    • Василий
        01.03.2020 в 12:18

      Хм, ну так это решение как раз и подходит на вашу версию, и не только на 2.3, а по сути на всю ветку Opencart , до тройки, там уже по другому малость используется смарт шаблон.
      Ну или же я не совсем понял вашего вопроса.

      Ответить
  •   01.04.2020 в 20:44

    Добрый день!
    Первая часть урока (вплоть до создания поля top в SQL) — полностью рабочая (хотя в моей версии код выглядел несколько иначе, но я просто дублировал все что относится к bottom и затем менял bottom на top), в админке появилось поле, галка ставится, сохраняет на статье эти данные .
    А вот вывод в произвольную дополнительную плашку не происходит. Что может быть не так? Версия 2.3.0.2.3

    Ответить
    •   01.04.2020 в 21:29

      Добавлю: в логе ошибок как раз на эту строчку —

      - ругается дважды:
      Undefined variable: informations
      Invalid argument supplied for foreach()

      Ответить
    • Василий
        03.04.2020 в 11:39

      Данной информации очень мало к сожалению, и я не смогу вам так ответить, но скорей всего что то упустили.
      Рекомендую еще раз проверить все именно фронтальной части, если в админке все верно сделали и все отображается, тогда просто что то упустили.
      Сверьте так же свой код с тем что у вас выводится для футера.
      Ну или же нужен доступ к фтп, тогда смогу поправить и сделать….

      Ответить
      •   03.04.2020 в 19:36

        Василий, куда вам выслать доступы? Кстати, заметил еще вот что: галка в админке у статьи сохраняется, но при сохранении выскакивает алерт «проверьте правильное заполнение формы».

        Ответить
        • Василий
            03.04.2020 в 20:01

          Заполните форму над комментариями.
          Но посмотреть смогу только завтра.

          Ответить
  •   04.04.2020 в 15:32

    Разобрался))
    в catalog/controller/common/header.php следует добавлять такой код:

    (взял по аналогии из catalog/controller/common/footer.php) Тогда все отображается

    Ответить

Оставить комментарий

Пожалуйста, введите Ваше имя. Пожалуйста, введите действительный адрес электронной почты. Пожалуйста, введите сообщение.