PDA

Просмотр полной версии : Связка tt_news и Internal Page (FCE)


maaboo
07.08.2008, 19:26
Имеется следующая задачка. Для организации данных на странице используется tt_news, которая ссылается на соответствующую страницу с содержимым публикации.

Первый вопрос. Каким образом я могу получить в форме FCE при создании контента дату и время, которая бы совпадала с датой и временем в tt_news?

pomotom
07.08.2008, 21:21
В бекенде без написания расширения- наверное никак, а во фронтенде - написать запрос, который выбирает из таблицы ньюсов строку со ссылкой на текущую страницу (поля навскидку не помню).

Andrey Grey
07.08.2008, 21:41
Имеется следующая задачка. Для организации данных на странице используется tt_news, которая ссылается на соответствующую страницу с содержимым публикации.

Первый вопрос. Каким образом я могу получить в форме FCE при создании контента дату и время, которая бы совпадала с датой и временем в tt_news?

чуть раскройте тему. не совсем понятно что вы хотите делать в fce и из какого режима tt_news вы хотите брать данные о дате.

если речь идет о том, чтобы брать в FCE данные текущей загруженой новости, то это все просто и делается в средствами typoscript.

расскажите подробнее

maaboo
08.08.2008, 10:39
чуть раскройте тему. не совсем понятно что вы хотите делать в fce и из какого режима tt_news вы хотите брать данные о дате.
если речь идет о том, чтобы брать в FCE данные текущей загруженой новости, то это все просто и делается в средствами typoscript.
расскажите подробнее

FCE используется как контейнер для сложного форматирования (в качестве примера, я всегда привожу уважаемый мною ресурс "Мембрана" (http://www.membrana.ru/articles/business/2008/08/06/125800.html)). Однако в контейнере необходимо присутствие некоторых "автоматических" полей, берущих свои значения из массивов Typo, например, дата публикации должна совпадать как на странице со списком новостей, так и в заголовке открытой через FCE отдельной статьи.


То есть выглядит это примерно так:


[Лента новостей] [Отдельная публикация (FCE)]

+-----------------------------+
| |
Дата | Заголовок Дата | Заголовок
Подзаголовок Подзаголовок
Тизер Текст


Либо это делается наоборот - tt_news берёт данные из созданной статьи на базе FCE? Тогда как создать поле даты/время публиакации в FCE?

pomotom
08.08.2008, 11:40
Выборку из таблицы ньюсов можно сделать примерно так:

lib.single = CONTENT
lib.single {
table = tt_news
select {
pidInList = 3 #ваше значение
max = 1
andWhere.cObject = TEXT
andWhere.cObject.value= uid={GPvar:item} #здесь пишите выражение для нужной вам выборки
andWhere.cObject.insertData = 1

}

renderObj = COA
renderObj {
10 = TEXT
10 {
data = field:datetime
date = d / m / Y H:i
wrap =<div class="dt">|</div>
}

20 = TEXT
20 {
data = field:title
wrap = <h3>|</h3>

}


}

}



}


Вам нужно будет вставить что-то подобное в FCE

maaboo
08.08.2008, 13:12
Извини, что-то я не совсем понял код...

Andrey Grey
08.08.2008, 14:02
maaboo.
Вам не нужно искать ни какие форумы англоязычные. Вам нцжно засесть за tsref. А если что-то непонятно по tsref, то искать сниппеты в гугле.
Выше приведен вполне рабочий пример. =CONTENT описан в tsref. очень полезная функция.

maaboo
08.08.2008, 14:11
maaboo.
Вам не нужно искать ни какие форумы англоязычные. Вам нцжно засесть за tsref. А если что-то непонятно по tsref, то искать сниппеты в гугле.
Выше приведен вполне рабочий пример. =CONTENT описан в tsref. очень полезная функция.

Я и так уже копаюсь в TSRef как проклятый, мне в частности вот это непонятно:


...
pidInList = 3 #ваше значение
...
andWhere.cObject.value= uid={GPvar:item} #здесь пишите выражение для
...

Andrey Grey
08.08.2008, 15:12
pidInList = 3 - это значит выбрать те записи у которых PID = 3

andWhere.cObject.value= uid={GPvar:item}
не совсем понимаю зачем так сложно. вроде бы можно и короче:
andWhere= uid={GPvar:item}
andWhere.insertData = 1

это добавочный where к sql запросу. суть его: выбрать те записи, где uid = текущему значению переменной item, item - текущая новость.

Andrey Grey
08.08.2008, 15:14
но мне кажется что всю вашу затею можно решить без использвания FCE. попробуйте лучше section_frame

reva2
08.08.2008, 15:16
Первая строчка задает uid страницы на которой хранятся новости.
Вторая задает условие для выбора конкретной новости. Сюда Вам нужно прописать откуда брать uid новости с которой связана эта страница.
Про функцию select читаем здесь (http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/5/5/).
-----
Опс, Андрей опередил меня с ответом.

maaboo
08.08.2008, 15:59
но мне кажется что всю вашу затею можно решить без использвания FCE. попробуйте лучше section_frame

Это где? :-\

maaboo
08.08.2008, 16:00
А можно вкратце по-русски пояснить в чём идея алгоритма заключается?

pomotom
08.08.2008, 17:30
найти в таблице ньюс строчку, котрая ссылается на вашу странцу. По условию она вроде одна-единственная. Одно из полей таблицы ньюс (названия не помню) задает ссылку на страницу-статью.
CONTENT делает выборку из базы (select позволяeт сконфигурить запрос, надо знать SQL и структуру таблицы, которую запрашиваете, в tsref все расписано) и рендерит поочередно строчки в соответствии с конфигурацией renderObj.