Подсветка выбранного пункта меню

Модуль "Горизонтальное выпадающее меню"

#1 16 февраля 2011 в 18:21
Не могу взять в толк, как можно добиться подсветки пункта меню, на странице которого находится пользователь.
Модуль "Горизонтальное выпадающее меню"

Попытки вставить
  1. Код PHP:1 $(this).addClass('selected');
ни к чему хорошему не привели stuk
Может быть кто-нибудь поможет?

  1.  
  2. $menu_name = 'mainmenu'; //какое меню выводить
  3. $max_items = 7; //Количетсво полностью отображаемых пунктов
  4. /*End Конфиг************************************************************************************/
  5.  
  6. function mod_hmenu($module_id,$menu_name,$max_items){
  7. global $_CFG;
  8. $menuid = cmsMenuId();
  9.  
  10. if (isset($_SESSION['user']['id'])){
  11. $user_group = $_SESSION['user']['group_id'];
  12. } else {
  13. $user_group = cmsGuestGroup();
  14. }
  15.  
  16. $sql = "SELECT NSLeft, NSRight, NSLevel FROM cms_menu WHERE id = $menuid";
  17. $result = mysql_query($sql) or die(mysql_error());
  18. $currentmenu = mysql_fetch_assoc($result);
  19. mysql_free_result($result);
  20.  
  21. $root_id = dbGetField('cms_menu', 'parent_id=0', 'id');
  22.  
  23. $nested_sets = cmsNestedSetsInit('cms_menu');
  24. $rs_rows = $nested_sets->SelectSubNodes($root_id);
  25. $last_level = -1;
  26.  
  27. ob_start();
  28.  
  29. echo '<div id="hmenu" class="hmenu" align="center"><ul>';
  30. $m_count = 0;
  31. $splitit = 0;
  32. $is_admin = false;
  33. if(isset($_SESSION['user']['id'])) { if (cmsUserIsAdmin($_SESSION['user']['id'])) { $is_admin = true; } }
  34. while ($row = mysql_fetch_assoc($rs_rows)){
  35. if ($row['menu'] == $menu_name){
  36. $_2levellink='';
  37. $menulink = cmsMenuSeoLink($row['link'], $row['linktype'], $row['id']);
  38.  
  39. if ($row['allow_group']==-1 || $row['allow_group']==$user_group || $is_admin){
  40. if($row['published']){
  41. // BUILD ITEM /////////////////////////////////////////////////////////////////////
  42. if (!$row['iconurl']) {
  43. $fileicon = '/includes/jquery/treeview/images/file.gif';
  44. $foldericon = '/includes/jquery/treeview/images/folder-closed.gif';
  45. } else {
  46. $fileicon = '/images/menuicons/'.$row['iconurl'];
  47. $foldericon = '/images/menuicons/'.$row['iconurl'];
  48. }
  49. //////
  50. if ( $row['NSLevel']==1) {$m_count++;}
  51. if ($row['id']!=$menuid){
  52. //link target
  53. if ($row['target']) { $target = $row['target']; } else { $target = '_self'; }
  54. $link = '<a target="'.$target.'" class="'.$css_menulink.'" href="'.$menulink.'" style="background: url('.$fileicon.')">'.$row['title'].'</a>';
  55. } else {
  56. $link = '<div class="file" style="background: url('.$fileicon.')">'.$row['title'].'</div>';
  57. }
  58. if ($m_count==$max_items && !$splitit ){$_2levellink='<a href="#" style="background: url('.$fileicon.')">More.....</a><ul><li>';$splitit = 1;}
  59. if ( $row['NSLevel'] < $last_level ) { echo str_repeat('</ul></li>', $last_level-$row['NSLevel']); }
  60. if ( $row['NSRight'] - $row['NSLeft'] == 1 ){ // если разница единица, то значит у него нет потомков
  61. echo '<li>'.$_2levellink.$link.'</li>';
  62. }
  63. else {
  64. echo '<li>'.$_2levellink.'<a href="'.$menulink.'" style="background: url('.$foldericon.')">'.$row['title'].'</a><ul>';
  65. }
  66. $last_level = $row['NSLevel'];
  67. ////////////////////////////////////////////////////////////////////////////////////
  68. }
  69. }
  70. }
  71. }
  72. echo ($splitit)?'</ul></ul></div>':'</ul></div>';
  73.  
  74. ?>
  75. <link href="/templates/<?php echo $_CFG['template']; ?>/css/hmenu.css" rel="stylesheet" type="text/css">
  76.  
  77.  
  78.  
  79. <?php
  80.  
  81. return true;
  82.  
  83. }
  84. mod_hmenu(0,$menu_name,$max_items);
  85. ?>
#2 16 февраля 2011 в 18:24
Блин, только сейчас увидела, что javascript не отобразился.
Прилагаю его в аттаче.
Прикрепленный файл
script_51502.txt 499 байт
#3 17 февраля 2011 в 15:45
Если может кто, объясните хоть куда копать… Возможно ли это реализовать вообще?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.