home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 April / PCWorld_2005-04_cd.bin / akce / web / phpbb2plus / phpBB2_plus_1.52.exe / phpBB2 / album.php < prev    next >
PHP Script  |  2004-07-18  |  23KB  |  640 lines

  1. <?php
  2. /***************************************************************************
  3.  *                                album.php
  4.  *                            -------------------
  5.  *   begin                : Tuesday, February 04, 2003
  6.  *   copyright            : (C) 2003 Smartor
  7.  *   email                : smartor_xp@hotmail.com
  8.  *
  9.  *   $Id: album.php,v 2.0.7 2003/03/15 10:16:30 ngoctu Exp $
  10.  *
  11.  ***************************************************************************/
  12.  
  13. /***************************************************************************
  14.  *
  15.  *   This program is free software; you can redistribute it and/or modify
  16.  *   it under the terms of the GNU General Public License as published by
  17.  *   the Free Software Foundation; either version 2 of the License, or
  18.  *   (at your option) any later version.
  19.  *
  20.  ***************************************************************************/
  21.  
  22.  /***************************************************************************
  23.  *                            MODIFICATIONS
  24.  *                           ---------------
  25.  *   started            : Saturday, January 18, 2004
  26.  *   copyright          : ⌐ Volodymyr (CLowN) Skoryk
  27.  *   email              : blaatimmy72@yahoo.com
  28.  *     version            : 1.5
  29.  *
  30.  *     MODIFICATIONS:
  31.  *        -added images to rating, insted of number for rating
  32.  *        -added random pictures
  33.  *        -added highest rated pictures (@ MarkFulton.com)
  34.  *        -coment # for categories
  35.  *        -last comment in categories
  36.  *
  37.  ***************************************************************************/
  38.  
  39.  
  40. define('IN_PHPBB', true);
  41. $phpbb_root_path = './';
  42. $album_root_path = $phpbb_root_path . 'album_mod/';
  43. include($phpbb_root_path . 'extension.inc');
  44. include($phpbb_root_path . 'common.'.$phpEx);
  45.  
  46. //
  47. // Start session management
  48. //
  49. $userdata = session_pagestart($user_ip, PAGE_ALBUM);
  50. init_userprefs($userdata);
  51. //
  52. // End session management
  53. //
  54.  
  55. //
  56. // Get general album information
  57. //
  58. include($album_root_path . 'album_common.'.$phpEx);
  59.  
  60. /*
  61. +----------------------------------------------------------
  62. | Build Categories Index
  63. +----------------------------------------------------------
  64. */
  65.  
  66. /* Album Hierarchy - START */
  67. $catrows = array();
  68. $catrows = album_read_tree();
  69. /* Album Hierarchy - STOP  */
  70.  
  71.  
  72. $allowed_cat = ''; // For Recent Public Pics below
  73.  
  74. //
  75. // $catrows now stores all categories which this user can view. Dump them out!
  76. //
  77. for ($i = 0; $i < count($catrows); $i++)
  78. {
  79.     // --------------------------------
  80.     // Build allowed category-list (for recent pics after here)
  81.     // --------------------------------
  82.  
  83.     $allowed_cat .= ($allowed_cat == '') ? $catrows[$i]['cat_id'] : ',' . $catrows[$i]['cat_id'];
  84.  
  85.     /* Album Hierarchy - START */
  86.     /*
  87.     // --------------------------------
  88.     // Build moderators list
  89.     // --------------------------------
  90.  
  91.     $l_moderators = '';
  92.     $moderators_list = '';
  93.  
  94.     $grouprows= array();
  95.  
  96.     if( $catrows[$i]['cat_moderator_groups'] != '')
  97.     {
  98.         // We have usergroup_ID, now we need usergroup name
  99.         $sql = "SELECT group_id, group_name
  100.                 FROM " . GROUPS_TABLE . "
  101.                 WHERE group_single_user <> 1
  102.                     AND group_type <> ". GROUP_HIDDEN ."
  103.                     AND group_id IN (". $catrows[$i]['cat_moderator_groups'] .")
  104.                 ORDER BY group_name ASC";
  105.         if ( !$result = $db->sql_query($sql) )
  106.         {
  107.             message_die(GENERAL_ERROR, 'Could not obtain usergroups data', '', __LINE__, __FILE__, $sql);
  108.         }
  109.  
  110.         while( $row = $db->sql_fetchrow($result) )
  111.         {
  112.             $grouprows[] = $row;
  113.         }
  114.     }
  115.  
  116.     if( count($grouprows) > 0 )
  117.     {
  118.         $l_moderators = $lang['Moderators'];
  119.  
  120.         for ($j = 0; $j < count($grouprows); $j++)
  121.         {
  122.             $group_link = '<a href="'. append_sid("groupcp.$phpEx?". POST_GROUPS_URL .'='. $grouprows[$j]['group_id']) .'">'. $grouprows[$j]['group_name'] .'</a>';
  123.  
  124.             $moderators_list .= ($moderators_list == '') ? $group_link : ', ' . $group_link;
  125.         }
  126.     }
  127.  
  128.  
  129.     // ------------------------------------------
  130.     // Get Last Pic of this Category
  131.     // ------------------------------------------
  132.  
  133.     if ($catrows[$i]['count'] == 0)
  134.     {
  135.         //
  136.         // Oh, this category is empty
  137.         //
  138.         $last_pic_info = $lang['No_Pics'];
  139.         $u_last_pic = '';
  140.         $last_pic_title = '';
  141.         
  142.         //last coments
  143.         $last_comment_info = "No Comments";
  144.         $cat_total_comments = 0;
  145.     }
  146.     else
  147.     {
  148.         // ----------------------------
  149.         // Check Pic Approval
  150.         // ----------------------------
  151.  
  152.         if(($catrows[$i]['cat_approval'] == ALBUM_ADMIN) or ($catrows[$i]['cat_approval'] == ALBUM_MOD))
  153.         {
  154.             $pic_approval_sql = 'AND p.pic_approval = 1'; // Pic Approval ON
  155.         }
  156.         else
  157.         {
  158.             $pic_approval_sql = ''; // Pic Approval OFF
  159.         }
  160.  
  161.  
  162.         // ----------------------------
  163.         // OK, we may do a query now...
  164.         // ----------------------------
  165.  
  166.         $sql = "SELECT p.pic_id, p.pic_title, p.pic_user_id, p.pic_username, p.pic_time, p.pic_cat_id, u.user_id, u.username, COUNT(c.comment_id) AS comment_count
  167.                 FROM ". ALBUM_TABLE ." AS p
  168.                 LEFT JOIN " . ALBUM_COMMENT_TABLE . " AS c ON p.pic_cat_id = c.comment_cat_id
  169.                 LEFT JOIN ". USERS_TABLE ." AS u  ON p.pic_user_id = u.user_id 
  170.                 WHERE p.pic_cat_id = '". $catrows[$i]['cat_id'] ."' $pic_approval_sql
  171.                 GROUP BY p.pic_time
  172.                 ORDER BY p.pic_time DESC
  173.                 LIMIT 1";
  174.         if ( !$result = $db->sql_query($sql) )
  175.         {
  176.             message_die(GENERAL_ERROR, 'Could not get last pic information', '', __LINE__, __FILE__, $sql);
  177.         }
  178.         $lastrow = $db->sql_fetchrow($result);
  179.         
  180.         $sql = "SELECT c.comment_pic_id, c.comment_user_id, c.comment_username, c.comment_time, u.user_id, u.username, a.pic_id, a.pic_cat_id
  181.                 FROM " . ALBUM_COMMENT_TABLE . " AS c 
  182.                 LEFT JOIN " . USERS_TABLE . " AS u ON c.comment_user_id = u.user_id
  183.                 LEFT JOIN " . ALBUM_TABLE . " AS a ON c.comment_pic_id = a.pic_id
  184.                 WHERE a.pic_cat_id = '" . $catrows[$i]['cat_id'] . "' 
  185.                 ORDER BY c.comment_time DESC
  186.                 LIMIT 1";
  187.                 
  188.         if ( !$result = $db->sql_query($sql) )
  189.         {
  190.             message_die(GENERAL_ERROR, 'Could not get last pic information', '', __LINE__, __FILE__, $sql);
  191.         }
  192.         $lastcrow = $db->sql_fetchrow($result);
  193.         
  194.         // ----------------------------
  195.         // Write the Date
  196.         // ----------------------------
  197.  
  198.         $last_pic_info = create_date($board_config['default_dateformat'], $lastrow['pic_time'], $board_config['board_timezone']);
  199.  
  200.         $last_pic_info .= '<br />';
  201.  
  202.  
  203.         // ----------------------------
  204.         // Write username of last poster
  205.         // ----------------------------
  206.  
  207.         if( ($lastrow['user_id'] == ALBUM_GUEST) or ($lastrow['username'] == '') )
  208.         {
  209.             $last_pic_info .= ($lastrow['pic_username'] == '') ? $lang['Guest'] : $lastrow['pic_username'];
  210.         }
  211.         else
  212.         {
  213.             $last_pic_info .= $lang['Poster'] .': <a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $lastrow['user_id']) .'">'. $lastrow['username'] .'</a>';
  214.         }
  215.  
  216.  
  217.         // ----------------------------
  218.         // Write the last pic's title.
  219.         // Truncate it if it's too long
  220.         // ----------------------------
  221.  
  222.         if( !isset($album_config['last_pic_title_length']) )
  223.         {
  224.             $album_config['last_pic_title_length'] = 25;
  225.         }
  226.  
  227.         $lastrow['pic_title'] = $lastrow['pic_title'];
  228.  
  229.         if (strlen($lastrow['pic_title']) > $album_config['last_pic_title_length'])
  230.         {
  231.             $lastrow['pic_title'] = substr($lastrow['pic_title'], 0, $album_config['last_pic_title_length']) . '...';
  232.         }
  233.  
  234.         $last_pic_info .= '<br />'. $lang['Pic_Title'] .': <a href="';
  235.  
  236.         $last_pic_info .= ($album_config['fullpic_popup']) ? append_sid("album_pic.$phpEx?pic_id=". $lastrow['pic_id']) .'" target="_blank">' : append_sid("album_showpage.$phpEx?pic_id=". $lastrow['pic_id']) .'">' ;
  237.  
  238.         $last_pic_info .= $lastrow['pic_title'] .'</a>';
  239.         
  240.         //last comment
  241.         if ( $lastrow['comment_count'] == 0 )
  242.         {
  243.             $last_comment_info = "No Comments";
  244.         }
  245.         else
  246.         {
  247.             $last_comment_info = create_date($board_config['default_dateformat'], $lastcrow['comment_time'], $board_config['board_timezone']);
  248.             $last_comment_info .= '<br />' . $lang['Poster'] . ': ';
  249.  
  250.             if( ($lastcrow['user_id'] == ALBUM_GUEST) or ($lastcrow['comment_username'] == '') )
  251.                 $last_comment_info .= ($lastcrow['comment_username'] == '') ? $lang['Guest'] : $lastcrow['comment_username'];
  252.             else
  253.                 $last_comment_info .= '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $lastcrow['user_id']) .'">'. $lastcrow['username'] .'</a>';
  254.         }
  255.         
  256.         //comment count
  257.         $cat_total_comments = $lastrow['comment_count'];
  258.     }
  259.     // END of Last Pic
  260.  
  261.  
  262.     // ------------------------------------------
  263.     // Parse to template the info of the current Category
  264.     // ------------------------------------------
  265.  
  266.     $template->assign_block_vars('catrow', array(
  267.         'U_VIEW_CAT' => append_sid("album_cat.$phpEx?cat_id=". $catrows[$i]['cat_id']),
  268.         'CAT_TITLE' => $catrows[$i]['cat_title'],
  269.         'CAT_DESC' => $catrows[$i]['cat_desc'],
  270.         'L_MODERATORS' => $l_moderators,
  271.         'MODERATORS' => $moderators_list,
  272.         'PICS' => $catrows[$i]['count'],
  273.         'COMMENTS' => $cat_total_comments,
  274.         'LAST_COMMENT_INFO' => $last_comment_info,
  275.         'LAST_PIC_INFO' => $last_pic_info)
  276.     );
  277.     */
  278.     /* Album Hierarchy - STOP  */
  279. }
  280. // END of Categories Index
  281. /* Album Hierarchy - START */
  282. // the variable $allowed_cat holds a list of categories which the user has access to
  283. if ($allowed_cat != '' )
  284. {
  285.     album_display_index('Root', true, true);
  286. }
  287. /* Album Hierarchy - STOP */
  288. /*
  289. +----------------------------------------------------------
  290. | Recent Public Pics
  291. +----------------------------------------------------------
  292. */
  293. if ($album_sp_config['disp_late'] == 1)
  294. {
  295.     if ($allowed_cat != '')
  296.     {
  297.         $sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments
  298.                 FROM ". ALBUM_TABLE ." AS p
  299.                     LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
  300.                     LEFT JOIN ". ALBUM_CAT_TABLE ." AS ct ON p.pic_cat_id = ct.cat_id
  301.                     LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
  302.                     LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
  303.                 WHERE p.pic_cat_id IN ($allowed_cat) AND ( p.pic_approval = 1 OR ct.cat_approval = 0 )
  304.                 GROUP BY p.pic_id
  305.                 ORDER BY pic_time DESC
  306.                 LIMIT ". $album_sp_config['img_cols'] * $album_sp_config['img_rows'];
  307.         if( !($result = $db->sql_query($sql)) )
  308.         {
  309.             message_die(GENERAL_ERROR, 'Could not query recent pics information', '', __LINE__, __FILE__, $sql);
  310.         }
  311.  
  312.         $recentrow = array();
  313.  
  314.         while( $row = $db->sql_fetchrow($result) )
  315.         {
  316.             $recentrow[] = $row;
  317.         }
  318.  
  319.          $template->assign_block_vars('recent_pics_block', array());
  320.         
  321.         if (count($recentrow) > 0)
  322.         {
  323.             for ($i = 0; $i < count($recentrow); $i += $album_sp_config['img_cols'])
  324.             {
  325.                 $template->assign_block_vars('recent_pics_block.recent_pics', array());
  326.  
  327.                 for ($j = $i; $j < ($i + $album_sp_config['img_cols']); $j++)
  328.                 {
  329.                     if( $j >= count($recentrow) )
  330.                     {
  331.                         break;
  332.                     }
  333.  
  334.                     $template->assign_block_vars('recent_pics_block.recent_pics.recent_col', array(
  335.                         'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_pic.$phpEx?pic_id=". $recentrow[$j]['pic_id']) : append_sid("album_showpage.$phpEx?pic_id=". $recentrow[$j]['pic_id']),
  336.                         'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $recentrow[$j]['pic_id']),
  337.                         'DESC' => $recentrow[$j]['pic_desc']
  338.                         )
  339.                     );
  340.  
  341.                     if( ($recentrow[$j]['user_id'] == ALBUM_GUEST) or ($recentrow[$j]['username'] == '') )
  342.                     {
  343.                         $recent_poster = ($recentrow[$j]['pic_username'] == '') ? $lang['Guest'] : $recentrow[$j]['pic_username'];
  344.                     }
  345.                     else
  346.                     {
  347.                         $recent_poster = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $recentrow[$j]['user_id']) .'">'. $recentrow[$j]['username'] .'</a>';
  348.                     }
  349.                     
  350.                     $rating_image = ImageRating($recentrow[$j]['rating']);
  351.                     
  352.                     $template->assign_block_vars('recent_pics_block.recent_pics.recent_detail', array(
  353.                         'TITLE' => '<a href = "album_showpage.' . $phpEx . '?pic_id=' . $recentrow[$j]['pic_id'] . '">' . $recentrow[$j]['pic_title'] . '</a>',
  354.                         'POSTER' => $recent_poster,
  355.                         'TIME' => create_date($board_config['default_dateformat'], $recentrow[$j]['pic_time'], $board_config['board_timezone']),
  356.  
  357.                         'VIEW' => $recentrow[$j]['pic_view_count'],
  358.  
  359.                         'RATING' => ($album_config['rate'] == 1) ? ( $lang['Rating'] . ': ' . $rating_image . '<br />') : '',
  360.  
  361.                         'IP' => ($userdata['user_level'] == ADMIN) ? $lang['IP_Address'] . ': <a href="http://www.nic.com/cgi-bin/whois.cgi?query=' . decode_ip($recentrow[$j]['pic_user_ip']) . '" target="_blank">' . decode_ip($recentrow[$j]['pic_user_ip']) .'</a><br />' : ''
  362.                         )
  363.                     );
  364.                 }
  365.             }
  366.         }
  367.         else
  368.         {
  369.             //
  370.             // No Pics Found
  371.             //
  372.             $template->assign_block_vars('recent_pics_block.no_pics', array());
  373.         }
  374.     }
  375.     else
  376.     {
  377.         //
  378.         // No Cats Found
  379.         //
  380.         $template->assign_block_vars('recent_pics_block.no_pics', array());
  381.     }
  382. }
  383. /* 
  384. +---------------------------------------------------------- 
  385. | Highest Rated Pics 
  386. | by MarkFulton.com ...added RAND() part so highest pics dont always appear in same order..
  387. +---------------------------------------------------------- 
  388. */ 
  389. if ($album_sp_config['disp_high'] == 1)
  390. {
  391.     if ($allowed_cat != '') 
  392.     { 
  393.        $sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments 
  394.              FROM ". ALBUM_TABLE ." AS p 
  395.                 LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id 
  396.                 LEFT JOIN ". ALBUM_CAT_TABLE ." AS ct ON p.pic_cat_id = ct.cat_id 
  397.                 LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id 
  398.                 LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id 
  399.              WHERE p.pic_cat_id IN ($allowed_cat) AND ( p.pic_approval = 1 OR ct.cat_approval = 0 ) 
  400.              GROUP BY p.pic_id 
  401.              ORDER BY rating DESC, RAND()
  402.              LIMIT ". $album_sp_config['img_cols'] * $album_sp_config['img_rows']; 
  403.        if( !($result = $db->sql_query($sql)) ) 
  404.        { 
  405.           message_die(GENERAL_ERROR, 'Could not query highest rated pics information', '', __LINE__, __FILE__, $sql); 
  406.        } 
  407.  
  408.        $highestrow = array(); 
  409.  
  410.        while( $row = $db->sql_fetchrow($result) ) 
  411.        { 
  412.           $highestrow[] = $row; 
  413.        } 
  414.         
  415.         $template->assign_block_vars('highest_pics_block', array());
  416.  
  417.        if (count($highestrow) > 0) 
  418.        { 
  419.           for ($i = 0; $i < count($highestrow); $i += $album_sp_config['img_cols']) 
  420.           { 
  421.              $template->assign_block_vars('highest_pics_block.highest_pics', array()); 
  422.  
  423.              for ($j = $i; $j < ($i + $album_sp_config['img_cols']); $j++) 
  424.              { 
  425.                 if( $j >= count($highestrow) ) 
  426.                 { 
  427.                    break; 
  428.                 } 
  429.  
  430.                 $template->assign_block_vars('highest_pics_block.highest_pics.highest_col', array( 
  431.                    'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_pic.$phpEx?pic_id=". $highestrow[$j]['pic_id']) : append_sid("album_showpage.$phpEx?pic_id=". $highestrow[$j]['pic_id']), 
  432.                    'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $highestrow[$j]['pic_id']), 
  433.                    'DESC' => $highestrow[$j]['pic_desc'] 
  434.                    ) 
  435.                 ); 
  436.  
  437.                 if( ($highestrow[$j]['user_id'] == ALBUM_GUEST) or ($highestrow[$j]['username'] == '') ) 
  438.                 { 
  439.                    $highest_poster = ($highestrow[$j]['pic_username'] == '') ? $lang['Guest'] : $highestrow[$j]['pic_username']; 
  440.                 } 
  441.                 else 
  442.                 { 
  443.                    $highest_poster = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $highestrow[$j]['user_id']) .'">'. $highestrow[$j]['username'] .'</a>'; 
  444.                 } 
  445.                 
  446.                 $rating_image = ImageRating($highestrow[$j]['rating']);
  447.                 
  448.                 $template->assign_block_vars('highest_pics_block.highest_pics.highest_detail', array( 
  449.                    'H_TITLE' => '<a href = "album_showpage.' . $phpEx . '?pic_id=' . $highestrow[$j]['pic_id'] . '">' . $highestrow[$j]['pic_title'] . '</a>', 
  450.                    'H_POSTER' => $highest_poster, 
  451.                    'H_TIME' => create_date($board_config['default_dateformat'], $highestrow[$j]['pic_time'], $board_config['board_timezone']), 
  452.  
  453.                    'H_VIEW' => $highestrow[$j]['pic_view_count'], 
  454.  
  455.                    'H_RATING' => ($album_config['rate'] == 1) ? ( $lang['Rating'] . ': ' . $rating_image . '<br />') : '', 
  456.  
  457.                    'H_IP' => ($userdata['user_level'] == ADMIN) ? $lang['IP_Address'] . ': <a href="http://www.nic.com/cgi-bin/whois.cgi?query=' . decode_ip($highestrow[$j]['pic_user_ip']) . '" target="_blank">' . decode_ip($highestrow[$j]['pic_user_ip']) .'</a><br />' : '' 
  458.                    ) 
  459.                 ); 
  460.              } 
  461.           } 
  462.        } 
  463.        else 
  464.        { 
  465.           // 
  466.           // No Pics Found 
  467.           // 
  468.           $template->assign_block_vars('highest_pics_block.no_pics', array()); 
  469.        } 
  470.     } 
  471.     else 
  472.     { 
  473.        // 
  474.        // No Cats Found 
  475.        // 
  476.        $template->assign_block_vars('highest_pics_block.no_pics', array()); 
  477.     } 
  478. }
  479.  
  480. /*
  481. +----------------------------------------------------------
  482. | Random Pics 
  483. | by CLowN
  484. +----------------------------------------------------------
  485. */
  486. if ($album_sp_config['disp_rand'] == 1)
  487. {
  488.     if ($allowed_cat != '')
  489.     {
  490.         $sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments
  491.                 FROM ". ALBUM_TABLE ." AS p
  492.                     LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
  493.                     LEFT JOIN ". ALBUM_CAT_TABLE ." AS ct ON p.pic_cat_id = ct.cat_id
  494.                     LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
  495.                     LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
  496.                 WHERE p.pic_cat_id IN ($allowed_cat) AND ( p.pic_approval = 1 OR ct.cat_approval = 0 )
  497.                 GROUP BY p.pic_id
  498.                 ORDER BY RAND()
  499.                 LIMIT ". $album_sp_config['img_cols'] * $album_sp_config['img_rows'];
  500.         if( !($result = $db->sql_query($sql)) )
  501.         {
  502.             message_die(GENERAL_ERROR, 'Could not query rand pics information', '', __LINE__, __FILE__, $sql);
  503.         }
  504.  
  505.         $randrow = array();
  506.  
  507.         while( $row = $db->sql_fetchrow($result) )
  508.         {
  509.             $randrow[] = $row;
  510.         }
  511.         
  512.         $template->assign_block_vars('random_pics_block', array());
  513.  
  514.         if (count($randrow) > 0)
  515.         {
  516.             for ($i = 0; $i < count($randrow); $i += $album_sp_config['img_cols'])
  517.             {
  518.                 $template->assign_block_vars('random_pics_block.rand_pics', array());
  519.  
  520.                 for ($j = $i; $j < ($i + $album_sp_config['img_cols']); $j++)
  521.                 {
  522.                     if( $j >= count($randrow) )
  523.                     {
  524.                         break;
  525.                     }
  526.  
  527.                     $template->assign_block_vars('random_pics_block.rand_pics.rand_col', array(
  528.                         'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_pic.$phpEx?pic_id=". $randrow[$j]['pic_id']) : append_sid("album_showpage.$phpEx?pic_id=". $randrow[$j]['pic_id']),
  529.                         'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $randrow[$j]['pic_id']),
  530.                         'DESC' => $randrow[$j]['pic_desc']
  531.                         )
  532.                     );
  533.  
  534.                     if( ($randrow[$j]['user_id'] == ALBUM_GUEST) or ($randrow[$j]['username'] == '') )
  535.                     {
  536.                         $rand_poster = ($randrow[$j]['pic_username'] == '') ? $lang['Guest'] : $randrow[$j]['pic_username'];
  537.                     }
  538.                     else
  539.                     {
  540.                         $rand_poster = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $randrow[$j]['user_id']) .'">'. $randrow[$j]['username'] .'</a>';
  541.                     }
  542.                     
  543.                     
  544.                     $rating_image = ImageRating($randrow[$j]['rating']);
  545.                     
  546.  
  547.                     $template->assign_block_vars('random_pics_block.rand_pics.rand_detail', array(
  548.                         'TITLE' => '<a href = "album_showpage.' . $phpEx . '?pic_id=' . $randrow[$j]['pic_id'] . '">' . $randrow[$j]['pic_title'] . '</a>',
  549.                         'POSTER' => $rand_poster,
  550.                         'TIME' => create_date($board_config['default_dateformat'], $randrow[$j]['pic_time'], $board_config['board_timezone']),
  551.  
  552.                         'VIEW' => $randrow[$j]['pic_view_count'],
  553.  
  554.                         'RATING' => ($album_config['rate'] == 1) ? ( $lang['Rating'] . ': ' . $rating_image . '<br />') : '',
  555.  
  556.                         'COMMENTS' => ($album_config['comment'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $randrow[$j]['pic_id']) . '">' . $lang['Comments'] . '</a>: ' . $randrow[$j]['comments'] . '<br />') : '',
  557.  
  558.                         'IP' => ($userdata['user_level'] == ADMIN) ? $lang['IP_Address'] . ': <a href="http://www.nic.com/cgi-bin/whois.cgi?query=' . decode_ip($randrow[$j]['pic_user_ip']) . '" target="_blank">' . decode_ip($randrow[$j]['pic_user_ip']) .'</a><br />' : ''
  559.                         )
  560.                     );
  561.                 }
  562.             }
  563.         }
  564.         else
  565.         {
  566.             //
  567.             // No Pics Found
  568.             //
  569.             $template->assign_block_vars('random_pics_block.no_pics', array());
  570.         }
  571.     }
  572.     else
  573.     {
  574.         //
  575.         // No Cats Found
  576.         //
  577.         $template->assign_block_vars('random_pics_block.no_pics', array());
  578.     }
  579. }
  580.  
  581. /*
  582. +----------------------------------------------------------
  583. | Start output the page
  584. +----------------------------------------------------------
  585. */
  586.  
  587. $page_title = $lang['Album'];
  588. include($phpbb_root_path . 'includes/page_header.'.$phpEx);
  589.  
  590. $template->set_filenames(array(
  591.     'body' => 'album_index_body.tpl')
  592. );
  593.  
  594. $template->assign_vars(array(
  595.     /* Album Hierarchy - START */
  596.     /*
  597.     'L_CATEGORY' => $lang['Category'],
  598.     'L_PICS' => $lang['Pics'],
  599.     'L_LAST_PIC' => $lang['Last_Pic'],
  600.  
  601.     'U_YOUR_PERSONAL_GALLERY' => append_sid("album_personal.$phpEx?user_id=". $userdata['user_id']),
  602.     'L_YOUR_PERSONAL_GALLERY' => $lang['Your_Personal_Gallery'],
  603.  
  604.     'U_USERS_PERSONAL_GALLERIES' => append_sid("album_personal_index.$phpEx"),
  605.     'L_USERS_PERSONAL_GALLERIES' => $lang['Users_Personal_Galleries'],
  606.     */
  607.     /* Album Hierarchy - STOP  */
  608.  
  609.  
  610.     'S_COLS' => $album_sp_config['img_cols'],
  611.     'S_COL_WIDTH' => (100/$album_sp_config['img_cols']) . '%',
  612.     'TARGET_BLANK' => ($album_config['fullpic_popup']) ? 'target="_blank"' : '',
  613.     'L_RECENT_PUBLIC_PICS' => $lang['Recent_Public_Pics'],
  614.     'L_NO_PICS' => $lang['No_Pics'],
  615.     'L_PIC_TITLE' => $lang['Pic_Title'],
  616.     'L_VIEW' => $lang['View'],
  617.     'L_POSTER' => $lang['Poster'],
  618.     'L_HIGHEST_RATED_PICS' => $lang['Highest_Rated_Pics'],
  619.     'L_RANDOM_PICS' => $lang['Random_Pics'],
  620.     /* Album Hierarchy - START */
  621.     'L_POSTED' => $lang['Posted'] /*,*/)
  622.     /*'L_PUBLIC_CATS' => $lang['Public_Categories']) */
  623.     /* Album Hierarchy - STOP  */
  624.  
  625. );
  626.  
  627. //
  628. // Generate the page
  629. //
  630. $template->pparse('body');
  631.  
  632. include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
  633.  
  634.  
  635. // +-------------------------------------------------------------+
  636. // |  Powered by Photo Album 2.x.x (c) 2002-2003 Smartor         |
  637. // |  with Volodymyr (CLowN) Skoryk's Service Pack 1 ⌐ 2003-2004 |
  638. // +-------------------------------------------------------------+
  639.  
  640. ?>