[Помогите] Как создать категорию ТОЛЬКО в главном меню

Тема в разделе "OpenCart", создана пользователем sokrat, 3 дек 2013.

  1. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Итак. Есть главное меню: горизонтальное меню сайта. И есть не главное: левая колонка сайта. Как создать категорию "Контакты" ТОЛЬКО в главном меню - в горизонтальном меню сайта?
    Если ставить галочку "главное меню", то категория отображается в двух менюшках сайта.
     
  2. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    Итак. Вы хотите создать в товарном каталоге категорию "Контакты" ?) и что ж вы там будете продавать ?)
     
    Vlad-i-Slav нравится это.
  3. Reqman

    Reqman

    Регистрация:
    25 фев 2013
    Сообщения:
    213
    Симпатии:
    62
    Используйте Меню категорий 1.1. Оно решит Вашу проблему.
     
  4. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Если не в товарном каталоге, тогда в каком?
     
  5. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    ни в каком. только или ручками ссылку добавлять в шаблон или пользоваться каким нибудь модулем
     
  6. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    Подробная инструкция как вывести ссылку на контакты в главное меню:
    1) В файле /catalog/language/твой язык/common/header.php после строчки
    Код:
    $_['text_search']        = 'Поиск';
    добавь строчку
    Код:
    $_['text_contact']      = 'Контакты';
    .
    2) в файле /catalog/controller/common/header.php после строки
    Код:
    $this->data['text_home'] = $this->language->get('text_home');
    добавить
    Код:
    $this->data['text_contact'] = $this->language->get('text_contact');
    .
    а также после
    Код:
    $this->data['home'] = $this->url->link('common/home');
    добавить
    Код:
    $this->data['contact'] = $this->url->link('information/contact');
    3) представим что у тебя дефолтный шаблон найдем фрагмент кода отвечающий за вывод меню в файле /catalog/view/theme/default/template/common/haeder.tpl
    Код:
    <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>
    и если хотим чтобы контакты отображались перед категориями как на картинке
    [​IMG]
    то в самом начале после
    <div id="menu">
    <ul>
    допишем
    <li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li>
    а если хотим так [​IMG] то допишем <li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li> в конце фрагмента перед последним закрывающим
    </ul>
    </div>.
     
  7. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    cereberlum - При создании новой вкладки в главном меню придется повторять то же самое вручную???
     
  8. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    Это уж вовсе по всем правилам, с учетом того что страничка контактов может сменить урл и проч. Можно и проще, тупо дописать в темплейт (/catalog/view/theme/default/template/common/haeder.tpl )
    <li><a href="ваша ссылка">название пункта меню</a></li> Для страницы контактов так было просто красивее, чтоль...
    Например
    Код:
    <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>........
     
    Последнее редактирование: 5 дек 2013
  9. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Причем тут контакты, у меня не только контакты должны быть в главном меню - верхнем :Smile: В главном меню будут например 5 закладок (а завтра ещё несколько добавить придётся), а в левом столбце например 2 категории. Ваше решение не годится. Если только вы мне не подскажите, как можно например поменять местами "меню для товаров" и главное меню. Например, когда я ставлю галочку "отображать в главном меню", то отображается только в в верхнем меню, а в левой колонке не отображается.
     
  10. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    Вы хотели запихать контакты как категорию (на сайт и в меню), как я понял... а это не разумно, я сказал как сделать это разумно. Дальше, началась вообще путаница, я уже потерял нить где и что. итак, будем плясать от того что у нас есть 1) верхнее меню[​IMG]
    2) Верхнее меню категорий
    [​IMG]
    3)Модуль "категории" который выведен в левый столбец
    [​IMG]
    Насколько я понял, Вы хотели показать контакты в верхнем меню категорий, вот я и показал как это сделать. А что за 5 закладок и где они должны отображаться? это категории? В общем это норма что если ставить галочку "показывать в верхнем меню" - категрия выводится в модуль категорий, даже если галочку не ставить в левом меню (модуле категории) категория выводиться будет. Выхода тут 3 1)Искать другой модуль на замену модулю "категории" в котором можно задавать пункты произвольно 2) вписывать в макете модуля категорий ссылки вручную, убрав динамический вывод категорий. 3)По какому принципу не должны показываться категории в левом меню, если надо показывать только материнские и не показывать дочерние
    [​IMG]
    то этого можно добиться немного подправив шаблон вывода модуля. Если же в левом меню категории должны выводиться произвольно, то остается 2 первых варианта.
     
  11. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Как независимо добавлять вкладки в "Верхнее меню категорий", что бы все мои добавления не касались "модуля категорий, выведенного в левый столбец"? Можно ли 1 раз подправить код, что бы потом уже создавать закладки в верхнем меню и в левом меню категорий через админку независимо друг от друга?
    Меню Категорий Pro 1.1. подойдёт?
     
  12. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    Смотря что именно Вы добавляете в верхнее меню, как я уже говорил, если речь о товарных категориях, они будут показаны слева(в модуле категорий) не зависимо от того есть галочка "показывать в верхнем меню" или ее нет. Если такое положение не устраивает то надо отказаться от модуля "категории".
    С верхним меню как раз все просто, если хотите показать там категорию - выставляете галочку. Если хотите показать там что-то другое (контакты, ссылку на блог, гостевую книгу и проч) то дописывайте ссылку в меню прямо в макет, это не сложно. Может есть модули которые делают это через админку, не знаю, мне проще отредактировать шаблон.
    И еще раз, наличие галочки "показывать в меню" или ее отсутствие никак не влияет на отображение категорий в левом меню!
     
  13. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Да, левое меню именно для товаров - вы правильно поняли. Все остальные данные закладки: контакты, прайс-лист, о компании, доставка, статьи - это в верхнем меню категорий. Модуль категорий можно оставить для категорий левого меню. Может и без модуля можно обойтись. Значит придётся всё-таки дописывать ссылку в меню прямо в макет - надо попробовать завтра. Для этого достаточно выполнить пункты 1 и 2, которые вы указали в посте №6?
     
  14. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    как в 8-ом проще, конечно, просто тогда придется менять в случае изменения урла руками. как в 6-ом кошернее.
     
  15. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Что бы сформировать пункт в верхнем меню категорий "прайс-лист", я должен добавить всего 1 строчку такой код:
    Код:
    <div id="menu">
      <ul>
    <li><a href="Моя ссылка">Прайс-лист</a></li>
        
    2 вопроса:
    1. Какой адрес ссылки указать и как его узнать? Например мои ссылки из категорий имеют вид: http://www.brocart/index.php?route=product/category&path=71 ...
    2. У меня сейчас судя по всему в хидере вообще нет ни одного пункта. Когда добавляю менюшку и ссылку по вашему методу, то моё текущее меню сдвигается вниз.
    Вот код меню в хидере моей темы:
    Код:
    <?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 } ?>
     
    Последнее редактирование: 5 дек 2013
  16. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Скачал Меню Категорий Pro 1.1 Действительно оно решает проблему за счет вывода независимого от верхнего левого меню. Ну а верхнее меню я добавляю в Opencart с помощью установки галочки "отображать в главном меню".
    Единственное, мне не понятно, почему модуль Категорий Pro 1.1 некорректно выводит категории в верхнее меню, но это уже отдельная тема. Я думаю, что тему можно закрыть.
     
  17. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Погорячился. Меню категорий не может заменить главное меню, встроенное в Opencart. Поэтому ссылки в главном меню через админку устанавливать нельзя :(
     
  18. видеотехника

    видеотехника

    Регистрация:
    1 авг 2013
    Сообщения:
    10
    Симпатии:
    5
    можно поставить модуль верхнего меню, независимый ни от кого, например pavmegamenu, Amazon Menu II и пр. и настроить отдельно все пункты как хочеться
     
  19. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Поставить можно, только как убрать стандартное главное меню Опенкарта? :smile: Например Меню Категорий Pro - в нём есть настройка Отображать вверху сайта, но оно туда не попадает. Конечно надо бы попробовать и другие модули. Вы пробовали то, что рекомендуете? Удалось в стандартной теме шаблона заменить верхнее меню этими модулями?
     
  20. видеотехника

    видеотехника

    Регистрация:
    1 авг 2013
    Сообщения:
    10
    Симпатии:
    5
    Стандартное верхнее меню не отображается, если пустое, таким образом, необходимо убрать птички "отображать в главном меню" в категориях, которые выводятся в главном. Можно конечно, главное меню из шаблона вообще вырезать. Пример реализации отдельного меню здесь .
    При этом , у PAV есть квикстарт, полный opencart со всеми его примочками, можно загрузить и на локалке посмотреть как все вместе работает.
     
    sokrat нравится это.