/** * Generate link to image * * @param string $content what's in the link: image_name, thumbnail, fake_thumbnail, medium or lastimage_icon * @param string $mode where does the link leed to: highslide, lytebox, lytebox_slide_show, image_page, image, none * @param int $image_id * @param string $image_name * @param int $album_id * @param bool $is_gif we need to know whether we display a gif, so we can use a better medium-image * @param bool $count shall the image-link be counted as view? (Set to false from image_page.php to deny double increment) * @param string $additional_parameters additional parameters for the url, (starting with &) */ public static function generate_link($content, $mode, $image_id, $image_name, $album_id, $is_gif = false, $count = true, $additional_parameters = '') { global $phpEx, $user; $image_page_url = phpbb_gallery_url::append_sid('image_page', "album_id={$album_id}&image_id={$image_id}{$additional_parameters}"); $image_url = phpbb_gallery_url::append_sid('image', "album_id={$album_id}&image_id={$image_id}{$additional_parameters}" . (!$count ? '&view=no_count' : '')); $thumb_url = phpbb_gallery_url::append_sid('image', "mode=thumbnail&album_id={$album_id}&image_id={$image_id}{$additional_parameters}"); $medium_url = phpbb_gallery_url::append_sid('image', "mode=medium&album_id={$album_id}&image_id={$image_id}{$additional_parameters}"); switch ($content) { case 'image_name': $shorten_image_name = utf8_strlen(htmlspecialchars_decode($image_name)) > phpbb_gallery_config::get('shortnames') + 3 ? utf8_substr(htmlspecialchars_decode($image_name), 0, phpbb_gallery_config::get('shortnames')) . '...' : $image_name; $content = '<span style="font-weight: bold;">' . $shorten_image_name . '</span>'; break; case 'image_name_unbold': $shorten_image_name = utf8_strlen(htmlspecialchars_decode($image_name)) > phpbb_gallery_config::get('shortnames') + 3 ? utf8_substr(htmlspecialchars_decode($image_name), 0, phpbb_gallery_config::get('shortnames')) . '...' : $image_name; $content = $shorten_image_name; break; case 'thumbnail': $content = '<img src="{U_THUMBNAIL}" alt="{IMAGE_NAME}" title="{IMAGE_NAME}" />'; $content = str_replace(array('{U_THUMBNAIL}', '{IMAGE_NAME}'), array($thumb_url, $image_name), $content); break; case 'fake_thumbnail': $content = '<img src="{U_THUMBNAIL}" alt="{IMAGE_NAME}" title="{IMAGE_NAME}" style="max-width: {FAKE_THUMB_SIZE}px; max-height: {FAKE_THUMB_SIZE}px;" />'; $content = str_replace(array('{U_THUMBNAIL}', '{IMAGE_NAME}', '{FAKE_THUMB_SIZE}'), array($thumb_url, $image_name, phpbb_gallery_config::get('mini_thumbnail_size')), $content); break; case 'medium': $content = '<img src="{U_MEDIUM}" alt="{IMAGE_NAME}" title="{IMAGE_NAME}" />'; $content = str_replace(array('{U_MEDIUM}', '{IMAGE_NAME}'), array($medium_url, $image_name), $content); //cheat for animated/transparent gifs if ($is_gif) { $content = '<img src="{U_MEDIUM}" alt="{IMAGE_NAME}" title="{IMAGE_NAME}" style="max-width: {MEDIUM_WIDTH_SIZE}px; max-height: {MEDIUM_HEIGHT_SIZE}px;" />'; $content = str_replace(array('{U_MEDIUM}', '{IMAGE_NAME}', '{MEDIUM_HEIGHT_SIZE}', '{MEDIUM_WIDTH_SIZE}'), array($image_url, $image_name, phpbb_gallery_config::get('medium_height'), phpbb_gallery_config::get('medium_width')), $content); } break; case 'lastimage_icon': $content = $user->img('icon_topic_latest', 'VIEW_LATEST_IMAGE'); break; } switch ($mode) { case 'image_page': $url = $image_page_url; $tpl = '<a href="{IMAGE_URL}" title="{IMAGE_NAME}">{CONTENT}</a>'; break; case 'image_page_next': $url = $image_page_url; $tpl = '<a href="{IMAGE_URL}" title="{IMAGE_NAME}" class="right-box right">{CONTENT}</a>'; break; case 'image_page_prev': $url = $image_page_url; $tpl = '<a href="{IMAGE_URL}" title="{IMAGE_NAME}" class="left-box left">{CONTENT}</a>'; break; case 'image': $url = $image_url; $tpl = '<a href="{IMAGE_URL}" title="{IMAGE_NAME}">{CONTENT}</a>'; break; case 'none': $url = $image_page_url; $tpl = '{CONTENT}'; break; default: $url = $image_url; $tpl = phpbb_gallery_plugins::generate_image_link($mode); break; } return str_replace(array('{IMAGE_URL}', '{IMAGE_NAME}', '{CONTENT}'), array($url, $image_name, $content), $tpl); }