Как не выводить несколько последних новостей в модуль?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 14 апреля 2014 в 11:39
К примеру, две последние новости — не выводить. Или выводить начиная с третьей.
Спасибо!
#2 14 апреля 2014 в 12:12
Перечислю целых три варианта. Отсечь "лишнее" можно:

1. На уровне запроса к БД
2. На уровне обработки данных перед передачей их в шаблон,
3. На уровне шаблона

Первый наиболее логичный, но если материал не просто выводится, а еще и фильтруется по неким критериям, например должен иметь рисунок или не менее 100 слов в анонсе, то тогда нужен вариант 2. Если же вмешательство в оригинальные файлы системы не желательно, то вариант номер 3. Что конкретно интересует?
#3 14 апреля 2014 в 17:06
Третий вариант вполне подойдёт. Что-то подобное к свойству first функции foreach. Только условие нужно поставить не для первого элемента а — для нескольких первых.
Спасибо!
#4 14 апреля 2014 в 18:54
Объявляешь переменную, каждый цикл прибавляешь 1, когда переменная принимает нужное значение, прогоняешь пустой див вместо анонса. Наверно так.
#5 15 апреля 2014 в 07:35
Это лишнее, можно использовать то что уже есть.
Поскольку речь идет о модуле "Новые статьи", то я так полагаю, что две последние в данном случае означают две первые в цикле, а значит все просто:
  1. {foreach key=aid item=article from=$articles}
  2. {if $aid > 2} <!-- {$aid} начинается с нуля! -->
  3. <div class="mod_latest_entry">.........</div>
  4. {/if}
  5. {/foreach}
Ну и поскольку пагинация при таком раскладе работать правильно не сможет лучше бы этот момент проконтролировать и вывести для себя напоминание. Например в самом верху файла вставить:
  1. {if $cfg.is_pag}
  2. <p>Бла-бла-бла, пагинацию включать нельзя!!!</p>
  3. {/if}
#6 15 апреля 2014 в 08:12
я может не так выразился, но я это и имел в виду))
#7 15 апреля 2014 в 12:04
Pasha, Tokarev, спасибо!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.