Автор Тема: Подскажите по древу категорий пожалуйста  (Прочитано 19773 раз)

voron

  • Гость
Уже всю голову сломал :'( Как присвоить свой фоновый рисунок "подкатегориям" или вообще оставить их без фона?
Вот мой Stylesheet.css
[spoiler]}
#category ul {
        margin-top: 0px;
        margin-bottom: 0px;
        margin-left: 0px;
        padding-left: 0px;
        list-style: none;
}

#category {
    margin: 0;
    padding: 5px 0 0;
    width: 178px;
}
#category li a {
    text-decoration: none;
}
#category li a:link, #category li a:visited {
    background: url("../image/menu.gif") repeat scroll 0 0 transparent;
    color: #0e0e0c;height:28px;
    display: block;
    padding: 6px 5px 0 10px;
}
#category li a:hover {
    background: url("../image/menu2.gif") repeat scroll 0 transparent;
    color: #0e0e0c;height:28px;
    padding: 6px 5px 0 12px;
}
#category ul a.selected {
    font-weight: bold;
    background: url("../image/menu2.gif") repeat scroll 0 transparent;
    color: #0e0e0c;height:28px;
    padding: 6px 5px 0 12px;
}

#allproduct ul {
   margin-top: 0px;
   margin-bottom: 0px;
   margin-left: 8px;
   padding-left: 12px;
   list-style: none;
}
#information ul {
   margin-top: 0px;
   margin-bottom: 0px;
   margin-left: 8px;
   padding-left: 12px;
[/spoiler]
А это category_tree.tpl.html
[spoiler]{* category navigation tree *}
{if $smarty.const.CONF_SHOW_MENU == 1}<ul>
   {section name=i loop=$categories}{if $categories[6]>0}
  <li style="margin-left: {$categories[5]}">
{if $categoryID == $categories[0]}
{* selected node => strong *}
<a href="./{$categories[7]}" class="selected">{$categories[1]}</a>
{/if}
{if $categoryID != $categories[0]}
{* not selected node => normal *}
<a href="./{$categories[7]}">{$categories[1]}</a>
{/if}
     </li>{/if}{assign var="ja" value=0}
   {/section}</ul>
{else}

