Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > TypoScript практикум

Ответ
 
Опции темы Опции просмотра
Старый 04.12.2011, 14:39   #1
Olim
Новенький
 
Регистрация: 06.08.2011
Сообщений: 17
По умолчанию tt_news catmenu и list в одном окне

Уважаемые знатоки! Помогите пж с задачей! Допустим создано категорий n шт. В определенном стр, допустим нужно выводит n шт блоков и каждый блок должен содержать имя категорию и последные 3 новости с этой же категории. Допустим добавиш еще одну категорию, соответственно число блоков увеличится динамически. Спасибо откликнувшимся!

Последний раз редактировалось Olim; 04.12.2011 в 14:50
Olim вне форума   Ответить с цитированием
Старый 05.12.2011, 17:50   #2
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Подойти к задаче на чистом TypoScript можно так:

1. Сделать выборку через CONTENT из tt_news_cat
2. Для вывода каждой записи в renderObj сделать COA элемент, в который вставить plugin.tt_news
3. В настройку вставленных plugin.tt_news добавить categorySelection с uid текущей категории.

Готовый код не берусь сваять, но вот примерная заготовка:

Код:
page.10 >
page.10 = CONTENT
page.10.wrap = <> | </>
page.10 {  
    table = tt_news_cat
    select {    
        selectFields = uid,title
        pidInList = 123
        # where = ...
    }  
    renderObj = COA
    renderObj.wrap = <> |</>

    renderObj.10 = TEXT
    renderObj.10.field = title
    renderObj.10.wrap = <> | </>

    renderObj.20 < plugin.tt_news
    renderObj.20 {
       ...
       categorySelection = {field:uid}
       categorySelection.insertData = 1
       ...
    }    
}
dmartynenko вне форума   Ответить с цитированием
Старый 06.12.2011, 12:27   #3
Olim
Новенький
 
Регистрация: 06.08.2011
Сообщений: 17
По умолчанию

Дело в том, что нельзя допустить такой метод ввода. Добавил категорию в одном месте, с артиклами и все. Скрипт сам должен считать сколько там категорий, и выводит их в определенном месте по порядку, с 3 или 4 артиклами(новостями)
Olim вне форума   Ответить с цитированием
Старый 06.12.2011, 12:44   #4
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Я предложил решение исходной задачи. Возможно вы ее не достаточно подробно описали?

Подобный скрипт выведет все категории и для каждой категории связанные новости (столько штук, сколько настроите). Что касается места вывода, то конечно в скрипте это не отрегулируешь - все выведется подряд одно за другим. Но с помощью CSS float/width и т.п. вещей можно сделать вывод блоков в 2, 3 колонки.

Если нужен более интелектуальный порядок вывода - например в 2 колонки и что бы блоки распределялись так, что бы колонки примерно одинаково были заполнены по высоте, то можете написать свой экст, который будет делать выборку категорий и новостей и формировать нужный контент. Это даже будет быстрей работать чем на TS, да и гибкости будет больше.
dmartynenko вне форума   Ответить с цитированием
Старый 08.12.2011, 15:45   #5
Olim
Новенький
 
Регистрация: 06.08.2011
Сообщений: 17
По умолчанию Спасибо! Все сработало.

Даже в большом городе могут быт маленькие ошибки.
lib.nnn = COA_INT
lib.nnn.10 >
lib.nnn.10 = CONTENT
lib.nnn.10.wrap = <section class="accordbk"> <article class="h"> <ul> | </ul></section></article>
lib.nnn.10 {
table = tt_news_cat
select {
selectFields = uid,title
where = NOT deleted AND NOT hidden AND NOT parent_category
pidInList = 6
max = 8
}
renderObj = COA
renderObj.wrap = <li> |</li>

renderObj.10 = TEXT
renderObj.10.field = title
renderObj.10.wrap = <h3> | </h3>

renderObj.20 < plugin.tt_news
renderObj.20 {
code = LATEST
pid_list = 6
singlePid = 5
stdWrap.wrap = |
categorySelection = {field:uid}
categoryMode = 1
categorySelection.insertData = 1
stdWrap.wrap = <div> | </div>


}

}
.......

subparts.cont < lib.nnn

можете посмотреть

http://olim.hostedon.com
Olim вне форума   Ответить с цитированием
Старый 08.12.2011, 18:09   #6
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Чудесно Осталось только допились HTML шаблоны и CSS.

Только в условии where писать "NOT deleted AND NOT hidden" не обязательно, такие условия ядро TYPO3 всегда добавляет само.
И не используте COA_INT, так как tt_news очень медлителен, а тут он еще и вызывается N раз. Если нужно регулярное обновление, то лучше сделать COA и поставить срок жизни кэша для этой страницы в 15 или 30 минут (задается в свойствах страницы).
dmartynenko вне форума   Ответить с цитированием
Старый 08.12.2011, 18:17   #7
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

IMHO как то не кошерно запихивать в <li> тэги h3 + div, делайте все на div-ах.
dmartynenko вне форума   Ответить с цитированием
Ответ

Теги
catmenu, list, tt_news, typoscript


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TinyMCE RTE рулит Valery Romanchev HTMLArea, RTE, tinymce_rte и другие визуальные редакторы 10 02.07.2013 22:33
tt_products (SINGLE и LIST вместе) Илья Магазины и каталоги для TYPO3 5 11.02.2011 15:45
tt_news, CATMENU и LIST на одной странице но в разных местах. Как? DimanLin Общие вопросы 3 13.11.2008 18:42


Часовой пояс GMT +4, время: 16:44.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория