Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 2200 Просмотров
*

wolfandman

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Посоветуйте модули меню
« : 08.02.2010, 00:57:48 »
Привет всем!

Не посоветуете модули меню для Joomla, желательно конечно для VirtueMart так чтобы они могли выводить Пункты примерно так:



[вложение удалено Администратором]
*

wolfandman

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Re: Посоветуйте модули меню
« Ответ #1 : 08.02.2010, 00:58:57 »
А то я долго копался в стандартном модуле mainmenu, но он такой мудрёный, что я решил обратиться за помощью.
Или скажите хотя бы где искать.
Буду признателен.
*

wolfandman

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Re: Посоветуйте модули меню
« Ответ #2 : 08.02.2010, 14:38:48 »
Товарищи! Подскажите где можно самостоятельно поменять оформление вывода МЕНЮ? Мне хотелось бы управлять тегами <li>. Например, добавить класс, стиль
*

uNickalny

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Посоветуйте модули меню
« Ответ #3 : 08.02.2010, 22:27:47 »
Заходишь в свой шаблон tamplate/ccs/style.ccs и правишь, можно обычным блокнотом открыть, а можно и Notepad++
*

wolfandman

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Re: Посоветуйте модули меню
« Ответ #4 : 09.02.2010, 01:35:35 »
Спасибо большое за ответ.

Я сомневался, что CSS сможет решить мои текущие задачи.

Поэтому я только что закончил писать код, обходящийся без модуля main menu.
У меня интернет-магазин, поэтому мне нужно было избавиться от всякой фигни и сделать умную схему.
3 часа разбирался что куда и в итоге работает как часы. Я ещё не проверял на возможные ошибки. Это всё поправимо. Главное, что есть основа.
А main menu в топку. Этот код вставляю прямо в шаблон, где обычно вылезает main menu )
Если интересно:


<?php

function Art_lern_from_where_this_item($ID_CATEGORY_THIS_PAGE){
// Возвращает - строку ID всех категорий по возрастанию. Разделяются знаком | для дальнешего преобразования в массив.
// Принимает ID текущей категории ($_GET["category_id"]).

  global $database;
 
  $sql = 'SELECT * FROM #__vm_category_xref WHERE category_child_id="'.$ID_CATEGORY_THIS_PAGE.'" limit 1';
  $database->setQuery( $sql );
    if (!$database->query()) {
      echo $database->stderr();
    return false;
  }
  if ($database->getNumRows()>0){
    $rows = $database->loadObjectList();
      foreach ( $rows as $row ) {
        //echo "<p>$row->category_parent_id: <span style='color: red;'>$row->category_child_id</span></p>\n";    
        if ($row->category_parent_id>2){
          $row->category_parent_id;
          return Art_lern_from_where_this_item($row->category_parent_id)."|".$row->category_child_id;
        }
        //return $ID_CATEGORY_THIS_PAGE;
    }
  }
  
  return $ID_CATEGORY_THIS_PAGE;

}

$my_root = Art_lern_from_where_this_item($_GET["category_id"]);





function Art_get_letter_item($id){
  // Возвращает Имя категории.
  // Принимает Id категории
  
  global $database;
 
  $sql = 'SELECT * FROM #__vm_category WHERE category_id="'.$id.'"';
  $database->setQuery( $sql );
  $rows = $database->loadObjectList();
  foreach ( $rows as $row ) {
     return $row->category_name;
  }  
}


function Art_get_next_item($parent_id, $tree_level, $iterator=0, $page_now="", $my_root, $from_parent=0){
// Главная функция.
// Выводит Дерево. Довольно сложно получилось. Лень писать комментарии. Если нужно потом объясни что да как.
// Принимает ID родителя, с которого начинает работу (в данном случае у меня Главная страница - 0. Далее идёт 2, - это Каталог категории, поэтому я его указал чтобы именно с него начинось меню), второй параметр - это на сколько делать padding-left, третий параметр - Iterator. Используется для выяснения глубины дерева во время рекурсии). $page_now не пригодился, можно убрать), $my_root - сюда приходит результат работы функции Art_lern_from_where_this_item, что выше. $from_parent вроде тоже не пригодился.
  global $database;
  
  $new_root = explode ("|",$my_root);
  foreach ($new_root as $key=>$value){
  $key++;
     $root[$key] = $value;
  }
  $iterator++;
  
  $sql = 'SELECT * FROM #__vm_category_xref WHERE category_parent_id="'.$parent_id.'"';
  $database->setQuery( $sql );
    if (!$database->query()) {
      echo $database->stderr();
    return false;
  }
  if ($database->getNumRows()>0){
    $rows = $database->loadObjectList();
      foreach ( $rows as $row ) {
        
        if ($iterator==1) {$prefix = "<img src='' /> &nbsp;"; $font_size = "13px";}
        elseif ($iterator==2) {$prefix = "&ndash; &nbsp;"; $font_size = "12px";}
        elseif ($iterator==3) {$prefix = "· &nbsp;"; $font_size = "11px";}
        else {$prefix = ""; $font_size = "10px";}
      
        if ($root[$iterator]==$row->category_child_id){
            if ($iterator==1) $parent_style="font-weight: bold;";
            elseif ($iterator==2) $parent_style="font-weight: bold;";  
        }
        else $parent_style = "";
        
        if ($iterator==count($root) and $root[$iterator]==$row->category_child_id)
        
            echo "<tr><td style='padding-left: ".$tree_level."px;'>$prefix  
            <b>".Art_get_letter_item($row->category_child_id)."</b>
            </td></tr>";
        
        else
        
            echo "<tr><td style='padding-left: ".$tree_level."px;'>$prefix  
            <a style='$parent_style font-size: $font_size' href='http://yoursite.ru/index.php?option=com_virtuemart&page=shop.browse&category_id=$row->category_child_id&Itemid=53'>".Art_get_letter_item($row->category_child_id)."</a>
            </td></tr>";  
            
          
          if ($root[$iterator]==$row->category_child_id){
            Art_get_next_item($row->category_child_id, $tree_level+10, $iterator, $page_now, $my_root, 1);
          }
          
    }
  }
  else $tree_level=0;                                        
}
?>

