Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
ЧЁРНАЯ ПЯТНИЦА: -40% на редакции E-commerce и Extra до 2 декабря
Купить со скидкой

s_list с выборкой по условию

16.07.2006, 18:38
Alisa
Диапазон

Зарегистрирован:
2005-09-29
Сообщений: 4

Уважаемые, помогите советом!

Есть некий шаблон вопросов, который содержит, к примеру, поля: ВОПРОС, ОТВЕТ, ТЕМА. Поле ВОПРОС заполняет посетитель, поле ОТВЕТ заполняет администратор. Поле ТЕМА - это список тем (к примеру, "Вопрос о России", "Вопрос о США", "вопрос о Чехии" и т.д.), заполняется администратором, в зависимости от того, к какой теме относится вопрос.

Так же есть страницы посвященный США, ЧЕХИИ, России. На каждой из этих страниц выводится список общих вопросов ".s_list_class(XXX,YYY,"&recNum=10&isTitle=1").". Как сделать так, что бы на Странице о США были только вопросы о США, на странице о Чехии только вопросы о Чехии.

Пробывал в шаблон засунуть условие: если следующей сути:
".opt(ТЕМА=США,"ВОПРОС")."

Получилось, но косячно - recNum=10, если в последних 10-ти вопросах нет тем про США, то ничего, соответственно, не покажет, не смотря на то, что в последующих вопросах они есть.

Подскажите как реализовать данный момент. Заранее спасибо, Вам!
17.07.2006, 12:41
Кирилл Хряпин
NetCat

Зарегистрирован:
2006-06-15
Сообщений: 207

s_list_class(XXX,YYY,"&recNum=10&subject=usa")
В системных настройках шаблона вопросов:
if ($subject=='usa') { $query_where = "a.Subject = 'США'"; }
где Subject - имя поля, в котором у Вас указана тема.
Подробнее о $query_where в "Руководстве разработчика", раздел "Системные настройки шаблонов".

17.07.2006, 12:48
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Допустим есть список Topic и шаблон. Чтобы сделать выборку всех записей с одной указанной темой, то в системных настройках шаблона надо написать:
Код:
if ($Topic_ID) $query_where = "a.Topic = '${Topic_ID}'"; //вместо $Topic_ID также можно писать $_GET[Topic_ID] 

и выводить на каждой странице вот так:
".s_list_class(XXX,YYY,"&recNum=10&isTitle=1&Topic_ID=ZZZ")."

Temet nosce...
17.07.2006, 14:57
Alisa
Диапазон

Зарегистрирован:
2005-09-29
Сообщений: 4

Всем - большое спасибо, основную идею понял, пошел пробовать =)

> Все получилось! Спасибо!

Только одно маленькое НО. Если вопросов с заданной темой меньше чем &recNum=10, скажем их всего 2, то возникает необходимость заполнить оставшиеся 8-мь мест на странице любыми последними вопросами. Такое очень сложно реализовать?
17.07.2006, 16:35
Alisa
Диапазон

Зарегистрирован:
2005-09-29
Сообщений: 4

И еще.. т.е. под каждый Topic_ID надо делать свой макет дизайна? А может это можно как-то решить более элегантно: хотя бы в тоже шаблон HTML включить доп. поле CurTopic_ID и как-то организовать взаимосвязь с ".s_list_class(XXX,YYY,"&recNum=10&isTitle=1&Topic_ID=CurTopic_ID")." ?
17.07.2006, 17:02
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Alisa писал(а):
Такое очень сложно реализовать?

Смотря кому...

Alisa писал(а):
И еще.. т.е. под каждый Topic_ID надо делать свой макет дизайна?

Нет

Alisa писал(а):
А может это можно как-то решить более элегантно?

Можно, определяйте текущий Топик и передавайте его в ".s_list_class(...)."

Temet nosce...
17.07.2006, 17:10
Alisa
Диапазон

Зарегистрирован:
2005-09-29
Сообщений: 4

DiGGy писал(а):
Можно, определяйте текущий Топик и передавайте его в ".s_list_class(...)."

В том то и вопрос - как его передать? Может хоть основную идею подскажите? А то собственными силами полдня протыркался и результат нулевой =(
198 196 2006-07-17 17:10:46 8646
Описание проекта