Горизонтальное меню из статей в Opencart

Тема в разделе "Дизайн, оформление и шаблоны", создана пользователем Анастасия, 29 май 2015.

  1. Анастасия

    Анастасия Новичок

    Сообщения:
    29
    Симпатии:
    2
    Обрисовываю ситуацию. В шаблоне default (Opencart 2.0.1.1) горизонтальное меню по умолчанию формируется из созданных категорий. Мне необходимо подключить вывод статей Доставка, Оплата и прочие.
    захожу в /catalog/controller/common/header.php

    перед

    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
    $this->template = $this->config->get('config_template') . '/template/common/header.tpl';
    } else {
    $this->template = 'default/template/common/header.tpl';
    }

    $this->render();

    вставляю
    $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/ваша тема/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>
    <?php foreach ($informations as $information) { ?>
    <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
    <?php } ?>
    </ul>
    </div>

    и нифига не получается)) кто знает где ошибка?
     

    Вложения:

    Последнее редактирование: 29 май 2015
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.883
    Симпатии:
    1.065
  3. Анастасия

    Анастасия Новичок

    Сообщения:
    29
    Симпатии:
    2
    Благодарю! Сейчас буду смотреть что там и как.
     
  4. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Добрый вечер !! Читал вашу переписку, и так и не понял, что именно нужно заменить чтобы все получилось. Подскажите пожалуйста !!
     
  5. Ravilr

    Ravilr Специалист

    Сообщения:
    3.883
    Симпатии:
    1.065
    смотрите. Изучайте и сделайте по аналогии. Что не получается пишите.
    или http://shop.opencart-russia.ru/stati-v-menu
     
  6. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Спасибо, меню вывелось, но стоит в столбик, подскажите как мне его поставить в горизонтальную позицию!
     

    Вложения:

  7. Ravilr

    Ravilr Специалист

    Сообщения:
    3.883
    Симпатии:
    1.065
    после цикла должно получится такое меню
    Код:
    <nav class="navbar" id="menu">
        <div class="navbar-header"><span class="visible-xs" id="category">Категории</span>
          <button data-target=".navbar-ex1-collapse" data-toggle="collapse" class="btn btn-navbar navbar-toggle" type="button"><i class="fa fa-bars"></i></button>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
                <li><a href="http://-test/Планшеты">Планшеты</a></li>
                <li><a href="http://-test/Софт">Софт</a></li>
                <li><a href="http://-test/Телефоны и PDA">Телефоны и PDA</a></li>
                <li><a href="http://-test/Камеры">Камеры</a></li>
             </ul>
        </div>
      </nav>
     
  8. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Я новичок в этом деле, я не нашел такого кода ни в:
    / catalog / view / theme / ваша тема / template / common / header
    ни в:
    / catalog / controller / common / header

    Возможно я что-то не так делаю ??
     
  9. Ravilr

    Ravilr Специалист

    Сообщения:
    3.883
    Симпатии:
    1.065
    вам не искать надо, а изменить меню, чтобы оно было такое. Это же пример.. что получится должно в итоге в html.
    Откройте header.tpl и увидите похожие строки. Туда и вставьте вывод статей.
     
  10. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Код:
    <?php echo $currency; ?>
        <?php echo $language; ?>
        <div id="top-links" class="nav pull-right">
          <ul class="list-inline">
            <li><a href="<?php echo $contact; ?>"><i class="fa fa-phone"></i></a> <span class="hidden-xs hidden-sm hidden-md"><?php echo $telephone; ?></span></li>
            <li class="dropdown"><a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_account; ?></span> <span class="caret"></span></a>
              <ul class="dropdown-menu dropdown-menu-right">
                <?php if ($logged) { ?>
                <li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
                <li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
                <li><a href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a></li>
                <li><a href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
                <li><a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
                <?php } else { ?>
                <li><a href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
                <li><a href="<?php echo $login; ?>"><?php echo $text_login; ?></a></li>
                <?php } ?>
              </ul>
            </li>
            <li><a href="<?php echo $wishlist; ?>" id="wishlist-total" title="<?php echo $text_wishlist; ?>"><i class="fa fa-heart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_wishlist; ?></span></a></li>
            <li><a href="<?php echo $shopping_cart; ?>" title="<?php echo $text_shopping_cart; ?>"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_shopping_cart; ?></span></a></li>
            <li><a href="<?php echo $checkout; ?>" title="<?php echo $text_checkout; ?>"><i class="fa fa-share"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_checkout; ?></span></a></li>
          </ul>
    Вставил здесь, и у меня в админке исчезли подписи к категориям, пришлось откатывать назад сайт, напишите пожалуйста в л.с. если вам не трудно, по шаговую инструкцию, а то у меня уже голова от тех всех болит кодов и переделок.
     
  11. Ravilr

    Ravilr Специалист

    Сообщения:
    3.883
    Симпатии:
    1.065
    вы не туда вставляете. Вам нужно смотреть ниже.. к
    Код:
    <?php if ($categories) { ?>
     
    Figulman нравится это.
  12. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Спасибо !!! Вы меня реально выручили !!!!!!!!!!!!!!!!!
     
  13. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Столкнулся с другой проблемой при удалении всех стандартные категории, меню горизонтальное пропало. Подскажите пожалуйста шо нужно сделать?
     
  14. tsap

    tsap Продвинутый пользователь

    Сообщения:
    230
    Симпатии:
    131
    прозвучит грубо, но все же: Включите мозг!
    о чем говорит строка <?php if ($categories) { ?>, читаем мануал
    мы проверяем существуют ли категории, и если да то выполняем определенные действия, в конкретном случае рисуем меню.
    Вам нужно удалить эту строку или иначе обыграть. не забудьте про скобки {}!
     
    Ravilr нравится это.
  15. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Вам очень просто это делать, это мой первый сайт, поэтому и прошу у вас помощи.
     
  16. tsap

    tsap Продвинутый пользователь

    Сообщения:
    230
    Симпатии:
    131
    поверьте, сам недавно начал этим заниматься, но не стоит браться за создание сайта, если у вас нет базовых знаний HTML, CSS, PHP, читайте изучайте документацию.
    вам не станут разжевывать каждый шаг, будете нарываться только на грубость
    предыдущим постом должен был вам помочь
     
    optimlab нравится это.
  17. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.438
    Симпатии:
    780
    это не проблема. Это конструкция и таких похожих конструкций в шаблоне очень много.
    Удалите указанный код с <?php } ?>. Если вам тяжело ориентироваться в коде, обычно просто шунтируют, например вместо вашего кода пишут так
    Код:
    <?php if ($categories != 999) { ?>
    Или другие способы "извращения над кодом".

    Но лучше конечно подучить основы. И вам лучше и форумчанинам польза.
     
    Bru-Zga нравится это.
  18. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Спасибо, что ответили на письменно, я уже понял что нужно изучить азы HTML и CSS, и займусь этим на днях 100%, ну а в данном коде все равно ничего не получается. удалил здесь
    Код:
    <?php if ($categories) { ?>
    <div class="container">
      <nav id="menu" class="navbar">
    и выбивает ошибку, потом попробовал здесь, и снова то же самое.

    Код:
    <?php if ($category['children']) { ?>
            <li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a>
              <div class="dropdown-menu">
     
  19. my2you

    my2you Продвинутый пользователь

    Сообщения:
    281
    Симпатии:
    125
    @Figulman что то вы темните )) То получается у вас, то не получается.

    там всего то с 88 строки по конечную удалить все это
    Код:
    <?php if ($categories) { ?>
    <div class="container">
      <nav id="menu" class="navbar">
        <div class="navbar-header"><span id="category" class="visible-xs"><?php echo $text_category; ?></span>
          <button type="button" class="btn btn-navbar navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"><i class="fa fa-bars"></i></button>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            <?php foreach ($categories as $category) { ?>
            <?php if ($category['children']) { ?>
            <li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a>
              <div class="dropdown-menu">
                <div class="dropdown-inner">
                  <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?>
                  <ul class="list-unstyled">
                    <?php foreach ($children as $child) { ?>
                    <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>
                    <?php } ?>
                  </ul>
                  <?php } ?>
                </div>
                <a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </div>
            </li>
            <?php } else { ?>
            <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
            <?php } ?>
            <?php } ?>
          </ul>
        </div>
      </nav>
    </div>
    <?php } ?>
    ну а вместо него вставить что то свое, типа
    Код:
    <?php // if ($categories) { ?>
    <div class="container">
      <nav id="menu" class="navbar">
        <div class="navbar-header"><span id="category" class="visible-xs">Название блока для мобилы</span>
          <button type="button" class="btn btn-navbar navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"><i class="fa fa-bars"></i></button>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
          <!-- что то свое что формирует li список, например -->
           <?php foreach ($informations as $information) { ?>
              <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
           <?php } ?>
          </ul>
        </div>
      </nav>
    </div>
    <?php // } ?>
    специально не убирал некоторые части, а закомментировал просто.. чтобы видели..
     
  20. Figulman

    Figulman Пользователь

    Сообщения:
    30
    Симпатии:
    0
    Большое спасибо !! Так теперь все стало на свои места !!