Перейти к содержанию
ravlex

Вывод категорий в списках

Рекомендуемые сообщения

Категории в главном меню формируются списком.

 

1c47379a9258.jpg

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

 

3f67bffbab78.jpg

Формируется оно таким образом.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем как обратиться к конкретной категории и сформировать список подкатегорий?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно с помощью css. Для первого элемента задайте отступ справа на нужную длину.

как то так

#menu ul li:first-child {margin-right:700px;}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно с помощью css. Для первого элемента задайте отступ справа на нужную длину.

как то так

#menu ul li:first-child {margin-right:700px;}

Спасибо, способ рабочий конечно, но хотелось бы как-то программно это сделать. Хотелось бы сформировать 2 списка, в соответствии с категориями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот что получается с позиционированием элементов.

 40c006b932a0.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Если я правильно понял, списки формируются циклом, и конкретному списку невозможно дать собственный стиль. Вот по этому я и задался вопросом, чтобы как-то разобрать это меню на 2 части.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну как же нельзя. Все можно, хоть echo $style++. Вариантов же масса. И просто цсс и с помощью пхп итд

 

вот вам простейший пример

  <?php $cl=0; ?>
    <?php foreach ($categories as $category) { ?>
    <li class="<?php echo 'cli_'. $cl; $cl++; ?>"><?php if ($category['active']) { ?>

для каждого li будет свой класс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну как же нельзя. Все можно, хоть echo $style++. Вариантов же масса. И просто цсс и с помощью пхп итд

 

вот вам простейший пример

  <?php $cl=0; ?>
    <?php foreach ($categories as $category) { ?>
    <li class="<?php echo 'cli_'. $cl; $cl++; ?>"><?php if ($category['active']) { ?>

для каждого li будет свой класс

Спасибо, завтра попробую. О результате отпишусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вставил я этот код, но у меня ничего не получилось. Подскажите пожалуйста, как его правильно внедрить? Я уверен, что вставляю его не туда. 

<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 $cl=0; ?>
          <?php if (isset($category['children'][$i])) { ?>
          <li class="<?php echo 'cli_'. $cl; $cl++; ?>"><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
            <?php if ($category['active']) { ?>
          <?php } ?>
          <?php } ?>
        </ul>
        <?php } ?>
      </div>
      <?php } ?>
    </li>
    <?php } ?>
  </ul>
</div>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в вашем случае как то так, должно работать

<div id="menu">
  
  <ul>
<?php $cl=0; ?>
    <?php foreach ($categories as $category) { ?>
    <li class="<?php echo 'cli_'. $cl; $cl++; ?>><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 $cl=0; ?>
          <?php if (isset($category['children'][$i])) { ?>
          <li class="<?php echo 'cli_'. $cl; $cl++; ?>"><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
            <?php if ($category['active']) { ?>
          <?php } ?>
          <?php } ?>
        </ul>
        <?php } ?>
      </div>
      <?php } ?>
    </li>
    <?php } ?>
  </ul>
</div>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое, работает. Осталось только стили настроить, но с этим я справлюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.