Новости Joomla

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

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
VirtueMart Acordion Categories Menu
« : 28.09.2009, 16:11:35 »
Все подобные модули платные, поэтому я решил сделать некий компромиссный вариант

Для этого необходимо:
1. Скачать и установить вот этот модуль: http://extensions.joomla.org/extensions/structure-a-navigation/menu-systems/accordion-menus/6115
2.  Скачать и установить вот этот плагин для этого модуля: http://extensions.joomla.org/extensions/structure-a-navigation/menu-systems/accordion-menus/6129
3. Немного модифицировать mod_AccordionMenuApplestyle.php и ps_product_category.php

Модификация mod_AccordionMenuApplestyle.php: (привожу окончательный код)
Код
defined('_JEXEC') or die('Restricted access');
require_once (dirname(__FILE__).DS.'helper.php');
require_once(CLASSPATH.'ps_product_category.php');
$ps_product_category = new ps_product_category();
$tree=$ps_product_category->getCategoryTreeArray();
$str="{Accordion_Menu_Apple_style}";
foreach ($tree as $treeitem) {
 if (($treeitem["category_parent_id"]==0) && ($ps_product_category->has_childs($treeitem["category_child_id"])))
 {
  $str.=$treeitem["category_name"]."\n" . $ps_product_category->get_subcategory($treeitem["category_child_id"],"sublevel")."\n";
  }
}
$str.="{/Accordion_Menu_Apple_style}";
require(JModuleHelper::getLayoutPath('mod_AccordionMenuApplestyle'));
?>

и в файле ps_product_category.php, модификация функции function get_subcategory( $category_id, $css_class = "" )
Код
function get_subcategory( $category_id, $css_class = "" ) {
global $sess;
$ps_vendor_id = $_SESSION["ps_vendor_id"];

if( $css_class != "" ) {
$class= "class=\"$css_class\"";
}
else
$class = "";

$db = new ps_DB;

$q = "SELECT category_id, category_child_id,category_name FROM #__{vm}_category,#__{vm}_category_xref ";
$q .= "WHERE #__{vm}_category_xref.category_parent_id='$category_id' ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_category_xref.category_child_id ";
//$q .= "AND #__{vm}_category.vendor_id='$ps_vendor_id' ";
$q .= "AND #__{vm}_category.category_publish='Y' ";
$q .= "ORDER BY #__{vm}_category.list_order, #__{vm}_category.category_name ASC";
$db->setQuery($q);
$db->query();
$html = "";
$nbsp = "";
while($db->next_record()) {
$html .= "- <a class=\"sublevel\" title=\"".$db->f("category_name")."\" href=\"";
$html .= $sess->url(URL . "index.php?page=shop.browse&root=$category_id&category_id=" .$db->f("category_child_id"));
$html .= "\" $class>$nbsp".$db->f("category_name");
$html .= ps_product_category::products_in_category( $db->f("category_child_id") );
$html .= "</a>\n";
}

return $html;
}

После этих модификация модуль начинает показывать категории VirtueMart в Ассordion стиле, но есть ограничение: все пункты меню, которые выводятся чезе этот модуль должны иметь потомков, иначе он не работает верно. Как вариант, пункты меню без дочерних элементов можно вывести сверху или снизу использую стандартное меню (после модификации ps_product_category.php работоспособность сохраняется)

3 недостатка:
1. Нет изменения класса или добавление уникально ID на активных дочерних элементов. Кстати и на платном расширении этого выделение активного пункта меню тоже нет.

2. Странный SEF. Вообще он есть там, но выглядит не так красиво при стандартном меню, то есть:
        Сейчас выдает такие ссылки: http://mysite.ru/root-category-49/category-50.html
        А хочется вот такие, как по стандартному: http://mysite.ru/tuning-audi.html
В платно варианте ссылке более красивые.

3. При загрузке странице, всегда по умолчание раскрывается первый пункт меню. В платном варианте все изначально все пункты свернуты.

Надеюсь, кому-нибудь пригодится.
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Jedai

  • Захожу иногда
  • 152
  • 2 / 1
  • Yii framework
Re: VirtueMart Acordion Categories Menu
« Ответ #1 : 17.11.2009, 01:30:57 »
как сделать чтобы главное меню (mod_mainmenu) показывалось как AccordionMenu
*

OrlandoM

  • Захожу иногда
  • 55
  • 1 / 0
Re: VirtueMart Acordion Categories Menu
« Ответ #2 : 23.01.2010, 00:05:27 »
Большое спасибо за модуль, установил, сейчас буду ps_product_category.php модифицировать)))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 23478
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 10470
Последний ответ 14.01.2021, 00:09:53
от gartes
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 54278
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 28454
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Хаки для убыстрения VirtueMart (уменьшение запросов и т.п.)

Автор yadrinez

Ответов: 197
Просмотров: 81984
Последний ответ 05.02.2016, 21:53:34
от flyingspook