thebat
16.02.2008, 19:18
Стоит задача с помощью TypoScript-а вывести простое меню из категорий (первого уровня) новостей (tt_news) в таком виде:
Категория 1 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=1) | Категория 2 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=2) | Категория 3 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=3) | Категория 4 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=4) | Категория 5 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=5)
Перед тем как обращаться сюда, я это спросил у google и поискал на forum.typo3.biz, но к сожалению так и ничего вразумительного, простого и понятного не нашел.
Попробовал сам, что ни будь сотворить, но тоже пока ничего не выходит.
Первое, что я сделал, воспользовался примером из документации и написалlib.Categories_News = CONTENT
lib.Categories_News {
table = tt_news_cat
select {
# the category folder(s)
pidInList = 22
}
renderObj = COA
renderObj.wrap = <div class="news-archive-item">|</div>
renderObj {
10 = TEXT
10.field = uid
10.dataWrap = <a href=index.php?id={TSFE:id}&tx_ttnews[cat]= | >
10.insertData = 1
20 = TEXT
20 {
field = title
wrap = <strong>|</strong>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}
}
21 = TEXT
21 {
field = title
wrap = |
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
30 = TEXT
30.value = </a><br />
}
}…, на выводе получаю весь список категорий который находится на странице 22 в том числе и под категории в таком видеКатегория 1
Категория 2
Категория 3
[....]
..., а мне нужно только первый уровень категорий…, и еще проблема в том, что ссылка на категориях не работает, а должно быть,… когда, я клацаю на первую категорию, я должен попадать на страницу со списком новостей этой категории, но это не происходит …
Добавляюselect {
pidInList = 22
andWhere = parent_category = 0
}…, на выводе получаю первый уровень категорий, как раз то, что нужно, но проблема со ссылками не изменилась...
Потом дописываю в "renderObj"renderObj {
stdWrap.typolink.parameter = 23
stdWrap.typolink.additionalParams.dataWrap = tx_ttnews[cat]={field:uid}
}…, на выводе получаю правильную ссылку на список новостей, но проблема со ссылками осталась.
В данный момент результат такойlib.Categories_News = CONTENT
lib.Categories_News.wrap = <div class="menu_theme">|</div>
lib.Categories_News {
table = tt_news_cat
select {
pidInList = 22
andWhere = parent_category = 0
}
renderObj = COA
renderObj {
stdWrap.typolink.parameter = 23
stdWrap.typolink.ATagParams = class="main_theme_item"
stdWrap.typolink.useCacheHash = 1
stdWrap.typolink.additionalParams.dataWrap = &tx_ttnews[cat]={field:uid}
stdWrap.typolink.wrap = |
10 = TEXT
10 {
field = title
wrap = <strong>|</strong>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}
}
20 = TEXT
20 {
field = title
wrap = |
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
}
}…, на выводе получаю...
Категория 1 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=1&cHash=f246abf5b1)Категория 2 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=2&cHash=f246abf5b1)Категория 3 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=3&cHash=f246abf5b1)Категория 4 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=4&cHash=f246abf5b1)Категория 5 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=5&cHash=f246abf5b1)
..., без разделителя " | "... почему-то это[....].wrap = | | |*| | | |*| | |*|...здесь не работает...? Что не так написано, как исправить это? (это первый вопрос)
И остается проблема со ссылкой, что-то в ней не так, если посмотреть на ссылку http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=1&cHash=f246abf5b1, как будто все правильно, но кода, я на нее клацаю попадаю на страницу /index.php?id=list_news со списком новостей, а их там нет "no news in this list", хотя знаю точно, что они там есть.
Возможно, что проблема в том, что у категории есть подкатегории? Тогда еще стоит вопрос, как сделать чтобы, клацая на какой ни будь из категорий, выводился список новостей этой категории, и ее подкатегорий (это второй вопрос).
Как все это реализовать?
Категория 1 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=1) | Категория 2 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=2) | Категория 3 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=3) | Категория 4 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=4) | Категория 5 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=5)
Перед тем как обращаться сюда, я это спросил у google и поискал на forum.typo3.biz, но к сожалению так и ничего вразумительного, простого и понятного не нашел.
Попробовал сам, что ни будь сотворить, но тоже пока ничего не выходит.
Первое, что я сделал, воспользовался примером из документации и написалlib.Categories_News = CONTENT
lib.Categories_News {
table = tt_news_cat
select {
# the category folder(s)
pidInList = 22
}
renderObj = COA
renderObj.wrap = <div class="news-archive-item">|</div>
renderObj {
10 = TEXT
10.field = uid
10.dataWrap = <a href=index.php?id={TSFE:id}&tx_ttnews[cat]= | >
10.insertData = 1
20 = TEXT
20 {
field = title
wrap = <strong>|</strong>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}
}
21 = TEXT
21 {
field = title
wrap = |
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
30 = TEXT
30.value = </a><br />
}
}…, на выводе получаю весь список категорий который находится на странице 22 в том числе и под категории в таком видеКатегория 1
Категория 2
Категория 3
[....]
..., а мне нужно только первый уровень категорий…, и еще проблема в том, что ссылка на категориях не работает, а должно быть,… когда, я клацаю на первую категорию, я должен попадать на страницу со списком новостей этой категории, но это не происходит …
Добавляюselect {
pidInList = 22
andWhere = parent_category = 0
}…, на выводе получаю первый уровень категорий, как раз то, что нужно, но проблема со ссылками не изменилась...
Потом дописываю в "renderObj"renderObj {
stdWrap.typolink.parameter = 23
stdWrap.typolink.additionalParams.dataWrap = tx_ttnews[cat]={field:uid}
}…, на выводе получаю правильную ссылку на список новостей, но проблема со ссылками осталась.
В данный момент результат такойlib.Categories_News = CONTENT
lib.Categories_News.wrap = <div class="menu_theme">|</div>
lib.Categories_News {
table = tt_news_cat
select {
pidInList = 22
andWhere = parent_category = 0
}
renderObj = COA
renderObj {
stdWrap.typolink.parameter = 23
stdWrap.typolink.ATagParams = class="main_theme_item"
stdWrap.typolink.useCacheHash = 1
stdWrap.typolink.additionalParams.dataWrap = &tx_ttnews[cat]={field:uid}
stdWrap.typolink.wrap = |
10 = TEXT
10 {
field = title
wrap = <strong>|</strong>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}
}
20 = TEXT
20 {
field = title
wrap = |
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
}
}…, на выводе получаю...
Категория 1 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=1&cHash=f246abf5b1)Категория 2 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=2&cHash=f246abf5b1)Категория 3 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=3&cHash=f246abf5b1)Категория 4 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=4&cHash=f246abf5b1)Категория 5 (http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=5&cHash=f246abf5b1)
..., без разделителя " | "... почему-то это[....].wrap = | | |*| | | |*| | |*|...здесь не работает...? Что не так написано, как исправить это? (это первый вопрос)
И остается проблема со ссылкой, что-то в ней не так, если посмотреть на ссылку http://test.typo3.site/index.php?id=list_news&tx_ttnews[cat]=1&cHash=f246abf5b1, как будто все правильно, но кода, я на нее клацаю попадаю на страницу /index.php?id=list_news со списком новостей, а их там нет "no news in this list", хотя знаю точно, что они там есть.
Возможно, что проблема в том, что у категории есть подкатегории? Тогда еще стоит вопрос, как сделать чтобы, клацая на какой ни будь из категорий, выводился список новостей этой категории, и ее подкатегорий (это второй вопрос).
Как все это реализовать?