function isAllowedTo($permission = '') { global $mybb, $lang; $permTitle = 'cannot_ezgallery_' . $permission; if (allowedTo($permission) == false) { fatal_error2($permTitle); } }
function ViewPicture() { global $context, $db, $mybb, $gallerySettings, $lang, $config, $parser, $parser_options, $plugins; isAllowedTo('view'); // Get the picture ID $id = intval($_REQUEST['id']); if (empty($id)) { fatal_error2($lang->gallery_error_no_pic_selected, false); } GalleryTopButtons(); // Get the picture information $dbresult = $db->query("\n SELECT \n \tp.ID_PICTURE, p.width, p.height, p.allowcomments, p.ID_CAT, p.keywords, p.commenttotal, p.filesize, p.filename, p.approved, \n \tp.views, p.title, p.ID_MEMBER, m.username, p.date, p.description, c.title CATNAME \n FROM " . TABLE_PREFIX . "gallery_pic as p\n LEFT JOIN " . TABLE_PREFIX . "gallery_cat AS c ON (c.ID_CAT= p.ID_CAT) \n LEFT JOIN " . TABLE_PREFIX . "users AS m ON (p.ID_MEMBER = m.uid) \n WHERE p.ID_PICTURE = {$id} LIMIT 1"); $row = $db->fetch_array($dbresult); add_breadcrumb(htmlspecialchars_uni($row['CATNAME']), 'ezgallery.php?cat=' . $row['ID_CAT']); add_breadcrumb(htmlspecialchars_uni($row['title']), 'ezgallery.php?sa=view&id=' . $id); // Checked if they are allowed to view an unapproved picture. if ($row['approved'] == 0 && $mybb->user['uid'] != $row['ID_MEMBER']) { if (!allowedTo('manage')) { fatal_error2($lang->gallery_error_pic_notapproved, false); } } $plugins->run_hooks("gallery_view_picture_start"); $context['linktree'][] = array('url' => 'ezgallery.php?cat=' . $row['ID_CAT'], 'name' => $row['CATNAME']); // Gallery picture information $context['gallery_pic'] = array('ID_PICTURE' => $row['ID_PICTURE'], 'ID_MEMBER' => $row['ID_MEMBER'], 'commenttotal' => $row['commenttotal'], 'views' => $row['views'], 'title' => $row['title'], 'description' => $row['description'], 'filesize' => $row['filesize'], 'filename' => $row['filename'], 'width' => $row['width'], 'height' => $row['height'], 'allowcomments' => $row['allowcomments'], 'ID_CAT' => $row['ID_CAT'], 'date' => my_date($mybb->settings['dateformat'], $row['date']), 'keywords' => $row['keywords'], 'username' => $row['username'], 'username' => $row['username']); // Update the number of views. $dbresult = $db->query("UPDATE " . TABLE_PREFIX . "gallery_pic\n\t\tSET views = views + 1 WHERE ID_PICTURE = {$id} LIMIT 1"); $context['page_title'] = $context['gallery_pic']['title']; gallery_header(); if (!empty($gallerySettings['gallery_who_viewing'])) { $context['can_moderate_forum'] = allowedTo('manage'); // Start out with no one at all viewing it. $context['view_members'] = array(); $context['view_members_list'] = array(); $context['view_num_hidden'] = 0; $timesearch = TIME_NOW - $mybb->settings['wolcutoffmins'] * 60; // Search for members who have this picture id set in their GET data. $request = $db->query("SELECT\n\t\t\t\t\t\tlo.uid, lo.time, mem.username, mem.invisible,\n\t\t\t\t\t\tmg.namestyle, mg.gid, mg.title\n\t\t\t\t\tFROM (" . TABLE_PREFIX . "sessions AS lo)\n\t\t\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "users AS mem ON (mem.uid = lo.uid)\n\t\t\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "usergroups AS mg ON (mem.usergroup = mg.gid)\n\t\t\t\t\tWHERE INSTR(lo.location, 'ezgallery.php?action=view&id={$id}') AND lo.time > {$timesearch}"); while ($row = $db->fetch_array($request)) { if (empty($row['uid'])) { continue; } if (!empty($row['namestyle'])) { $link = '<a href="member.php?action=profile&uid=' . $row['uid'] . '">' . str_replace("{username}", $row['username'], $row['namestyle']) . '</a>'; } else { $link = '<a href="member.php?action=profile&uid=' . $row['uid'] . '">' . $row['username'] . '</a>'; } // Add them both to the list and to the more detailed list. if (empty($row['invisible'])) { $context['view_members_list'][$row['time'] . $row['username']] = !empty($row['invisible']) ? '<i>' . $link . '</i>' : $link; } $context['view_members'][$row['time'] . $row['username']] = array('id' => $row['uid'], 'username' => $row['username'], 'name' => $row['username'], 'group' => $row['gid'], 'href' => 'member.php?action=profile&uid=' . $row['uid'], 'link' => $link, 'hidden' => !empty($row['invisible'])); if (!empty($row['invisible'])) { $context['view_num_hidden']++; } } // The number of guests is equal to the rows minus the ones we actually used ;). $context['view_num_guests'] = $db->num_rows($request) - count($context['view_members']); // Sort the list. krsort($context['view_members']); krsort($context['view_members_list']); } $dbresult = $db->query("\n\t\tSELECT \n\t\t\tc.ID_PICTURE, c.ID_COMMENT, c.date, c.comment, c.ID_MEMBER, m.postnum, m.username, m.avatar \n\t\t\tFROM " . TABLE_PREFIX . "gallery_comment as c\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "users AS m ON (c.ID_MEMBER = m.uid) \n\t\tWHERE c.ID_PICTURE = " . $context['gallery_pic']['ID_PICTURE'] . " ORDER BY c.ID_COMMENT DESC"); $context['gallery_comment_list'] = array(); while ($row = $db->fetch_array($dbresult)) { $context['gallery_comment_list'][] = $row; } $context['gallery_comment_count'] = count($context['gallery_comment_list']); $plugins->run_hooks("gallery_view_picture_finish"); // Load permissions $g_manage = allowedTo('manage'); $g_edit_own = allowedTo('edit'); $g_delete_own = allowedTo('delete'); // Keywords $keywords = explode(' ', $context['gallery_pic']['keywords']); $keywordscount = count($keywords); echo '<table border="0" cellspacing="0" cellpadding="4" align="center" width="90%" class="tborder" > <tr class="tcat"> <td align="center"> </td> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" align="center" width="90%"> <tr> <td style="padding-right: 1ex;" align="right" > <table cellpadding="0" cellspacing="0" align="right"> <tr> ', DoToolBarStrip($context['gallery']['buttons'], 'top'), ' </tr> </table> </td> </tr> </table> <br />'; echo '<br /><table cellspacing="0" cellpadding="10" border="0" align="center" width="90%" class="tborder"> <tr class="tcat"> <td align="center">' . $context['gallery_pic']['title'] . '</td> </tr> <tr class="trow2"> <td align="center"><img height="' . $context['gallery_pic']['height'] . '" width="' . $context['gallery_pic']['width'] . '" src="' . $gallerySettings['gallery_url'] . $context['gallery_pic']['filename'] . '" alt="" /></td> </tr> <tr class="trow2"> <td> <b>' . $lang->gallery_form_description . ' </b>' . $parser->parse_message($context['gallery_pic']['description'], $parser_options) . ' <hr /> ' . $lang->gallery_text_picstats . '<br /> ' . $lang->gallery_text_views . $context['gallery_pic']['views'] . '<br /> ' . $lang->gallery_text_filesize . gallery_format_size($context['gallery_pic']['filesize'], 2) . '<br /> ' . $lang->gallery_text_height . ' ' . $context['gallery_pic']['height'] . ' ' . $lang->gallery_text_width . ' ' . $context['gallery_pic']['width'] . '<br /> '; if (!empty($context['gallery_pic']['keywords'])) { echo $lang->gallery_form_keywords . ' '; for ($i = 0; $i < $keywordscount; $i++) { echo '<a href="ezgallery.php?action=search2&key=' . $keywords[$i] . '">' . $keywords[$i] . '</a> '; } echo '<br />'; } if ($context['gallery_pic']['username'] != '') { echo $lang->gallery_text_postedby . '<a href="member.php?action=profile&uid=' . $context['gallery_pic']['ID_MEMBER'] . '">' . $context['gallery_pic']['username'] . '</a>' . $lang->gallery_at . $context['gallery_pic']['date'] . '<br /><br />'; } else { echo $lang->gallery_text_postedby . $lang->gallery_guest . $lang->gallery_at . $context['gallery_pic']['date'] . '<br /><br />'; } // Show image linking codes if ($gallerySettings['gallery_set_showcode_bbc_image'] || $gallerySettings['gallery_set_showcode_directlink'] || $gallerySettings['gallery_set_showcode_htmllink']) { echo '<b>', $lang->gallery_txt_image_linking, '</b><br /> <table border="0"> '; if ($gallerySettings['gallery_set_showcode_bbc_image']) { echo '<tr><td width="30%">', $lang->gallery_txt_bbcimage, '</td><td> <input type="text" value="[img]' . $gallerySettings['gallery_url'] . $context['gallery_pic']['filename'] . '[/img]" size="50" /></td></tr>'; } if ($gallerySettings['gallery_set_showcode_directlink']) { echo '<tr><td width="30%">', $lang->gallery_txt_directlink, '</td><td> <input type="text" value="' . $gallerySettings['gallery_url'] . $context['gallery_pic']['filename'] . '" size="50" /></td></tr>'; } if ($gallerySettings['gallery_set_showcode_htmllink']) { echo '<tr><td width="30%">', $lang->gallery_set_showcode_htmllink, '</td><td> <input type="text" value="<img src="' . $gallerySettings['gallery_url'] . $context['gallery_pic']['filename'] . '" />" size="50" /></td></tr>'; } echo '</table>'; } // Show edit picture links if allowed if ($g_manage) { echo ' <a href="' . $mybb->settings['bburl'] . '/' . $config['admin_dir'] . '/index.php?module=config/ezgallery&action=unapprove&id=' . $context['gallery_pic']['ID_PICTURE'] . '">' . $lang->gallery_text_unapprove . '</a>'; } if ($g_manage || $g_edit_own && $context['gallery_pic']['ID_MEMBER'] == $mybb->user['uid']) { echo ' <a href="ezgallery.php?action=edit&id=' . $context['gallery_pic']['ID_PICTURE'] . '">' . $lang->gallery_text_edit . '</a>'; } if ($g_manage || $g_delete_own && $context['gallery_pic']['ID_MEMBER'] == $mybb->user['uid']) { echo ' <a href="ezgallery.php?action=delete&id=' . $context['gallery_pic']['ID_PICTURE'] . '">' . $lang->gallery_text_delete . '</a>'; } // Show report picture link if (allowedTo('report')) { echo ' <a href="ezgallery.php?action=report&id=' . $context['gallery_pic']['ID_PICTURE'] . '">' . $lang->gallery_text_reportpicture . '</a>'; } echo ' </td> </tr>'; // Display who is viewing the picture. if (!empty($gallerySettings['gallery_who_viewing'])) { echo '<tr> <td align="center" class="trow2"><span class="smalltext">'; // Show just numbers...? // show the actual people viewing the topic? echo empty($context['view_members_list']) ? '0 ' . $lang->gallery_who_members : implode(', ', $context['view_members_list']) . (empty($context['view_num_hidden']) || $context['can_moderate_forum'] ? '' : ' (+ ' . $context['view_num_hidden'] . ' ' . $lang->gallery_who_hidden . ')'); // Now show how many guests are here too. echo $lang->who_and, @$context['view_num_guests'], ' ', @$context['view_num_guests'] == 1 ? $lang->guest : $lang->guests, $lang->gallery_who_viewpicture, '</span></td></tr>'; } echo ' </table><br />'; //Check if allowed to display comments for this picture if ($context['gallery_pic']['allowcomments']) { //Show comments echo '<table cellspacing="0" cellpadding="10" border="0" align="center" width="90%" class="tborder"> <tr class="tcat"> <td align="center" colspan="2">' . $lang->gallery_text_comments . '</td> </tr>'; if (allowedTo('comment')) { //Show Add Comment echo ' <tr class="tcat"><td colspan="2"> <a href="ezgallery.php?action=comment&id=' . $context['gallery_pic']['ID_PICTURE'] . '">' . $lang->gallery_text_addcomment . '</a></td> </tr>'; } // Display all user comments $comment_count = $context['gallery_comment_count']; foreach ($context['gallery_comment_list'] as $row) { echo '<tr class="trow1">'; // Display member info echo '<td width="10%" valign="top">'; if (empty($row['ID_MEMBER'])) { echo $lang->gallery_guest; } else { echo ' <a href="member.php?action=profile&uid=' . $row['ID_MEMBER'] . '">' . $row['username'] . '</a><br /> <span class="smalltext">' . $lang->gallery_text_posts . ' ' . $row['postnum'] . '</span><br />'; } // Display the users avatar if (!empty($row['avatar'])) { echo '<img src="' . $row['avatar'] . '" alt="" />'; } echo ' </td>'; // Display the comment echo '<td width="90%"><span class="smalltext">' . my_date($mybb->settings['dateformat'], $row['date']) . '</span><hr />'; echo $parser->parse_message($row['comment'], $parser_options); // Check if the user is allowed to delete the comment. if ($g_manage) { echo '<br /><a href="' . $mybb->settings['bburl'] . '/' . $config['admin_dir'] . '/index.php?module=config/ezgallery&action=delcomment&id=' . $row['ID_COMMENT'] . '">' . $lang->gallery_text_delcomment . '</a>'; } echo '</td>'; echo '</tr>'; } // Show Add Comment link again if there are more than one comment if (allowedTo('comment') && $comment_count != 0) { // Show Add Comment echo ' <tr class="tcat"> <td colspan="2"> <a href="ezgallery.php?action=comment&id=' . $context['gallery_pic']['ID_PICTURE'] . '">' . $lang->gallery_text_addcomment . '</a> </td> </tr>'; } echo '</table><br />'; } // Link back to the gallery index echo '<div align="center"><a href="ezgallery.php">' . $lang->gallery_text_returngallery . '</a></div><br />'; //GalleryCopyright(); gallery_footer(); }