Перейти к содержанию
Официальный форум поддержки Simpla

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

Привет,

Подскажите, как вывести новости в списки....
Нужна примерно такая структура
<ul>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
</ul>
<ul>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
</ul>
<ul>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
</ul>
и т.д.
Как ограничить вывод по 4 <li> в 1 <ul>

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

array_chunk() php

{foreach array_chunk($last_posts, 4, false) as $post}
    <ul>
        {foreach $post as $p}
            <li data-post="{$p->id}">{$p->date|date} <a href="blog/{$p->url}">{$p->name|escape}</a></li>
        {/foreach}
    </ul>	
{/foreach}

Выдаст что то типо:

<ul>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
</ul>
<ul>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
</ul>
<ul>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
</ul>
<ul>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
</ul>
Ссылка на сообщение
Поделиться на другие сайты
{section name=last_post loop=$last_posts}

{if $smarty.section.last_post.first}

      <ul class="item active">

{else:}

      <ul class="item">

{/if}

{/section}

Я все правильно понял?

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

@first
 

{foreach array_chunk($last_posts, 4, false) as $post} 
    <ul{if $post@first} class="item active"{else} class="item"{/if}> 
        {foreach $post as $p} 
            <li data-post="{$p->id}">{$p->date|date} <a href="blog/{$p->url}">{$p->name|escape}</a></li> 
        {/foreach} 
    </ul>	 
{/foreach}
Ссылка на сообщение
Поделиться на другие сайты

Нет, я бы вывел так:

    <ul class="item active"> 
        {foreach $post as $p} 
            <li data-post="{$p->id}">{$p->date|date} <a href="blog/{$p->url}">{$p->name|escape}</a></li>
 {if $p@iteration%4 == 0 && !$post@last}
</ul><ul class="item">
{/if}
        {/foreach} 
    </ul>
Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

В данном случае два цикла лучше, так как код проще, легче, понятнее.

С точки зрения экономности выполнения разницы  практически нет - выполнять один цикл в 100 итераций или столько же в двойном цикле (4 итерации во внешнем) * (25 итераций во внутреннем).

С точки зрения легкости повторного использования - код Чудилла, например, при использовании таблиц в верстке легко и просто модифицируется, а код Kosjak76 - уже повозиться надо.

С точки зрения логичности и оптимальности - код Kosjak76 выводит, например </ul> в ДВУХ разных местах. Это неоправданное усложнение, такое типично для начинающих программистов.

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...