Многоуровневое меню для сайта на MODx

Для создания меню будем использовать Wayfinder , css и примеры с сайта cssplay.co.uk

Пример1: выпадающее вниз меню

1) Создаём чанк topmenu

  1.  
  2. [[Wayfinder? &startId=`0` &level=`3` &parentClass=`hide` &parentRowTpl=`cssplay_parentRow` &outerTpl=`cssplay_outer` &innerTpl=`cssplay_inner` &rowTpl=`cssplay_row` &outerClass=`menu` &cssTpl=`cssplay_dropdown`]]
  3.  

2) Создаём чанк cssplay_parentRow

  1.  
  2. <li><a [+wf.classes+] href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]</a>
  3. <!--[if lte IE 6]>
  4. <a class="sub" href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]
  5. <table><tr><td>
  6. <![endif]-->
  7. [+wf.wrapper+]
  8. <!--[if lte IE 6]>
  9. </td></tr></table>
  10. </a>
  11. <![endif]-->
  12. </li>
  13.  

 3) Создаём чанк cssplay_outer

  1.  
  2. <div [+wf.classes+] >
  3. <ul>
  4. [+wf.wrapper+]
  5. </ul>
  6. </div>
  7.  

содержимое чанка cssplay_inner:

  1.  
  2. <ul>
  3. [+wf.wrapper+]
  4. </ul>
  5.  
чанк cssplay_row:
  1.  
  2. <li[+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li>
  3.  
и наконец cssplay_dropdown:
  1.  
  2. <link rel="stylesheet" media="all" type="text/css" href="assets/templates/wayfinder/dropdown.css" />
  3. <!--[if lte IE 6]>
  4. <link rel="stylesheet" media="all" type="text/css" href="assets/templates/wayfinder/dropdown_ie.css" />
  5. <![endif]-->
  6.  

Содержимое CSS

  1.  
  2. /* common styling */
  3. .menu {font-family: arial, sans-serif; width:690px; position:relative; margin:0; font-size:11px; z-index:100;}
  4. .menu ul li a, .menu ul li a:visited {display:block; text-decoration:none; color:#000;width:104px; height:20px; text-align:center; color:#fff; border:1px solid #fff; background:#710069; line-height:20px; font-size:11px; overflow:hidden;}
  5. .menu ul {padding:0; margin:0;list-style-type: none; }
  6. .menu ul li {float:left; margin-right:1px; position:relative;}
  7. .menu ul li ul {display: none;}
  8.  
  9. /* specific to non IE browsers */
  10. .menu ul li:hover a {color:#fff; background:#36f;}
  11. .menu ul li:hover ul {display:block; position:absolute; top:21px; left:0; width:105px;}
  12. .menu ul li:hover ul li a.hide {background:#6a3; color:#fff;}
  13. .menu ul li:hover ul li:hover a.hide {background:#6fc; color:#000;}
  14. .menu ul li:hover ul li ul {display: none;}
  15. .menu ul li:hover ul li a {display:block; background:#ddd; color:#000;}
  16. .menu ul li:hover ul li a:hover {background:#6fc; color:#000;}
  17. .menu ul li:hover ul li:hover ul {display:block; position:absolute; left:105px; top:0;}
  18. .menu ul li:hover ul li:hover ul.left {left:-105px;}
  19.  
Содержимое CSS для IE 6
  1.  
  2. .menu ul li a.hide, .menu ul li a:visited.hide {display:none;}
  3. .menu ul li a:hover ul li a.hide {display:none;}
  4.  
  5. .menu ul li a:hover {color:#fff; background:#36f;}
  6. .menu ul li a:hover ul {display:block; position:absolute; top:21px; left:0; width:105px;}
  7. .menu ul li a:hover ul li a.sub {background:#6a3; color:#fff;}
  8. .menu ul li a:hover ul li a {display:block; background:#ddd; color:#000;}
  9. .menu ul li a:hover ul li a ul {visibility:hidden;}
  10. .menu ul li a:hover ul li a:hover {background:#6fc; color:#000;}
  11. .menu ul li a:hover ul li a:hover ul {visibility:visible; position:absolute; left:105px; top:0; color:#000;}
  12. .menu ul li a:hover ul li a:hover ul.left {left:-105px;}
  13.  
  14.  

Оригинал примера

Последнее изменение документа: 22 Сентябрь 2009