Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Сортировка новостей по спискам

01.07.2007, 14:32
Гость
Гость

При добавлении новостей выбирается из списка Тип новости (их всего 3: основные, второстепенные новости и события).
На главную страницу http://www.100kva.ru/ в двух местах выводятся новости со значениями 1 (в центре) и 2 (справа).
События выводятся в дополнительном разделе http://www.100kva.ru/about/calendar/ через выборку из основного раздела новостей через s_list_class

Что хотелось бы сделать:

1. На странице новостей http://www.100kva.ru/about/news/:
1.1. в админке выводятся все три типа новостей для редактирования,
1.2. для посетителей в разделе новости выводятся только новости со значениями из списка 1 и 2
1.3. а 3 тип новостей выводится в дополнительном разделе.

Пробую так:

В системных настройках:
Код:
if ($typenews) $query_where = "(a.TypeNews = '3')";

и так пробовала:
Код:
if ($typenews=='События') { $query_where = "a.TypeNews = 'События'"; }


В "Объект в списке":
Код:
".opt_case($isTitle[1],"
<p><span class='date'>$f_Date_day ".opt_case($month[intval($f_Date_month)], $month[intval($f_Date_month)], $f_Date_month)." $f_Date_year</span><br />
".opt($f_TextFull,"<a href='$fullLink'>")."".opt($f_Announcement, "$f_Announcement")."".opt($f_TextFull,"</a>")."
".opt($f_TextFull," <a href='$fullLink'><img height='12' alt='далее' src='/i/point_news.gif' width='12' alt='далее...' /></a>")."</p>
","
".opt_case($isTitle[2],"
<p>".opt($f_TextFull,"<a href='$fullLink'>")."".opt($f_Announcement, "".opt($text = str_replace("", "", $f_Announcement),preg_replace("/^((?:S+s+){30}).*$/s", "$1...", $text)) ."
")."".opt($f_TextFull,"</a>")."</p>
","
".opt_case(!$admin_mode,"
".opt_case($typenews,"
","
<p><span class='date'>$f_Date_day ".opt_case($month[intval($f_Date_month)], $month[intval($f_Date_month)], $f_Date_month)." $f_Date_year</span><br />
".opt($f_TextFull,"<a href='$fullLink'>")."".opt($f_Announcement, "$f_Announcement")."".opt($f_TextFull,"</a>")."
".opt($f_TextFull," <a href='$fullLink'><img height='12' alt='далее' src='/i/point_news.gif' width='12' alt='далее...' /></a>")."</p>
")."
","
<p><span class='date'>$f_Date_day ".opt_case($month[intval($f_Date_month)], $month[intval($f_Date_month)], $f_Date_month)." $f_Date_year</span><br />
".opt($f_TextFull,"<a href='$fullLink'>")."".opt($f_Announcement, "$f_Announcement")."".opt($f_TextFull,"</a>")."
".opt($f_TextFull," <a href='$fullLink'><img height='12' alt='далее' src='/i/point_news.gif' width='12' alt='далее...' /></a>")."
$f_AdminButtons</p>
")."
")."
")."

Мне кажется, что я намудрила и никак не могу понять, как сделать.
Пожалуйста, посоветуйте.
Заранее спасибо всем.
Татьяна.
03.07.2007, 02:29
Гость
Гость

Цитата:

$query_where = "(a.TypeNews = '3')";
$query_where = "a.TypeNews = 'События'";

Как может быть в списке строковое значение?

Нужно в каждом s_list_class передавать в качестве параметра номер типа:
Код:
".s_list_class(xxx,yyy,"&type=1")."

А в системных настройках шаблона проверять его:
Код:
if ($type) $query_where = "a.TypeNews = '$type'";


А в коде "объект в списке" вообще нереально разобраться - такое обилие неструктурированных opt(),opt_case() пугают. К тому, насколько я вижу, одинаковый код вывода дублируется 3 раза - нужно построить логику операторов таким образом, чтобы код вывода присутствовал в одном экземпляре.
198 196 2007-07-03 02:29:21 9029
Описание проекта