PDA

Просмотр полной версии : tt_news categories в <select>


Tod
26.09.2006, 16:54
В общем требуется вывести определенные категории новостей в блоки формы <select> допустим подкатегории категории1 в одном блоке, категории2 во втором и т.д.
Может кто-то сталкивался с этим и есть готовое решение? а то уже второй день копаюсь в коде((

Valery Romanchev
26.09.2006, 17:21
В общем требуется вывести определенные категории новостей в блоки формы <select> допустим подкатегории категории1 в одном блоке, категории2 во втором и т.д.
Может кто-то сталкивался с этим и есть готовое решение? а то уже второй день копаюсь в коде((

речь идет о форме поиска в новостях?
тогда можно пропатчить tt_news либо написать экст, который расширяет tt_news

Если это нужно за чем-то еще, то можно просто через TS сдеать

search_more = COA
search_more{
10 = TEXT
10.value =
50 = CONTENT
50 {
wrap = <select name="tx_ttnews[cat]" ><option value="">Все категории</option>|</select>
table = tt_news_cat
select {
# the category folder(s)
pidInList = 104
andWhere = parent_category = 2
}
renderObj = COA

renderObj {
10 = TEXT
10.field = uid
10.dataWrap = <option value="|"
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}

}
21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
}
}

}

Tod
26.09.2006, 17:38
Это не для поиска, а для такой задачи. Есть 3 типа категорий новостей. Пользователь заходит на страницу сайта и видит 3 блока select, выбирает в трех этих полях определенные категории, нажимает submit и ему выводятся все новости, которые принадлежат к трем категориям, выбранных в блоках select. Благо в последних новостях появилась возможность связывать новость с несколькими категориями.
С вашим кодом сейчас попробую поэксперементировать, а что делать с submit? в данном случае. Я так понимаю нужно будет создать подстраницу, куда поместить элемент tt_new-LIST и чтобы там были требуемые мне параметры... а именно id категорий, выбраных пользователем в select... как тут быть?

Tod
27.09.2006, 15:17
Когда все начало получаться появилась такая фигня. Пишу типа для выборки категории:
categorySelection = TEXT
categorySelection.data = GPvar:menu1
Все работает. Теперь мне нужно загнать туда конструкцию типа
categorySelection = menu1, menu2, menu3.
Через COA не хочет работать... как мне объединить в одно три переменные? еще и через запятую...

void
27.09.2006, 16:27
Попробуйте
categorySelection = TEXT
categorySelection.dataWrap = {GPvar:menu1},{GPvar:menu2},{GPvar:menu3}

Tod
27.09.2006, 16:42
void, огромнейшее спасибо!!!
Как все доделаю опубликую код полностью для решения поставленной задачки.

Tod
27.09.2006, 18:44
В общем, вот код, решающий поставленную задачу. производится выборка по трем категориям с помощью <select> на форме. Выводятся новости, принадлежащие к этим 3м категориям.
lib.cat_choose = COA
lib.cat_choose.wrap = <form action="index.php?id=16" method="post" name="Form1"><table width="630px" border="0" cellpadding="0" cellspacing="0"><tr valign="top"> | <td><input name="submit1" type="submit" value="Выбрать" class="button_style"></td></tr></table></form>
lib.cat_choose{
10 = TEXT
10.value =
50 = CONTENT
50 {
wrap = <td><select name="menu1" class="list_style"><option value="">Типы подарков</option>|</select></td>
table = tt_news_cat
select {
# the category folder(s)
pidInList = 2
andWhere = parent_category = 3
}
renderObj = COA

renderObj {
10 = TEXT
10.field = uid
10.wrap = <option value="|"
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GPvar:menu1
}

}
21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
}
}
52 = CONTENT
52 {
wrap = <td><select name="menu2" class="list_style"><option value="">Категория2</option>|</select></td>
table = tt_news_cat
select {
# the category folder(s)
pidInList = 2
andWhere = parent_category = 23
}
renderObj = COA

renderObj {
10 = TEXT
10.field = uid
10.wrap = <option value="|"
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GPvar:menu2
}

}
21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
}
}
53 = CONTENT
53 {
wrap = <td><select name="menu3" class="list_style"><option value="">Категория3</option>|</select></td>
table = tt_news_cat
select {
# the category folder(s)
pidInList = 2
andWhere = parent_category = 24
}
renderObj = COA

renderObj {
10 = TEXT
10.field = uid
10.wrap = <option value="|"
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GPvar:menu3
}
}
21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
}
}

}


[PIDinRootline = 9]
lib.choose_goods < plugin.tt_news
lib.choose_goods {
code >
code = LIST
listOrderBy = title asc
categoryMode = 1
categorySelection = 27
pid_list = 15
templateFile = fileadmin/templates/podarki_template2.tmpl
}
[PIDinRootline = 16]
lib.choose_goods < plugin.tt_news
lib.choose_goods {
code >
code = LIST
listOrderBy = title asc
categoryMode = 2
categorySelection = TEXT
categorySelection.dataWrap = {GPvar:menu1},{GPvar:menu2},{GPvar:menu3}
pid_list = 15
templateFile = fileadmin/templates/podarki_template2.tmpl
}
[end]

Единственное, возможно последние 2 блока, где настраивается tt_news можно как-то укоротить?
!!!!А еще такая проблема. Все работает, но когда на странице, с отображаемыми результатами мы нажимае в браузере ссылку "назад", то вылазит сообщение об ошибке:
Database Error
The current username, password or host was not accepted when the connection to the database was attempted to be established!
Потом значит обновляем страницу и все работает. Почему так, кто-то может подсказать?
Может я в коде где-то ошибся...
зы. у меня там блоки новостей на 2х страницах. Изначально выводятся одни, а после выборки попадаем на другую страницу, где выводятся новости с учетом результатов этой выборки. Может Database Error можно избежать, если выводить все это на одну страницу. но как?

Tod
27.09.2006, 19:18
в общем, то был какой-то непонятный глюк от типо3. создал новую страницу, с теми же самыми настройками - все работает.
спасибо всем за помощь))

margol
21.12.2009, 16:48
Спасибо огромное за код! Для именно этих задач подошел.