Jump to content
Sign in to follow this  
unikum22

[РЕШЕНО] Как добавить ссылки в главное меню (1.5.4.1)

Recommended Posts

Как добавить ссылки в главное меню OpenCart v. 1.5.4.1? шаблон default, перелопатил много инфы на эту тему, но как правило код значительно отличается от моего.

Мне нужно чтобы в главном меню были ссылки на эти страницы - О компании, Доставка и оплата, Ответы на вопросы, Связаться с нами.

Как правило в других темах пишут что нужно лезть в файл header.tpl но в приводимых примерах код этого файла сильно отличается.

файл находится здесь catalog/view/theme/default/template/common/header.tpl

код файла:

<!DOCTYPE html>
<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>">
<head>
<meta charset="UTF-8" />
<title><?php echo $title; ?></title>
<base href="<?php echo $base; ?>" />
<?php if ($description) { ?>
<meta name="description" content="<?php echo $description; ?>" />
<?php } ?>
<?php if ($keywords) { ?>
<meta name="keywords" content="<?php echo $keywords; ?>" />
<?php } ?>
<?php if ($icon) { ?>
<link href="<?php echo $icon; ?>" rel="icon" />
<?php } ?>
<?php foreach ($links as $link) { ?>
<link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
<?php } ?>
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/stylesheet.css" />
<?php foreach ($styles as $style) { ?>
<link rel="<?php echo $style['rel']; ?>" type="text/css" href="<?php echo $style['href']; ?>" media="<?php echo $style['media']; ?>" />
<?php } ?>
<script type="text/javascript" src="catalog/view/javascript/jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="catalog/view/javascript/jquery/ui/jquery-ui-1.8.16.custom.min.js"></script>
<link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css" />
<script type="text/javascript" src="catalog/view/javascript/jquery/ui/external/jquery.cookie.js"></script>
<script type="text/javascript" src="catalog/view/javascript/jquery/colorbox/jquery.colorbox.js"></script>
<link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/colorbox/colorbox.css" media="screen" />
<script type="text/javascript" src="catalog/view/javascript/jquery/tabs.js"></script>
<script type="text/javascript" src="catalog/view/javascript/common.js"></script>
<?php foreach ($scripts as $script) { ?>
<script type="text/javascript" src="<?php echo $script; ?>"></script>
<?php } ?>
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/ie7.css" />
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/ie6.css" />
<script type="text/javascript" src="catalog/view/javascript/DD_belatedPNG_0.0.8a-min.js"></script>
<script type="text/javascript">
DD_belatedPNG.fix('#logo img');
</script>
<![endif]-->
<?php echo $google_analytics; ?>
</head>
<body>
<div id="container">
<div id="header">
 <?php if ($logo) { ?>
 <div id="logo"><a href="<?php echo $home; ?>"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /></a></div>
 <?php } ?>
 <?php echo $language; ?>
 <?php echo $currency; ?>
 <?php echo $cart; ?>
 <div id="search">
<div class="button-search"></div>
<?php if ($filter_name) { ?>
<input type="text" name="filter_name" value="<?php echo $filter_name; ?>" />
<?php } else { ?>
<input type="text" name="filter_name" value="<?php echo $text_search; ?>" onclick="this.value = '';" onkeydown="this.style.color = '#000000';" />
<?php } ?>
 </div>
 <div id="welcome">
<?php if (!$logged) { ?>
<?php echo $text_welcome; ?>
<?php } else { ?>
<?php echo $text_logged; ?>
<?php } ?>
 </div>
 <div class="links"><a href="<?php echo $home; ?>"><?php echo $text_home; ?></a><a href="<?php echo $wishlist; ?>" id="wishlist-total"><?php echo $text_wishlist; ?></a><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a><a href="<?php echo $shopping_cart; ?>"><?php echo $text_shopping_cart; ?></a><a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a>
