Для начало убедимся, что у нас включен боковой слайдер на форуме:
Админка - Настройки - Опции - Настройки боковой панели форума и блоков - Включить боковую панель форума - Да
Далее проходим: Админка - Разделы и модераторы - Управление блоками форума
В открывшимся окне нажимаем снизу Добавить Блок
Выбрать тип блока - HTML/Php код
Далее:
Заголовок пишем Случайные изображения (или на свое усмотрение) Время кэширования (в минутах) ставим 0 (для того чтоб при каждой загрузки страницы выводились случайные изображения, ибо они будут выводится через время указанное там) Тип содержимого - php Содержимое:
PHP код:
// Показ случайных изображений из публичных альбомов // Author : Sulquendi // Version: 1.2
// -- Nothing to configure below this line -- if ($use_custom_css){ $pthumb = 'class="pthumb"'; $pcaption = 'class="pcaption"'; $pmore = 'class="pmore"'; $pstyle = ''; }else{ $pthumb = 'style="text-align:center;"'; $pcaption = 'style="text-align:center;font-style:italic;font-family: Times, serif;margin-bottom:10px;"'; $pmore = 'style="text-align:right;display:block;"'; $pstyle = 'style="border: 1px solid black;padding:1px;background: white;"'; } if ($albums_list!="") $sup_cond = "AND alb.albumid IN ($albums_list)"; else $sup_cond =""; ob_start(); require_once(DIR . '/includes/functions_album.php'); require_once(DIR . '/includes/functions_user.php'); $pic_get = vB::$db->query_read(" SELECT alb.albumid, att.attachmentid, att.userid, att.caption, att.dateline, att.state, fdt.filesize, IF(fdt.thumbnail_filesize > 0, 1, 0) AS hasthumbnail, fdt.thumbnail_dateline, fdt.thumbnail_width, fdt.thumbnail_height, u.username FROM ".TABLE_PREFIX."album AS alb LEFT JOIN ".TABLE_PREFIX."attachment AS att ON alb.albumid = att.contentid LEFT JOIN ".TABLE_PREFIX."filedata AS fdt ON att.filedataid = fdt.filedataid LEFT JOIN ".TABLE_PREFIX."user AS u ON att.userid = u.userid WHERE alb.state = 'public' AND att.contenttypeid = '8' $sup_cond ORDER BY rand(" . microtime()*1000 . ") LIMIT $limit"); $output_bits = ""; while($pic = vB::$db->fetch_array($pic_get)) { $albuminfo = fetch_albuminfo($pic[albumid]); $picture = prepare_pictureinfo_thumb($pic, $albuminfo); if ($use_vB_thumbnail_size) $size = $picture[dimensions]; else $size = "width=$twidth"; $output_bits .= "<div $pthumb><a href=\"album.php?{$vbulletin->session->vars['sessionurl']}albumid={$pic[albumid]}&attachmentid={$picture[attachmentid]}\"><img $pstyle src=\"attachment.php?{$vbulletin->session->vars['sessionurl']}attachmentid={$picture[attachmentid]}&thumb=1&d={$picture[thumbnail_dateline]}\" alt=\"{$picture[caption_preview]}\" $size /></a>"; $output_bits .= "</div><div $pcaption>{$picture[caption_preview]} by {$pic[username]}</div>"; } $output_bits .= '<span '.$pmore.'><a href="album.php" alt="To the albums">Больше...</a></span>'; $output = $output_bits; ob_end_clean();
Использовать шаблон - block_html
Сохраняем, выставляем нумерацию отображение как будет угодно и переходим на сам форум. Обновляем и смотрим
Минус данного виджета, что в нем нет проверки прав пользователей. Т.е. если вы не зарегистрированы, а в параметрах конфиденциальности у пользователя стоит показывать только зарегистрированным, или вообще только друзьям, то на месте изображения будет красоваться пустое поле
$use_vB_thumbnail_size - Использовать параметры миниатюр форума
$use_custom_css - Пользовательская разметка css
$twidth - Ширина миниатюры
$limit - Кол-во показываемых миниатюр
$albums_list - ID альбомов из каких показывать. Если пусто, то из всех