В общем, вот код, решающий поставленную задачу. производится выборка по трем категориям с помощью <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 можно избежать, если выводить все это на одну страницу. но как?