Jump to content
Sign in to follow this  
ravlex

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

Recommended Posts

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

 

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>

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

как то так

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

Share this post


Link to post
Share on other sites

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

как то так

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

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

Share this post


Link to post
Share on other sites

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

 40c006b932a0.jpg

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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  

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