PageRenderTime 36ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/root/blocks/block_menus.php

https://github.com/dravekx/stargate-portal
PHP | 205 lines | 143 code | 39 blank | 23 comment | 43 complexity | 7b887524c4f439fc65392def7afbcdde MD5 | raw file
  1. <?php
  2. /**
  3. *
  4. * @package Stargate Portal
  5. * @author Michael O'Toole - aka Michaelo
  6. * @begin Saturday, 14th November, 2005
  7. * @copyright (c) 2005-2008 phpbbireland
  8. * @home http://www.phpbbireland.com
  9. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  10. * @note: Do not remove this copyright. Just append yours if you have modified it,
  11. * this is part of the Stargate Portal copyright agreement...
  12. *
  13. * @version $Id: block_menus.php 324 2009-01-17 01:23:22Z Michealo $
  14. * Updated: 15 November 2008 by NeXur
  15. *
  16. */
  17. /**
  18. * @ignore
  19. */
  20. if ( !defined('IN_PHPBB') )
  21. {
  22. exit;
  23. }
  24. $phpEx = substr(strrchr(__FILE__, '.'), 1);
  25. $queries = 0;
  26. $cached_queries = 0;
  27. $user->add_lang('portal/portal_blocks_variables');
  28. include($phpbb_root_path . 'includes/sgp_functions.'. $phpEx );
  29. global $db, $user, $_SID, $_EXTRA_URL;
  30. global $k_groups, $k_group_id, $k_group_name_id;
  31. // menu_type 0 = Header Menu,
  32. // menu type 1 = Main Nav blocks,
  33. // menu type 2 = Sub Nav Block
  34. $j = 0;
  35. $is_sub_heading = false;
  36. $k_groups = array();
  37. $k_group_name_id = array();
  38. $k_group_id = array();
  39. $loop_count = 0;
  40. $portal_menus = array();
  41. $my_names = array();
  42. $sql = "SELECT * FROM ". K_MENUS_TABLE . "
  43. WHERE menu_type = " . WELCOME_MESSAGE . " && view_by != 0
  44. ORDER BY ndx ASC ";
  45. if (!$result = $db->sql_query($sql, 1200))
  46. {
  47. trigger_error('Error! Could not query portal menus information: ' . basename(dirname(__FILE__)) . '/' . basename(__FILE__) . ', line ' . __LINE__);
  48. }
  49. $portal_menus = array();
  50. while( $row = $db->sql_fetchrow($result) )
  51. {
  52. $portal_menus[] = $row;
  53. }
  54. $db->sql_freeresult($result);
  55. // $group_name = which_group($user->data['group_id']); // change to get_group_name - do we need this one anymore? see below...
  56. get_all_groups();
  57. $memberships = array();
  58. $memberships = group_memberships(false, $user->data['user_id'], false);
  59. for ($i = 0; $i < count($portal_menus); $i++)
  60. {
  61. $name = strtoupper($portal_menus[$i]['name']); // convert to uppercase //
  62. $tmp_name = str_replace(' ','_', $name); // replace spaces with underscore //
  63. $name = (!empty($user->lang[$tmp_name])) ? $user->lang[$tmp_name] : $portal_menus[$i]['name']; // get language equivalent //
  64. $menu_item_view_by = $portal_menus[$i]['view_by'];
  65. $s_id = ''; // initiate our var session s_id, if we need to pass session id
  66. $u_id = ''; // initiate our var user u_id, if we need to pass user id
  67. $isamp = ''; // initiate our var isamp, if we need to use it
  68. $process_menu_item = false;
  69. $menu_item_view_by = $portal_menus[$i]['view_by'];
  70. // Advanced group options...
  71. if($menu_item_view_by == 0)
  72. {
  73. $process_menu_item = false;
  74. }
  75. else
  76. {
  77. if ($memberships)
  78. {
  79. foreach ($memberships as $member)
  80. {
  81. $group_name = $k_group_id[$member['group_id']]['group_name'];
  82. if($menu_item_view_by == $member['group_id'] || $member['group_id'] == $k_group_name_id['ADMINISTRATORS'])
  83. {
  84. $process_menu_item = true;
  85. }
  86. else
  87. {
  88. $loop_count++;
  89. switch($group_name)
  90. {
  91. case 'Guests':
  92. case 'GUESTS':
  93. case 'Anonymous':
  94. case 'ANONYMOUS':
  95. if($menu_item_view_by == 1 || $menu_item_view_by == $k_group_name_id['GUESTS']) $process_menu_item = true;
  96. break;
  97. case 'Registered':
  98. case 'REGISTERED':
  99. if($menu_item_view_by < 4 || $menu_item_view_by < $k_group_name_id['GLOBAL_MODERATORS']) $process_menu_item = true;
  100. break;
  101. case 'Registered Coppa':
  102. case 'REGISTERED_COPPA':
  103. if($menu_item_view_by < 4 || $menu_item_view_by < $k_group_name_id['GLOBAL_MODERATORS']) $process_menu_item = true;
  104. break;
  105. case 'Global Moderators':
  106. case 'GLOBAL_MODERATORS':
  107. if($menu_item_view_by < 5 || $menu_item_view_by < $k_group_name_id['ADMINISTRATORS']) $process_menu_item = true;
  108. break;
  109. case 'Bots':
  110. case 'BOTS':
  111. if($menu_item_view_by == 1 || $menu_item_view_by == 6 || $menu_item_view_by == $k_group_name_id['GUESTS'] || $menu_item_view_by == $k_group_name_id['BOTS']) $process_menu_item = true;
  112. break;
  113. default:
  114. if($menu_item_view_by == $loop_count || $menu_item_view_by < 3 || $menu_item_view_by < $k_group_name_id['REGISTERED_COPPA']) $process_menu_item = true;
  115. }
  116. }
  117. }
  118. $loop_count = 0;
  119. }
  120. else
  121. {
  122. $process_menu_item = false;
  123. }
  124. }
  125. if($portal_menus[$i]['append_uid'] == 1) // do we need to pass user id //
  126. {
  127. $isamp = '&amp';
  128. $u_id = $user->data['user_id'];
  129. }
  130. else
  131. {
  132. $u_id = '';
  133. $isamp = '';
  134. }
  135. if($portal_menus[$i]['append_sid'] == 1) // do we need to pass user session id //
  136. {
  137. $s_id = '?sid=';
  138. $s_id .= $user->session_id;
  139. }
  140. else
  141. $s_id = '';
  142. if($process_menu_item && $portal_menus[$i]['sub_heading']) $j++;
  143. if($process_menu_item)
  144. {
  145. if(strstr($portal_menus[$i]['link_to'], 'http'))
  146. $link = ($portal_menus[$i]['link_to']) ? $portal_menus[$i]['link_to'] : '';
  147. else
  148. $link = ($portal_menus[$i]['link_to']) ? append_sid("{$phpbb_root_path}" . $portal_menus[$i]['link_to'] . $s_id . $u_id) : '';
  149. $is_sub_heading = ($portal_menus[$i]['sub_heading']) ? true : false;
  150. $template->assign_block_vars('portal_menus_row', array(
  151. 'PORTAL_MENU_HEAD_NAME' => ($is_sub_heading) ? $name : '',
  152. 'PORTAL_MENU_NAME' => $name,
  153. 'U_PORTAL_MENU_LINK' => ($portal_menus[$i]['sub_heading']) ? '' : $link,
  154. 'PORTAL_MENU_ICON' => ($portal_menus[$i]['menu_icon']) ? '<img src="' . $phpbb_root_path . 'images/block_images/' . $portal_menus[$i]['menu_icon'] . '" height="16px" width="16px" alt="" />' : '<img src="' . $phpbb_root_path . 'images/block_images/none.gif" height="15px" width="15px" alt="" />',
  155. 'S_SOFT_HR' => $portal_menus[$i]['soft_hr'],
  156. 'S_SUB_HEADING' => ($portal_menus[$i]['sub_heading']) ? true : false,
  157. ));
  158. }
  159. }
  160. $template->assign_vars(array(
  161. 'S_USER_LOGGED_IN' => ($user->data['user_id'] != ANONYMOUS) ? true : false,
  162. 'U_INDEX' => "{$phpbb_root_path}index.$phpEx$SID",
  163. 'U_PORTAL' => "{$phpbb_root_path}portal.$phpEx$SID",
  164. 'M_PORTAL_DEBUG' => sprintf($user->lang['PORTAL_DEBUG_QUERIES'], ($queries) ? $queries : '0', ($cached_queries) ? $cached_queries : '0'),
  165. ));
  166. ?>