PageRenderTime 42ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/clases/menu.php

#
PHP | 117 lines | 101 code | 10 blank | 6 comment | 19 complexity | e1eb74b6abcd5fd2d98b177a7140379c MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. /* Pinta el Menu de Acuerdo al nivel de acceso
  3. *
  4. */
  5. class menu {
  6. public $menu_str;
  7. public $submenu_top_str;
  8. public $menu_top_str;
  9. public $menu_bottom_str;
  10. public $submenu_str;
  11. public $opcion_str;
  12. public function __construct() {
  13. $this->menu_top_str = array();
  14. $this->menu_str = '';
  15. $this->submenu_top_str = array();
  16. $this->submenu_str = array();
  17. $this->opcion_str = array();
  18. }
  19. public function print_menu($idNivel) {
  20. if ($idNivel != '') {
  21. mysql_select_db(DB_NAME, CONEXION);
  22. $query_RsMenu = 'SELECT DISTINCT Menu.idMenu, Menu.Menu from Menu, Opcion Where Menu.idMenu = Opcion.idMenu and idOpcion in (SELECT idOpcion FROM Niveldetallegrid WHERE padre = ' . $idNivel . ') and Menu.estado = 1 ORDER BY Menu.orden';
  23. // echo $query_RsMenu;
  24. $RsMenu = mysql_query($query_RsMenu, CONEXION) or trigger_error(mysql_error(''), E_USER_ERROR);
  25. $row_RsMenu = mysql_fetch_assoc($RsMenu);
  26. $total_RsMenu = mysql_num_rows($RsMenu);
  27. if ($total_RsMenu > 0) {
  28. $contador = 0;
  29. do {
  30. $contador++;
  31. $codigo_menu = $row_RsMenu['idMenu'];
  32. $nombre_menu = $row_RsMenu['Menu'];
  33. $this->submenu_top_str[$contador] = '<ul>';
  34. $query_RsSubMenu = 'SELECT DISTINCT Submenu.idSubmenu, Submenu.Submenu from Submenu, Opcion where Submenu.idSubmenu = Opcion.idSubmenu and idOpcion in (SELECT idOpcion FROM Niveldetallegrid WHERE padre = ' . $idNivel . ') AND Submenu.idMenu = ' . $codigo_menu . '. ORDER BY Submenu.orden ';
  35. // echo $query_RsSubMenu;
  36. $RsSubMenu = mysql_query($query_RsSubMenu, CONEXION) or trigger_error(mysql_error(), E_USER_ERROR);
  37. $row_RsSubMenu = mysql_fetch_assoc($RsSubMenu);
  38. $total_RsSubMenu = mysql_num_rows($RsSubMenu);
  39. if ($total_RsSubMenu > 0) {
  40. $contador_submenu = 0;
  41. if ($contador_submenu == 0) {
  42. $this->menu_top_str[$contador] = $nombre_menu;
  43. }
  44. do {
  45. $contador_submenu++;
  46. $codigo_sub_menu = $row_RsSubMenu['idSubmenu'];
  47. $nombre_sub_menu = $row_RsSubMenu['Submenu'];
  48. $query_RsItem = 'SELECT idOpcion, Opcion, url FROM Opcion WHERE idMenu = ' . $codigo_menu . ' AND idSubmenu = ' . $codigo_sub_menu . ' AND activo = 1 and idOpcion in (SELECT idOpcion FROM Niveldetallegrid WHERE padre = ' . $idNivel . ') ORDER BY orden ASC;';
  49. // echo $query_RsItem;
  50. $RsItem = mysql_query($query_RsItem, CONEXION) or trigger_error(mysql_error(), E_USER_ERROR);
  51. $row_RsItem = mysql_fetch_assoc($RsItem);
  52. $total_RsItem = mysql_num_rows($RsItem);
  53. if ($total_RsItem > 0) {
  54. $contador_item = 0;
  55. if ($contador_item == 0) {
  56. $this->submenu_str[$contador][$contador_submenu] = '<a href="#">' . $nombre_sub_menu . '</a>';
  57. }
  58. do {
  59. $contador_item++;
  60. $nombre_item = $row_RsItem['Opcion'];
  61. $codigo_item = $row_RsItem['idOpcion'];
  62. if (strstr($row_RsItem['url'], 'browser.php') != '') {
  63. $url_item = '"' . $row_RsItem['url'] . '&id_op=' . $codigo_item . '&titulo_sufix=Todos"';
  64. } else {
  65. $url_item = '"' . $row_RsItem['url'] . '"';
  66. }
  67. $this->opcion_str[$contador][$contador_submenu][$contador_item] = '<a href=' . $url_item . '>' . $nombre_item . '</a>';
  68. } while ($row_RsItem = mysql_fetch_assoc($RsItem));
  69. }
  70. } while ($row_RsSubMenu = mysql_fetch_assoc($RsSubMenu));
  71. }
  72. } while ($row_RsMenu = mysql_fetch_assoc($RsMenu));
  73. mysql_free_result($RsItem);
  74. mysql_free_result($RsSubMenu);
  75. mysql_free_result($RsMenu);
  76. $this->menu_str = '<div id="ddtopmenubar" class="chromemenu"><ul>';
  77. for ($i = 1; $i <= count($this->menu_top_str); $i++) {
  78. $this->menu_str .= '<li><a href="#" rel="ddsubmenu' . $i . '">' . $this->menu_top_str[$i] . '</a></li>';
  79. }
  80. $this->menu_str .= '</ul></div>
  81. <script type="text/javascript">
  82. ddlevelsmenu.setup("ddtopmenubar", "topbar") //ddlevelsmenu.setup("mainmenuid", "topbar")
  83. </script>';
  84. for ($i = 1; $i <= count($this->menu_top_str); $i++) {
  85. $this->menu_str .= '<ul id="ddsubmenu' . $i . '" class="ddsubmenustyle">';
  86. for ($j = 1; $j <= count($this->submenu_str[$i]); $j++) {
  87. $this->menu_str .= '<li>' . $this->submenu_str[$i][$j] . '<ul>';
  88. for ($k = 1; $k <= count($this->opcion_str[$i][$j]); $k++) {
  89. $this->menu_str .= '<li>' . $this->opcion_str[$i][$j][$k] . '</li>';
  90. }
  91. $this->menu_str .= '</ul></li>';
  92. }
  93. $this->menu_str .= '</ul>';
  94. }
  95. }
  96. }
  97. return $this->menu_str;
  98. }
  99. public function __destruct() {
  100. unset($this->menu_str);
  101. unset($this->menu_top_str);
  102. unset($this->submenu_str);
  103. unset($this->opcion_str);
  104. unset($this->print_menu);
  105. }
  106. }
  107. ?>