Для реализации этой затеи нам нужно создать небольшой модуль.
Идем в папку с модулями и создаем там подпапку ltaxmenu. В ней создаем 3 файлика следующего содержания:

ltaxmenu.module

// $Id$
 
/**
* возвращает массив прав доступа
  *
    */
function onthisdate_perm() {
  return array('access onthisdate content');
}
 
/**
* Implementation hook_block()
  */
function ltaxmenu_block($op, $delta = 0){
 
  if ($op == 'list') {
    $blocks[0]['info'] = t('Help menu block');
    return $blocks;
  }
 
  $vid =7; //<-- vocabulary id
  $terms = taxonomy_get_tree($vid);
  $class = "";
 
  $output = '
 
    ';
  foreach ( $terms as $term ) {
    $children_terms = taxonomy_get_children($term->tid);
    if ($term->depth == 0) {
      if(!$children_terms) {
        $class = 'no-children';
      }else {
        $class = 'has-children';
      }
      $output .= "
        ";
      $output .= l($term->name,'view_tax_category/'.$term->tid, array('title' => $term->name));
      if ($children_terms) {
        $output .= "
          ";
        foreach ( $children_terms as $children_term ) {
          $output .= "
            ";
          $output .= l($children_term->name,'view_clothes/'.$children_term->tid, array('title' => $children_term->name));
          $output .= "
            ";
        }/* end foreach children */
        $output .= "
 
          ";
      }
      $output .= "
 
        ";
    }
  } /* end foreach */
  $output .= "
 
    ";
 
  if ($op == 'view') {
    drupal_add_js('sites/all/modules/ltaxmenu/ltaxmenu_block.js');
    $block['subject'] = t('ТКАНИ');
    $block['content'] = $output;
    return $block;
  }
}

ltaxmenu.info

; $Id$
name = Lobster's taxmenu
description = "Вывод таксономического меню с иерархией в блоке"
core = 6.x

ltaxmenu_block.js

$(document).ready(function() {
  // if js is enabled, coollaps children elements
  $('li.has-children').addClass('collapsed');
  $('.collapsed ul').css('display', 'none');
  // if menu activ element is in subcategory, expand his parent
  var hasChildren= $('li.has-children');
  $.each(hasChildren, function(){
    if($(this).find('.active').length > 0){
      $(this).removeClass('collapsed').addClass('expanded');
      $(this).children('ul').css('display', 'block');
    }
  });
  // expand/collapse items with children/child
  $('.has-children a').click(function() {
    if(!$(this).next().is(':visible')){
      $(this).next().slideDown('fast');
      $(this).parent().removeClass('collapsed');
      $(this).parent().addClass('expanded');
    }else{
      $(this).next().slideUp('fast');
      $(this).parent().removeClass('expanded');
      $(this).parent().addClass('collapsed');
    }
    return false;
  });
  // reaction on link click
  $('.has-children ul a').click(function(){
    var url = $(this).attr('href');
    $(location).attr('href',url );
  });
});

Куда нужно в код подставляем свои значения, идем в модули, включаем. После этого идем в блоки и перемещаем наш блок в нужное место.

Добавить комментарий