</div>
</div>
<?php if ($categories) { ?>
<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 { ?>
<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
<?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>
<?php } ?>
<div id="notification"></div>

помогите пожалуйста разобраться

Share this post


Link to post
Share on other sites

вопрос РЕШЕН! пользователь с форума searchengines по имени "Dimmmetrio" помог с решением

Вот этот кусок кода - вывод главного меню:

<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 { ?>
<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
<?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="/">О компании</a></li>
  <li><a href="/">Доставка и оплата</a></li>
  <li><a href="/">Ответы на вопросы</a></li>
  <li><a href="/">Связаться с нами</a></li>
</ul>
</div>

  • +1 2

Share this post


Link to post
Share on other sites

А я бы ещё удалил ещё кусочек кода до и после <div id="menu">.....</div>.

 

До вот этот:

<?php if ($categories) { ?>

и после вот этот:

 <?php } ?>   

 

Иначе если НИ одна категория не включена для отображения в главном меню, то меню вообще не отображается.

Share this post


Link to post
Share on other sites



Вы можете просто заменить его (этот фрагмент кода) на свой, например так:

 

<div id="menu">
<ul>
   <li><a href="/">О компании</a></li>
   <li><a href="/">Доставка и оплата</a></li>
   <li><a href="/">Ответы на вопросы</a></li>
   <li><a href="/">Связаться с нами</a></li>
</ul>
</div>

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

  • +1 1

Share this post


Link to post
Share on other sites

1. Вместо

<li><a href="/">О компании</a></li>

надо

<li><a href="/">$text_about</a></li>

2. В контроллере:
 

$this->data['text_about'] = $this->language->get('text_about');

3. В языковом файле:

$_['text_about']    = 'О компании';

Для других языков  - то же самое из 3-го пункта, но на нужном языке.

 

Остальные элементы меню - по аналогии...

Share this post


Link to post
Share on other sites

увы, что-то у меня не получилось....( это может быть из-за того что у меня отключен англ. язык, а сам сайт на укр. и русском ??

Share this post


Link to post
Share on other sites

Что именно не получилось? Какие ошибки?

Share this post


Link to post
Share on other sites

Что именно не получилось? Какие ошибки?

сделал все как Вы написали, но у меня в таком случае страница так и называется: text_about

Share this post


Link to post
Share on other sites

catalog/language/common/header.php

Добавить

$_['text_about'] = 'О компании';
В catalog/language/ukraine/common/header.php тоже самое, но на украинском.

Share this post


Link to post
Share on other sites

1) <li><a href="/">$text_about</a></li>  или же  <li><a href="/">$_text_about</a></li>

 

2) $_['text_about'] = 'О компании'; или же без скобок $_text_about = 'О компании'

 

3) если я создаю абсолютно новую страницу, например ТЕЛЕВИЗОРЫ, что в таком случае писать вместо $_text_about 

  • +1 1

Share this post


Link to post
Share on other sites

1)

<li><a href="/"><?php echo $text_about; ?></a></li>
2) спасибо за замечание. Со скобками.

3) что угодно. text_tv, например.

  • +1 1

Share this post


Link to post
Share on other sites

1)

<li><a href="/"><?php $text_about; ?></a></li>

 

я еще больше запутался. Изначально же был такой код : <li><a href="/">$text_about</a></li>

 

хотя попробовал и с одним, и со вторым... результата нет

  • +1 1

Share this post


Link to post
Share on other sites

В предыдущем моем посте 'echo' было пропущено. Исправлено.

  • +1 1

Share this post


Link to post
Share on other sites

В предыдущем моем посте 'echo' было пропущено. Исправлено.

получилось.

  • +1 1

Share this post


Link to post
Share on other sites

такой пример того что прописано в /catalog/view/theme/metalic/template/common/header.tpl

<li><a href="./ru/catalog"><?php $text_catalog; ?></a></li>

 

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

 

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

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

Share this post


Link to post
Share on other sites

Делайте так: 

в \catalog\controller\common

файл header.php

 

после: 

$this->children = array(
'module/language',
'module/currency',
'module/cart'
);
вставить

$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'])
            );
        } 
в \catalog\view\theme\default\template\common

файл header.tpl

 

удалить

