PDA

Просмотр полной версии : tt_news - Single + List


Future
18.01.2007, 17:26
Доброго времени суток!

Вопро вот в чём... я делал шаблон с помощью TV

RootPage

Setup:
# Default PAGE object:
page = PAGE
page.typeNum = 0
page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page

и есть
News Page

Setup:

plugin.tt_news.displayList {
date_stdWrap.strftime= %d.%m.%Y
}

lib.newsLatest < plugin.tt_news
lib.newsLatest {
# очистить поле кода
code >
code = LIST
}

Я никак не могу понять как мне отображать Single в поле контента?

т.е. если на этой странице есть контент... то его вывести но при выборе какой то ности должна отображаться новость...
Либо если нет контента, то выводить последнюю новость...

Честно говоря только первую неделю разбираюсь в движке.. не совсем всё понимаю..
Будьте добры, ответьте на вопрос?...


lib.AddRight < lib.newsLatest

PhilD
18.01.2007, 18:44
Если я правильно понял вопрос:
добавить плагин tt_news в поле контента, например.
Т.е. для начала проще не добавлять плагин в шаблон а добавлять его как элемент контента - там все очень понятно визуально настраивается.

Future
18.01.2007, 18:46
Да это возможно, но мне бы хотелость это сделать именно таким образом...
что то типа...
lib.content = CONTENT
lib.content.table = tt_content
lib.content.select {
pidInList = pid #id страницы
orderBy = sorting
}

Не подскажите решение?

Future
18.01.2007, 18:56
Если я вставлю как контент страницы и выберу параметр SINGL то каким образом мне написать что если Id нету брать другой контент?
no news_id given заменить на контент ? и наобарот если выбрана новость то выводить её а не контент ?

PhilD
18.01.2007, 19:08
Не очень понимаю смысл вопроса.
Обычно делается так, что страница единичного отображения новости одна-единственная (огрубляю, конечно). Для нее делается свой шаблон, где поля контент как такогого просто нет.
Так что я просто не понимаю какую задачу вы решаете.

Future
18.01.2007, 20:10
Задача следующая...
есть основной (TV) шаблон с 3 полями..
lib.menu_1 - навигация
content дефолтовый для страниц
lib.AddRight - блок справа в который вставляется LIST новстей

Задача следующая... не добавляя в контент модуль новости выводить контент страницы и блок новостей справа, но как только пользователь выбирает чатать далее... на этой же страницу вместо контента страницы должна показываться новость в решиме СИНГЛ + правая колонка с новостями оставаться...
Вот и вопрос... как мне ЗАМЕНИТЬ дефолтой контент страницы на модуль TT_NEWS в решиме SINGL

PhilD
18.01.2007, 20:46
на этой же? т.е. ajax? Поскольку если нет - адресная строка все равно будет другая (сначала index.php?id=id_страницы а потом index.php?id=id_страницы&tx_ttnews[tt_news]=id_новости&tx_ttnews[backPid]=id_страницы примерно) и какой великий смысл сохранять в ней id страницы неизменным - мне как-то непонятно.

а так - в принципе - TSREF - Conditions - globalVars

Future
18.01.2007, 20:50
Ну естественно на другой :-) на вот этой
.php?id=id_страницы&tx_ttnews[tt_news]=id_новости&tx_ttnews[backPid]=id_страницы
шаблон то тот же :-) или я чтото не понимаю?

PhilD
18.01.2007, 21:32
сделайте отдельную страницу для отображения single-новости, сделайте на том же файле шаблона другую ds в которой поле контента будет иметь тип объекта - и все. А контента в смысле из tt_content на этой странице просто не будет. Или посмотрите в документации по TV как обращаться к полю шаблона.

Future
18.01.2007, 22:04
Простите за назойливость... я и пытаюсь понять как изменить поле шаблона tt_content если я сделал его в TV...

Valery Romanchev
19.01.2007, 00:00
Простите за назойливость... я и пытаюсь понять как изменить поле шаблона tt_content если я сделал его в TV...через TS нельзя выяснить есть ли блоки на данной странице в TV или их там нет - это только PHP кодом делается.

Т.е. можно написать кастомное условие для TS
и если это условие выполнено - вставлять новость через TS.

пожно посмотреть код kb_tv_cont_slide - там есть пример работы с наличием отсутсвтием блоков на странице.
я еще здесь на форуме приводил пример такого PHP кода

PhilD
19.01.2007, 00:13
Я так понял задача обратная - если отображаем новость то прятать контент. Но вот зачем писать шаблон при котором на сайте получится число страниц в дереве помножить на число новостей страниц(URL-ов) причем число копий из них окажется = числу страниц в дереве я как-то не понимаю. И поисковики тоже не поймут ИМХО.

В принципе вроде можно прописать внутри DS подобное условие - если в URL страницы есть tt_news - вместо одного содержимого вывести другое?

Future
19.01.2007, 11:28
Доброе утро!
Valery Romanchev
Не совсем понял фразу... "через TS нельзя выяснить есть ли блоки на данной странице в TV... "
Не вижу смысла опрделеять наличие блоков, его трубется просто очистить и заменить.

По мануалу мне нужно примерно следующие...

LIST и SINGLE на одной странице
С помощью фрагмента TypoScript возможно размещение новостей в режиме SINGLE на той же странице что и LIST.
Есть определенные преимущества для ссылок realUrl:
Вставим это в поле установки:
# очистить поле кода
plugin.tt_news.code >
plugin.tt_news.code = LIST
# установить код SINGLE, если переменная GETvar tx_ttnews[tt_news] существует
[globalVar = GP:tx_ttnews|tt_news > 0]
plugin.tt_news.code = SINGLE
[global]
# очистить основной контент на объекте page
page.10.subparts.content >
page.10.subparts.content < plugin.tt_news


В моём случае я сделал так...
ib.newsLatest < plugin.tt_news
lib.newsLatest {
# очистить поле кода
code >
code = LIST
}
lib.AddRight < lib.newsLatest


# установить код SINGLE, если переменная GETvar tx_ttnews[tt_news] существует
[globalVar = GP:tx_ttnews|tt_news > 0]
plugin.tt_news.code = SINGLE
[global]
# очистить основной контент на объекте page
page.10.subparts.content >
page.10.subparts.content < plugin.tt_news

Я не понимаю какие написать строчки в моём случае вместо page.10.subparts.content ?

Помогите как мне это реализовать...?

PhilD
20.01.2007, 19:50
Может быть неправ.
Но похоже вы хотите невозможного. Так просто доступа к полям TV вы доступа из TS template вы не получите. Это условие нужно будет писать непосредственно в DS, http://typo3.org/documentation/document-library/tutorials/doc_tut_ftb1/1.0.1/view/1/5/#id2855202

Future
21.01.2007, 14:37
Спасибо за ответы. Будем думать :-)