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 / links.php < prev    next >
PHP Script  |  2004-07-18  |  23KB  |  724 lines

  1. <?php
  2. /***************************************************************************
  3.  *                             links.php
  4.  *                            -----------
  5.  *  MOD add-on page. Contains GPL code copyright of phpBB group.
  6.  *  Author: OOHOO < webdev@phpbb-tw.net >
  7.  *  Author: Stefan2k1 and ddonker from www.portedmods.com
  8.  *  Author: CRLin from http://mail.dhjh.tcc.edu.tw/~gzqbyr/
  9.  *  Demo: http://phpbb-tw.net/
  10.  *  Version: 1.0.X - 2002/03/22 - for phpBB RC serial, and was named Related_Links_MOD
  11.  *  Version: 1.1.0 - 2002/04/25 - Re-packed for phpBB 2.0.0, and renamed to Links_MOD
  12.  *  Version: 1.2.0 - 2003/06/15 - Enhanced and Re-packed for phpBB 2.0.4
  13.  *  Version: 1.2.1 - 2003/10/15 - Enhanced by CRLin
  14.  *  Version: 1.2.2 - 2004/05/10 - Enhanced by CRLin
  15.  ***************************************************************************/
  16.  
  17. /***************************************************************************
  18.  *
  19.  *   This program is free software; you can redistribute it and/or modify
  20.  *   it under the terms of the GNU General Public License as published by
  21.  *   the Free Software Foundation; either version 2 of the License, or
  22.  *   (at your option) any later version.
  23.  *
  24.  ***************************************************************************/ 
  25.  
  26. define('IN_PHPBB', true);
  27.  
  28. $phpbb_root_path = "./"; 
  29. include($phpbb_root_path . 'extension.inc');
  30. include($phpbb_root_path . "common.$phpEx");
  31.  
  32. //
  33. // Start session management
  34. //
  35. $userdata = session_pagestart($user_ip, PAGE_LINKS);
  36. init_userprefs($userdata);
  37. require($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main_link.' . $phpEx);
  38.  
  39. //
  40. // Count and forwrad
  41. //
  42. if($HTTP_GET_VARS['action'] == "go" && $HTTP_GET_VARS['link_id'])
  43. {
  44.     $link_id = $HTTP_GET_VARS['link_id'];
  45.     // Secure check
  46.     if(is_numeric($link_id))
  47.     {
  48.         $sql = "SELECT link_id, link_url, last_user_ip
  49.             FROM " . LINKS_TABLE . "
  50.             WHERE link_id = '$link_id'
  51.             AND link_active = 1";
  52.  
  53.         if($result = $db->sql_query($sql))
  54.         {
  55.             $row = $db->sql_fetchrow($result);
  56.             if($link_url = $row['link_url'])
  57.             {
  58.                 if($user_ip != $row['last_user_ip'])
  59.                 {
  60.                     // Update
  61.                     $sql = "UPDATE " . LINKS_TABLE . "
  62.                         SET link_hits = link_hits + 1, last_user_ip = '$user_ip'
  63.                         WHERE link_id = '$link_id'";
  64.                     $result = $db->sql_query($sql);
  65.                 }
  66.  
  67.                 // Forward to website
  68.                 // header("Location: $link_url");
  69.                 echo '<script>location.replace("' . $link_url . '")</script>';
  70.                 exit;
  71.             }
  72.         }
  73.     }
  74. }
  75.  
  76. // Output the basic page
  77. $page_title = $lang['Site_links'];
  78. include('includes/page_header.'.$phpEx);
  79.  
  80. //
  81. // Define initial vars
  82. //
  83. $start = ( isset($HTTP_GET_VARS['start']) ) ? $HTTP_GET_VARS['start'] : 0;
  84.  
  85. if ( isset($HTTP_POST_VARS['t']) || isset($HTTP_GET_VARS['t']) ) 
  86. {
  87.     $t = ( isset($HTTP_POST_VARS['t']) ) ? $HTTP_POST_VARS['t'] : $HTTP_GET_VARS['t'];
  88. } else {
  89.     $t = 'index';
  90. }
  91. if ( isset($HTTP_POST_VARS['cat']) || isset($HTTP_GET_VARS['cat']) )
  92. {
  93.     $cat = ( isset($HTTP_POST_VARS['cat']) ) ? $HTTP_POST_VARS['cat'] : $HTTP_GET_VARS['cat'];
  94. } else {
  95.     $cat = 1;
  96. }
  97. if ( isset($HTTP_POST_VARS['search_keywords']) || isset($HTTP_GET_VARS['search_keywords']) )
  98. {
  99.     $search_keywords = ( isset($HTTP_POST_VARS['search_keywords']) ) ? $HTTP_POST_VARS['search_keywords'] : $HTTP_GET_VARS['search_keywords'];
  100. } else {
  101.     $search_keywords = '';
  102. }
  103.  
  104. switch($t)
  105. {
  106.     case 'pop':
  107.     case 'new':
  108.         $tmp = "links_popnew.tpl";
  109.         break;
  110.     case 'search':
  111.         $tmp = "links_search.tpl";
  112.         break;
  113.     case 'sub_pages':
  114.         $tmp = "links_body.tpl";
  115.         break;
  116.     default:
  117.         $tmp = "links_index.tpl";
  118. }
  119.  
  120. $template->set_filenames(array(
  121.     'body' => $tmp
  122. ));
  123.  
  124. //
  125. // Get Link Config
  126. //
  127. $sql = "SELECT *
  128.         FROM ". LINK_CONFIG_TABLE;
  129. if(!$result = $db->sql_query($sql))
  130. {
  131.     message_die(GENERAL_ERROR, "Could not query Link config information", "", __LINE__, __FILE__, $sql);
  132. }
  133. while( $row = $db->sql_fetchrow($result) )
  134. {
  135.     $link_config_name = $row['config_name'];
  136.     $link_config_value = $row['config_value'];
  137.     $link_config[$link_config_name] = $link_config_value;
  138.     $linkspp=$link_config['linkspp'];
  139. }
  140.  
  141. if($link_config['lock_submit_site'] == 0)
  142. {
  143.     // display submit site
  144.     $template->assign_block_vars('lock', array());
  145.  
  146.      if(!$userdata['session_logged_in'])
  147.     {
  148.         $template->assign_block_vars('lock.logout', array());
  149.     }
  150.  
  151.     if($userdata['session_logged_in'])
  152.     {
  153.         $template->assign_block_vars('lock.submit', array());
  154.     }
  155. }
  156.  
  157. if($link_config['allow_no_logo'])
  158. {
  159.     $tmp = $lang['Link_logo_src'];
  160. }
  161. else
  162. {
  163.     $tmp = $lang['Link_logo_src1'];
  164. }
  165.  
  166. $template->assign_vars(array(
  167.     'U_LINK_REG' => append_sid("link_register.$phpEx"),
  168.     'L_LINK_REGISTER_RULE' => $lang['Link_register_rule'],
  169.     'L_LINK_REGISTER_GUEST_RULE' => $lang['Link_register_guest_rule'],
  170.     'L_LINK_TITLE' => $lang['Link_title'],
  171.     'L_LINK_DESC' => $lang['Link_desc'],
  172.     'L_LINK_URL' => $lang['Link_url'],
  173.     'L_LINK_LOGO_SRC' => $tmp,
  174.     'L_PREVIEW' => $lang['Links_Preview'],
  175.     'L_LINK_CATEGORY' => $lang['Link_category'],
  176.     'L_PLEASE_ENTER_YOUR' => $lang['Please_enter_your'],
  177.     'L_LINK_REGISTER' => $lang['Link_register'],
  178.     'L_SITE_LINKS' => $lang['Site_links'],
  179.     'L_LINK_US' => $lang['Link_us'] . $board_config['sitename'],
  180.     'L_LINK_US_EXPLAIN' => sprintf($lang['Link_us_explain'], $board_config['sitename']),'L_SUBMIT' => $lang['Submit'],
  181.     'U_SITE_LINKS' => append_sid("links.$phpEx"),
  182.     'L_LINK_CATEGORY' => $lang['Link_category'],
  183.     'U_SITE_SEARCH' => append_sid("links.$phpEx?t=search"),
  184.     'U_SITE_TOP' => append_sid("links.$phpEx?t=pop"),
  185.     'U_SITE_NEW' => append_sid("links.$phpEx?t=new"),
  186.     'U_SITE_LOGO' => $link_config['site_logo'],
  187.     'LINK_US_SYNTAX' => str_replace(" ", " ", sprintf(htmlentities($lang['Link_us_syntax'], ENT_QUOTES), $link_config['site_url'], $link_config['site_logo'], $link_config['width'],$link_config['height'], $board_config['sitename'])),
  188.     'LINKS_HOME' => $lang['Links_home'],
  189.     'L_SEARCH_SITE' => $lang['Search_site'],
  190.     'L_DESCEND_BY_HITS' => $lang['Descend_by_hits'],
  191.     'L_DESCEND_BY_JOINDATE' => $lang['Descend_by_joindate'],
  192.     'L_LINK_JOINED' => $lang['Joined'],
  193.     'L_LINK_HITS' => $lang['link_hits'],
  194.     'L_LINK_SUBMITER' => $lang['link_submiter']
  195. ));
  196.  
  197. if ($t=='pop' || $t=='new') 
  198. {
  199.     if ($t=='pop')
  200.     {
  201.         $template->assign_vars(array(
  202.             'L_LINK_TITLE1' => $lang['Descend_by_hits']
  203.         ));
  204.     }
  205.     else
  206.     {
  207.         $template->assign_vars(array(
  208.             'L_LINK_TITLE1' => $lang['Descend_by_joindate']
  209.         ));
  210.     }
  211.  
  212.     //
  213.     // Grab link categories
  214.     //
  215.     $sql = "SELECT cat_id, cat_title FROM " . LINK_CATEGORIES_TABLE . " ORDER BY cat_order";
  216.  
  217.     if(!$result = $db->sql_query($sql))
  218.     {
  219.         message_die(GENERAL_ERROR, 'Could not query link categories list', '', __LINE__, __FILE__, $sql);
  220.     }
  221.  
  222.     while($row = $db->sql_fetchrow($result))
  223.     {
  224.         $link_categories[$row['cat_id']] = $row['cat_title'];
  225.     }
  226.  
  227.     //
  228.     // Grab links
  229.     //
  230.     $sql = "SELECT * 
  231.         FROM " . LINKS_TABLE . " l, " . USERS_TABLE . " u
  232.         WHERE link_active = 1 AND l.user_id = u.user_id
  233.         ORDER BY link_hits DESC, link_id DESC
  234.         LIMIT $start, $linkspp";
  235.     if ($t == 'new')
  236.     {
  237.         $sql = "SELECT * 
  238.             FROM " . LINKS_TABLE . " l, " . USERS_TABLE . " u
  239.             WHERE link_active = 1 AND l.user_id = u.user_id
  240.             ORDER BY link_joined DESC, link_id DESC
  241.             LIMIT $start, $linkspp";
  242.     }
  243.  
  244.     if(!$result = $db->sql_query($sql))
  245.     {
  246.         message_die(GENERAL_ERROR, 'Could not query links list', '', __LINE__, __FILE__, $sql);
  247.     }
  248.  
  249.     if ( $row = $db->sql_fetchrow($result) )
  250.     {
  251.         $i = 0;
  252.         do
  253.         {
  254.             // if (empty($row['link_logo_src'])) $row['link_logo_src'] = 'images/links/no_logo88a.gif';
  255.             if ($link_config['display_links_logo'])
  256.             {
  257.                 if ($row['link_logo_src']) 
  258.                 {
  259.                     $tmp = "<a href=".append_sid("links.$phpEx?action=go&link_id=" . $row['link_id'])." alt='".$row['link_desc']."' target='_blank'><img src='".$row['link_logo_src']."' alt='".$row['link_title']."' width='".$link_config['width']."' height='".$link_config['height']."' border='0' /></a>";
  260.                 }
  261.                 else
  262.                 {
  263.                     $tmp = "<a href=".append_sid("links.$phpEx?action=go&link_id=" . $row['link_id'])." alt='".$row['link_desc']."' target='_blank'><img src='"."images/links/weblink_88x31.png"."' alt='".$row['link_title']."' width='".$link_config['width']."' height='".$link_config['height']."' border='0' /></a>";
  264.                     // $tmp = $lang['No_Logo_img'];
  265.                 }
  266.             }
  267.             else
  268.             {
  269.                 $tmp = $lang['No_Display_Links_Logo'];
  270.             }
  271.  
  272.             $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
  273.             $user_id = $row['user_id'];
  274.             $username = $row['username'];
  275.  
  276.             $template->assign_block_vars("linkrow", array(
  277.                 'ROW_CLASS' => $row_class,
  278.                 'LINK_URL' => append_sid("links.$phpEx?action=go&link_id=" . $row['link_id']),
  279.                 'LINK_TITLE' => $row['link_title'],
  280.                 'LINK_DESC' => $row['link_desc'],
  281.                 'LINK_LOGO_SRC' => $row['link_logo_src'],
  282.                 'LINK_LOGO' => $tmp,
  283.                 'LINK_CATEGORY' => $link_categories[$row['link_category']],
  284.                 'LINK_JOINED' => create_date($lang['DATE_FORMAT'], $row['link_joined'], $board_config['board_timezone']),
  285.                 'LINK_HITS' => $row['link_hits'],
  286.                 'U_LINK_USER' => ($user_id != ANONYMOUS ? ("<a href=\"profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id\" target=\"_blank\">$username</a>") : $username)
  287.             ));
  288.             $i++;
  289.         }
  290.         while ( $row = $db->sql_fetchrow($result) );
  291.     }
  292.  
  293.     //
  294.     // Pagination
  295.     //
  296.     $sql = "SELECT count(*) AS total
  297.         FROM " . LINKS_TABLE . "
  298.         WHERE link_active = 1";
  299.  
  300.     if ( !($result = $db->sql_query($sql)) )
  301.     {
  302.         message_die(GENERAL_ERROR, 'Could not query links number', '', __LINE__, __FILE__, $sql);
  303.     }
  304.  
  305.     if ( $row = $db->sql_fetchrow($result) )
  306.     {
  307.         $total_links = $row['total'];
  308.         $pagination = generate_pagination("links.$phpEx?t=$t", $total_links, $linkspp, $start). ' ';
  309.     }
  310.     else
  311.     {
  312.         $pagination = ' ';
  313.         $total_links = 10;
  314.     }
  315.  
  316.     //
  317.     // Link categories dropdown list
  318.     //
  319.     foreach($link_categories as $cat_id => $cat_title)
  320.     {
  321.         $link_cat_option .= "<option value=\"$cat_id\">$cat_title</option>";
  322.     }
  323.  
  324.     
  325.     $template->assign_vars(array(
  326.         'PAGINATION' => $pagination,
  327.         'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $linkspp ) + 1 ), ceil( $total_links / $linkspp )),
  328.         'L_GOTO_PAGE' => $lang['Goto_page'],
  329.  
  330.         'LINK_CAT_OPTION' => $link_cat_option
  331.     ));
  332.  
  333.     $template->pparse("body");
  334.  
  335.     include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
  336.     exit;
  337. }
  338.  
  339. if ($t=='sub_pages') 
  340. {
  341.     if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
  342.     {
  343.         $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
  344.     }
  345.     else
  346.     {
  347.         $mode = 'link_joined';
  348.     }
  349.  
  350.     if(isset($HTTP_POST_VARS['order']))
  351.     {
  352.         $sort_order = ($HTTP_POST_VARS['order'] == 'ASC') ? 'ASC' : 'DESC';
  353.     }
  354.     else if(isset($HTTP_GET_VARS['order']))
  355.     {
  356.         $sort_order = ($HTTP_GET_VARS['order'] == 'ASC') ? 'ASC' : 'DESC';
  357.     }
  358.     else
  359.     {
  360.         $sort_order = 'DESC';
  361.     }
  362.  
  363.     //
  364.     // Links sites sorting
  365.     //
  366.     $mode_types_text = array($lang['link_hits'], $lang['Joined'], $lang['Link_title'], $lang['Link_desc']);
  367.     $mode_types = array('link_hits', 'link_joined', 'link_title', 'link_desc');
  368.  
  369.     $select_sort_mode = '<select name="mode">';
  370.     for($i = 0; $i < count($mode_types_text); $i++)
  371.     {
  372.         $selected = ( $mode == $mode_types[$i] ) ? ' selected="selected"' : '';
  373.         $select_sort_mode .= '<option value="' . $mode_types[$i] . '"' . $selected . '>' . $mode_types_text[$i] . '</option>';
  374.     }
  375.     $select_sort_mode .= '</select>';
  376.  
  377.     $select_sort_order = '<select name="order">';
  378.     if($sort_order == 'ASC')
  379.     {
  380.         $select_sort_order .= '<option value="ASC" selected="selected">' . $lang['Sort_Ascending'] . '</option><option value="DESC">' . $lang['Sort_Descending'] . '</option>';
  381.     }
  382.     else
  383.     {
  384.         $select_sort_order .= '<option value="ASC">' . $lang['Sort_Ascending'] . '</option><option value="DESC" selected="selected">' . $lang['Sort_Descending'] . '</option>';
  385.     }
  386.     $select_sort_order .= '</select>';
  387.  
  388.     $select_sort_order = $select_sort_order . '<input type="hidden" name="t" value="' . $t .'">';
  389.     $select_sort_order = $select_sort_order . '<input type="hidden" name="cat" value="' . $cat .'">';
  390.  
  391.     $template->assign_vars(array(
  392.         'L_SEARCH_SITE' => $lang['Search_site'],
  393.         'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
  394.         'L_ORDER' => $lang['Order'],
  395.         'L_SORT' =>  $lang['Sort'],
  396.         'U_SITE_LINKS_CAT' => append_sid("links.$phpEx?t=$t&cat=$cat"),
  397.         'S_MODE_SELECT' => $select_sort_mode,
  398.         'S_ORDER_SELECT' => $select_sort_order
  399.     ));
  400.  
  401.     //
  402.     // Grab link categories
  403.     //
  404.     $sql = "SELECT cat_id, cat_title FROM " . LINK_CATEGORIES_TABLE . " WHERE cat_id = $cat";
  405.  
  406.     if(!$result = $db->sql_query($sql))
  407.     {
  408.         message_die(GENERAL_ERROR, 'Could not query link categories list', '', __LINE__, __FILE__, $sql);
  409.     }
  410.  
  411.     $row = $db->sql_fetchrow($result);
  412.     $link_categories[$row['cat_id']] = $row['cat_title'];
  413.     $template->assign_vars(array(
  414.         'LINK_CATEGORY' => $row['cat_title']
  415.     ));
  416.  
  417.     //
  418.     // Grab links
  419.     //
  420.     $sql = "SELECT l.*, u.username
  421.             FROM " . LINKS_TABLE . " l, " . USERS_TABLE . " u
  422.             WHERE l.link_active = 1 AND l.link_category = $cat AND l.user_id = u.user_id
  423.             ORDER BY $mode $sort_order, l.link_id DESC
  424.             LIMIT $start, $linkspp";
  425.     if(!$result = $db->sql_query($sql))
  426.     {
  427.         message_die(GENERAL_ERROR, 'Could not query links list', '', __LINE__, __FILE__, $sql);
  428.     }
  429.  
  430.  
  431.     if ( $row = $db->sql_fetchrow($result) )
  432.     {
  433.         $i = 0;
  434.         do
  435.         {
  436.             //if (empty($row['link_logo_src'])) $row['link_logo_src'] = 'images/links/no_logo88a.gif';
  437.             if ($link_config['display_links_logo'])
  438.             {
  439.                 if ($row['link_logo_src']) 
  440.                 {
  441.                     $tmp = "<a href=".append_sid("links.$phpEx?action=go&link_id=" . $row['link_id'])." alt='".$row['link_desc']."' target='_blank'><img src='".$row['link_logo_src']."' alt='".$row['link_title']."' width='".$link_config['width']."' height='".$link_config['height']."' border='0' /></a>";
  442.                 }
  443.                 else
  444.                 {
  445.                     $tmp = "<a href=".append_sid("links.$phpEx?action=go&link_id=" . $row['link_id'])." alt='".$row['link_desc']."' target='_blank'><img src='"."images/links/weblink_88x31.png"."' alt='".$row['link_title']."' width='".$link_config['width']."' height='".$link_config['height']."' border='0' /></a>";
  446.                     // $tmp = $lang['No_Logo_img'];
  447.                 }
  448.             }
  449.             else
  450.             {
  451.                 $tmp = $lang['No_Display_Links_Logo'];
  452.             }
  453.             
  454.             $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
  455.             $user_id = $row['user_id'];
  456.             $username = $row['username'];
  457.  
  458.             $template->assign_block_vars("linkrow", array(
  459.                 'ROW_CLASS' => $row_class,
  460.                 'LINK_URL' => append_sid("links.$phpEx?action=go&link_id=" . $row['link_id']),
  461.                 'LINK_TITLE' => $row['link_title'],
  462.                 'LINK_DESC' => $row['link_desc'],
  463.                 'LINK_LOGO_SRC' => $row['link_logo_src'],
  464.                 'LINK_LOGO' => $tmp,
  465.                 'LINK_CATEGORY' => $link_categories[$row['link_category']],
  466.                 'LINK_JOINED' => create_date($lang['DATE_FORMAT'], $row['link_joined'], $board_config['board_timezone']),
  467.                 'LINK_HITS' => $row['link_hits'],
  468.                 'U_LINK_USER' => ($user_id != ANONYMOUS ? ("<a href=\"profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id\" target=\"_blank\">$username</a>") : $username)
  469.             ));
  470.             $i++;
  471.         }
  472.         while ( $row = $db->sql_fetchrow($result) );
  473.     }
  474.  
  475.     //
  476.     // Pagination
  477.     //
  478.     $sql = "SELECT count(*) AS total
  479.         FROM " . LINKS_TABLE . "
  480.         WHERE link_active = 1 AND link_category = $cat";
  481.  
  482.     if ( !($result = $db->sql_query($sql)) )
  483.     {
  484.         message_die(GENERAL_ERROR, 'Could not query links number', '', __LINE__, __FILE__, $sql);
  485.     }
  486.  
  487.     if ( $row = $db->sql_fetchrow($result) )
  488.     {
  489.         $total_links = $row['total'];
  490.         $pagination = generate_pagination("links.$phpEx?t=$t&cat=$cat&mode=$mode&order=$sort_order", $total_links, $linkspp, $start). ' ';
  491.     }
  492.     else
  493.     {
  494.         $pagination = ' ';
  495.         $total_links = 10;
  496.     }
  497.  
  498.     //
  499.     // Link categories dropdown list
  500.     //
  501.     foreach($link_categories as $cat_id => $cat_title)
  502.     {
  503.         $link_cat_option .= "<option value=\"$cat_id\">$cat_title</option>";
  504.     }
  505.  
  506.     $template->assign_vars(array(
  507.         'PAGINATION' => $pagination,
  508.         'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $linkspp ) + 1 ), ceil( $total_links / $linkspp )),
  509.         'L_GOTO_PAGE' => $lang['Goto_page'],
  510.  
  511.         'LINK_CAT_OPTION' => $link_cat_option
  512.     ));
  513.  
  514.     $template->pparse("body");
  515.  
  516.     include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
  517.     exit;
  518. }
  519.  
  520. if ($t=='search') 
  521. {
  522.     if ( $search_keywords )
  523.     {
  524.         $search_keywords = trim(stripslashes($search_keywords));
  525.         $link_title =  $lang['Search_site'] . " » " . $search_keywords;
  526.         $template->assign_vars(array(
  527.             'L_LINK_TITLE1' => $link_title,
  528.             'L_SEARCH_SITE_TITLE' => $lang['Search_site_title']
  529.         ));
  530.     }
  531.     else
  532.     {
  533.         $template->assign_vars(array(
  534.             'L_LINK_TITLE1' => $lang['Search_site'],
  535.             'L_SEARCH_SITE_TITLE' => $lang['Search_site_title']
  536.         ));
  537.         $start = 0;
  538.     }
  539.     //
  540.     // Grab link categories
  541.     //
  542.     $sql = "SELECT cat_id, cat_title FROM " . LINK_CATEGORIES_TABLE . " ORDER BY cat_order";
  543.  
  544.     if(!$result = $db->sql_query($sql))
  545.     {
  546.         message_die(GENERAL_ERROR, 'Could not query link categories list', '', __LINE__, __FILE__, $sql);
  547.     }
  548.  
  549.     while($row = $db->sql_fetchrow($result))
  550.     {
  551.         $link_categories[$row['cat_id']] = $row['cat_title'];
  552.     }
  553.  
  554.     //
  555.     // Grab links
  556.     //
  557.     if ( $search_keywords )
  558.     {
  559.         /*$sql = "SELECT * FROM " . LINKS_TABLE . "
  560.             WHERE link_active = 1";*/
  561.         $sql = "SELECT l.*, u.username
  562.             FROM " . LINKS_TABLE . " l, " . USERS_TABLE . " u
  563.             WHERE link_active = 1 AND l.user_id = u.user_id";
  564.         $sql = $sql . " AND (link_title LIKE '%$search_keywords%' OR link_desc LIKE '% $search_keywords%') LIMIT $start, $linkspp";
  565.         
  566.         if(!$result = $db->sql_query($sql))
  567.         {
  568.             message_die(GENERAL_ERROR, 'Could not query links list', '', __LINE__, __FILE__, $sql);
  569.         }
  570.  
  571.         if ( $row = $db->sql_fetchrow($result) )
  572.         {
  573.             $i = 0;
  574.             do
  575.             {
  576.                 //if (empty($row['link_logo_src'])) $row['link_logo_src'] = 'images/links/no_logo88a.gif';
  577.                 if ($link_config['display_links_logo'])
  578.                 {
  579.                     if ($row['link_logo_src']) 
  580.                     {
  581.                         $tmp = "<a href=".append_sid("links.$phpEx?action=go&link_id=" . $row['link_id'])." alt='".$row['link_desc']."' target='_blank'><img src='".$row['link_logo_src']."' alt='".$row['link_title']."' width='".$link_config['width']."' height='".$link_config['height']."' border='0' /></a>";
  582.                     }
  583.                     else
  584.                     {
  585.                         $tmp = "<a href=".append_sid("links.$phpEx?action=go&link_id=" . $row['link_id'])." alt='".$row['link_desc']."' target='_blank'><img src='"."images/links/weblink_88x31.png"."' alt='".$row['link_title']."' width='".$link_config['width']."' height='".$link_config['height']."' border='0' /></a>";
  586.                         // $tmp = $lang['No_Logo_img'];
  587.                     }
  588.                 }
  589.                 else
  590.                 {
  591.                     $tmp = $lang['No_Display_Links_Logo'];
  592.                 }
  593.  
  594.                 $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
  595.                 $user_id = $row['user_id'];
  596.                 $username = $row['username'];
  597.  
  598.                 $template->assign_block_vars("linkrow", array(
  599.                     'ROW_CLASS' => $row_class,
  600.                     'LINK_URL' => append_sid("links.$phpEx?action=go&link_id=" . $row['link_id']),
  601.                     'LINK_TITLE' => $row['link_title'],
  602.                     'LINK_DESC' => $row['link_desc'],
  603.                     'LINK_LOGO_SRC' => $row['link_logo_src'],
  604.                     'LINK_LOGO' => $tmp,
  605.                     'LINK_CATEGORY' => $link_categories[$row['link_category']],
  606.                     'LINK_JOINED' => create_date($lang['DATE_FORMAT'], $row['link_joined'], $board_config['board_timezone']),
  607.                     'LINK_HITS' => $row['link_hits'],
  608.                     'U_LINK_USER' => ($user_id != ANONYMOUS ? ("<a href=\"profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id\" target=\"_blank\">$username</a>") : $username)
  609.                 ));
  610.                 $i++;
  611.             }
  612.             while ( $row = $db->sql_fetchrow($result) );
  613.         }
  614.  
  615.         //
  616.         // Pagination
  617.         //
  618.         $sql = "SELECT count(*) AS total
  619.             FROM " . LINKS_TABLE . "
  620.             WHERE link_active = 1";
  621.         $sql .= " AND (link_title LIKE '%$search_keywords%' OR link_desc LIKE '%$search_keywords %')";
  622.  
  623.         if ( !($result = $db->sql_query($sql)) )
  624.         {
  625.             message_die(GENERAL_ERROR, 'Could not query links number', '', __LINE__, __FILE__, $sql);
  626.         }
  627.  
  628.         if ( $row = $db->sql_fetchrow($result) )
  629.         {
  630.             $total_links = $row['total'];
  631.             $pagination = generate_pagination("links.$phpEx?t=$t&search_keywords=$search_keywords", $total_links, $linkspp, $start). ' ';
  632.         }
  633.         else
  634.         {
  635.             $pagination = ' ';
  636.             $total_links = 10;
  637.         }
  638.     }
  639.  
  640.     //
  641.     // Link categories dropdown list
  642.     //
  643.     foreach($link_categories as $cat_id => $cat_title)
  644.     {
  645.         $link_cat_option .= "<option value=\"$cat_id\">$cat_title</option>";
  646.     }
  647.  
  648.     $template->assign_vars(array(
  649.         'PAGINATION' => $pagination,
  650.         'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $linkspp ) + 1 ), ceil( $total_links / $linkspp )),
  651.         'L_GOTO_PAGE' => $lang['Goto_page'],
  652.  
  653.         'LINK_CAT_OPTION' => $link_cat_option
  654.     ));
  655.  
  656.     $template->pparse("body");
  657.  
  658.     include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
  659.     exit;
  660. }
  661.  
  662. $template->assign_vars(array(
  663.     'FOLDER_IMG' => $images['folder']
  664. ));
  665.  
  666. //
  667. // Grab link categories
  668. //
  669. $sql = "SELECT cat_id, cat_title FROM " . LINK_CATEGORIES_TABLE . " ORDER BY cat_order";
  670.  
  671. if(!$result = $db->sql_query($sql))
  672. {
  673.     message_die(GENERAL_ERROR, 'Could not query link categories list', '', __LINE__, __FILE__, $sql);
  674. }
  675.  
  676. //
  677. // Separate link categories into $catcol columns
  678. //
  679. $catnum = $db->sql_numrows($result);
  680. $catcol = 2;
  681. $num = intval($catnum/$catcol);
  682. if ($catnum % $catcol ) $num++;
  683. $template->assign_vars(array('LINK_WIDTH' => 100/$catcol));
  684. for( $i = 0;$i < $num; $i++)
  685. {
  686.     $template->assign_block_vars('catcol', array());
  687.     if ( ($catnum % $catcol) && ($i==$num-1) ) $catcol = $catnum % $catcol;
  688.     for( $j = 0;$j < $catcol; $j++)
  689.     {
  690.         $row = $db->sql_fetchrow($result);
  691.         $link_categories[$row['cat_id']] = $row['cat_title'];
  692.         $sql = "SELECT link_category FROM " . LINKS_TABLE . "
  693.             WHERE link_active = 1 AND link_category = ";
  694.         $sql .= $row['cat_id'];
  695.         if(!$linknum = $db->sql_query($sql))
  696.         {
  697.             message_die(GENERAL_ERROR, 'Could not query links list', '', __LINE__, __FILE__, $sql);
  698.         }
  699.         $template->assign_block_vars('catcol.linkrow', array(
  700.             'LINK_URL' => append_sid("links.$phpEx?t=sub_pages&cat=" . $row['cat_id']),
  701.             'LINK_TITLE' => $row['cat_title'],
  702.             'LINK_NUMBER' => $db->sql_numrows($linknum)
  703.             )
  704.         );
  705.     }
  706. }
  707.  
  708. //
  709. // Link categories dropdown list
  710. //
  711. foreach($link_categories as $cat_id => $cat_title)
  712. {
  713.     $link_cat_option .= "<option value=\"$cat_id\">$cat_title</option>";
  714. }
  715.     
  716. $template->assign_vars(array(
  717.     'LINK_CAT_OPTION' => $link_cat_option
  718. ));
  719.  
  720. $template->pparse("body");
  721.  
  722. include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
  723.  
  724. ?>