<?php if ($categories) { ?>
<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 { ?>
<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
<?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>
<?php } ?>
заменить на

<div id="menu">
 <ul>
<li class="home"><a  title="<?php echo $text_home; ?>" href="<?php echo $home; ?>"><span><?php echo $text_home; ?></span></a></li>
      <?php foreach ($informations as $information) { ?>
      <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
      <?php } ?>
     </ul>
</div>
локализация неактуальна, так как название статей ты прописываешь сам на всех языках что есть

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

убрать ненужный пункт: порядковый номер статьи ; -1

  • +1 4

Share this post


Link to post
Share on other sites

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

 

 

К примеру категории главного горизонтального меню: 

1. Цветы     2. Телевизоры     3. Машины     4. Продукты     5. О нас     6. Доставка и оплата     7.Политика безопасности   8. Стать партнером

1.1 фиалки 2.1. лсд                3.1 легковые                            

1.2 розы                                  3.2 грузовые                            

1.3 одуванчики                                                                       

                                                                                                

Нужно чтобы выпадало например

 

 5. О нас

 

 5.1. Вакансии

 5.2. Режим работы

 5.3. О компании

 5.4. Наши сотрудники

 

 

 Вариант указанный ниже не прокатывает:((((

 

<ul>

 <li><a href="/">О нас</a></li>
      <ul>
       <li><a href="/">Вакансии</a></li>
       <li><a href="/">Режим работы</a></li>
       <li><a href="/">Наши сотрудники</a></li>
     </ul>
 <li><a href="/">Доставка и оплата</a></li>
 <li><a href="/">Политика безопасности</a></li>
 <li><a href="/">Стать партнером</a></li>
</ul>
 
Сайт только Русско-язычный, особых заморочек не требуется

Share this post


Link to post
Share on other sites

ну вы путаете одно с другим)))) 
есть модули...https://opencartforum.com/topic/13418-sl-menu-category-megameniu-ocstore-15x/page-12

можно допилить руками, например как тут у меня: http://kurilka.elitno.net/

  • +1 1

Share this post


Link to post
Share on other sites

ну вы путаете одно с другим)))) 

есть модули...https://opencartforum.com/topic/13418-sl-menu-category-megameniu-ocstore-15x/page-12

можно допилить руками, например как тут у меня: http://kurilka.elitno.net/

1. Да вот как раз не путаю и по теме спросил, чтоб сделать только одну категорию и в неё уже добавить нужные страницы)) 

А для примера расписал, чтоб понятней было))

 

Подходящих модулей не встречал, так бы ограничился им)) 

 

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

 

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Сделал все как написали , все работает , спасибо , есть одно Но :) растянулась странички Information, About Us и т.д. на весь экран(по всей ширине) , корзина также, подскажите , пожалуйста что убрать или дописать чтобы все оставалось в пределах стиля ? 
Что было :

<?php if ($categories) { ?>
  <div class="floating"><div id="menu">
<ul>
    <?php foreach ($categories as $category) { ?>
    <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
      <?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>
<?php } ?>

Заменил на :

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

post-672375-0-11069700-1381593582_thumb.jpg post-672375-0-99477200-1381593591_thumb.jpg

Share this post


Link to post
Share on other sites

1. у вас в коде дополнительный псевдокласс 

<div class="floating">

его вы и не предусмотрели при замене кода меню

  • +1 1

Share this post


Link to post
Share on other sites

Добрый день, уважаемые форумчане! У меня такой вопрос: если я хочу оставить отображение категорий, как это сделано по умолчанию, а просто добавить ссылки на свои статьи ПОСЛЕ категорий... Это как-то можно реализовать, не подскажете? Спасибо за ответы!

Share this post


Link to post
Share on other sites


<?php if ($categories) { ?>

<div id="menu">

  <ul>

<li><a href="ССЫЛКА НА СТРАНИЦУ">ПУНКТ МЕНЮ</a></li> <---- В меню навигации слева (в начале)

    <?php foreach ($categories as $category) { ?>

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

      <?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 } ?>

<li><a href="ССЫЛКА НА СТРАНИЦУ">ПУНКТ МЕНЮ</a></li> <---- В меню навигации справа (в конце)

  </ul>

</div>

  • +1 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By 18ynitazov
      Всем доброго дня!
      Есть такая ситуация: при отправке ссылок в Вайбере они выглядят примерно так ( синим цветом на скрине). Единичные товары отправляются корректно ( красным на скрине). Подскажите, пожалуйста, какой модуль сможет решить эту проблему, чтобы все ссылки отображались примерно как красная или есть что-то базовое уже встроенное в сам opencart?
      Заранее всем неравнодушным спасибо! 
      Моя версия ocStore 2.3.0.2.3
       

    • By malinator
      Может кто подскажет, похожий модуль по меню, своими силами найти не получилось. Меню с горизонтальным выводом, вполне подойдет если туда придется руками забивать ссылки. Платные тоже подойдут. В оригинале на скринах - битрикс. Заранее спасибо.
      http://prntscr.com/nvaka0
      http://prntscr.com/nvalsf
    • By ambalocha69
      300.00 руб
      Скачать/Купить дополнение


      Иконки подкатегорий в главном меню (Opencart 2.0)
      Данный модификатор позволяет назначить каждой категории пиктограмму (иконку).
      Пиктограммы будут отображаться:
      для категорий 2-го уровня в главном меню, для всех категорий на странице списка категорий в админке. Для настройки отображения добавьте в stylesheet.css класс zo_ico. Пример для шаблона default
      .zo_ico {
      position: relative;
      left: -5px;
      }
      Страница категорий в админке:

      Редактирование:

      Языки: русский
      Коммерческий релиз 08.10.15
      Лицензирование модуля
      - приобретая модуль вы получаете право его использования на одном публичном домене
      - использование на локальных серверах не ограничивается
      - Дополнение является объектом авторского права и принадлежит его создателю
      - Вы не можете передавать, продавать, распространять, обмениваться и сдавать в аренду какую-либо часть дополнения
      - Вы не можете размещать дополнение на других сайтах, чтобы оно было доступно для скачивания
      Поддержка
      - Поддержка осуществляется автором по электронной почте (указана в админке модуля в заголовке)
      - При обращении в поддержку обязательно указывайте адрес сайта на котором установлен модуль, версию движка, описание проблемы
      (желательно со скриншотом). По возможности сразу добавляйте доступ в админку (достаточно режима демонстрации) - это сильно
      упрощает работу и экономит время.
      Расширение функционала
      - функционал модуля постоянно расширяется
      - Пишите, если считаете нужным добавить в модуль какую нибудь полезную функцию - ваши пожелания будут учтены в следующих версиях
      Авторские права:

      Добавил ambalocha69 Добавлено 08.10.2015 Категория Модули Системные требования Сайт разработчика http://opencart.zone/modules-2-0/zo_ico Старая цена Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.1 ocStore Несовместим OpenCart.Pro, ocShop Обращение к серверу разработчика  
    • By Yarilo
      Добрый день, Форумчане! Начали появляться ссылки откуда-то на страницу бренда вида атрибута:
      /имя_бренда?attrb[244]=20  по данной ссылке открывается страница бренда без товаров.
      Проблема в том, что я не могу ни как найти от куда растут эти ссылки. Может кто сталкивался с этим или просто знает от куда такая гадость появляется?
    • By Vetlucky777
      Подскажите, что делать с сылками 302 редирект которые появился в яндекс и гугл вебмастере, после того как часть товара перенес в другую родительскую категорию.
      Эти ссылки так и оставить или привести их обратно в первоначальный вид и отправить карту сайта на переиндексацию?
      на сколько знаю 302 редирект не передает ссылочную массу. 
       
      и в вебмастере ссылки с 404 ошибкой удалять или оставлять как есть? давно удалил товар, и осталось 500 ссылок и 18 тысяч ссылок на картинки формата /image/cache/catalog/картинка.jpg, это все в вебмастере висит. 
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.