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

использую штатный код:

Код:

Архив по годам:".listQuery("SELECT DATE_FORMAT(Date,'%Y') AS year
FROM Message$classID WHERE Subdivision_ID=$sub AND Sub_Class_ID=$cc
GROUP BY DATE_FORMAT(Date,'%Y') ORDER BY Date",
" <a href=".$current_sub[Hidden_URL]."$data[year]/>$data[year]</a>")."


все замечательно, но как организовать проверку на то, какой год выбран в данный момент (цель: избавиться от линков страниц самих на себя)? $current_sub[Hidden_URL] отдает только корневой URL, никаких других ID тоже не наблюдается.
23.04.2007, 19:56
Гость
Гость

альтернативное решение есть.

в системных настройках шаблона пишем:

Код:

if ($yy) $query_where = "(a.Date LIKE '%$yy%')";

if(sizeof($yy)){
if(strlen($cc_env["LocalQuery"])>1) $cc_env["LocalQuery"] .= "&";
$cc_env["LocalQuery"] .= "yy=" . $yy;
}


первая часть формирует выборку по вхождению $yy поле Date. неоптимальное решение, лучше бы сравнивать только с первыми четырьмя символами поля. как можно "обрезать" a.Date чем-то вроде substr()? улыбка

вторая -- обеспечивает отображение значения переменной в browse_messages()

в шаблоне отображения списка объектов проверяем:
Код:

".opt(strpos($cc_env[LocalQuery],'yy=2004'),"Выборка за 2004 год")."


однако, решение с годом в URL выглядит элегантней. но как сделать? улыбка
24.04.2007, 15:28
h/z

Зарегистрирован:
2007-02-06
Сообщений: 755

$GLOBALS[REQUEST_URI] содержит текущий путь, например /news/2007/
вот и сравнивайте ссылку с текущим урлом, в момент вывода listQuery
24.04.2007, 15:47
Гость
Гость

да, это именно то, что нужно. спасибо!
198 196 2007-04-24 15:47:26 8961
Описание проекта