/** * Prepares a picture array for thumbnail display. * * @param array Array of picture info * @param array Container info (either for a group or album); changes thumbnail URL * * @return array Array of picture info modified */ function prepare_pictureinfo_thumb($pictureinfo, $displaytypeinfo) { global $vbulletin; $pictureinfo['caption_preview'] = fetch_censored_text(fetch_trimmed_title($pictureinfo['caption'], $vbulletin->options['album_captionpreviewlen'])); $pictureinfo['thumburl'] = $pictureinfo['thumbnail_filesize'] ? fetch_picture_url($pictureinfo, $displaytypeinfo, true) : ''; $pictureinfo['dimensions'] = $pictureinfo['thumbnail_width'] ? "width=\"{$pictureinfo['thumbnail_width']}\" height=\"{$pictureinfo['thumbnail_height']}\"" : ''; $pictureinfo['date'] = vbdate($vbulletin->options['dateformat'], $pictureinfo['dateline'], true); $pictureinfo['time'] = vbdate($vbulletin->options['dateformat'], $pictureinfo['dateline']); ($hook = vBulletinHook::fetch_hook('album_prepare_thumb')) ? eval($hook) : false; return $pictureinfo; }
$albums[$album['albumid']]['title'] = $album['title']; $albums[$album['albumid']]['pictures'][] = $album; } require_once DIR . '/includes/functions_album.php'; foreach ($albums as $albumid => $info) { $picturebits = ''; $show['backgroundpicker'] = true; $optionvalue = $albumid; // Need to shorten album titles here $optiontitle = "{$info['title']} (" . count($info['pictures']) . ")"; $optionselected = empty($albumbits) ? 'selected="selected"' : ''; eval('$albumbits .= "' . fetch_template('option') . '";'); $show['hidediv'] = empty($picturerowbits) ? false : true; foreach ($info['pictures'] as $picture) { $picture['caption_preview'] = fetch_censored_text(fetch_trimmed_title($picture['caption'], $vbulletin->options['album_captionpreviewlen'])); $picture['thumburl'] = $picture['thumbnail_filesize'] ? fetch_picture_url($picture, $picture, true) : ''; $picture['dimensions'] = $picture['thumbnail_width'] ? "width=\"{$picture['thumbnail_width']}\" height=\"{$picture['thumbnail_height']}\"" : ''; eval('$picturebits .= "' . fetch_template('modifyusercss_backgroundbit') . '";'); } eval('$picturerowbits .= "' . fetch_template('modifyusercss_backgroundrow') . '";'); } $show['albumselect'] = count($albums) == 1 ? false : true; $vbulletin->userinfo['cachedcss'] = $usercss->build_css($usercss->fetch_effective()); $vbulletin->userinfo['cachedcss'] = str_replace('/*sessionurl*/', $vbulletin->session->vars['sessionurl_js'], $vbulletin->userinfo['cachedcss']); if ($vbulletin->userinfo['cachedcss']) { $userinfo = $vbulletin->userinfo; eval('$usercss_string = "' . fetch_template('memberinfo_usercss') . '";'); } else { $usercss_string = ''; } eval('$headinclude .= "' . fetch_template('modifyusercss_headinclude') . '";');
$total_pages = max(ceil($albumcount['total'] / $perpage), 1); // handle the case of 0 albums $pagenumber = $vbulletin->GPC['pagenumber'] > $total_pages ? $total_pages : $vbulletin->GPC['pagenumber']; $start = ($pagenumber - 1) * $perpage; $hook_query_fields = $hook_query_joins = $hook_query_where = ''; ($hook = vBulletinHook::fetch_hook('album_user_query')) ? eval($hook) : false; // fetch data and prepare data $albums = $db->query_read("\n\t\tSELECT album.*,\n\t\t\tpicture.pictureid, picture.extension, picture.idhash,\n\t\t\tpicture.thumbnail_dateline, picture.thumbnail_width, picture.thumbnail_height\n\t\t\t{$hook_query_fields}\n\t\tFROM " . TABLE_PREFIX . "album AS album\n\t\tLEFT JOIN " . TABLE_PREFIX . "picture AS picture ON (album.coverpictureid = picture.pictureid AND picture.thumbnail_filesize > 0)\n\t\t{$hook_query_joins}\n\t\tWHERE album.userid = {$userinfo['userid']}\n\t\t\tAND album.state IN ('" . implode("', '", $state) . "')\n\t\t\t{$hook_query_where}\n\t\tORDER BY album.lastpicturedate DESC\n\t\tLIMIT {$start}, {$perpage}\n\t"); $albumbits = ''; while ($album = $db->fetch_array($albums)) { $album['picturecount'] = vb_number_format($album['visible']); $album['picturedate'] = vbdate($vbulletin->options['dateformat'], $album['lastpicturedate'], true); $album['picturetime'] = vbdate($vbulletin->options['timeformat'], $album['lastpicturedate']); $album['description_html'] = nl2br(fetch_word_wrapped_string(fetch_censored_text($album['description']))); $album['title_html'] = fetch_word_wrapped_string(fetch_censored_text($album['title'])); $album['coverthumburl'] = $album['pictureid'] ? fetch_picture_url($album, $album, true) : ''; $album['coverdimensions'] = $album['thumbnail_width'] ? "width=\"{$album['thumbnail_width']}\" height=\"{$album['thumbnail_height']}\"" : ''; if ($album['state'] == 'private') { $show['personalalbum'] = true; $albumtype = $vbphrase['private_album_paren']; } else { if ($album['state'] == 'profile') { $show['personalalbum'] = true; $albumtype = $vbphrase['profile_album_paren']; } else { $show['personalalbum'] = false; } } if ($album['moderation'] and (can_moderate(0, 'canmoderatepictures') or $vbulletin->userinfo['userid'] == $album['userid'])) { $show['moderated'] = true; $album['moderatedcount'] = vb_number_format($album['moderation']);
/** * Prepare any data needed for the output * * @param string The id of the block * @param array Options specific to the block */ function prepare_output($id = '', $options = array()) { global $show, $vbphrase, $stylevar; if (is_array($options)) { $options = array_merge($this->option_defaults, $options); } else { $options = $this->option_defaults; } require_once DIR . '/includes/functions_album.php'; $state = array('public'); if (can_view_private_albums($this->profile->userinfo['userid'])) { $state[] = 'private'; } if (can_view_profile_albums($this->profile->userinfo['userid'])) { $state[] = 'profile'; } if (!$this->profile->prepared['myprofile']) { if (!can_moderate(0, 'canmoderatepictures')) { $sql = "AND album.visible > 0"; } else { $sql = "AND (album.visible > 0 OR album.moderation > 0)"; } } else { $sql = ""; } $hook_query_fields = $hook_query_joins = $hook_query_where = ''; ($hook = vBulletinHook::fetch_hook('member_profileblock_album_query')) ? eval($hook) : false; $albums = $this->registry->db->query_read_slave("\n\t\t\tSELECT album.*,\n\t\t\t\tpicture.pictureid, picture.extension, picture.idhash, album.moderation,\n\t\t\t\tpicture.thumbnail_dateline, picture.thumbnail_width, picture.thumbnail_height\n\t\t\t\t{$hook_query_fields}\n\t\t\tFROM " . TABLE_PREFIX . "album AS album\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "picture AS picture ON (album.coverpictureid = picture.pictureid AND picture.thumbnail_filesize > 0)\n\t\t\t{$hook_query_joins}\n\t\t\tWHERE album.userid = " . $this->profile->userinfo['userid'] . "\n\t\t\t\tAND album.state IN ('" . implode("', '", $state) . "')\n\t\t\t\t{$sql}\n\t\t\t\t{$hook_query_where}\n\t\t\tORDER BY album.lastpicturedate DESC\n\t\t\tLIMIT {$options['total']}\n\t\t"); $albumbits = ''; while ($album = $this->registry->db->fetch_array($albums)) { $album['picturedate'] = vbdate($this->registry->options['dateformat'], $album['lastpicturedate'], true); $album['picturetime'] = vbdate($this->registry->options['timeformat'], $album['lastpicturedate']); $album['title_html'] = fetch_word_wrapped_string(fetch_censored_text($album['title'])); $album['coverthumburl'] = $album['pictureid'] ? fetch_picture_url($album, $album, true) : ''; $album['coverdimensions'] = $album['thumbnail_width'] ? "width=\"{$album['thumbnail_width']}\" height=\"{$album['thumbnail_height']}\"" : ''; if ($album['moderation']) { $album['moderatedcount'] = vb_number_format($album['moderation']); $show['moderated'] = true; } else { $show['moderated'] = false; } eval('$albumbits .= "' . fetch_template('memberinfo_albumbit') . '";'); } $this->block_data['albumbits'] = $albumbits; }
/** * Sets up different display variables for the Group Message * * @access protected */ function process_display() { global $show, $vbphrase, $stylevar; // Simplify moderation for templating $this->item['picturecount'] = vb_number_format($this->item['visible']); // Get cover image info $this->item['coverthumburl'] = $this->item['pictureid'] ? fetch_picture_url($this->item, $this->item, true) : ''; $this->item['coverdimensions'] = $this->item['thumbnail_width'] ? "width=\"{$this->item[thumbnail_width]}px\" height=\"{$this->item[thumbnail_height]}px\"" : ''; // Display album type if ('private' == $this->item['state']) { $show['personalalbum'] = true; $this->item['albumtype'] = $vbphrase['private_album_paren']; } else { if ('profile' == $this->item['state']) { $show['personalalbum'] = true; $this->item['albumtype'] = $vbphrase['profile_album_paren']; } else { $show['personalalbum'] = false; } } // Show moderation details if ($this->item['moderation'] and (can_moderate(0, 'canmoderatepictures') or $vbulletin->userinfo['userid'] == $this->item['userid'])) { $show['moderated'] = true; $this->item['moderatedcount'] = vb_number_format($this->item['moderation']); } else { $show['moderated'] = false; } }