public static function viewonline($on_page, $album_id, $session_page) { static $album_data; global $template, $user, $location, $location_url; // Initial load of some needed stuff, like permissions, album data, ... phpbb_gallery::init(); if (empty($album_data)) { global $cache; $user->add_lang(array('mods/info_acp_gallery', 'mods/gallery')); $album_data = $cache->obtain_album_list(); } // Handle user location $location = $user->lang['GALLERY']; $location_url = phpbb_gallery_url::append_sid('index'); if ($album_id && phpbb_gallery::$auth->acl_check('i_view', $album_id)) { switch ($on_page[1]) { case phpbb_gallery_url::path('relative') . 'album': $location = sprintf($user->lang['VIEWING_ALBUM'], $album_data[$album_id]['album_name']); $location_url = phpbb_gallery_url::append_sid('album', 'album_id=' . $album_id); break; case phpbb_gallery_url::path('relative') . 'image_page': case phpbb_gallery_url::path('relative') . 'image': $location = sprintf($user->lang['VIEWING_IMAGE'], $album_data[$album_id]['album_name']); $location_url = phpbb_gallery_url::append_sid('album', 'album_id=' . $album_id); break; case phpbb_gallery_url::path('relative') . 'posting': preg_match('#mode=([a-z]+)#', $session_page, $on_page); $on_page = sizeof($on_page) ? $on_page[1] : ''; switch ($on_page) { case 'comment': $location = sprintf($user->lang['COMMENT_IMAGE'], $album_data[$album_id]['album_name']); break; default: $location = sprintf($user->lang['VIEWING_ALBUM'], $album_data[$album_id]['album_name']); break; } $location_url = phpbb_gallery_url::append_sid('album', 'album_id=' . $album_id); break; } } else { preg_match('#mode=([a-z]+)#', $session_page, $on_page); $on_page = sizeof($on_page) ? $on_page[1] : ''; if ($on_page == 'personal' && phpbb_gallery::$auth->acl_check('i_view', PERSONAL_GALLERY_PERMISSIONS)) { $location = $user->lang['PERSONAL_ALBUMS']; $location_url = phpbb_gallery_url::append_sid('index', 'mode=personal'); } } }
/** * Sets up some basic stuff for the gallery. */ public static function init() { global $db, $user; phpbb_gallery_url::_include('functions_phpbb', 'phpbb', 'includes/gallery/'); phpbb_gallery_plugins::init(phpbb_gallery_url::path()); // Little precaution. $user->data['user_id'] = (int) $user->data['user_id']; self::$user = new phpbb_gallery_user($db, $user->data['user_id']); $user_id = $user->data['user_perm_from'] == 0 ? $user->data['user_id'] : $user->data['user_perm_from']; self::$auth = new phpbb_gallery_auth($user_id); if (phpbb_gallery_config::get('mvc_time') < time()) { // Check the version, do we need to update? phpbb_gallery_config::set('mvc_time', time() + 86400); phpbb_gallery_config::set('mvc_version', phpbb_gallery_modversioncheck::check(true)); } self::$loaded = true; }
/** * Display albums * * borrowed from phpBB3 * @author: phpBB Group * @function: display_forums */ public static function display_albums($root_data = '', $display_moderators = true, $return_moderators = false) { global $auth, $db, $template, $user; $album_rows = $subalbums = $album_ids = $album_ids_moderator = $album_moderators = $active_album_ary = array(); $parent_id = $visible_albums = 0; $sql_from = ''; $mode = request_var('mode', ''); // Mark albums read? $mark_read = request_var('mark', ''); if ($mark_read == 'all') { $mark_read = ''; } if (!$root_data) { if ($mark_read == 'albums') { $mark_read = 'all'; } $root_data = array('album_id' => self::PUBLIC_ALBUM); $sql_where = 'a.album_user_id = ' . self::PUBLIC_ALBUM; } else { if ($root_data == 'personal') { if ($mark_read == 'albums') { $mark_read = 'all'; } $root_data = array('album_id' => 0); //@todo: I think this is incorrect!? $sql_where = 'a.album_user_id > ' . self::PUBLIC_ALBUM; $num_pegas = phpbb_gallery_config::get('num_pegas'); $first_char = request_var('first_char', ''); if ($first_char == 'other') { // Loop the ASCII: a-z for ($i = 97; $i < 123; $i++) { $sql_where .= ' AND u.username_clean NOT ' . $db->sql_like_expression(chr($i) . $db->any_char); } } else { if ($first_char) { $sql_where .= ' AND u.username_clean ' . $db->sql_like_expression(substr($first_char, 0, 1) . $db->any_char); } } if ($first_char) { // We do not view all personal albums, so we need to recount, for the pagination. $sql_array = array('SELECT' => 'count(a.album_id) as pgalleries', 'FROM' => array(GALLERY_ALBUMS_TABLE => 'a'), 'LEFT_JOIN' => array(array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = a.album_user_id')), 'WHERE' => 'a.parent_id = 0 AND ' . $sql_where); $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query($sql); $num_pegas = $db->sql_fetchfield('pgalleries'); $db->sql_freeresult($result); } $mode_personal = true; $start = request_var('start', 0); $limit = phpbb_gallery_config::get('pegas_per_page'); $template->assign_vars(array('PAGINATION' => generate_pagination(phpbb_gallery_url::append_sid('index', 'mode=' . $mode . ($first_char ? '&first_char=' . $first_char : '')), $num_pegas, $limit, $start), 'TOTAL_PGALLERIES_SHORT' => sprintf($user->lang['TOTAL_PGALLERIES_SHORT'], $num_pegas), 'PAGE_NUMBER' => on_page($num_pegas, $limit, $start))); } else { $sql_where = 'a.left_id > ' . $root_data['left_id'] . ' AND a.left_id < ' . $root_data['right_id'] . ' AND a.album_user_id = ' . $root_data['album_user_id']; } } $sql_array = array('SELECT' => 'a.*, at.mark_time', 'FROM' => array(GALLERY_ALBUMS_TABLE => 'a'), 'LEFT_JOIN' => array(array('FROM' => array(GALLERY_ATRACK_TABLE => 'at'), 'ON' => 'at.user_id = ' . $user->data['user_id'] . ' AND a.album_id = at.album_id')), 'ORDER_BY' => 'a.album_user_id, a.left_id'); if (isset($mode_personal)) { $sql_array['LEFT_JOIN'][] = array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = a.album_user_id'); $sql_array['ORDER_BY'] = 'u.username_clean, a.left_id'; } $sql_array['LEFT_JOIN'][] = array('FROM' => array(GALLERY_CONTESTS_TABLE => 'c'), 'ON' => 'c.contest_album_id = a.album_id'); $sql_array['SELECT'] = $sql_array['SELECT'] . ', c.contest_marked'; $sql = $db->sql_build_query('SELECT', array('SELECT' => $sql_array['SELECT'], 'FROM' => $sql_array['FROM'], 'LEFT_JOIN' => $sql_array['LEFT_JOIN'], 'WHERE' => $sql_where, 'ORDER_BY' => $sql_array['ORDER_BY'])); $result = $db->sql_query($sql); $album_tracking_info = array(); $branch_root_id = $root_data['album_id']; while ($row = $db->sql_fetchrow($result)) { $album_id = $row['album_id']; // Mark albums read? if ($mark_read == 'albums' || $mark_read == 'all') { if (phpbb_gallery::$auth->acl_check('a_list', $album_id, $row['album_user_id'])) { $album_ids[] = $album_id; continue; } } // Category with no members if (!$row['album_type'] && $row['left_id'] + 1 == $row['right_id']) { continue; } // Skip branch if (isset($right_id)) { if ($row['left_id'] < $right_id) { continue; } unset($right_id); } if (!phpbb_gallery::$auth->acl_check('a_list', $album_id, $row['album_user_id'])) { // if the user does not have permissions to list this album, skip everything until next branch $right_id = $row['right_id']; continue; } $album_tracking_info[$album_id] = !empty($row['mark_time']) ? $row['mark_time'] : phpbb_gallery::$user->data('user_lastmark'); $row['album_images'] = $row['album_images']; $row['album_images_real'] = $row['album_images_real']; if ($row['parent_id'] == $root_data['album_id'] || $row['parent_id'] == $branch_root_id) { if ($row['album_type']) { $album_ids_moderator[] = (int) $album_id; } // Direct child of current branch $parent_id = $album_id; $album_rows[$album_id] = $row; if (!$row['album_type'] && $row['parent_id'] == $root_data['album_id']) { $branch_root_id = $album_id; } $album_rows[$parent_id]['album_id_last_image'] = $row['album_id']; $album_rows[$parent_id]['album_type_last_image'] = $row['album_type']; $album_rows[$parent_id]['album_contest_marked'] = $row['contest_marked']; $album_rows[$parent_id]['orig_album_last_image_time'] = $row['album_last_image_time']; } else { if ($row['album_type']) { $subalbums[$parent_id][$album_id]['display'] = $row['display_on_index'] ? true : false; $subalbums[$parent_id][$album_id]['name'] = $row['album_name']; $subalbums[$parent_id][$album_id]['orig_album_last_image_time'] = $row['album_last_image_time']; $subalbums[$parent_id][$album_id]['children'] = array(); if (isset($subalbums[$parent_id][$row['parent_id']]) && !$row['display_on_index']) { $subalbums[$parent_id][$row['parent_id']]['children'][] = $album_id; } $album_rows[$parent_id]['album_images'] += $row['album_images']; $album_rows[$parent_id]['album_images_real'] += $row['album_images_real']; if ($row['album_last_image_time'] > $album_rows[$parent_id]['album_last_image_time']) { $album_rows[$parent_id]['album_last_image_id'] = $row['album_last_image_id']; $album_rows[$parent_id]['album_last_image_name'] = $row['album_last_image_name']; $album_rows[$parent_id]['album_last_image_time'] = $row['album_last_image_time']; $album_rows[$parent_id]['album_last_user_id'] = $row['album_last_user_id']; $album_rows[$parent_id]['album_last_username'] = $row['album_last_username']; $album_rows[$parent_id]['album_last_user_colour'] = $row['album_last_user_colour']; $album_rows[$parent_id]['album_type_last_image'] = $row['album_type']; $album_rows[$parent_id]['album_contest_marked'] = $row['contest_marked']; $album_rows[$parent_id]['album_id_last_image'] = $album_id; } } } } $db->sql_freeresult($result); // Handle marking albums if ($mark_read == 'albums' || $mark_read == 'all') { $redirect = build_url('mark', 'hash'); $token = request_var('hash', ''); if (check_link_hash($token, 'global')) { if ($mark_read == 'all') { phpbb_gallery_misc::markread('all'); $message = sprintf($user->lang['RETURN_INDEX'], '<a href="' . $redirect . '">', '</a>'); } else { phpbb_gallery_misc::markread('albums', $album_ids); $message = sprintf($user->lang['RETURN_ALBUM'], '<a href="' . $redirect . '">', '</a>'); } meta_refresh(3, $redirect); trigger_error($user->lang['ALBUMS_MARKED'] . '<br /><br />' . $message); } else { $message = sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a>'); meta_refresh(3, $redirect); trigger_error($message); } } // Grab moderators ... if necessary if ($display_moderators) { if ($return_moderators) { $album_ids_moderator[] = $root_data['album_id']; } self::get_moderators($album_moderators, $album_ids_moderator); } // Used to tell whatever we have to create a dummy category or not. $last_catless = true; foreach ($album_rows as $row) { // Empty category if ($row['parent_id'] == $root_data['album_id'] && $row['album_type'] == self::TYPE_CAT) { $template->assign_block_vars('albumrow', array('S_IS_CAT' => true, 'ALBUM_ID' => $row['album_id'], 'ALBUM_NAME' => $row['album_name'], 'ALBUM_DESC' => generate_text_for_display($row['album_desc'], $row['album_desc_uid'], $row['album_desc_bitfield'], $row['album_desc_options']), 'ALBUM_FOLDER_IMG' => '', 'ALBUM_FOLDER_IMG_SRC' => '', 'ALBUM_IMAGE' => $row['album_image'] ? phpbb_gallery_url::path('phpbb') . $row['album_image'] : '', 'U_VIEWALBUM' => phpbb_gallery_url::append_sid('album', 'album_id=' . $row['album_id']))); continue; } $visible_albums++; if ($mode == 'personal' && ($visible_albums <= $start || $visible_albums > $start + $limit)) { continue; } $album_id = $row['album_id']; $album_unread = isset($album_tracking_info[$album_id]) && $row['orig_album_last_image_time'] > $album_tracking_info[$album_id] && $user->data['user_id'] != ANONYMOUS ? true : false; $folder_image = $folder_alt = $l_subalbums = ''; $subalbums_list = array(); // Generate list of subalbums if we need to if (isset($subalbums[$album_id])) { foreach ($subalbums[$album_id] as $subalbum_id => $subalbum_row) { $subalbum_unread = isset($album_tracking_info[$subalbum_id]) && $subalbum_row['orig_album_last_image_time'] > $album_tracking_info[$subalbum_id] && $user->data['user_id'] != ANONYMOUS ? true : false; if (!$subalbum_unread && !empty($subalbum_row['children']) && $user->data['user_id'] != ANONYMOUS) { foreach ($subalbum_row['children'] as $child_id) { if (isset($album_tracking_info[$child_id]) && $subalbums[$album_id][$child_id]['orig_album_last_image_time'] > $album_tracking_info[$child_id]) { // Once we found an unread child album, we can drop out of this loop $subalbum_unread = true; break; } } } if ($subalbum_row['display'] && $subalbum_row['name']) { $subalbums_list[] = array('link' => phpbb_gallery_url::append_sid('album', 'album_id=' . $subalbum_id), 'name' => $subalbum_row['name'], 'unread' => $subalbum_unread); } else { unset($subalbums[$album_id][$subalbum_id]); } if ($subalbum_unread) { $album_unread = true; } } $l_subalbums = sizeof($subalbums[$album_id]) == 1 ? $user->lang['SUBALBUM'] . ': ' : $user->lang['SUBALBUMS'] . ': '; $folder_image = $album_unread ? 'forum_unread_subforum' : 'forum_read_subforum'; } else { $folder_alt = $album_unread ? 'NEW_IMAGES' : 'NO_NEW_IMAGES'; $folder_image = $album_unread ? 'forum_unread' : 'forum_read'; } if ($row['album_status'] == self::STATUS_LOCKED) { $folder_image = $album_unread ? 'forum_unread_locked' : 'forum_read_locked'; $folder_alt = 'ALBUM_LOCKED'; } // Create last post link information, if appropriate if ($row['album_last_image_id']) { $lastimage_name = $row['album_last_image_name']; $lastimage_time = $user->format_date($row['album_last_image_time']); $lastimage_image_id = $row['album_last_image_id']; $lastimage_album_id = $row['album_id_last_image']; $lastimage_album_type = $row['album_type_last_image']; $lastimage_contest_marked = $row['album_contest_marked']; $lastimage_uc_fake_thumbnail = phpbb_gallery_image::generate_link('fake_thumbnail', phpbb_gallery_config::get('link_thumbnail'), $lastimage_image_id, $lastimage_name, $lastimage_album_id); $lastimage_uc_thumbnail = phpbb_gallery_image::generate_link('thumbnail', phpbb_gallery_config::get('link_thumbnail'), $lastimage_image_id, $lastimage_name, $lastimage_album_id); $lastimage_uc_name = phpbb_gallery_image::generate_link('image_name', phpbb_gallery_config::get('link_image_name'), $lastimage_image_id, $lastimage_name, $lastimage_album_id); $lastimage_uc_icon = phpbb_gallery_image::generate_link('lastimage_icon', phpbb_gallery_config::get('link_image_icon'), $lastimage_image_id, $lastimage_name, $lastimage_album_id); } else { $lastimage_time = $lastimage_image_id = $lastimage_album_id = $lastimage_album_type = 0; $lastimage_name = $lastimage_uc_fake_thumbnail = $lastimage_uc_thumbnail = $lastimage_uc_name = $lastimage_uc_icon = ''; } // Output moderator listing ... if applicable $l_moderator = $moderators_list = ''; if ($display_moderators && !empty($album_moderators[$album_id])) { $l_moderator = sizeof($album_moderators[$album_id]) == 1 ? $user->lang['MODERATOR'] : $user->lang['MODERATORS']; $moderators_list = implode(', ', $album_moderators[$album_id]); } $s_subalbums_list = array(); foreach ($subalbums_list as $subalbum) { $s_subalbums_list[] = '<a href="' . $subalbum['link'] . '" class="subforum ' . ($subalbum['unread'] ? 'unread' : 'read') . '" title="' . ($subalbum['unread'] ? $user->lang['NEW_IMAGES'] : $user->lang['NO_NEW_IMAGES']) . '">' . $subalbum['name'] . '</a>'; } $s_subalbums_list = (string) implode(', ', $s_subalbums_list); $catless = $row['parent_id'] == $root_data['album_id'] ? true : false; $template->assign_block_vars('albumrow', array('S_IS_CAT' => false, 'S_NO_CAT' => $catless && !$last_catless, 'S_LOCKED_ALBUM' => $row['album_status'] == self::STATUS_LOCKED ? true : false, 'S_LIST_SUBALBUMS' => $row['display_subalbum_list'] ? true : false, 'S_SUBALBUMS' => sizeof($subalbums_list) ? true : false, 'ALBUM_ID' => $row['album_id'], 'ALBUM_NAME' => $row['album_name'], 'ALBUM_DESC' => generate_text_for_display($row['album_desc'], $row['album_desc_uid'], $row['album_desc_bitfield'], $row['album_desc_options']), 'IMAGES' => $row['album_images'], 'UNAPPROVED_IMAGES' => phpbb_gallery::$auth->acl_check('m_status', $album_id, $row['album_user_id']) ? $row['album_images_real'] - $row['album_images'] : 0, 'ALBUM_FOLDER_IMG' => $user->img($folder_image, $folder_alt), 'ALBUM_FOLDER_IMG_SRC' => $user->img($folder_image, $folder_alt, false, '', 'src'), 'ALBUM_FOLDER_IMG_ALT' => isset($user->lang[$folder_alt]) ? $user->lang[$folder_alt] : '', 'ALBUM_IMAGE' => $row['album_image'] ? phpbb_gallery_url::path('phpbb') . $row['album_image'] : '', 'LAST_IMAGE_TIME' => $lastimage_time, 'LAST_USER_FULL' => $lastimage_album_type == self::TYPE_CONTEST && ($lastimage_contest_marked && !phpbb_gallery::$auth->acl_check('m_status', $album_id, $row['album_user_id'])) ? $user->lang['CONTEST_USERNAME'] : get_username_string('full', $row['album_last_user_id'], $row['album_last_username'], $row['album_last_user_colour']), 'UC_THUMBNAIL' => phpbb_gallery_config::get('mini_thumbnail_disp') ? $lastimage_uc_thumbnail : '', 'UC_FAKE_THUMBNAIL' => phpbb_gallery_config::get('mini_thumbnail_disp') ? $lastimage_uc_fake_thumbnail : '', 'UC_IMAGE_NAME' => $lastimage_uc_name, 'UC_LASTIMAGE_ICON' => $lastimage_uc_icon, 'ALBUM_COLOUR' => get_username_string('colour', $row['album_last_user_id'], $row['album_last_username'], $row['album_last_user_colour']), 'MODERATORS' => $moderators_list, 'SUBALBUMS' => $s_subalbums_list, 'L_SUBALBUM_STR' => $l_subalbums, 'L_ALBUM_FOLDER_ALT' => $folder_alt, 'L_MODERATOR_STR' => $l_moderator, 'U_VIEWALBUM' => phpbb_gallery_url::append_sid('album', 'album_id=' . $row['album_id']))); // Assign subforums loop for style authors foreach ($subalbums_list as $subalbum) { $template->assign_block_vars('albumrow.subalbum', array('U_SUBALBUM' => $subalbum['link'], 'SUBALBUM_NAME' => $subalbum['name'], 'S_UNREAD' => $subalbum['unread'])); } $last_catless = $catless; } $template->assign_vars(array('U_MARK_ALBUMS' => $user->data['is_registered'] ? phpbb_gallery_url::append_sid('album', 'hash=' . generate_link_hash('global') . '&album_id=' . $root_data['album_id'] . '&mark=albums') : '', 'S_HAS_SUBALBUM' => $visible_albums ? true : false, 'L_SUBFORUM' => $visible_albums == 1 ? $user->lang['SUBALBUM'] : $user->lang['SUBALBUMS'], 'LAST_POST_IMG' => $user->img('icon_topic_latest', 'VIEW_LATEST_POST'), 'FAKE_THUMB_SIZE' => phpbb_gallery_config::get('mini_thumbnail_size'))); if ($return_moderators) { return array($active_album_ary, $album_moderators); } return array($active_album_ary, array()); }
* @package phpBB Gallery * @version $Id$ * @copyright (c) 2007 nickvergessen nickvergessen@gmx.de http://www.flying-bits.org * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** * @ignore */ if (!defined('IN_PHPBB')) { exit; } if (!defined('IN_INSTALL')) { exit; } $gallery_root_path = phpbb_gallery_url::path('relative'); function get_dbms_infos() { global $db; switch ($db->sql_layer) { case 'mysql': $return['db_schema'] = 'mysql_40'; $return['delimiter'] = ';'; break; case 'mysql4': if (version_compare($db->sql_server_info(true), '4.1.3', '>=')) { $return['db_schema'] = 'mysql_41'; } else { $return['db_schema'] = 'mysql_40'; } $return['delimiter'] = ';';
/** * Delete file from disc. * * @param mixed $files String with filename or an array of filenames * Array-Format: $image_id => $filename * @param array $locations Array of valid url::path()s where the image should be deleted from */ public function delete($files, $locations = array('cache', 'medium', 'upload')) { if (!is_array($files)) { $files = array(1 => $files); } foreach ($files as $image_id => $file) { foreach ($locations as $location) { @unlink(phpbb_gallery_url::path($location) . $file); } } }
/** * Checks that the server we are installing on meets the requirements for running phpBB */ function check_server_requirements($mode, $sub) { global $user, $template, $phpbb_root_path, $phpEx; $this->page_title = $user->lang['STAGE_REQUIREMENTS']; $template->assign_vars(array('TITLE' => $user->lang['REQUIREMENTS_TITLE'], 'BODY' => $user->lang['REQUIREMENTS_EXPLAIN'])); $passed = array('php' => false, 'files' => false, 'dirs' => false); // Test for basic PHP settings $template->assign_block_vars('checks', array('S_LEGEND' => true, 'LEGEND' => $user->lang['PHP_SETTINGS'], 'LEGEND_EXPLAIN' => $user->lang['PHP_SETTINGS_EXP'])); // Check for GD-Library if (@extension_loaded('gd') || can_load_dll('gd')) { $passed['php'] = true; $result = '<strong style="color:green">' . $user->lang['YES'] . '</strong>'; } else { $result = '<strong style="color:red">' . $user->lang['NO'] . '</strong>'; } $template->assign_block_vars('checks', array('TITLE' => $user->lang['REQ_GD_LIBRARY'], 'RESULT' => $result, 'S_EXPLAIN' => false, 'S_LEGEND' => false)); // Test for optional PHP settings $template->assign_block_vars('checks', array('S_LEGEND' => true, 'LEGEND' => $user->lang['PHP_SETTINGS_OPTIONAL'], 'LEGEND_EXPLAIN' => $user->lang['PHP_SETTINGS_OPTIONAL_EXP'])); // Image rotate if (function_exists('imagerotate')) { $result = '<strong style="color:green">' . $user->lang['YES'] . '</strong>'; } else { $gd_info = gd_info(); $result = '<strong style="color:red">' . $user->lang['NO'] . '</strong><br />' . sprintf($user->lang['OPTIONAL_IMAGEROTATE_EXP'], $gd_info['GD Version']); } $template->assign_block_vars('checks', array('TITLE' => $user->lang['OPTIONAL_IMAGEROTATE'], 'TITLE_EXPLAIN' => $user->lang['OPTIONAL_IMAGEROTATE_EXPLAIN'], 'RESULT' => $result, 'S_EXPLAIN' => true, 'S_LEGEND' => false)); // Exif data if (function_exists('exif_read_data')) { $result = '<strong style="color:green">' . $user->lang['YES'] . '</strong>'; } else { $result = '<strong style="color:red">' . $user->lang['NO'] . '</strong><br />' . $user->lang['OPTIONAL_EXIFDATA_EXP']; } $template->assign_block_vars('checks', array('TITLE' => $user->lang['OPTIONAL_EXIFDATA'], 'TITLE_EXPLAIN' => $user->lang['OPTIONAL_EXIFDATA_EXPLAIN'], 'RESULT' => $result, 'S_EXPLAIN' => true, 'S_LEGEND' => false)); // Check permissions on files/directories we need access to $template->assign_block_vars('checks', array('S_LEGEND' => true, 'LEGEND' => $user->lang['FILES_REQUIRED'], 'LEGEND_EXPLAIN' => $user->lang['FILES_REQUIRED_EXPLAIN'])); $directories = array('import', 'upload', 'medium', 'cache'); umask(0); $passed['dirs'] = true; foreach ($directories as $dir) { $write = false; // Now really check if (phpbb_gallery_url::_file_exists('', $dir, '') && is_dir(phpbb_gallery_url::_return_file('', $dir, ''))) { if (!phpbb_gallery_url::_is_writable('', $dir, '')) { @chmod(phpbb_gallery_url::_return_file('', $dir, ''), 0777); } } // Now check if it is writable by storing a simple file $fp = @fopen(phpbb_gallery_url::_return_file('', $dir, '') . 'test_lock', 'wb'); if ($fp !== false) { $write = true; } @fclose($fp); @unlink(phpbb_gallery_url::_return_file('', $dir, '') . 'test_lock'); $passed['dirs'] = $write && $passed['dirs'] ? true : false; $write = $write ? '<strong style="color:green">' . $user->lang['WRITABLE'] . '</strong>' : '<strong style="color:red">' . $user->lang['UNWRITABLE'] . '</strong>'; $template->assign_block_vars('checks', array('TITLE' => $dir, 'RESULT' => $write, 'S_EXPLAIN' => false, 'S_LEGEND' => false)); } // Check whether all old files are deleted include $phpbb_root_path . 'install/outdated_files.' . $phpEx; umask(0); $passed['files'] = true; $delete = isset($_POST['delete']) ? true : false; foreach ($oudated_files as $file) { // Replace gallery root path with the constant. if (strpos($file, 'gallery/') == 0) { $file = substr_replace($file, phpbb_gallery_url::path('relative'), 0, 8); } $file = preg_replace('/\\.php$/i', ".{$phpEx}", $file); if ($delete) { if (@file_exists($phpbb_root_path . $file)) { // Try to set CHMOD and then delete it @chmod($phpbb_root_path . $file, 0777); @unlink($phpbb_root_path . $file); // Delete failed, tell the user to delete it manually if (@file_exists($phpbb_root_path . $file)) { if ($passed['files']) { $template->assign_block_vars('checks', array('S_LEGEND' => true, 'LEGEND' => $user->lang['FILES_OUTDATED'], 'LEGEND_EXPLAIN' => $user->lang['FILES_OUTDATED_EXPLAIN'])); } $template->assign_block_vars('checks', array('TITLE' => $file, 'RESULT' => '<strong style="color:red">' . $user->lang['FILE_DELETE_FAIL'] . '</strong>', 'S_EXPLAIN' => false, 'S_LEGEND' => false)); $passed['files'] = false; } } } elseif (@file_exists($phpbb_root_path . $file)) { if ($passed['files']) { $template->assign_block_vars('checks', array('S_LEGEND' => true, 'LEGEND' => $user->lang['FILES_OUTDATED'], 'LEGEND_EXPLAIN' => $user->lang['FILES_OUTDATED_EXPLAIN'])); } $template->assign_block_vars('checks', array('TITLE' => $file, 'RESULT' => '<strong style="color:red">' . $user->lang['FILE_STILL_EXISTS'] . '</strong>', 'S_EXPLAIN' => false, 'S_LEGEND' => false)); $passed['files'] = false; } } if (!$passed['files']) { $template->assign_block_vars('checks', array('TITLE' => '<strong>' . $user->lang['FILES_DELETE_OUTDATED'] . '</strong>', 'TITLE_EXPLAIN' => $user->lang['FILES_DELETE_OUTDATED_EXPLAIN'], 'RESULT' => '<input class="button1" type="submit" id="delete" onclick="this.className = \'button1 disabled\';" name="delete" value="' . $user->lang['FILES_DELETE_OUTDATED'] . '" />', 'S_EXPLAIN' => true, 'S_LEGEND' => false)); } $url = !in_array(false, $passed) ? append_sid("{$phpbb_root_path}install/index.{$phpEx}", "mode={$mode}&sub=update_db") : append_sid("{$phpbb_root_path}install/index.{$phpEx}", "mode={$mode}&sub=requirements"); $submit = !in_array(false, $passed) ? $user->lang['INSTALL_START'] : $user->lang['INSTALL_TEST']; $template->assign_vars(array('L_SUBMIT' => $submit, 'S_HIDDEN' => '', 'U_ACTION' => $url)); }
$db->sql_freeresult($result); $s_allowed_delete = $s_allowed_edit = $s_allowed_status = false; if ((phpbb_gallery::$auth->acl_check('m_', $album_id, $album_data['album_user_id']) || $image_data['image_user_id'] == $user->data['user_id']) && $user->data['user_id'] != ANONYMOUS) { $s_user_allowed = $image_data['image_user_id'] == $user->data['user_id'] && $album_data['album_status'] != phpbb_gallery_album::STATUS_LOCKED; $s_allowed_delete = phpbb_gallery::$auth->acl_check('i_delete', $album_id, $album_data['album_user_id']) && $s_user_allowed || phpbb_gallery::$auth->acl_check('m_delete', $album_id, $album_data['album_user_id']); $s_allowed_edit = phpbb_gallery::$auth->acl_check('i_edit', $album_id, $album_data['album_user_id']) && $s_user_allowed || phpbb_gallery::$auth->acl_check('m_edit', $album_id, $album_data['album_user_id']); $s_quick_mod = $s_allowed_delete || $s_allowed_edit || phpbb_gallery::$auth->acl_check('m_status', $album_id, $album_data['album_user_id']) || phpbb_gallery::$auth->acl_check('m_move', $album_id, $album_data['album_user_id']); $user->add_lang('mods/gallery_mcp'); $template->assign_vars(array('S_MOD_ACTION' => phpbb_gallery_url::append_sid('mcp', "album_id={$album_id}&image_id={$image_id}&quickmod=1", true, $user->session_id), 'S_QUICK_MOD' => $s_quick_mod, 'S_QM_MOVE' => phpbb_gallery::$auth->acl_check('m_move', $album_id, $album_data['album_user_id']), 'S_QM_EDIT' => $s_allowed_edit, 'S_QM_DELETE' => $s_allowed_delete, 'S_QM_REPORT' => phpbb_gallery::$auth->acl_check('m_report', $album_id, $album_data['album_user_id']), 'S_QM_STATUS' => phpbb_gallery::$auth->acl_check('m_status', $album_id, $album_data['album_user_id']), 'S_IMAGE_REPORTED' => $image_data['image_reported'], 'U_IMAGE_REPORTED' => $image_data['image_reported'] ? phpbb_gallery_url::append_sid('mcp', "mode=report_details&album_id={$album_id}&option_id=" . $image_data['image_reported']) : '', 'S_STATUS_APPROVED' => $image_data['image_status'] == phpbb_gallery_image::STATUS_APPROVED, 'S_STATUS_UNAPPROVED' => $image_data['image_status'] == phpbb_gallery_image::STATUS_UNAPPROVED, 'S_STATUS_LOCKED' => $image_data['image_status'] == phpbb_gallery_image::STATUS_LOCKED)); } $template->assign_vars(array('U_VIEW_ALBUM' => phpbb_gallery_url::append_sid("album.{$phpEx}", "album_id={$album_id}"), 'UC_PREVIOUS_IMAGE' => !empty($previous_data) && phpbb_gallery_config::get('disp_nextprev_thumbnail') ? generate_image_link('thumbnail', 'image_page', $previous_data['image_id'], $previous_data['image_name'], $album_id) : '', 'UC_PREVIOUS' => !empty($previous_data) ? phpbb_gallery_image::generate_link('image_name_unbold', 'image_page_prev', $previous_data['image_id'], $previous_data['image_name'], $album_id) : '', 'UC_IMAGE' => phpbb_gallery_image::generate_link('medium', phpbb_gallery_config::get('link_imagepage'), $image_id, $image_data['image_name'], $album_id, substr($image_data['image_filename'], 0 - 3) == 'gif' ? true : false, false), 'UC_NEXT_IMAGE' => !empty($next_data) && phpbb_gallery_config::get('disp_nextprev_thumbnail') ? generate_image_link('thumbnail', 'image_page', $next_data['image_id'], $next_data['image_name'], $album_id) : '', 'UC_NEXT' => !empty($next_data) ? phpbb_gallery_image::generate_link('image_name_unbold', 'image_page_next', $next_data['image_id'], $next_data['image_name'], $album_id) : '', 'EDIT_IMG' => $user->img('icon_post_edit', 'EDIT_IMAGE'), 'DELETE_IMG' => $user->img('icon_post_delete', 'DELETE_IMAGE'), 'REPORT_IMG' => $user->img('icon_post_report', 'REPORT_IMAGE'), 'STATUS_IMG' => $user->img('icon_post_info', 'STATUS_IMAGE'), 'U_DELETE' => $s_allowed_delete ? phpbb_gallery_url::append_sid('posting', "mode=image&submode=delete&album_id={$album_id}&image_id={$image_id}") : '', 'U_EDIT' => $s_allowed_edit ? phpbb_gallery_url::append_sid('posting', "mode=image&submode=edit&album_id={$album_id}&image_id={$image_id}") : '', 'U_REPORT' => phpbb_gallery::$auth->acl_check('i_report', $album_id, $album_data['album_user_id']) && $image_data['image_user_id'] != $user->data['user_id'] ? phpbb_gallery_url::append_sid('posting', "mode=image&submode=report&album_id={$album_id}&image_id={$image_id}") : '', 'U_STATUS' => $s_allowed_status ? phpbb_gallery_url::append_sid('mcp', "mode=queue_details&album_id={$album_id}&option_id={$image_id}") : '', 'CONTEST_RANK' => $image_data['image_contest_rank'] ? $user->lang['CONTEST_RESULT_' . $image_data['image_contest_rank']] : '', 'IMAGE_NAME' => $image_data['image_name'], 'IMAGE_DESC' => generate_text_for_display($image_data['image_desc'], $image_data['image_desc_uid'], $image_data['image_desc_bitfield'], 7), 'IMAGE_BBCODE' => '[album]' . $image_id . '[/album]', 'IMAGE_IMGURL_BBCODE' => phpbb_gallery_config::get('disp_image_url') ? '[url=' . phpbb_gallery_url::path('full') . "image.{$phpEx}?album_id={$album_id}&image_id={$image_id}" . '][img]' . generate_board_url(false) . '/' . phpbb_gallery_url::path('relative') . "image.{$phpEx}?album_id={$album_id}&image_id={$image_id}&mode=thumbnail" . '[/img][/url]' : '', 'IMAGE_URL' => phpbb_gallery_config::get('disp_image_url') ? phpbb_gallery_url::path('full') . "image.{$phpEx}?album_id={$album_id}&image_id={$image_id}" : '', 'IMAGE_TIME' => $user->format_date($image_data['image_time']), 'IMAGE_VIEW' => $image_data['image_view_count'], 'POSTER_IP' => $auth->acl_get('a_') ? $image_data['image_user_ip'] : '', 'U_POSTER_WHOIS' => $auth->acl_get('a_') ? phpbb_gallery_url::append_sid('mcp', 'mode=whois&ip=' . $image_data['image_user_ip']) : '', 'L_BOOKMARK_TOPIC' => $image_data['favorite_id'] ? $user->lang['UNFAVORITE_IMAGE'] : $user->lang['FAVORITE_IMAGE'], 'U_BOOKMARK_TOPIC' => $user->data['user_id'] != ANONYMOUS ? phpbb_gallery_url::append_sid('posting', "mode=image&submode=" . ($image_data['favorite_id'] ? 'un' : '') . "favorite&album_id={$album_id}&image_id={$image_id}") : '', 'L_WATCH_TOPIC' => $image_data['watch_id'] ? $user->lang['UNWATCH_IMAGE'] : $user->lang['WATCH_IMAGE'], 'U_WATCH_TOPIC' => $user->data['user_id'] != ANONYMOUS ? phpbb_gallery_url::append_sid('posting', "mode=image&submode=" . ($image_data['watch_id'] ? 'un' : '') . "watch&album_id={$album_id}&image_id={$image_id}") : '', 'S_WATCHING_TOPIC' => $image_data['watch_id'] ? true : false, 'S_ALBUM_ACTION' => phpbb_gallery_url::append_sid('image_page', "album_id={$album_id}&image_id={$image_id}"), 'U_RETURN_LINK' => phpbb_gallery_url::append_sid('album', "album_id={$album_id}"), 'S_RETURN_LINK' => $album_data['album_name'], 'S_JUMPBOX_ACTION' => phpbb_gallery_url::append_sid('album'), 'ALBUM_JUMPBOX' => phpbb_gallery_album::get_albumbox(false, '', $album_id))); /** * Exif-Data */ if (phpbb_gallery_config::get('disp_exifdata') && $image_data['image_has_exif'] != phpbb_gallery_exif::UNAVAILABLE && substr($image_data['image_filename'], -4) == '.jpg' && function_exists('exif_read_data') && (phpbb_gallery::$auth->acl_check('m_status', $album_id, $album_data['album_user_id']) || $image_data['image_contest'] != phpbb_gallery_image::IN_CONTEST)) { $exif = new phpbb_gallery_exif(phpbb_gallery_url::path('upload') . $image_data['image_filename'], $image_id); $exif->interpret($image_data['image_has_exif'], $image_data['image_exif_data']); if (!empty($exif->data["EXIF"])) { $exif->send_to_template(phpbb_gallery::$user->get_data('user_viewexif')); } unset($exif); } /** * Rating */ if (phpbb_gallery_config::get('allow_rates')) { $rating = new phpbb_gallery_image_rating($image_id, $image_data, $album_data); $user_rating = $rating->get_user_rating($user->data['user_id']); // Check: User didn't rate yet, has permissions, it's not the users own image and the user is logged in if (!$user_rating && $rating->is_allowed()) { $rating->display_box();
function cleanup() { global $auth, $cache, $db, $template, $user; $delete = isset($_POST['delete']) ? true : false; $submit = isset($_POST['submit']) ? true : false; $missing_sources = request_var('source', array(0)); $missing_entries = request_var('entry', array(''), true); $missing_authors = request_var('author', array(0), true); $missing_comments = request_var('comment', array(0), true); $missing_personals = request_var('personal', array(0), true); $personals_bad = request_var('personal_bad', array(0), true); $s_hidden_fields = build_hidden_fields(array('source' => $missing_sources, 'entry' => $missing_entries, 'author' => $missing_authors, 'comment' => $missing_comments, 'personal' => $missing_personals, 'personal_bad' => $personals_bad)); if ($submit) { if ($missing_authors) { $sql = 'UPDATE ' . GALLERY_IMAGES_TABLE . ' SET image_user_id = ' . ANONYMOUS . ",\n\t\t\t\t\t\timage_user_colour = ''\n\t\t\t\t\tWHERE " . $db->sql_in_set('image_id', $missing_authors); $db->sql_query($sql); } if ($missing_comments) { $sql = 'UPDATE ' . GALLERY_COMMENTS_TABLE . ' SET comment_user_id = ' . ANONYMOUS . ",\n\t\t\t\t\t\tcomment_user_colour = ''\n\t\t\t\t\tWHERE " . $db->sql_in_set('comment_id', $missing_comments); $db->sql_query($sql); } trigger_error($user->lang['CLEAN_CHANGED'] . adm_back_link($this->u_action)); } if (confirm_box(true)) { $message = array(); if ($missing_sources) { $sql = 'DELETE FROM ' . GALLERY_COMMENTS_TABLE . ' WHERE ' . $db->sql_in_set('comment_image_id', $missing_sources); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_REPORTS_TABLE . ' WHERE ' . $db->sql_in_set('report_image_id', $missing_sources); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_FAVORITES_TABLE . ' WHERE ' . $db->sql_in_set('image_id', $missing_sources); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_WATCH_TABLE . ' WHERE ' . $db->sql_in_set('image_id', $missing_sources); $db->sql_query($sql); phpbb_gallery_image_base::delete_images($missing_sources); $message[] = $user->lang['CLEAN_SOURCES_DONE']; } if ($missing_entries) { foreach ($missing_entries as $missing_image) { @unlink(phpbb_gallery_url::path('upload') . utf8_decode($missing_image)); } $message[] = $user->lang['CLEAN_ENTRIES_DONE']; } if ($missing_authors) { $deleted_images = $filenames = array(); $sql = 'SELECT image_id, image_filename FROM ' . GALLERY_IMAGES_TABLE . ' WHERE ' . $db->sql_in_set('image_id', $missing_authors); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $filenames[(int) $row['image_id']] = $row['image_filename']; $deleted_images[] = $row['image_id']; } $db->sql_freeresult($result); // we have all image_ids in $deleted_images which are deleted // aswell as the album_ids in $deleted_albums // so now drop the comments, ratings, images and albums if ($deleted_images) { $sql = 'DELETE FROM ' . GALLERY_COMMENTS_TABLE . ' WHERE ' . $db->sql_in_set('comment_image_id', $deleted_images); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_FAVORITES_TABLE . ' WHERE ' . $db->sql_in_set('image_id', $deleted_images); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_REPORTS_TABLE . ' WHERE ' . $db->sql_in_set('report_image_id', $deleted_images); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_WATCH_TABLE . ' WHERE ' . $db->sql_in_set('image_id', $deleted_images); $db->sql_query($sql); phpbb_gallery_image_base::delete_images($deleted_images, $filenames); } $message[] = $user->lang['CLEAN_AUTHORS_DONE']; } if ($missing_comments) { $sql = 'DELETE FROM ' . GALLERY_COMMENTS_TABLE . ' WHERE ' . $db->sql_in_set('comment_id', $missing_comments); $db->sql_query($sql); $message[] = $user->lang['CLEAN_COMMENTS_DONE']; } if ($missing_personals || $personals_bad) { $delete_albums = array_merge($missing_personals, $personals_bad); $deleted_images = $deleted_albums = array(0); $user_image_count = array(); $sql = 'SELECT COUNT(album_user_id) personal_counter FROM ' . GALLERY_ALBUMS_TABLE . ' WHERE parent_id = 0 AND ' . $db->sql_in_set('album_user_id', $delete_albums); $result = $db->sql_query($sql); $remove_personal_counter = $db->sql_fetchfield('personal_counter'); $db->sql_freeresult($result); $sql = 'SELECT album_id FROM ' . GALLERY_ALBUMS_TABLE . ' WHERE ' . $db->sql_in_set('album_user_id', $delete_albums); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $deleted_albums[] = $row['album_id']; } $db->sql_freeresult($result); $sql = 'SELECT image_id, image_filename, image_user_id FROM ' . GALLERY_IMAGES_TABLE . ' WHERE ' . $db->sql_in_set('image_album_id', $deleted_albums); $result = $db->sql_query($sql); $filenames = array(); while ($row = $db->sql_fetchrow($result)) { $deleted_images[] = $row['image_id']; $filenames[(int) $row['image_id']] = $row['image_filename']; if (isset($user_image_count[$row['image_user_id']])) { $user_image_count[$row['image_user_id']]++; } else { $user_image_count[(int) $row['image_user_id']] = 1; } } $db->sql_freeresult($result); if ($deleted_images) { $sql = 'DELETE FROM ' . GALLERY_COMMENTS_TABLE . ' WHERE ' . $db->sql_in_set('comment_image_id', $deleted_images); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_FAVORITES_TABLE . ' WHERE ' . $db->sql_in_set('image_id', $deleted_images); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_REPORTS_TABLE . ' WHERE ' . $db->sql_in_set('report_image_id', $deleted_images); $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_WATCH_TABLE . ' WHERE ' . $db->sql_in_set('image_id', $deleted_images); $db->sql_query($sql); phpbb_gallery_image_base::delete_images($deleted_images, $filenames); } $sql = 'DELETE FROM ' . GALLERY_ALBUMS_TABLE . ' WHERE ' . $db->sql_in_set('album_id', $deleted_albums); $db->sql_query($sql); phpbb_gallery_config::get('num_pegas', $remove_personal_counter); if (in_array(phpbb_gallery_config::get('newest_pega_album_id'), $deleted_albums)) { // Update the config for the statistic on the index if (phpbb_gallery_config::get('num_pegas') > 0) { $sql_array = array('SELECT' => 'a.album_id, u.user_id, u.username, u.user_colour', 'FROM' => array(GALLERY_ALBUMS_TABLE => 'a'), 'LEFT_JOIN' => array(array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = a.album_user_id')), 'WHERE' => 'a.album_user_id <> ' . phpbb_gallery_album::PUBLIC_ALBUM . ' AND a.parent_id = 0', 'ORDER_BY' => 'a.album_id DESC'); $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query_limit($sql, 1); $newest_pgallery = $db->sql_fetchrow($result); $db->sql_freeresult($result); phpbb_gallery_config::set('newest_pega_user_id', $newest_pgallery['user_id']); phpbb_gallery_config::set('newest_pega_username', $newest_pgallery['username']); phpbb_gallery_config::set('newest_pega_user_colour', $newest_pgallery['user_colour']); phpbb_gallery_config::set('newest_pega_album_id', $newest_pgallery['album_id']); } else { phpbb_gallery_config::set('newest_pega_user_id', 0); phpbb_gallery_config::set('newest_pega_username', ''); phpbb_gallery_config::set('newest_pega_user_colour', ''); phpbb_gallery_config::set('newest_pega_album_id', 0); } } $user_ids = array(); foreach ($user_image_count as $user_id => $images) { $user_ids[] = (int) $user_id; phpbb_gallery_hookup::add_image($user_id, 0 - $images); $uploader = new phpbb_gallery_user($db, $user_id, false); $uploader->update_images(0 - $images); } phpbb_gallery_user_helpers::update_users($user_ids, array('personal_album_id' => 0)); if ($missing_personals) { $message[] = $user->lang['CLEAN_PERSONALS_DONE']; } if ($personals_bad) { $message[] = $user->lang['CLEAN_PERSONALS_BAD_DONE']; } } // Make sure the overall image & comment count is correct... $sql = 'SELECT COUNT(image_id) AS num_images, SUM(image_comments) AS num_comments FROM ' . GALLERY_IMAGES_TABLE . ' WHERE image_status <> ' . phpbb_gallery_image::STATUS_UNAPPROVED; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); phpbb_gallery_config::set('num_images', $row['num_images']); phpbb_gallery_config::set('num_comments', $row['num_comments']); $cache->destroy('sql', GALLERY_ALBUMS_TABLE); $cache->destroy('sql', GALLERY_COMMENTS_TABLE); $cache->destroy('sql', GALLERY_FAVORITES_TABLE); $cache->destroy('sql', GALLERY_IMAGES_TABLE); $cache->destroy('sql', GALLERY_RATES_TABLE); $cache->destroy('sql', GALLERY_REPORTS_TABLE); $cache->destroy('sql', GALLERY_WATCH_TABLE); $cache->destroy('_albums'); phpbb_gallery_auth::set_user_permissions('all', ''); trigger_error(implode('<br />', $message) . adm_back_link($this->u_action)); } else { if ($delete || isset($_POST['cancel'])) { if (isset($_POST['cancel'])) { trigger_error($user->lang['CLEAN_GALLERY_ABORT'] . adm_back_link($this->u_action), E_USER_WARNING); } else { $user->lang['CLEAN_GALLERY_CONFIRM'] = $user->lang['CONFIRM_CLEAN']; if ($missing_sources) { $user->lang['CLEAN_GALLERY_CONFIRM'] = $user->lang['CONFIRM_CLEAN_SOURCES'] . '<br />' . $user->lang['CLEAN_GALLERY_CONFIRM']; } if ($missing_entries) { $user->lang['CLEAN_GALLERY_CONFIRM'] = $user->lang['CONFIRM_CLEAN_ENTRIES'] . '<br />' . $user->lang['CLEAN_GALLERY_CONFIRM']; } if ($missing_authors) { $user->lang['CLEAN_GALLERY_CONFIRM'] = $user->lang['CONFIRM_CLEAN_AUTHORS'] . '<br />' . $user->lang['CLEAN_GALLERY_CONFIRM']; } if ($missing_comments) { $user->lang['CLEAN_GALLERY_CONFIRM'] = $user->lang['CONFIRM_CLEAN_COMMENTS'] . '<br />' . $user->lang['CLEAN_GALLERY_CONFIRM']; } if ($personals_bad || $missing_personals) { $sql = 'SELECT album_name, album_user_id FROM ' . GALLERY_ALBUMS_TABLE . ' WHERE ' . $db->sql_in_set('album_user_id', array_merge($missing_personals, $personals_bad)); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if (in_array($row['album_user_id'], $personals_bad)) { $personals_bad_names[] = $row['album_name']; } else { $missing_personals_names[] = $row['album_name']; } } $db->sql_freeresult($result); } if ($missing_personals) { $user->lang['CLEAN_GALLERY_CONFIRM'] = sprintf($user->lang['CONFIRM_CLEAN_PERSONALS'], implode(', ', $missing_personals_names)) . '<br />' . $user->lang['CLEAN_GALLERY_CONFIRM']; } if ($personals_bad) { $user->lang['CLEAN_GALLERY_CONFIRM'] = sprintf($user->lang['CONFIRM_CLEAN_PERSONALS_BAD'], implode(', ', $personals_bad_names)) . '<br />' . $user->lang['CLEAN_GALLERY_CONFIRM']; } confirm_box(false, 'CLEAN_GALLERY', $s_hidden_fields); } } } $requested_source = array(); $sql_array = array('SELECT' => 'i.image_id, i.image_name, i.image_filemissing, i.image_filename, i.image_username, u.user_id', 'FROM' => array(GALLERY_IMAGES_TABLE => 'i'), 'LEFT_JOIN' => array(array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = i.image_user_id'))); $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($row['image_filemissing']) { $template->assign_block_vars('sourcerow', array('IMAGE_ID' => $row['image_id'], 'IMAGE_NAME' => $row['image_name'])); } if (!$row['user_id']) { $template->assign_block_vars('authorrow', array('IMAGE_ID' => $row['image_id'], 'AUTHOR_NAME' => $row['image_username'])); } $requested_source[] = $row['image_filename']; } $db->sql_freeresult($result); $check_mode = request_var('check_mode', ''); if ($check_mode == 'source') { $source_missing = array(); // Reset the status: a image might have been viewed without file but the file is back $sql = 'UPDATE ' . GALLERY_IMAGES_TABLE . ' SET image_filemissing = 0'; $db->sql_query($sql); $sql = 'SELECT image_id, image_filename, image_filemissing FROM ' . GALLERY_IMAGES_TABLE; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if (!file_exists(phpbb_gallery_url::path('upload') . $row['image_filename'])) { $source_missing[] = $row['image_id']; } } $db->sql_freeresult($result); if ($source_missing) { $sql = 'UPDATE ' . GALLERY_IMAGES_TABLE . "\n\t\t\t\t\tSET image_filemissing = 1\n\t\t\t\t\tWHERE " . $db->sql_in_set('image_id', $source_missing); $db->sql_query($sql); } } if ($check_mode == 'entry') { $directory = phpbb_gallery_url::path('upload'); $handle = opendir($directory); while ($file = readdir($handle)) { if (!is_dir($directory . $file) && (substr(strtolower($file), '-4') == '.png' || substr(strtolower($file), '-4') == '.gif' || substr(strtolower($file), '-4') == '.jpg') && !in_array($file, $requested_source)) { if (strpos($file, 'image_not_exist') !== false || strpos($file, 'not_authorised') !== false || strpos($file, 'no_hotlinking') !== false) { continue; } $template->assign_block_vars('entryrow', array('FILE_NAME' => utf8_encode($file))); } } closedir($handle); } $sql_array = array('SELECT' => 'c.comment_id, c.comment_image_id, c.comment_username, u.user_id', 'FROM' => array(GALLERY_COMMENTS_TABLE => 'c'), 'LEFT_JOIN' => array(array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = c.comment_user_id'))); $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if (!$row['user_id']) { $template->assign_block_vars('commentrow', array('COMMENT_ID' => $row['comment_id'], 'IMAGE_ID' => $row['comment_image_id'], 'AUTHOR_NAME' => $row['comment_username'])); } } $db->sql_freeresult($result); $sql_array = array('SELECT' => 'a.album_id, a.album_user_id, a.album_name, u.user_id, a.album_images_real', 'FROM' => array(GALLERY_ALBUMS_TABLE => 'a'), 'LEFT_JOIN' => array(array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = a.album_user_id')), 'WHERE' => 'a.album_user_id <> ' . phpbb_gallery_album::PUBLIC_ALBUM . ' AND a.parent_id = 0'); $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query($sql); $personalrow = $personal_bad_row = array(); while ($row = $db->sql_fetchrow($result)) { $album = array('user_id' => $row['album_user_id'], 'album_id' => $row['album_id'], 'album_name' => $row['album_name'], 'images' => $row['album_images_real']); if (!$row['user_id']) { $personalrow[$row['album_user_id']] = $album; } $personal_bad_row[$row['album_user_id']] = $album; } $db->sql_freeresult($result); $sql = 'SELECT ga.album_user_id, ga.album_images_real FROM ' . GALLERY_ALBUMS_TABLE . ' ga WHERE ga.album_user_id <> ' . phpbb_gallery_album::PUBLIC_ALBUM . ' AND ga.parent_id <> 0'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if (isset($personalrow[$row['album_user_id']])) { $personalrow[$row['album_user_id']]['images'] = $personalrow[$row['album_user_id']]['images'] + $row['album_images_real']; } $personal_bad_row[$row['album_user_id']]['images'] = $personal_bad_row[$row['album_user_id']]['images'] + $row['album_images_real']; } $db->sql_freeresult($result); foreach ($personalrow as $key => $row) { $template->assign_block_vars('personalrow', array('USER_ID' => $row['user_id'], 'ALBUM_ID' => $row['album_id'], 'AUTHOR_NAME' => $row['album_name'])); } foreach ($personal_bad_row as $key => $row) { $template->assign_block_vars('personal_bad_row', array('USER_ID' => $row['user_id'], 'ALBUM_ID' => $row['album_id'], 'AUTHOR_NAME' => $row['album_name'], 'IMAGES' => $row['images'])); } $template->assign_vars(array('S_GALLERY_MANAGE_RESTS' => true, 'ACP_GALLERY_TITLE' => $user->lang['ACP_GALLERY_CLEANUP'], 'ACP_GALLERY_TITLE_EXPLAIN' => $user->lang['ACP_GALLERY_CLEANUP_EXPLAIN'], 'CHECK_SOURCE' => $this->u_action . '&check_mode=source', 'CHECK_ENTRY' => $this->u_action . '&check_mode=entry', 'S_FOUNDER' => $user->data['user_type'] == USER_FOUNDER ? true : false)); }
function main($id, $mode) { global $cache, $db, $user, $auth, $template; phpbb_gallery::init(); $manage_albums = new phpbb_gallery_album_manage(request_var('user_id', 0), request_var('parent_id', 0), $this->u_action); $user->add_lang(array('mods/gallery_acp', 'mods/gallery')); $this->tpl_name = 'gallery_albums'; $this->page_title = 'ACP_GALLERY_MANAGE_ALBUMS'; $form_key = 'acp_gallery_albums'; add_form_key($form_key); $action = request_var('action', ''); $update = isset($_POST['update']) ? true : false; $album_id = request_var('a', 0); $this->parent_id = request_var('parent_id', 0); $album_data = $errors = array(); if ($update && !check_form_key($form_key)) { $update = false; $errors[] = $user->lang['FORM_INVALID']; } // Major routines if ($update) { switch ($action) { case 'delete': $action_subalbums = request_var('action_subalbums', ''); $subalbums_to_id = request_var('subalbums_to_id', 0); $action_images = request_var('action_images', ''); $images_to_id = request_var('images_to_id', 0); $errors = $manage_albums->delete_album($album_id, $action_images, $action_subalbums, $images_to_id, $subalbums_to_id); if (sizeof($errors)) { break; } $cache->destroy('sql', GALLERY_ALBUMS_TABLE); trigger_error($user->lang['ALBUM_DELETED'] . adm_back_link($this->u_action . '&parent_id=' . $this->parent_id)); break; case 'edit': $album_data = array('album_id' => $album_id); // No break; here // No break; here case 'add': $album_data += array('parent_id' => request_var('album_parent_id', $this->parent_id), 'album_type' => request_var('album_type', phpbb_gallery_album::TYPE_UPLOAD), 'type_action' => request_var('type_action', ''), 'album_status' => request_var('album_status', phpbb_gallery_album::STATUS_OPEN), 'album_parents' => '', 'album_name' => utf8_normalize_nfc(request_var('album_name', '', true)), 'album_desc' => utf8_normalize_nfc(request_var('album_desc', '', true)), 'album_desc_uid' => '', 'album_desc_options' => 7, 'album_desc_bitfield' => '', 'album_image' => request_var('album_image', ''), 'album_watermark' => request_var('album_watermark', false), 'album_sort_key' => request_var('album_sort_key', ''), 'album_sort_dir' => request_var('album_sort_dir', ''), 'display_subalbum_list' => request_var('display_subalbum_list', false), 'display_on_index' => request_var('display_on_index', false), 'display_in_rrc' => request_var('display_in_rrc', false)); // Categories are not able to be locked... if ($album_data['album_type'] == phpbb_gallery_album::TYPE_CAT) { $album_data['album_status'] = phpbb_gallery_album::STATUS_OPEN; } // Contests need contest_data, freaky... :-O $contest_data = array('contest_start' => request_var('contest_start', ''), 'contest_rating' => request_var('contest_rating', ''), 'contest_end' => request_var('contest_end', '')); // Get data for album description if specified if ($album_data['album_desc']) { generate_text_for_storage($album_data['album_desc'], $album_data['album_desc_uid'], $album_data['album_desc_bitfield'], $album_data['album_desc_options'], request_var('desc_parse_bbcode', false), request_var('desc_parse_urls', false), request_var('desc_parse_smilies', false)); } $errors = $manage_albums->update_album_data($album_data, $contest_data); if (!sizeof($errors)) { $album_perm_from = request_var('album_perm_from', 0); // Copy permissions? You do not need permissions for that in the gallery if ($album_perm_from && $album_perm_from != $album_data['album_id']) { // If we edit a album delete current permissions first if ($action == 'edit') { $sql = 'DELETE FROM ' . GALLERY_PERMISSIONS_TABLE . ' WHERE perm_album_id = ' . $album_data['album_id']; $db->sql_query($sql); $sql = 'DELETE FROM ' . GALLERY_MODSCACHE_TABLE . ' WHERE album_id = ' . $album_data['album_id']; $db->sql_query($sql); } $sql = 'SELECT * FROM ' . GALLERY_PERMISSIONS_TABLE . ' WHERE perm_album_id = ' . $album_perm_from; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $perm_data[] = array('perm_role_id' => $row['perm_role_id'], 'perm_album_id' => $album_data['album_id'], 'perm_user_id' => $row['perm_user_id'], 'perm_group_id' => $row['perm_group_id'], 'perm_system' => $row['perm_system']); } $db->sql_freeresult($result); $modscache_ary = array(); $sql = 'SELECT * FROM ' . GALLERY_MODSCACHE_TABLE . ' WHERE album_id = ' . $album_perm_from; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $modscache_ary[] = array('album_id' => $album_data['album_id'], 'user_id' => $row['user_id'], 'username' => $row['username'], 'group_id' => $row['group_id'], 'group_name' => $row['group_name'], 'display_on_index' => $row['display_on_index']); } $db->sql_freeresult($result); $db->sql_multi_insert(GALLERY_PERMISSIONS_TABLE, $perm_data); $db->sql_multi_insert(GALLERY_MODSCACHE_TABLE, $modscache_ary); } $cache->destroy('sql', GALLERY_ALBUMS_TABLE); $cache->destroy('sql', GALLERY_MODSCACHE_TABLE); $cache->destroy('sql', GALLERY_PERMISSIONS_TABLE); $cache->destroy('_albums'); phpbb_gallery_auth::set_user_permissions('all', ''); $acl_url = '&mode=manage&action=v_mask&album_id[]=' . $album_data['album_id']; $message = $action == 'add' ? $user->lang['ALBUM_CREATED'] : $user->lang['ALBUM_UPDATED']; $message .= '<br /><br />' . sprintf($user->lang['REDIRECT_ACL'], '<a href="' . phpbb_gallery_url::append_sid('admin', 'index', 'i=gallery_permissions' . $acl_url) . '">', '</a>'); // Redirect directly to permission settings screen if ($action == 'add' && !$album_perm_from) { meta_refresh(5, phpbb_gallery_url::append_sid('admin', 'index', 'i=gallery_permissions' . $acl_url)); } trigger_error($message . adm_back_link($this->u_action . '&parent_id=' . $this->parent_id)); } break; } } switch ($action) { case 'move_up': case 'move_down': if (!$album_id) { trigger_error($user->lang['NO_ALBUM'] . adm_back_link($this->u_action . '&parent_id=' . $this->parent_id), E_USER_WARNING); } $sql = 'SELECT * FROM ' . GALLERY_ALBUMS_TABLE . "\n\t\t\t\t\tWHERE album_id = {$album_id}"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$row) { trigger_error($user->lang['NO_ALBUM'] . adm_back_link($this->u_action . '&parent_id=' . $this->parent_id), E_USER_WARNING); } $move_album_name = $manage_albums->move_album_by($row, $action, 1); if ($move_album_name !== false) { add_log('admin', 'LOG_ALBUM_' . strtoupper($action), $row['album_name'], $move_album_name); $cache->destroy('sql', GALLERY_ALBUMS_TABLE); } break; case 'sync': case 'sync_album': if (!$album_id) { trigger_error($user->lang['NO_ALBUM'] . adm_back_link($this->u_action . '&parent_id=' . $this->parent_id), E_USER_WARNING); } $sql = 'SELECT album_name, album_type FROM ' . GALLERY_ALBUMS_TABLE . "\n\t\t\t\t\tWHERE album_id = {$album_id}"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$row) { trigger_error($user->lang['NO_ALBUM'] . adm_back_link($this->u_action . '&parent_id=' . $this->parent_id), E_USER_WARNING); } phpbb_gallery_album::update_info($album_id); add_log('admin', 'LOG_ALBUM_SYNC', $row['album_name']); $template->assign_var('L_ALBUM_RESYNCED', sprintf($user->lang['ALBUM_RESYNCED'], $row['album_name'])); break; case 'add': case 'edit': // Show form to create/modify a album if ($action == 'edit') { $this->page_title = 'EDIT_ALBUM'; $row = phpbb_gallery_album::get_info($album_id); $old_album_type = $row['album_type']; if (!$update) { $album_data = $row; } else { $album_data['left_id'] = $row['left_id']; $album_data['right_id'] = $row['right_id']; } if ($row['album_type'] == phpbb_gallery_album::TYPE_CONTEST) { $contest_data = $this->get_contest_info('album', $album_id); } else { // Default values, 3 days later rate and 7 for the end of the contest $contest_data = array('contest_start' => time(), 'contest_rating' => 3 * 86400, 'contest_end' => 7 * 86400); } // Make sure no direct child albums are able to be selected as parents. $exclude_albums = array(); foreach (phpbb_gallery_album::get_branch(phpbb_gallery_album::PUBLIC_ALBUM, $album_id, 'children') as $row) { $exclude_albums[] = $row['album_id']; } $parents_list = phpbb_gallery_album::get_albumbox(true, '', $album_data['parent_id'], false, $exclude_albums); /* $album_data['album_password_confirm'] = $album_data['album_password']; */ } else { $this->page_title = 'CREATE_ALBUM'; $album_id = $this->parent_id; $parents_list = phpbb_gallery_album::get_albumbox(true, '', $this->parent_id); // Fill album data with default values if (!$update) { $album_data = array('parent_id' => $this->parent_id, 'album_type' => phpbb_gallery_album::TYPE_UPLOAD, 'album_status' => phpbb_gallery_album::STATUS_OPEN, 'album_name' => utf8_normalize_nfc(request_var('album_name', '', true)), 'album_desc' => '', 'album_image' => '', 'album_watermark' => true, 'album_sort_key' => '', 'album_sort_dir' => '', 'display_subalbum_list' => true, 'display_on_index' => true, 'display_in_rrc' => true); // Default values, 3 days later rate and 7 for the end of the contest $contest_data = array('contest_start' => time(), 'contest_rating' => 3 * 86400, 'contest_end' => 7 * 86400); } } $album_desc_data = array('text' => $album_data['album_desc'], 'allow_bbcode' => true, 'allow_smilies' => true, 'allow_urls' => true); // Parse desciption if specified if ($album_data['album_desc']) { if (!isset($album_data['album_desc_uid'])) { // Before we are able to display the preview and plane text, we need to parse our request_var()'d value... $album_data['album_desc_uid'] = ''; $album_data['album_desc_bitfield'] = ''; $album_data['album_desc_options'] = 0; generate_text_for_storage($album_data['album_desc'], $album_data['album_desc_uid'], $album_data['album_desc_bitfield'], $album_data['album_desc_options'], request_var('desc_allow_bbcode', false), request_var('desc_allow_urls', false), request_var('desc_allow_smilies', false)); } // decode... $album_desc_data = generate_text_for_edit($album_data['album_desc'], $album_data['album_desc_uid'], $album_data['album_desc_options']); } $album_type_options = ''; $album_type_ary = array(phpbb_gallery_album::TYPE_CAT => 'CAT', phpbb_gallery_album::TYPE_UPLOAD => 'UPLOAD', phpbb_gallery_album::TYPE_CONTEST => 'CONTEST'); foreach ($album_type_ary as $value => $lang) { $album_type_options .= '<option value="' . $value . '"' . ($value == $album_data['album_type'] ? ' selected="selected"' : '') . '>' . $user->lang['ALBUM_TYPE_' . $lang] . '</option>'; } $album_sort_key_options = ''; $album_sort_key_options .= '<option' . (!in_array($album_data['album_sort_key'], array('t', 'n', 'vc', 'u', 'ra', 'r', 'c', 'lc')) ? ' selected="selected"' : '') . " value=''>" . $user->lang['SORT_DEFAULT'] . '</option>'; $album_sort_key_options .= '<option' . ($album_data['album_sort_key'] == 't' ? ' selected="selected"' : '') . " value='t'>" . $user->lang['TIME'] . '</option>'; $album_sort_key_options .= '<option' . ($album_data['album_sort_key'] == 'n' ? ' selected="selected"' : '') . " value='n'>" . $user->lang['IMAGE_NAME'] . '</option>'; $album_sort_key_options .= '<option' . ($album_data['album_sort_key'] == 'vc' ? ' selected="selected"' : '') . " value='vc'>" . $user->lang['VIEWS'] . '</option>'; $album_sort_key_options .= '<option' . ($album_data['album_sort_key'] == 'u' ? ' selected="selected"' : '') . " value='u'>" . $user->lang['USERNAME'] . '</option>'; $album_sort_key_options .= '<option' . ($album_data['album_sort_key'] == 'ra' ? ' selected="selected"' : '') . " value='ra'>" . $user->lang['RATING'] . '</option>'; $album_sort_key_options .= '<option' . ($album_data['album_sort_key'] == 'r' ? ' selected="selected"' : '') . " value='r'>" . $user->lang['RATES_COUNT'] . '</option>'; $album_sort_key_options .= '<option' . ($album_data['album_sort_key'] == 'c' ? ' selected="selected"' : '') . " value='c'>" . $user->lang['COMMENTS'] . '</option>'; $album_sort_key_options .= '<option' . ($album_data['album_sort_key'] == 'lc' ? ' selected="selected"' : '') . " value='lc'>" . $user->lang['NEW_COMMENT'] . '</option>'; $album_sort_dir_options = ''; $album_sort_dir_options .= '<option' . ($album_data['album_sort_dir'] != 'd' && $album_data['album_sort_dir'] != 'a' ? ' selected="selected"' : '') . " value=''>" . $user->lang['SORT_DEFAULT'] . '</option>'; $album_sort_dir_options .= '<option' . ($album_data['album_sort_dir'] == 'd' ? ' selected="selected"' : '') . " value='d'>" . $user->lang['SORT_DESCENDING'] . '</option>'; $album_sort_dir_options .= '<option' . ($album_data['album_sort_dir'] == 'a' ? ' selected="selected"' : '') . " value='a'>" . $user->lang['SORT_ASCENDING'] . '</option>'; $statuslist = '<option value="' . phpbb_gallery_album::STATUS_OPEN . '"' . ($album_data['album_status'] == phpbb_gallery_album::STATUS_OPEN ? ' selected="selected"' : '') . '>' . $user->lang['UNLOCKED'] . '</option><option value="' . phpbb_gallery_album::STATUS_LOCKED . '"' . ($album_data['album_status'] == phpbb_gallery_album::STATUS_LOCKED ? ' selected="selected"' : '') . '>' . $user->lang['LOCKED'] . '</option>'; $sql = 'SELECT album_id FROM ' . GALLERY_ALBUMS_TABLE . ' WHERE album_type = ' . phpbb_gallery_album::TYPE_UPLOAD . ' AND album_user_id = ' . phpbb_gallery_album::PUBLIC_ALBUM . "\n\t\t\t\t\t\tAND album_id <> {$album_id}"; $result = $db->sql_query_limit($sql, 1); $uploadable_album_exists = false; if ($db->sql_fetchrow($result)) { $uploadable_album_exists = true; } $db->sql_freeresult($result); // Subalbum move options if ($action == 'edit' && in_array($album_data['album_type'], array(phpbb_gallery_album::TYPE_UPLOAD, phpbb_gallery_album::TYPE_CONTEST))) { $subalbums_id = array(); $subalbums = phpbb_gallery_album::get_branch(phpbb_gallery_album::PUBLIC_ALBUM, $album_id, 'children'); foreach ($subalbums as $row) { $subalbums_id[] = $row['album_id']; } $albums_list = phpbb_gallery_album::get_albumbox(true, '', $album_data['parent_id'], false, $subalbums_id); if ($uploadable_album_exists) { $template->assign_vars(array('S_MOVE_ALBUM_OPTIONS' => phpbb_gallery_album::get_albumbox(true, '', $album_data['parent_id'], false, $subalbums_id, phpbb_gallery_album::PUBLIC_ALBUM, phpbb_gallery_album::TYPE_UPLOAD))); } $template->assign_vars(array('S_HAS_SUBALBUMS' => $album_data['right_id'] - $album_data['left_id'] > 1 ? true : false, 'S_ALBUMS_LIST' => $albums_list)); } elseif ($uploadable_album_exists) { $template->assign_vars(array('S_MOVE_ALBUM_OPTIONS' => phpbb_gallery_album::get_albumbox(true, '', $album_data['parent_id'], false, $album_id, 0, phpbb_gallery_album::TYPE_UPLOAD))); } /* if (strlen($album_data['album_password']) == 32) { $errors[] = $user->lang['ALBUM_PASSWORD_OLD']; } */ $template->assign_vars(array('S_EDIT_ALBUM' => true, 'S_ERROR' => sizeof($errors) ? true : false, 'S_PARENT_ID' => $this->parent_id, 'S_ALBUM_PARENT_ID' => $album_data['parent_id'], 'S_ADD_ACTION' => $action == 'add' ? true : false, 'U_BACK' => $this->u_action . '&parent_id=' . $this->parent_id, 'U_EDIT_ACTION' => $this->u_action . "&parent_id={$this->parent_id}&action={$action}&a={$album_id}", 'L_COPY_PERMISSIONS_EXPLAIN' => $user->lang['COPY_PERMISSIONS_' . strtoupper($action) . '_EXPLAIN'], 'L_TITLE' => $user->lang[$this->page_title], 'ERROR_MSG' => sizeof($errors) ? implode('<br />', $errors) : '', 'ALBUM_NAME' => $album_data['album_name'], 'ALBUM_IMAGE' => $album_data['album_image'], 'ALBUM_IMAGE_SRC' => $album_data['album_image'] ? phpbb_gallery_url::path('phpbb') . $album_data['album_image'] : '', 'ALBUM_DESC' => $album_desc_data['text'], 'S_DESC_BBCODE_CHECKED' => $album_desc_data['allow_bbcode'] ? true : false, 'S_DESC_SMILIES_CHECKED' => $album_desc_data['allow_smilies'] ? true : false, 'S_DESC_URLS_CHECKED' => $album_desc_data['allow_urls'] ? true : false, 'S_ALBUM_TYPE_OPTIONS' => $album_type_options, 'S_STATUS_OPTIONS' => $statuslist, 'S_PARENT_OPTIONS' => $parents_list, 'S_ALBUM_OPTIONS' => phpbb_gallery_album::get_albumbox(true, '', $action == 'add' ? $album_data['parent_id'] : false, false, $action == 'edit' ? $album_data['album_id'] : false), 'S_ALBUM_ORIG_UPLOAD' => isset($old_album_type) && $old_album_type == phpbb_gallery_album::TYPE_UPLOAD ? true : false, 'S_ALBUM_ORIG_CAT' => isset($old_album_type) && $old_album_type == phpbb_gallery_album::TYPE_CAT ? true : false, 'S_ALBUM_ORIG_CONTEST' => isset($old_album_type) && $old_album_type == phpbb_gallery_album::TYPE_CONTEST ? true : false, 'S_ALBUM_UPLOAD' => $album_data['album_type'] == phpbb_gallery_album::TYPE_UPLOAD ? true : false, 'S_ALBUM_CAT' => $album_data['album_type'] == phpbb_gallery_album::TYPE_CAT ? true : false, 'S_ALBUM_CONTEST' => $album_data['album_type'] == phpbb_gallery_album::TYPE_CONTEST ? true : false, 'ALBUM_UPLOAD' => phpbb_gallery_album::TYPE_UPLOAD, 'ALBUM_CAT' => phpbb_gallery_album::TYPE_CAT, 'ALBUM_CONTEST' => phpbb_gallery_album::TYPE_CONTEST, 'S_CAN_COPY_PERMISSIONS' => true, 'S_ALBUM_WATERMARK' => $album_data['album_watermark'] ? true : false, 'ALBUM_SORT_KEY_OPTIONS' => $album_sort_key_options, 'ALBUM_SORT_DIR_OPTIONS' => $album_sort_dir_options, 'S_DISPLAY_SUBALBUM_LIST' => $album_data['display_subalbum_list'] ? true : false, 'S_DISPLAY_ON_INDEX' => $album_data['display_on_index'] ? true : false, 'S_DISPLAY_IN_RRC' => $album_data['display_in_rrc'] ? true : false, 'S_CONTEST_START' => $user->format_date($contest_data['contest_start'], 'Y-m-d H:i'), 'CONTEST_RATING' => $user->format_date($contest_data['contest_start'] + $contest_data['contest_rating'], 'Y-m-d H:i'), 'CONTEST_END' => $user->format_date($contest_data['contest_start'] + $contest_data['contest_end'], 'Y-m-d H:i'))); return; break; case 'delete': if (!$album_id) { trigger_error($user->lang['NO_ALBUM'] . adm_back_link($this->u_action . '&parent_id=' . $this->parent_id), E_USER_WARNING); } $album_data = phpbb_gallery_album::get_info($album_id); $subalbums_id = array(); $subalbums = phpbb_gallery_album::get_branch(phpbb_gallery_album::PUBLIC_ALBUM, $album_id, 'children'); foreach ($subalbums as $row) { $subalbums_id[] = $row['album_id']; } $albums_list = phpbb_gallery_album::get_albumbox(true, '', $album_data['parent_id'], false, $subalbums_id); $sql = 'SELECT album_id FROM ' . GALLERY_ALBUMS_TABLE . ' WHERE album_type = ' . phpbb_gallery_album::TYPE_UPLOAD . "\n\t\t\t\t\t\tAND album_id <> {$album_id}\n\t\t\t\t\t\tAND album_user_id = " . phpbb_gallery_album::PUBLIC_ALBUM; $result = $db->sql_query_limit($sql, 1); if ($db->sql_fetchrow($result)) { $template->assign_vars(array('S_MOVE_ALBUM_OPTIONS' => phpbb_gallery_album::get_albumbox(true, '', $album_data['parent_id'], false, $subalbums_id, phpbb_gallery_album::PUBLIC_ALBUM, phpbb_gallery_album::TYPE_UPLOAD))); } $db->sql_freeresult($result); $parent_id = $this->parent_id == $album_id ? 0 : $this->parent_id; $template->assign_vars(array('S_DELETE_ALBUM' => true, 'U_ACTION' => $this->u_action . "&parent_id={$parent_id}&action=delete&a=" . $album_id, 'U_BACK' => $this->u_action . '&parent_id=' . $this->parent_id, 'ALBUM_NAME' => $album_data['album_name'], 'S_ALBUM_POST' => in_array($album_data['album_type'], array(phpbb_gallery_album::TYPE_UPLOAD, phpbb_gallery_album::TYPE_CONTEST)) ? true : false, 'S_HAS_SUBALBUMS' => $album_data['right_id'] - $album_data['left_id'] > 1 ? true : false, 'S_ALBUMS_LIST' => $albums_list, 'S_ERROR' => sizeof($errors) ? true : false, 'ERROR_MSG' => sizeof($errors) ? implode('<br />', $errors) : '')); return; break; } // Default management page if (!$this->parent_id) { $navigation = $user->lang['GALLERY_INDEX']; } else { $navigation = '<a href="' . $this->u_action . '">' . $user->lang['GALLERY_INDEX'] . '</a>'; $albums_nav = phpbb_gallery_album::get_branch(phpbb_gallery_album::PUBLIC_ALBUM, $this->parent_id, 'parents', 'descending'); foreach ($albums_nav as $row) { if ($row['album_id'] == $this->parent_id) { $navigation .= ' -> ' . $row['album_name']; } else { $navigation .= ' -> <a href="' . $this->u_action . '&parent_id=' . $row['album_id'] . '">' . $row['album_name'] . '</a>'; } } } // Jumpbox $album_box = phpbb_gallery_album::get_albumbox(true, '', $this->parent_id, false, false); if ($action == 'sync' || $action == 'sync_album') { $template->assign_var('S_RESYNCED', true); } $sql = 'SELECT * FROM ' . GALLERY_ALBUMS_TABLE . "\n\t\t\tWHERE parent_id = {$this->parent_id}\n\t\t\t\tAND album_user_id = " . phpbb_gallery_album::PUBLIC_ALBUM . ' ORDER BY left_id'; $result = $db->sql_query($sql); if ($row = $db->sql_fetchrow($result)) { do { $album_type = $row['album_type']; if ($row['album_status'] == phpbb_gallery_album::STATUS_LOCKED) { $folder_image = '<img src="images/icon_folder_lock.gif" alt="' . $user->lang['LOCKED'] . '" />'; } else { $folder_image = $row['left_id'] + 1 != $row['right_id'] ? '<img src="images/icon_subfolder.gif" alt="' . $user->lang['SUBALBUM'] . '" />' : '<img src="images/icon_folder.gif" alt="' . $user->lang['FOLDER'] . '" />'; } $url = $this->u_action . "&parent_id={$this->parent_id}&a={$row['album_id']}"; $template->assign_block_vars('albums', array('FOLDER_IMAGE' => $folder_image, 'ALBUM_IMAGE' => $row['album_image'] ? '<img src="' . phpbb_gallery_url::path('phpbb') . $row['album_image'] . '" alt="" />' : '', 'ALBUM_IMAGE_SRC' => $row['album_image'] ? phpbb_gallery_url::path('phpbb') . $row['album_image'] : '', 'ALBUM_NAME' => $row['album_name'], 'ALBUM_DESCRIPTION' => generate_text_for_display($row['album_desc'], $row['album_desc_uid'], $row['album_desc_bitfield'], $row['album_desc_options']), 'ALBUM_IMAGES' => $row['album_images'], 'S_ALBUM_POST' => $album_type != phpbb_gallery_album::TYPE_CAT ? true : false, 'U_ALBUM' => $this->u_action . '&parent_id=' . $row['album_id'], 'U_MOVE_UP' => $url . '&action=move_up', 'U_MOVE_DOWN' => $url . '&action=move_down', 'U_EDIT' => $url . '&action=edit', 'U_DELETE' => $url . '&action=delete', 'U_SYNC' => $url . '&action=sync')); } while ($row = $db->sql_fetchrow($result)); } else { if ($this->parent_id) { $row = get_album_info($this->parent_id); $url = $this->u_action . '&parent_id=' . $this->parent_id . '&a=' . $row['album_id']; $template->assign_vars(array('S_NO_ALBUMS' => true, 'U_EDIT' => $url . '&action=edit', 'U_DELETE' => $url . '&action=delete', 'U_SYNC' => $url . '&action=sync')); } } $db->sql_freeresult($result); $template->assign_vars(array('ERROR_MSG' => sizeof($errors) ? implode('<br />', $errors) : '', 'NAVIGATION' => $navigation, 'ALBUM_BOX' => $album_box, 'U_SEL_ACTION' => $this->u_action, 'U_ACTION' => $this->u_action . '&parent_id=' . $this->parent_id, 'U_PROGRESS_BAR' => $this->u_action . '&action=progress_bar', 'UA_PROGRESS_BAR' => addslashes($this->u_action . '&action=progress_bar'))); }
function manage_albums() { global $cache, $db, $template, $user; $parent_id = request_var('parent_id', phpbb_gallery::$user->get_data('personal_album_id')); phpbb_gallery_album::check_user($parent_id); $sql = 'SELECT COUNT(album_id) albums FROM ' . GALLERY_ALBUMS_TABLE . ' WHERE album_user_id = ' . $user->data['user_id']; $result = $db->sql_query($sql); $albums = $db->sql_fetchfield('albums'); $db->sql_freeresult($result); $template->assign_vars(array('S_MANAGE_SUBALBUMS' => true, 'U_CREATE_SUBALBUM' => phpbb_gallery::$auth->acl_check('album_unlimited', phpbb_gallery_auth::OWN_ALBUM) || phpbb_gallery::$auth->acl_check('album_count', phpbb_gallery_auth::OWN_ALBUM) > $albums ? $this->u_action . '&action=create' . ($parent_id ? '&parent_id=' . $parent_id : '') : '', 'L_TITLE' => $user->lang['MANAGE_SUBALBUMS'])); if (!$parent_id) { $navigation = $user->lang['PERSONAL_ALBUM']; } else { $navigation = $user->lang['PERSONAL_ALBUM']; $albums_nav = phpbb_gallery_album::get_branch($user->data['user_id'], $parent_id, 'parents', 'descending'); foreach ($albums_nav as $row) { if ($row['album_id'] == $parent_id) { $navigation .= ' » ' . $row['album_name'] . '</a>'; } else { $navigation .= ' » <a href="' . $this->u_action . '&action=manage&parent_id=' . $row['album_id'] . '">' . $row['album_name'] . '</a>'; } } } $album = array(); $sql = 'SELECT * FROM ' . GALLERY_ALBUMS_TABLE . ' WHERE parent_id = ' . $parent_id . ' AND album_user_id = ' . $user->data['user_id'] . ' ORDER BY left_id ASC'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $album[] = $row; } $db->sql_freeresult($result); for ($i = 0, $end = count($album); $i < $end; $i++) { $folder_img = $album[$i]['left_id'] + 1 != $album[$i]['right_id'] ? 'forum_read_subforum' : 'forum_read'; $template->assign_block_vars('album_row', array('FOLDER_IMAGE' => $user->img($folder_img, $album[$i]['album_name'], false, '', 'src'), 'U_ALBUM' => $this->u_action . '&action=manage&parent_id=' . $album[$i]['album_id'], 'ALBUM_NAME' => $album[$i]['album_name'], 'ALBUM_DESCRIPTION' => generate_text_for_display($album[$i]['album_desc'], $album[$i]['album_desc_uid'], $album[$i]['album_desc_bitfield'], $album[$i]['album_desc_options']), 'U_MOVE_UP' => $this->u_action . '&action=move&move=move_up&album_id=' . $album[$i]['album_id'], 'U_MOVE_DOWN' => $this->u_action . '&action=move&move=move_down&album_id=' . $album[$i]['album_id'], 'U_EDIT' => $this->u_action . '&action=edit&album_id=' . $album[$i]['album_id'], 'U_DELETE' => $this->u_action . '&action=delete&album_id=' . $album[$i]['album_id'])); } $template->assign_vars(array('NAVIGATION' => $navigation, 'S_ALBUM' => $parent_id, 'U_GOTO' => phpbb_gallery_url::append_sid('album', 'album_id=' . $parent_id), 'U_EDIT' => $this->u_action . '&action=edit&album_id=' . $parent_id, 'U_DELETE' => $this->u_action . '&action=delete&album_id=' . $parent_id, 'U_UPLOAD' => phpbb_gallery_url::append_sid('posting', 'mode=image&submode=upload&album_id=' . $parent_id), 'ICON_MOVE_DOWN' => '<img src="' . phpbb_gallery_url::path('images') . 'icon_down.gif" alt="" />', 'ICON_MOVE_DOWN_DISABLED' => '<img src="' . phpbb_gallery_url::path('images') . 'icon_down_disabled.gif" alt="" />', 'ICON_MOVE_UP' => '<img src="' . phpbb_gallery_url::path('images') . 'icon_up.gif" alt="" />', 'ICON_MOVE_UP_DISABLED' => '<img src="' . phpbb_gallery_url::path('images') . 'icon_up_disabled.gif" alt="" />', 'ICON_EDIT' => '<img src="' . phpbb_gallery_url::path('images') . 'icon_edit.gif" alt="" />', 'ICON_DELETE' => '<img src="' . phpbb_gallery_url::path('images') . 'icon_delete.gif" alt="" />')); }
$image_tools = new phpbb_gallery_image_tools(); $image_tools->set_image_options(phpbb_gallery_config::get('max_filesize'), phpbb_gallery_config::get('max_height'), phpbb_gallery_config::get('max_width')); $image_tools->set_image_data(phpbb_gallery_url::path('upload') . $image_data['image_filename']); if ($image_data['image_has_exif'] != phpbb_gallery_constants::EXIF_UNAVAILABLE && $image_data['image_has_exif'] != phpbb_gallery_constants::EXIF_DBSAVED) { // Store exif-data to database if there are any and we didn't already do that. $image_tools->read_exif_data(); $sql_ary['image_exif_data'] = $image_tools->exif_data_serialized; $sql_ary['image_has_exif'] = $image_tools->exif_data_exist; } // Rotate the image $image_tools->rotate_image($rotate, phpbb_gallery_config::get('allow_resize')); if ($image_tools->rotated) { $image_tools->write_image($image_tools->image_source, phpbb_gallery_config::get('jpg_quality'), true); } @unlink(phpbb_gallery_url::path('cache') . $image_data['image_filename']); @unlink(phpbb_gallery_url::path('medium') . $image_data['image_filename']); } $sql = 'UPDATE ' . GALLERY_IMAGES_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE image_id = ' . $image_id; $db->sql_query($sql); if ($move_to_personal && $personal_album_id) { phpbb_gallery_album::update_info($album_data['album_id']); phpbb_gallery_album::update_info($personal_album_id); } if ($user->data['user_id'] != $image_data['image_user_id']) { add_log('gallery', $image_data['image_album_id'], $image_id, 'LOG_GALLERY_EDITED', $image_name); } } $message_parser = new parse_message(); $message_parser->message = $image_data['image_desc'];
$image_tools->set_image_data(phpbb_gallery_url::path('upload') . $image_data['image_filename']); $image_tools->read_image(true); $image_size['file'] = $image_tools->image_size['file']; $image_size['width'] = $image_tools->image_size['width']; $image_size['height'] = $image_tools->image_size['height']; $image_tools->set_image_data($image_source); if ($image_size['width'] > $resize_width || $image_size['height'] > $resize_height) { $put_details = phpbb_gallery_config::get('thumbnail_infoline') && $mode == 'thumbnail' ? true : false; $image_tools->create_thumbnail($resize_width, $resize_height, $put_details, phpbb_gallery_constants::THUMBNAIL_INFO_HEIGHT, $image_size); } if (phpbb_gallery_config::get($mode . '_cache')) { $image_tools->write_image($image_source, $mode == 'thumbnail' ? phpbb_gallery_config::get('thumbnail_quality') : phpbb_gallery_config::get('jpg_quality'), false); if ($mode == 'thumbnail') { $image_data['filesize_cache'] = @filesize($image_source); $sql_ary = array('filesize_cache' => $image_data['filesize_cache']); } else { $image_data['filesize_medium'] = @filesize($image_source); $sql_ary = array('filesize_medium' => $image_data['filesize_medium']); } $sql = 'UPDATE ' . GALLERY_IMAGES_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE ' . $db->sql_in_set('image_id', $image_id); $db->sql_query($sql); } } } // Watermark if (phpbb_gallery_config::get('watermark_enabled') && $album_data['album_watermark'] && !phpbb_gallery::$auth->acl_check('i_watermark', $album_id, $album_data['album_user_id']) && $possible_watermark) { $filesize_var = ''; $image_tools->watermark_image(phpbb_gallery_url::path('phpbb') . phpbb_gallery_config::get('watermark_source'), phpbb_gallery_config::get('watermark_position'), phpbb_gallery_config::get('watermark_height'), phpbb_gallery_config::get('watermark_width')); } $image_tools->send_image_to_browser();
$legend = implode(', ', $legend); } // Generate birthday list if required ... $birthday_list = ''; if ($config['allow_birthdays'] && phpbb_gallery_config::get('disp_birthdays')) { // Copied from phpbb::index.php $now = getdate(time() + $user->timezone + $user->dst - date('Z')); $sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday FROM ' . USERS_TABLE . ' u LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)\n\t\tWHERE (b.ban_id IS NULL\n\t\t\tOR b.ban_exclude = 1)\n\t\t\tAND u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%'\n\t\t\tAND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $birthday_list .= ($birthday_list != '' ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']); if ($age = (int) substr($row['user_birthday'], -4)) { $birthday_list .= ' (' . ($now['year'] - $age) . ')'; } } $db->sql_freeresult($result); } $first_char = request_var('first_char', ''); $s_char_options = '<option value=""' . (!$first_char ? ' selected="selected"' : '') . '>' . $user->lang['ALL'] . '</option>'; // Loop the ASCII: a-z for ($i = 97; $i < 123; $i++) { $s_char_options .= '<option value="' . chr($i) . '"' . ($first_char == chr($i) ? ' selected="selected"' : '') . '>' . chr($i - 32) . '</option>'; } $s_char_options .= '<option value="other"' . ($first_char == 'other' ? ' selected="selected"' : '') . '>#</option>'; // Output page $template->assign_vars(array('TOTAL_IMAGES' => phpbb_gallery_config::get('disp_statistic') ? $user->lang('TOTAL_IMAGES_SPRINTF', $total_images) : '', 'TOTAL_COMMENTS' => phpbb_gallery_config::get('allow_comments') ? sprintf($user->lang[$l_total_comment_s], $total_comments) : '', 'TOTAL_PGALLERIES' => phpbb_gallery::$auth->acl_check('a_list', phpbb_gallery_auth::PERSONAL_ALBUM) ? sprintf($user->lang[$l_total_pgallery_s], $total_pgalleries) : '', 'NEWEST_PGALLERIES' => $total_pgalleries ? sprintf($user->lang['NEWEST_PGALLERY'], get_username_string('full', phpbb_gallery_config::get('newest_pega_user_id'), phpbb_gallery_config::get('newest_pega_username'), phpbb_gallery_config::get('newest_pega_user_colour'), '', phpbb_gallery_url::append_sid('album', 'album_id=' . phpbb_gallery_config::get('newest_pega_album_id')))) : '', 'S_DISP_LOGIN' => phpbb_gallery_config::get('disp_login'), 'S_DISP_WHOISONLINE' => phpbb_gallery_config::get('disp_whoisonline'), 'LEGEND' => $legend, 'BIRTHDAY_LIST' => $birthday_list, 'S_LOGIN_ACTION' => phpbb_gallery_url::append_sid('phpbb', 'ucp', 'mode=login&redirect=' . urlencode(phpbb_gallery_url::path('relative') . "index.{$phpEx}" . ($mode == 'personal' ? '?mode=personal' : ''))), 'S_DISPLAY_BIRTHDAY_LIST' => phpbb_gallery_config::get('disp_birthdays') ? true : false, 'U_YOUR_PERSONAL_GALLERY' => phpbb_gallery::$auth->acl_check('i_upload', phpbb_gallery_auth::OWN_ALBUM) ? phpbb_gallery::$user->get_data('personal_album_id') ? phpbb_gallery_url::append_sid('album', 'album_id=' . phpbb_gallery::$user->get_data('personal_album_id')) : phpbb_gallery_url::append_sid('phpbb', 'ucp', 'i=gallery&mode=manage_albums') : '', 'U_USERS_PERSONAL_GALLERIES' => phpbb_gallery::$auth->acl_check('a_list', phpbb_gallery_auth::PERSONAL_ALBUM) ? phpbb_gallery_url::append_sid('index', 'mode=personal') : '', 'S_USERS_PERSONAL_GALLERIES' => !phpbb_gallery_config::get('pegas_index_album') && phpbb_gallery::$auth->acl_check('a_list', phpbb_gallery_auth::PERSONAL_ALBUM) ? true : false, 'S_CHAR_OPTIONS' => $s_char_options, 'U_MARK_ALBUMS' => $user->data['is_registered'] ? phpbb_gallery_url::append_sid('index', 'hash=' . generate_link_hash('global') . '&mark=albums') : '', 'U_G_SEARCH_COMMENTED' => phpbb_gallery_config::get('allow_comments') ? phpbb_gallery_url::append_sid('search', 'search_id=commented') : '', 'U_G_SEARCH_CONTESTS' => phpbb_gallery_config::get('allow_rates') && phpbb_gallery_config::get('contests_ended') ? phpbb_gallery_url::append_sid('search', 'search_id=contests') : '', 'U_G_SEARCH_RANDOM' => phpbb_gallery_url::append_sid('search', 'search_id=random'), 'U_G_SEARCH_RECENT' => phpbb_gallery_url::append_sid('search', 'search_id=recent'), 'U_G_SEARCH_SELF' => phpbb_gallery_url::append_sid('search', 'search_id=egosearch'), 'U_G_SEARCH_TOPRATED' => phpbb_gallery_config::get('allow_rates') ? phpbb_gallery_url::append_sid('search', 'search_id=toprated') : '')); page_header($user->lang['GALLERY'] . ($mode == 'personal' ? ' - ' . $user->lang['PERSONAL_ALBUMS'] : '')); $template->set_filenames(array('body' => 'gallery/index_body.html')); page_footer();
/** * BBCode-Template */ function bbcode_tpl($value) { $gallery_url = phpbb_gallery_url::path('full'); if ($value == 'highslide' && in_array('highslide', phpbb_gallery_plugins::$plugins)) { $bbcode_tpl = '<a class="highslide" onclick="return hs.expand(this)" href="' . $gallery_url . 'image.php?image_id={NUMBER}"><img src="' . $gallery_url . 'image.php?mode=thumbnail&image_id={NUMBER}" alt="{NUMBER}" /></a>'; } else { if ($value == 'lytebox' && in_array('lytebox', phpbb_gallery_plugins::$plugins)) { $bbcode_tpl = '<a class="image-resize" rel="lytebox" href="' . $gallery_url . 'image.php?image_id={NUMBER}"><img src="' . $gallery_url . 'image.php?mode=thumbnail&image_id={NUMBER}" alt="{NUMBER}" /></a>'; } else { if ($value == 'image_page') { $bbcode_tpl = '<a href="' . $gallery_url . 'image_page.php?image_id={NUMBER}"><img src="' . $gallery_url . 'image.php?mode=thumbnail&image_id={NUMBER}" alt="{NUMBER}" /></a>'; } else { $bbcode_tpl = '<a href="' . $gallery_url . 'image.php?image_id={NUMBER}"><img src="' . $gallery_url . 'image.php?mode=thumbnail&image_id={NUMBER}" alt="{NUMBER}" /></a>'; } } } return $bbcode_tpl; }