Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Вывод последних новостей в таблице 2 на 2

12.10.2008, 14:21
vitema

Зарегистрирован:
2008-10-12
Сообщений: 11

Как вывести 4 последних новости
таком виде

Новость1 Новость2

Новость3 Новость 4
13.10.2008, 00:40
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 334

Сильно зависит от макета дизайна.
Можно, например, считать новости, упаковывать их в div-контейнеры и нечётным контейнерам давать стиль float: left, а чётным - clear: both.
Можно по примеру фотогалереи строить табличку. Наверное ещё что-то реально придумать. Это первое, что в голову пришло.

...жизнь прекрасна, когда правильно подобраны антидепрессанты...
13.10.2008, 07:15
vitema

Зарегистрирован:
2008-10-12
Сообщений: 11

Kraeved писал(а):
Сильно зависит от макета дизайна.
Можно, например, считать новости, упаковывать их в div-контейнеры и нечётным контейнерам давать стиль float: left, а чётным - clear: both.
Можно по примеру фотогалереи строить табличку. Наверное ещё что-то реально придумать. Это первое, что в голову пришло.


меня интересует конкретное решение.

Если нужна конкретная постановка вопроса, попробую ее сформулировать :
На титульной (только на титульной) странице нужно вывести новости из раздела допустим Новости компании,
в этом разделе используется компонент Новости (СМИ), поставляемый с неткат.
То как он выводит новости меня полностью устраивает (разбивка на страницы, вывод краткой части, основной части, отображение даты, показ отдельной новости и тд).

Но, вывести новости на титульной странице мне нужно в формате в котором я писал выше.
Понятно, разбить можно с использованием css или таблицы улыбка

Вопрос в том, с помощью каких средств неткат позволят решить такую задачу.
Не хочется городить кучу php кода, и sql запросов.

Из того, что я читал в документации, отлично подходит функция s_list_class, можно отобразить например 4 последних новости именно в формате компонента.

Но мне то нужно отобразить их в формате таблицы 2 на 2.
Подходящих функций я не нашел.

Самый простой вариант, какой мне видется :
нарисовать эту таблицу, и в соответствующей td отобразить последнюю, предпоследнюю и тд
новости.
Можно ли сделать такую выборку с использованием s_list_class ?
Какие функции можно для этого использовать?

Либо как-то поместить в массив допустим результат возврата s_list_class , и дальше раскидать.
Есть пример как это делается?

3 вариант какой я вижу, это сделать копию компонента и в нем подправить вывод страницы...
но он мне не нравится, ибо нужно только для титульной такое представление.
13.10.2008, 09:25
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 334

Что-то вы излишне мудрите улыбка
Я не знаю, что из себя представляет компонент «Новости (СМИ)», поставляемый с системой и посмотреть мне негде. Но полагаю, ничего сильно уникального там нет, потому навскидку, от фонаря:

Префикс:
Код:
".($isTitle ? "<table><tr>" : "Префикс вывода в разделе «Новости»")."


Список объектов:
Код:
".( $isTitle ? "
".opt( $newsCount/2 == round($newsCount/2), "</tr><tr>" )."
<td>Формат новости для титульной страницы</td>
".opt($newsCount++, "")."
" : "Формат новости для раздела «Новости»")."


Суффикс:
Код:
".($isTitle ? "</tr></table>" : "Суффикс вывода в разделе «Новости»")."


То есть понимаете, да? Между каждой парой ячеек принудительно втыкается завершение предыдущей строки таблицы и начало следующей. Решение подойдёт и в случаях, когда в строке требуется расположить больше ячеек. На главную выводится стандартно, функцией s_list_class. В примере я мог где-то кавычку пропустить, проверьте.

ЗЫ. И топик свой поправьте плиз... переносы строки уберите. А то смотрится чудовищно улыбка

...жизнь прекрасна, когда правильно подобраны антидепрессанты...
13.10.2008, 11:17
vitema

Зарегистрирован:
2008-10-12
Сообщений: 11

ну собственно я примерно так и сделал

То есть в самом шаблоне компонента, прописал так :
Код:
".opt_case($f_RowNum+1 & 1  "<tr><td>","<td>")."  <!--  Проверка на четность --> 
код вывода объекта Новости в компоненте
".opt_case($f_RowNum+1 & 1, "</td></tr>","</td>")." <!-- Проверка на четность -->

по сути реализовали вывод новостей в две колонки
А в макете дизайна соотвественно :
Код:
<table>
". s_list_class(98,108,"recNum=4") ." <!-- берем последние 4 -->
</table>

Примеров не хватает,документация куцая, я нахожусь на этапе разбирательства с неткат, возможностей вроде как море, а что, и как, и где использовать сразу не сообразишь и не найдешь.
Kraevedu, персональное спасибо за участие в топике...
13.10.2008, 12:47
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 334

Не за что. Чем сможем - поможем.
На самом деле, как и практически с любой системой, важен больше опыт и наработки, чем документация. Какой подробной её не делай, всё равно куча белых пятен останется. По-хорошему, её надо вообще писать с нуля и руководствоваться несколько иными принципами, нежели чем это сделано сейчас. Впрочем, это можно сказать о документации практически ко всему, что документируется улыбка


...жизнь прекрасна, когда правильно подобраны антидепрессанты...
198 196 2008-10-13 12:47:54 7557
Описание проекта