<table border="0" width="100%" cellpadding="5">
<?Art_get_next_item(2, 0, 0, $_GET["catrgory_id"], $my_root);?>
</table>



Я не супер программист, так что код наверно корявый. Если что задавайте вопросы.

И конечно в довершении скрин. Так выглядит у меня ;)



[вложение удалено Администратором]
« Последнее редактирование: 26.03.2010, 17:28:52 от wolfandman »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Посоветуйте модули меню
« Ответ #5 : 09.02.2010, 01:39:01 »
о наворотили :) все делается стандартным CSS через уровни наследования (в настройках меню выставить плоский список)
UL.menu LI A - первый уровень
UL.menu LI A UL LI A - второй уровень
UL.menu LI A UL LI A UL LI A - третий уровень
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

uNickalny

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Посоветуйте модули меню
« Ответ #6 : 09.02.2010, 02:49:17 »
О Боги! Действительно наворотил ты за три часа))) Извините за неправильную подсказку, запарился что-то я...
*

wolfandman

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Re: Посоветуйте модули меню
« Ответ #7 : 09.02.2010, 11:18:24 »
Хахаха ))) Спасибо )) Ну я просто пару дней искал решения своей задачи. На форуме спрашивал, на гуле искал, на американских серверах всё перерыл. ну просто в тупике был ))
Но в следующий раз буду знать про заветные
UL.menu LI A - первый уровень
UL.menu LI A UL LI A - второй уровень
UL.menu LI A UL LI A UL LI A - третий уровень

)))


А что на счёт четвёртого, пятого уровней?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Посоветуйте модули меню
« Ответ #8 : 09.02.2010, 11:47:45 »
А что на счёт четвёртого, пятого уровней?
так посмотрите исходный код страницы и увидите, что каждый следующий уровень меню заключается в отдельный UL, делов то - делайте до бесконечности вложения
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

wolfandman

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Re: Посоветуйте модули меню
« Ответ #9 : 09.02.2010, 12:16:08 »
Понял. спасибо.

А представляешь ли ты способ с помощью одного только CSS сделать так чтобы список раскрывался только в том месте, где я нажал (как на скришноте).
На самом деле список есть везде. Но отображается только один. Это всё для экономии места.
Именно это заставило меня программировать.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Посоветуйте модули меню
« Ответ #10 : 09.02.2010, 12:21:03 »
А представляешь ли ты способ с помощью одного только CSS сделать так чтобы список раскрывался только в том месте, где я нажал (как на скришноте).
ну с кажем так с любой библиотекой (чтобы не заморачиваться с велосипедами) можно двумя строками JS подключить эффект раскрытия если есть вложенные UL
На чистом CSS тоже можно, к примеру неплохая подборка здесь http://www.cssplay.co.uk/menus/index.html
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

wolfandman

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Re: Посоветуйте модули меню
« Ответ #11 : 09.02.2010, 12:38:24 »
Ого ) Офигенский сайт. Я его не видел. Спасибо. Буду иметь в виду )

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ширина меню

Автор alex86r93

Ответов: 5
Просмотров: 5033
Последний ответ 14.06.2018, 05:13:50
от KANEGI
как сделать кнопки меню!

Автор Millenium_3000

Ответов: 10
Просмотров: 11576
Последний ответ 17.08.2017, 17:24:12
от Intrande
Вопрос по добавлению тега в МЕНЮ j 1.5

Автор berTalino

Ответов: 12
Просмотров: 4849
Последний ответ 29.03.2017, 16:20:43
от berTalino
Как увеличить ширину левого меню?

Автор afina2009

Ответов: 8
Просмотров: 2713
Последний ответ 09.04.2016, 23:00:36
от afina2009
Плавный якорь из меню на Jquery

Автор Timerlan

Ответов: 19
Просмотров: 3471
Последний ответ 04.02.2016, 03:54:16
от Fedor Vlasenko