PDA

Просмотр полной версии : как вставить название категории, если заранее неизвестен код этой категории?


Дылгеров Ц.В.
14.03.2006, 07:54
Как всегда тривиальный вопрос. Сначала рассказываю как я решил уже.

Для просмотра новостей по категориям использую следующую ссылку:
/index.php?id=35211&no_cache=1&tx_ttnews[cat]=1&tx_ttnews[title]=Анонсы
или
/index.php?id=35211&no_cache=1&tx_ttnews[cat]=3&tx_ttnews[title]=Объявления

а в TS забираю название категории GP
temp.200 = TEXT
temp.200.data = GPvar : tx_ttnews|title
temp.200.wrap = Категория:  |
#temp.200.ifEmpty = Новости

и втыкаю куда-нибудь, простите меня за выражение, в шаблон

А к чему этот огород? Как бы сразу по коду-то из tx_ttnews[cat] вытаскивать название категории?

Заранее благодарствую, а для новеньких это готовое решение.

Dutchak Vitaly
14.03.2006, 08:03
Как всегда тривиальный вопрос. Сначала рассказываю как я решил уже.

Для просмотра новостей по категориям использую следующую ссылку:
/index.php?id=35211&no_cache=1&tx_ttnews[cat]=1&tx_ttnews[title]=Анонсы
или
/index.php?id=35211&no_cache=1&tx_ttnews[cat]=3&tx_ttnews[title]=Объявления

а в TS забираю название категории GP
temp.200 = TEXT
temp.200.data = GPvar : tx_ttnews|title
temp.200.wrap = Категория:  |
#temp.200.ifEmpty = Новости

и втыкаю куда-нибудь, простите меня за выражение, в шаблон

А к чему этот огород? Как бы сразу по коду-то из tx_ttnews[cat] вытаскивать название категории?

Заранее благодарствую, а для новеньких это готовое решение.

По какому коду? PHP или TS?

Дылгеров Ц.В.
14.03.2006, 09:24
Пояснение: то есть
для просмотра новостей по категориям использовать обычную ссылку:
/index.php?id=35211&no_cache=1&tx_ttnews[cat]=7

а решить через TS:
выбрать из URL код категории - здесь 7, и по этому коду выбрать title категории

я пробовал такой вариант

#это были попытки отобразить название категории новостей
temp.title = TEXT
temp.title.data = DB:tt_news_cat:7:title
temp.title.wrap = Категория |

, а как в temp.title вставить выражение из:
temp.cod_cat = TEXT
temp.cod_cat.data = GPvar : tx_ttnews|cat
temp.cod_cat.wrap = |
(здесь temp.cod_cat теперь равен 7) ???

Дылгеров Ц.В.
14.03.2006, 09:41
чувствую придется через Php делать

Pavel Antonov
14.03.2006, 14:15
temp.title = RECORDS
temp.title {
tables = tt_news_cat
source.data = GPvar : tx_ttnews|cat
conf.tt_news_cat = TEXT
conf.tt_news_cat.field = title
wrap = Категория |
}

Дылгеров Ц.В.
15.03.2006, 10:05
Большое спасибо, все получилось!
Я пытался использовать RECORDS - но понятия не имел что можно source.data и conf. применять.
Буду читать руководства

Вот что получилось в результате:
plugin.tx_automaketemplate_pi1 {
content = FILE
content.file = fileadmin/disain/variant1/single_news_page.html
elements {
BODY.all = 1
BODY.all.subpartMarker = DOCUMENT_BODY
HEAD.all = 1
HEAD.all.subpartMarker = DOCUMENT_HEADER
HEAD.rmTagSections = title
TD.all = 1
}
}

temp.NewsNews < plugin.tt_news
temp.NewsNews {
_LOCAL_LANG.ru {
pi_list_browseresults_displays = Показаны результаты с ###SPAN_BEGIN###%s по %s</span> из ###SPAN_BEGIN###%s</span>
}
templateFile = fileadmin/disain/variant1/tt_news_v2_template.html
code >
code.field >
code = LIST
singlePid = 3
limit = 10
pid_list = 1
recursive = 250
displayList {
date_stdWrap.strftime= %d.%m.%y
time_stdWrap.strftime= %d.%m.%y %H:%M
}
}

