PageRenderTime 24ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/blocks/dyn_menu.php

http://github.com/MightyGorgon/icy_phoenix
PHP | 173 lines | 137 code | 21 blank | 15 comment | 29 complexity | 4cc4021cfd89edbaf2f4086da001cd2d MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /**
  3. *
  4. * @package Icy Phoenix
  5. * @version $Id$
  6. * @copyright (c) 2008 Icy Phoenix
  7. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8. *
  9. */
  10. /**
  11. *
  12. * @Extra credits for this file
  13. * masterdavid - Ronald John David
  14. *
  15. */
  16. if (!defined('IN_ICYPHOENIX'))
  17. {
  18. die('Hacking attempt');
  19. }
  20. if(!function_exists('cms_block_dyn_menu'))
  21. {
  22. function cms_block_dyn_menu()
  23. {
  24. global $db, $cache, $config, $template, $theme, $images, $user, $lang, $table_prefix, $block_id, $cms_config_vars;
  25. global $ip_cms;
  26. // Before starting with the loop... let's load the full menu links array!
  27. if (!function_exists('cms_menu_default_links_array'))
  28. {
  29. include_once(IP_ROOT_PATH . 'includes/functions_cms_menu.' . PHP_EXT);
  30. }
  31. $default_links_array = cms_menu_default_links_array();
  32. $template->_tpldata['cat_row.'] = array();
  33. $template->_tpldata['menu_row.'] = array();
  34. $template->_tpldata['show_hide.'] = array();
  35. $sql = "SELECT * FROM " . CMS_NAV_MENU_TABLE . "
  36. WHERE menu_id = '" . intval($cms_config_vars['md_menu_id'][$block_id]) . "'
  37. LIMIT 1";
  38. $result = $db->sql_query($sql, 0, 'cms_menu_', CMS_CACHE_FOLDER);
  39. while ($row = $db->sql_fetchrow($result))
  40. {
  41. break;
  42. }
  43. $db->sql_freeresult($result);
  44. if (($row['menu_name_lang'] != '') && isset($lang[$row['menu_name_lang']]))
  45. {
  46. $main_menu_name = $lang[$row['menu_name_lang']];
  47. }
  48. else
  49. {
  50. $main_menu_name = (($row['menu_name'] != '') ? $row['menu_name'] : $lang['quick_links']);
  51. }
  52. $sql = "SELECT * FROM " . CMS_NAV_MENU_TABLE . "
  53. WHERE menu_parent_id = '" . intval($cms_config_vars['md_menu_id'][$block_id]) . "'
  54. ORDER BY cat_parent_id ASC, menu_order ASC";
  55. $result = $db->sql_query($sql, 0, 'cms_menu_', CMS_CACHE_FOLDER);
  56. $menu_cat = array();
  57. $cat_item = array();
  58. $menu_item = array();
  59. $auth_levels = $ip_cms->cms_auth_view();
  60. while ($menu_item = $db->sql_fetchrow($result))
  61. {
  62. if ($menu_item['cat_id'] > 0)
  63. {
  64. $cat_item[$menu_item['cat_id']] = $menu_item;
  65. }
  66. if ($menu_item['cat_parent_id'] > 0)
  67. {
  68. $menu_cat[$menu_item['cat_parent_id']][$menu_item['menu_item_id']] = $menu_item;
  69. }
  70. }
  71. $db->sql_freeresult($result);
  72. foreach($cat_item as $cat_item_data)
  73. {
  74. if ($cat_item_data['menu_status'] == false)
  75. {
  76. $cat_allowed = false;
  77. }
  78. else
  79. {
  80. $auth_level_req = $cat_item_data['auth_view'];
  81. $cat_allowed = in_array($auth_level_req, $auth_levels) ? true : false;
  82. }
  83. if (!empty($cat_allowed))
  84. {
  85. $cat_id = ($cat_item_data['cat_id']);
  86. if (($cat_item_data['menu_name_lang'] != '') && isset($lang['menu_item'][$cat_item_data['menu_name_lang']]))
  87. {
  88. $cat_name = $lang['menu_item'][$cat_item_data['menu_name_lang']];
  89. }
  90. else
  91. {
  92. $cat_name = (($cat_item_data['menu_name'] != '') ? htmlspecialchars(stripslashes($cat_item_data['menu_name'])) : 'cat_item' . $cat_item_data['cat_id']);
  93. }
  94. $cat_icon = (($cat_item_data['menu_icon'] != '') ? '<img src="' . $cat_item_data['menu_icon'] . '" alt="" title="' . $cat_name . '" style="vertical-align: middle;" />&nbsp;&nbsp;' : '<img src="' . $images['nav_menu_sep'] . '" alt="" title="" style="vertical-align: middle;" />&nbsp;&nbsp;');
  95. if ($cat_item_data['menu_link'] != '')
  96. {
  97. $cat_link = append_sid($cat_item_data['menu_link']);
  98. if ($cat_item_data['menu_link_external'] == true)
  99. {
  100. $cat_link .= '" target="_blank';
  101. }
  102. }
  103. $template->assign_block_vars('cat_row', array(
  104. 'CAT_ID' => $cat_item_data['menu_parent_id'] . '_' . $cat_item_data['cat_id'],
  105. 'CAT_ITEM' => $cat_name,
  106. 'CAT_ICON' => $cat_icon,
  107. )
  108. );
  109. if (!empty($menu_cat[$cat_id]))
  110. {
  111. foreach($menu_cat[$cat_id] as $menu_cat_item_data)
  112. {
  113. if ($menu_cat_item_data['menu_status'] == false)
  114. {
  115. $menu_allowed = false;
  116. }
  117. else
  118. {
  119. $auth_level_req = $menu_cat_item_data['auth_view'];
  120. $menu_allowed = in_array($auth_level_req, $auth_levels) ? true : false;
  121. }
  122. if ($menu_allowed)
  123. {
  124. $menu_link = cms_menu_build_link($menu_cat_item_data, $block_id, true);
  125. $template->assign_block_vars('cat_row.menu_row', array(
  126. 'MENU_ICON' => $menu_link['icon'],
  127. 'MENU_ITEM' => $menu_link['name'],
  128. 'MENU_LINK' => $menu_link['link'],
  129. 'MENU_URL' => $menu_link['url'],
  130. )
  131. );
  132. }
  133. }
  134. }
  135. }
  136. }
  137. $show_hide_switch = (empty($user->data['is_bot']) && !empty($cms_config_vars['md_menu_show_hide'][$block_id])) ? true : false;
  138. if (!empty($show_hide_switch))
  139. {
  140. $template->assign_block_vars('show_hide_switch', array(
  141. )
  142. );
  143. }
  144. $template->assign_vars(array(
  145. 'MAIN_MENU_ID' => $block_id,
  146. 'MAIN_MENU_NAME' => $main_menu_name,
  147. )
  148. );
  149. }
  150. }
  151. cms_block_dyn_menu();
  152. ?>