Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sanja v.2 15.09.2003 18:42 / 15.09.2003 18:50
Отмеченные красным строки вызывают "exception in request exception handler: Exception 0xC0000005 at 0x0040E260" при наличии в query string параметра skip: index.html?skip=NN@main[]
#Debug: ^page[]
^body[]
@title[]
Фотоальбомы ^;&mdash^;
# Получаем ID интересующего нас альбома:
$form_id[$form:id]
$form_id(^form_id.int(0))
$albums[^table::load[albums.cfg]]
$albums[^albums.select($albums.id==$form_id)]
^if($albums){
$albums.name
}{
Ошибка: Фотоальбома с таким номером не существует.
}
@body[]
# Проверяем права посетителя смотреть friend-only и приватные фотки:
^album_security[]
# Получаем ID интересующего нас альбома:
$form_id[$form:id]
$form_id(^form_id.int(0))
$albums[^table::load[albums.cfg]]
$albums[^albums.select($albums.id==$form_id)]
^switch[$albums.security]{
^case[personal]{
^if($security_is_personal == 0){
<p>Простите, но этот альбом может просматривать только владелец сайта.
<a href="./">Вернуться к списку альбомов</a></p>
}{
^display_album[$form_id]
}
}
^case[friends]{
^if($security_is_friend == 0){
<p>Простите, но этот альбом могут просматривать лишь друзья владельца сайта.
<a href="./">Вернуться к списку альбомов</a></p>
}{
^display_album[$form_id]
}
}
^case[DEFAULT]{
^display_album[$form_id]
}
}
@display_album[id]
# Номер альбома:
$form_id[$form:id]
$form_id(^form_id.int(0))
# Из общего списка берём только те фотки, что относятся к текущему альбому:
$photos[^table::load[photos.cfg]]
$photos[^photos.select($photos.coll_id==$form_id)]
# Вычисляем общее число фоток:
$totalcount[^photos.count[]]
$totalcount[^totalcount.int(0)]
# Сколько фоток от начала пропустить:
$form_skip[$form:skip]
$form_skip(^form_skip.int(0))
^if(!def $form_skip){$form_skip(0)}
# Сколько фоток показывать за раз:
$form_show[$form:show]
$form_show(^form_show.int(20))
^if(!def $form_show){$form_show(20)}
# Убираем из списка начальные $form_skip фоток, из оставшихся оставляем только $form_show:
$photos[^table::create[$photos;
$.offset($form_skip)
$.limit($form_show)
]]
$form_skip
$form_show
<table>
# Переменные для счёта:
$i(1)
^photos.menu{
# Рисуем табличку с превьюшками первых $form:skip фоток:
# Приводим id к формату числа "000000":
$photos_id_zero[${photos.id}]
$photos_id_zero(^photos_id_zero.int(0))
$photos_id_zero[^photos_id_zero.format[%06u]]
^if($i <= 1){<tr valign=top>}
# TODO: запретить прямое скачивание фоток, а то вся наша секьюрити - профанация...
<td align=left width=130><a href="picture_${photos.id}.html"><img
src="preview${photos_id_zero}.jpg" width=120 alt="${photos.comment}"
style="border: solid 1px black"></a><br>
<a href="picture_${photos.id}.html" style="font-family:Arial Narrow, Arial, sans-serif^;font-weight: normal">${photos.comment}</a></td>
^if($i >= 5){</tr>}
$i($i + 1)
$j($j + 1)
^if($i >= 6){$i(1)}
}</td></tr>
</table>