#здесь использовалась избыточная ссылка для отображения названия категории
#temp.200 = TEXT
#temp.200.data = GPvar : tx_ttnews|title
#temp.200.wrap = Категория:&nbsp; |
#temp.200.ifEmpty = Новости

temp.200 = RECORDS
temp.200 {
tables = tt_news_cat
source.data = GPvar : tx_ttnews|cat
conf.tt_news_cat = TEXT
conf.tt_news_cat.field = title
wrap = Категория:&nbsp;|
}

#тут зря с COA - можно и сразу temp.NewsNews использовать
temp.middle = COA
temp.middle.5 < temp.NewsNews

temp.mainTemplate = TEMPLATE
temp.mainTemplate {
template =< plugin.tx_automaketemplate_pi1
workOnSubpart = DOCUMENT_BODY
subparts.newsnews < temp.middle
subparts.zagolovok < temp.200
}

temp.headTemplate = TEMPLATE
temp.headTemplate {
template =< plugin.tx_automaketemplate_pi1
workOnSubpart = DOCUMENT_HEADER
}


# defining the default language
config.sys_language_uid = 0
config.sys_language_mode = strict
config.language = ru
config.locale_all = Russian
config {
metaCharset = windows-1251
renderCharset = windows-1251
}


# Default PAGE object:
page = PAGE
page.10 < temp.mainTemplate
page.headerData.5 < temp.headTemplate
page.bodyTag = <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

sega
16.03.2006, 15:36
а можно ссылочку, как это живъём работает ?

Дылгеров Ц.В.
17.03.2006, 04:58
а можно ссылочку, как это живъём работает ?
Этот сайт пока не видно снаружи - тестовый вариант. Ничего особенного в этом TS не видно - стандартный шаблон как на любом сайте TYPO3.

Изюминка в посте Pavel Antonov.
На главной странице я руками прописываю ссылки (пример в 3 посте) на страницу с uid = 35211. На странице с uid = 35211 втыкаю этот шаблон. Так как в url присутствует &tx_ttnews[cat]=3, то GP выдергивает цифру 3, и ставит в source.data. Дальше temp.title (у меня temp.200) при помощи conf.tt_news_cat = TEXT, conf.tt_news_cat.field = title выдергивает из БД название категории.

Про RECORDS непонятно написано в TSRef и хорошо в TSByExamples в разделе CONTENT rendering.

sega
17.03.2006, 17:06
а вот если есть категории, и хочется внести их в меню, или сформиловать линки с Idми и титлями ? чтоб аутоматично, а не руками ?

Pavel Antonov
17.03.2006, 17:51
а вот если есть категории, и хочется внести их в меню, или сформиловать линки с Idми и титлями ? чтоб аутоматично, а не руками ?

Та же фигня, только в левой руке.
Для отбора воспользоваться CONTENT, выбрать все из таблицы tt_news_cat и показать как хочется....

Дылгеров Ц.В.
20.03.2006, 06:24
Наверняка есть еще решение через catmenu. Вот что значит не обновлять руководства - у меня было старое по tt_news (rus_manual-tt_news-18-11-2004_22-28-14.sxw) - а там ни слова про catmenu.

Pavel Antonov
20.03.2006, 11:34
Наверняка есть еще решение через catmenu. Вот что значит не обновлять руководства - у меня было старое по tt_news (rus_manual-tt_news-18-11-2004_22-28-14.sxw) - а там ни слова про catmenu.
Да, естественно! Если мы говорим про генерацию меню категорий средствами самого плагина - то такая возможность есть и точно работает. Кроме ссылки на категорию, так же может быть добавлено количество новостей в данной категории.

Можно посмотреть TIMTAB (http://typo3.org/extensions/repository/search/timtab/0.5.6/) (блог движок). В его составе есть преднастроенная конфигурация для tt_news с меню категорий и многим другим (например клендарь, но по-моему он от TIMTAB)