{* category navigation tree close menu*}
<ul>
   {section name=i loop=$categories_tree}{if $categories_tree[3]>0}
  <li style="margin-left: {$categories_tree[2]}">
{if $categoryID == $categories_tree[0]}
{* selected node => point category and don't make a link *}
<a href="./{$categories_tree[4]}" class="selected">{$categories_tree[1]}</a>
{else}
{* not selected node => make a link to a category *}
<a href="./{$categories_tree[4]}">{$categories_tree[1]}</a>
{/if}
     </li>
{/if}
   {/section}</ul>
{/if}[/spoiler]
Вот что у меня пока получилось

voron

  • Гость
Re: Подскажите по древу категорий пожалуйста
« Ответ #1 : Ноября 20, 2011, 05:59:14 pm »
Свернутое

voron

  • Гость
Re: Подскажите по древу категорий пожалуйста
« Ответ #2 : Ноября 20, 2011, 06:33:14 pm »
От первого варианта правая и левая колоки исчезают, а от второго ничего не меняется :-[

voron

  • Гость
Re: Подскажите по древу категорий пожалуйста
« Ответ #3 : Ноября 20, 2011, 07:09:50 pm »
Я так и сделал, еще раз проверил... исчезают. В любом случае спасибо за помощь!

Оффлайн Юрий

  • Старожил
  • ****
  • Сообщений: 322
    • Просмотр профиля
    • Во-Сток
Re: Подскажите по древу категорий пожалуйста
« Ответ #4 : Ноября 27, 2011, 07:03:17 pm »
Можно ли как то узнать есть ли в категории подкатегория?

<ul  id="verticalmenu" class="glossymenu">
    {assign var="old" value=0}
    {assign var="ja" value=0}
    {section name=i loop=$categories_tree}
        {if $categories_tree[i].level==$old}</li> {elseif $categories_tree[i].level>$old} <ul> {/if}
        {if $categories_tree[i].level<$old && $old>1}</li>{/if}
        {if $categories_tree[i].level<$old} </ul> {/if}
        <li><a href="./{$categories_tree[i].hurl}" {if $categoryID == $categories_tree[i].categoryID} class="selected" {/if}>{$categories_tree[i].name}</a>
    {assign var="old" value= $categories_tree[i].level}
    {/section}
</ul>
« Последнее редактирование: Ноября 27, 2011, 09:48:31 pm от slamm »

Оффлайн Юрий

  • Старожил
  • ****
  • Сообщений: 322
    • Просмотр профиля
    • Во-Сток
Re: Подскажите по древу категорий пожалуйста
« Ответ #5 : Ноября 27, 2011, 10:01:48 pm »
нее. Это то понятно. Я делаю выпадающее меню. и мне нужно знать если данная категория имеет в себе подкатегорию то нарисовать стрелочку. Я думаю что через ксс как то нужно...
 

ну вобщем меню идет типа
<li>name0</li>
<li>name1
 <ul>
    <li>sub1</li>
     <li>sub2</li>
   </ul>
</li>


Вот css шаблон
[spoiler]ul#css3menu1,ul#css3menu1 ul{margin:0;list-style:none;background-color:#f5f5f5;background-image:url("../image/mainbk.png");background-repeat:repeat;border-width:5px;border-style:solid;border-color:#999999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}
ul#css3menu1 ul{display:none;position:absolute;left:100%;top:0;-moz-box-shadow:0.7px 0.7px 1px #777777;-webkit-box-shadow:0.7px 0.7px 1px #777777;box-shadow:0.7px 0.7px 1px #777777;padding:0 9px 9px;background-color:#ffffff;background-image:none;border-width:1px;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;border-style:solid;border-color:#d8d9da;}
ul#css3menu1 li:hover>*{display:block;}
ul#css3menu1 li:hover{position:relative;}
ul#css3menu1 ul ul{position:absolute;left:100%;top:0; background-image:url("../image/arrowsub.gif");padding-right:27px;}
ul#css3menu1{padding:0 1px 1px;display:block;font-size:0;float:left;}
ul#css3menu1 li{display:block;white-space:nowrap;font-size:0;}
ul#css3menu1>li,ul#css3menu1 li{margin:1px 0 0;}
ul#css3menu1 a:active, ul#css3menu1 a:focus{outline-style:none;}
ul#css3menu1 a,ul#css3menu1 a.pressed{display:block;vertical-align:middle;text-align:left;text-decoration:none;font:bold 13px Arial;color:#262626;cursor:default; }
ul#css3menu1 ul li{float:none;margin:9px 0 0;}
ul#css3menu1 ul a{text-align:left;padding:8px 0 0 0;background-color:#ffffff;background-image:none;border-width:1px 0 0 0;border-style:solid;border-color:#D9D9D9;border-radius:0px;-moz-border-radius:0px;-webkit-border-radius:0px;font:bold 13px Arial;color:#333333;text-decoration:none;}
ul#css3menu1 li:hover>a{background-color:#e3e3e3;border-style:none;font:bold 13px Arial;color:#efefef;text-decoration:none;background-image:url("../image/mainbk.png");background-position:0 100px;}
ul#css3menu1 img{border:none;vertical-align:middle;margin-right:10px;}
ul#css3menu1 img.over{display:none;}
ul#css3menu1 li:hover > a img.def{display:none;}
ul#css3menu1 li:hover > a img.over{display:inline;}
ul#css3menu1 li a.pressed img.over{display:inline;}
ul#css3menu1 li a.pressed img.def{display:none;}
//ul#css3menu1 span{display:block;overflow:visible;background-position:right center;background-repeat:no-repeat;padding-right:0px;}
//ul#css3menu1 ul span{background-image:url("../image/arrowsub.gif");padding-right:27px;}
ul#css3menu1 a{padding:10px;background-color:#f5f5f5;background-image:url("../image/mainbk.png");background-repeat:repeat;background-position:0 200px;border-width:0px;border-style:none;border-color:;color:#262626;text-decoration:none;}
ul#css3menu1 li:hover>a,ul#css3menu1 li>a.pressed{background-color:#e3e3e3;background-image:url("../image/mainbk.png");background-position:0 100px;border-style:none;color:#efefef;text-decoration:none;}
ul#css3menu1 ul li:hover>a,ul#css3menu1 ul li>a.pressed{background-color:#ffffff;background-image:none;border-style:solid;border-color:#D9D9D9;font:bold 13px Arial;color:#aa0000;text-decoration:none;}
ul#css3menu1 li.topfirst>a{border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;text-shadow:#d8d8d8 0px 1px 1px;}
ul#css3menu1 li.topfirst:hover>a,ul#css3menu1 li.topfirst>a.pressed{text-shadow:#3d3d3d 0px -1px 1px;}
ul#css3menu1 li.topmenu>a{text-shadow:#d8d8d8 0px 1px 1px;}
ul#css3menu1 li.topmenu:hover>a,ul#css3menu1 li.topmenu>a.pressed{text-shadow:#3d3d3d 0px -1px 1px;}
ul#css3menu1 li.toplast>a{border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0;-webkit-border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;text-shadow:#d8d8d8 0px 1px 1px;}
ul#css3menu1 li.toplast:hover>a,ul#css3menu1 li.toplast>a.pressed{text-shadow:#3d3d3d 0px -1px 1px;}
ul#css3menu1 ._>li>a{padding:0;}
ul#css3menu1 li.subfirst>a{border-width:0;border-style:none;padding:0;}
ul#css3menu1 li.subfirst:hover>a,ul#css3menu1 li.subfirst>a.pressed{border-style:none;}[/spoiler]

тут если span то рисуется стрелочка
а мне нужно как то если есть подкатегория - нарисовалась стрелочка
« Последнее редактирование: Ноября 27, 2011, 10:41:13 pm от yr4ik »

Оффлайн Al_Uk

  • Спец
  • ***
  • Сообщений: 247
    • Просмотр профиля
Re: Подскажите по древу категорий пожалуйста
« Ответ #6 : Ноября 30, 2011, 12:02:34 am »
кстати, актуально насчет стрелочки или плюсика.


на сайте http://vo-stok.com.ua/  видно, что разобрались, как это делать.
Поделитесь опытом пожалуйста?

Как сделать, чтобы если есть подкатегория, в дереве каталога светился плюсик или стрелочка?

« Последнее редактирование: Ноября 30, 2011, 12:05:03 am от Al_Uk »

nictboom

  • Гость
Re: Подскажите по древу категорий пожалуйста
« Ответ #7 : Ноября 30, 2011, 12:46:55 am »
а без подобной реализации(css и jquery) и смысла нет. разве что только вывести (как было) кол-во товара в этой категории.

Оффлайн Юрий

  • Старожил
  • ****
  • Сообщений: 322
    • Просмотр профиля
    • Во-Сток
Re: Подскажите по древу категорий пожалуйста
« Ответ #8 : Ноября 30, 2011, 12:50:11 am »
Я то сделал но не так как хотел. Позже выложу как и что если будет время.
я хотел без жс чисто на ксс что б не розкрывалось во время загрузки.... Если кто знает как это оптимизировать - подскажите.

nictboom

  • Гость
Re: Подскажите по древу категорий пожалуйста
« Ответ #9 : Ноября 30, 2011, 12:54:56 am »
зачем ждать позже, выложите минимальное содержание кода(сама интеграция и js необходимый, ну и минимум css) так проще помочь и Вам и другим пользователям.
зы/ оптимизировать, что работает на js трудновато. проще на css новое сваять.
« Последнее редактирование: Ноября 30, 2011, 12:57:13 am от nictboom »

Оффлайн Юрий

  • Старожил
  • ****
  • Сообщений: 322
    • Просмотр профиля
    • Во-Сток
Re: Подскажите по древу категорий пожалуйста
« Ответ #10 : Ноября 30, 2011, 01:14:43 am »
Ну вот кратко...

css
[spoiler]/* Vertical Mega Menu Styles */
.dcjq-vertical-mega-menu .menu{
font: bold 12px Arial, sans-serif;
line-height: 16px;
position: relative; /* Required */
border: 1px solid #999;
border-bottom: none;
}

.dcjq-vertical-mega-menu .menu li a {
display: block;
color: #000;
padding: 11px 18px 11px 5px;
text-shadow: 1px 1px 1px #fff;
text-decoration: none;
border-bottom: 1px solid #999;
background: url(../image/bg_nav.png) repeat-x 0 0;
}

.dcjq-vertical-mega-menu .menu li a:hover, .dcjq-vertical-mega-menu .menu li.mega-hover a {
background-position: 0 -40px;
color: #fff;
text-shadow: 1px 1px 1px #000;
}

.dcjq-vertical-mega-menu .menu li a.dc-mega {position: relative;}

.dcjq-vertical-mega-menu .menu li a .dc-mega-icon {
display: block;
position: absolute;
top: 14px;
right: 15px;
width: 6px;
height: 8px;
background: url(../image/arrow_right.png) no-repeat -6px 0;
}

/* Mega menu container */
.dcjq-vertical-mega-menu .menu li .sub-container {
position: absolute; /* Required */
overflow: hidden;
background: url(../image/bg_menu.png) no-repeat 100% 100%; /* Add the drop shadow */
padding: 0 13px 17px 0; /* Padding for drop shadow */
}

.dcjq-vertical-mega-menu .menu li .sub-container .sub {
border: none;
padding: 15px 15px 5px 15px;
background: #fff url(../image/bg_grad_top.png) repeat-x 0 0;
border-top: 1px solid #ccc;
border-right: 1px solid #bbb;
border-bottom: 1px solid #bbb;
border-left: 1px solid #ccc;
}

.dcjq-vertical-mega-menu .menu li .sub .row {width: 100%; overflow: hidden;}

.dcjq-vertical-mega-menu .menu li .sub li {
float: none;
width: 140px;
font-size: 1em;
font-weight: normal;
}

.dcjq-vertical-mega-menu .menu li .sub li.mega-hdr {float: left;margin: 0 5px 10px 5px;}

.dcjq-vertical-mega-menu .menu li .sub a, .dcjq-vertical-mega-menu .menu.left li .sub a {
background: none;
border: none;
text-shadow: none;
float: none;
color: #000;
display: block;
text-decoration: none;
font-size: 0.9em;
margin-bottom: 0;
}

.dcjq-vertical-mega-menu .menu li .sub li.mega-hdr a.mega-hdr-a {
background: url(../image/bg_nav.png) repeat-x 0 -40px;
padding: 5px;
margin-bottom:5px;
text-transform: uppercase;
font-weight: bold;
color: #fff;
text-shadow: 1px 1px 1px #000;
text-align: left;
}

.dcjq-vertical-mega-menu .menu li .sub li.mega-hdr a.mega-hdr-a:hover {
color: #000;
text-shadow: none;
}
.dcjq-vertical-mega-menu .menu .sub li.mega-hdr li {margin-bottom: 3px;}
.dcjq-vertical-mega-menu .menu .sub li a {
padding: 3px 0px 3px 12px;
background: url(../image/bullet.png) no-repeat 3px 8px;
font-weight: normal;
text-transform: capitalize; font-size: 12px;
}

.dcjq-vertical-mega-menu .menu .sub li a:hover {color: #fff; background: #000 url(../image/bullet_white.png) no-repeat 5px 8px;}[/spoiler]

в head
[spoiler]<script type='text/javascript' src='./css/css_{$smarty.const.CONF_COLOR_SCHEME}/javascript
<script type="text/javascript">
$(document).ready(function($){
   $('#mega-1').dcVerticalMegaMenu({
      speed: 'fast',
      effect: 'slide',
      direction: 'right'
   });});</script>[/spoiler]

jquery.dcmegamenu.1.3.3.js
[spoiler]/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
*
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <[email protected]>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);


/*
 * DC Vertical Mega Menu - jQuery vertical mega menu
 * Copyright (c) 2011 Design Chemical
 *
 * Dual licensed under the MIT and GPL licenses:
 *    http://www.opensource.org/licenses/mit-license.php
 *    http://www.gnu.org/licenses/gpl.html
 *
 */
(function($){

   //define the new for the plugin ans how to call it   
   $.fn.dcVerticalMegaMenu = function(options){
      //set default options 
      var defaults = {
         classParent: 'dc-mega',
         arrow: true,
         classArrow: 'dc-mega-icon',
         classContainer: 'sub-container',
         classSubMenu: 'sub',
         classMega: 'mega',
         classSubParent: 'mega-hdr',
         classSubLink: 'mega-hdr',
         classRow: 'row',
         rowItems: 3,
         speed: 'fast',
         effect: 'show',
         direction: 'right'
      };

      //call in the default otions
      var options = $.extend(defaults, options);
      var $dcVerticalMegaMenuObj = this;

      //act upon the element that is passed into the design   
      return $dcVerticalMegaMenuObj.each(function(options){

         $mega = $(this);
         if(defaults.direction == 'left'){
            $mega.addClass('left');
         } else {
            $mega.addClass('right');
         }
         // Get Menu Width
         var megaWidth = $mega.width();
         
         // Set up menu
         $('> li',$mega).each(function(){
            
            var $parent = $(this);
            var $megaSub = $('> ul',$parent);
   
            if($megaSub.length > 0){
               
            $('> a',$parent).addClass(defaults.classParent).append('<span class="'+defaults.classArrow+'"></span>');
               $megaSub.addClass(defaults.classSubMenu).wrap('<div class="'+defaults.classContainer+'" />');
               var $container = $('.'+defaults.classContainer,$parent);
               
               if($('ul',$megaSub).length > 0){
                  
                  $parent.addClass(defaults.classParent+'-li');
                  $container.addClass(defaults.classMega);
                  
                  // Set sub headers
                  $('> li',$megaSub).each(function(){
                     $(this).addClass('mega-unit');
                     if($('> ul',this).length){
                        $(this).addClass(defaults.classSubParent);
                        $('> a',this).addClass(defaults.classSubParent+'-a');
                     } else {
                        $(this).addClass(defaults.classSubLink);
                        $('> a',this).addClass(defaults.classSubLink+'-a');
                     }
                  });
                  
                  // Create Rows
                  var hdrs = $('.mega-unit',$parent);
                  rowSize = parseInt(defaults.rowItems);
                  for(var i = 0; i < hdrs.length; i+=rowSize){
                     hdrs.slice(i, i+rowSize).wrapAll('<div class="'+defaults.classRow+'" />');
                  }

                  // Get mega dimensions
                  var itemWidth = $('.mega-unit',$megaSub).outerWidth(true);
                  var rowItems = $('.row:eq(0) .mega-unit',$megaSub).length;
                  var innerItemWidth = itemWidth * rowItems;
                  var totalItemWidth = innerItemWidth + containerPad;

                  // Set mega header height
                  $('.row',this).each(function(){
                     $('.mega-unit:last',this).addClass('last');
                     var maxValue = undefined;
                     $('.mega-unit > a',this).each(function(){
                        var val = parseInt($(this).height());
                        if (maxValue === undefined || maxValue < val){
                           maxValue = val;
                        }
                     });
                     $('.mega-unit > a',this).css('height',maxValue+'px');
                     $(this).css('width',innerItemWidth+'px');
                  });
                  var subWidth = $megaSub.outerWidth(true);
                  var totalWidth = $container.outerWidth(true);
                  var containerPad = totalWidth - subWidth;
                  // Calculate Row Height
                  $('.row',$megaSub).each(function(){
                     var rowHeight = $(this).height();
                     $(this).parent('.row').css('height',rowHeight+'px');
                  });
                  $('.row:last',$megaSub).addClass('last');
                  $('.row:first',$megaSub).addClass('first');
               } else {
                  $container.addClass('non-'+defaults.classMega);
               }
            }
         
            var $container = $('.'+defaults.classContainer,$parent);
            // Get flyout height
            var subHeight = $container.height();
            var itemHeight = $parent.outerHeight(true);
            // Set position to top of parent
            $container.css({
               height: subHeight+'px',
               marginTop: -itemHeight+'px',
               zIndex: '1000',
               width: subWidth+'px'
            }).hide();
         });

         // HoverIntent Configuration
         var config = {
            sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
            interval: 100, // number = milliseconds for onMouseOver polling interval
            over: megaOver, // function = onMouseOver callback (REQUIRED)
            timeout: 0, // number = milliseconds delay before onMouseOut
            out: megaOut // function = onMouseOut callback (REQUIRED)
         };
         
         $('li',$dcVerticalMegaMenuObj).hoverIntent(config);
            
         function megaOver(){
            $(this).addClass('mega-hover');
            var $link = $('> a',this);
            var $subNav = $('.sub',this);
            var $container = $('.sub-container',this);
            var width = $container.width();
            var outerHeight = $container.outerHeight(true);
            var height = $container.height();
            var itemHeight = $(this).outerHeight(true);
            var offset = $link.offset();
            var scrollTop = $(window).scrollTop();
            offset = offset.top - scrollTop
            var bodyHeight = $(window).height();
            var maxHeight = bodyHeight - offset;
            var xsHeight = maxHeight - outerHeight - itemHeight;

            if(xsHeight < 0){
               var containerMargin = xsHeight - itemHeight;
               $container.css({marginTop: containerMargin+'px'});
            }
            
            var containerPosition = {right: megaWidth};
            if(defaults.direction == 'right'){
               containerPosition = {left: megaWidth};
            }
            
            if(defaults.effect == 'fade'){
               $container.css(containerPosition).fadeIn(defaults.speed);
            }
            if(defaults.effect == 'show'){
               $container.css(containerPosition).show();
            }
            if(defaults.effect == 'slide'){
               $container.css({
                  width: 0,
                  height: 0,
                  opacity: 0});
               
               if(defaults.direction == 'right'){
            
                  $container.show().css({
                     left: megaWidth
                  });
               } else {
               
                  $container.show().css({
                     right: megaWidth
                  });
               }
               $container.animate({
                     width: width,
                     height: height,
                     opacity: 1
                  }, defaults.speed);
            }
         }
         
         function megaOut(){
            $(this).removeClass('mega-hover');
            var $container = $('.sub-container',this);
            $container.hide();
         }
      });
   };
})(jQuery);
[/spoiler]

и сам код category_tree.tpl.html(работает и по старому)
[spoiler]{if $smarty.const.CONF_SHOW_MENU == 1}
<div class="dcjq-vertical-mega-menu">
<ul id="mega-1" class="menu">
    {assign var="old" value=-1}
    {assign var="ul_open" value=0}
    {assign var="sub" value=0}

    {section name=i loop=$categories_tree}


        {if $categories_tree.level==$old}
            </li>
        {elseif $categories_tree.level>$old && $smarty.section.i.index!=0}
             <ul>{assign var="ul_open" value=$ul_open+1} {assign var="sub" value=1}
        {/if}

        {if $categories_tree.level<$old}
              </ul>{assign var="ul_open" value=$ul_open-1}
        {/if}

        {if $categories_tree.level==0 && $ul_open>0}
              </ul>{assign var="ul_open" value=$ul_open-1}
        {/if}

        {if $smarty.section.i.index==$categories_tree|@count && $ul_open>0}</ul>{/if}

        {if $categories_tree.level ne 0}
            {if $sub}<li class="subfirst">{assign var="sub" value=0}{else}<li>{/if}
            <a style="width:100%;" href="./{$categories_tree.hurl}" {if $categoryID==$categories_tree.categoryID} class="pressed" {/if}><span>{$categories_tree.name}</span></a>
        {else}
            <li class={if $smarty.section.i.index==0}"topfirst"{elseif $smarty.section.i.index==$categories_tree|@count-1}"toplast"{else}"topmenu"{/if}>
            <a href="./{$categories_tree.hurl} {if $categoryID==$categories_tree.categoryID}class="pressed"{/if}"><span>{$categories_tree.name}</span></a>
        {/if}

       {assign var="old" value= $categories_tree.level}
    {/section}
  {if $ul_open ne 0}</ul>{/if}
</ul></div>
<br>

{else}

<div class="box">
  <div class="top"><img src="./images/icon_cat.png" alt="" /> {$smarty.const.ADMIN_CATEGORY_TITLE}</div>
   <div class="middle cat">
   
   <ul  id="verticalmenu" class="glossymenu">
    {assign var="old" value=0}
    {assign var="ja" value=0}
    {section name=i loop=$categories_tree}
        {if $categories_tree.level==$old}</li> {elseif $categories_tree.level>$old} <ul> {/if}
        {if $categories_tree.level<$old && $old>1}</li>{/if}
        {if $categories_tree.level<$old} </ul> {/if}
        <li><a href="./{$categories_tree.hurl}" {if $categoryID == $categories_tree.categoryID} class="selected" {/if}>{$categories_tree.name}</a>
    {assign var="old" value= $categories_tree.level}
    {/section}
    </ul>
   </div>
  <div class="bottom"></div>
 </div>
{/if}[/spoiler]

Оффлайн Юрий

  • Старожил
  • ****
  • Сообщений: 322
    • Просмотр профиля
    • Во-Сток
Re: Подскажите по древу категорий пожалуйста
« Ответ #11 : Ноября 30, 2011, 04:13:24 pm »
И вы это для 4.6 кинули ?
Нет 5.0!
...............
А кто нибудь знает как можно улучшить, что б во время загрузки оно не разворачивалась?  Сайт: vo-stok.com.ua

nictboom

  • Гость
Re: Подскажите по древу категорий пожалуйста
« Ответ #12 : Декабря 01, 2011, 12:45:01 am »
yr4ik
если особо не парит в каком виде "подаётся", то рекомендовал даже такой вариант(когда то баловался).
все стили не обязательно использовать(я имею ввиду градиенты, радиусы... для ie костыли нужны(PIE.htc))
а так, вполне рабочее и на чистом css, и без js.
у меня на сайте используется, для "каталога"(splitok/com/ua).

shaidor

  • Гость
Re: Подскажите по древу категорий пожалуйста
« Ответ #13 : Декабря 22, 2011, 11:04:38 am »
например это хотя не идеал, но поискать можно, вариантов хватает.
Здравствуйте, не могли бы написать как это вставить в меню каталога, в стандартный шаблон. Заранее, спасибо.
« Последнее редактирование: Декабря 22, 2011, 12:00:40 pm от shaidor »

nictboom

  • Гость
Re: Подскажите по древу категорий пожалуйста
« Ответ #14 : Декабря 22, 2011, 08:39:09 pm »
навряд ли..
ps/ поспрашайте у тех кто делал.
« Последнее редактирование: Декабря 22, 2011, 09:31:58 pm от nictboom »