|
|
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
|
|
Гость
Гость
|
да, это именно то, что нужно. спасибо!
|