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

Листинг объектов в шаблоне (вперед - назад)

21.04.2008, 23:33
Александр
Zavarka Team

Зарегистрирован:
2005-01-22
Сообщений: 53

Есть задача сделать простенькую навигацию в фотогалерее. Текущая фотка, ниже две ссылки - "следующая" и "предыдущая". На последней фотке есть только ссылка "предыдущая", на первой соответственно только "следующая".

С давних времен остался у меня кусочек кода. Но как-то коряво он работает....не могу понять где косяк. Ссылки постоянно ведут на первых два объекта, соответственно. Или может быть у вас есть какое-то более элегантное решение?

Вставляем код в полный вывод объекта:
Код:
";
$res = @mysql_query("SELECT Message_ID FROM Message$classID WHERE Subdivision_ID=$sub AND Sub_Class_ID=$cc AND Checked = 1 limit ".($curPos+$f_RowNum).",1");
if ($res) {
list($prev_id) = mysql_fetch_row($res);
mysql_free_result($res);
}
echo "
".opt($prev_id, "<a href='".$current_sub[Hidden_URL].$cc_keyword."_".$prev_id.".html?template=21'>предыдущее фото</a>")."
";
$res = @mysql_query("SELECT Message_ID FROM Message$classID WHERE Subdivision_ID =$sub AND Sub_Class_ID =$cc AND Checked = 1 limit ".($curPos+$f_RowNum+2).",1");
if ($res) {
list($next_id) = mysql_fetch_row($res);
mysql_free_result($res);
}
echo "
".opt($next_id, "<a href='".$current_sub[Hidden_URL].$cc_keyword."_".$next_id.".html?template=21'>следующее фото</a>")."


zavarka-team.ru
22.04.2008, 00:02
Александр
Zavarka Team

Зарегистрирован:
2005-01-22
Сообщений: 53

Разобрался с одним. Совсем забыл, что $f_RowNum недоступна в полном выводе объекта.
Что тогда взять за основу идентификации картинки?

zavarka-team.ru
22.04.2008, 01:35
Александр
Zavarka Team

Зарегистрирован:
2005-01-22
Сообщений: 53

Ларчик просто открывался:
Код:
".listQuery("SELECT Message_ID FROM Message$classID WHERE Subdivision_ID=$sub AND Sub_Class_ID=$cc AND Message_ID=".($f_RowID-1)." AND Checked=1", "<a href='".$current_sub[Hidden_URL].$cc_keyword."_".($f_RowID-1).".html'>предыдущее фото</a>")."
".listQuery("SELECT Message_ID FROM Message$classID WHERE Subdivision_ID=$sub AND Sub_Class_ID=$cc AND Message_ID=".($f_RowID+1)." AND Checked=1", "<a href='".$current_sub[Hidden_URL].$cc_keyword."_".($f_RowID+1).".html'>следующее фото</a>")."

Правда в этом случае страдает универсальность, ибо ссылки прописываются жестко, поэтому работает только там, где объекты добавлены в нужном порядке.

zavarka-team.ru
198 196 2008-04-22 01:35:55 9298
Описание проекта