Новости Joomla

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

enshtein

  • Захожу иногда
  • 77
  • 9 / 0
Есть некий компонент - каталог товаров имеющий ссылки следующего вида:
http://site/product/2 - просмотр категории с ID = 2
http://site/product/3/4 - просмотр товара ID = 4 в категории с ID =3

файл router.php выглядит у меня так:
Код: php
<?php

function QuickCatalogBuildRoute(&$query)
{
$segments = array();
        
    if (isset($query['task'])) {
        $segments[] = $query['task'];
        unset($query['task']);
    }  
    if (isset($query['category_id'])) {                  
        $segments[] = $query['category_id'];
        unset( $query['category_id'] );
    };                
    if (isset($query['id'])) {                  
        $segments[] = $query['id'];
        unset( $query['id'] );
    };
    unset($query['view']);    
    return $segments;
}

function QuickCatalogParseRoute($segments)
{  
    $vars = array();
$count = count($segments);
    switch ($count)
    {
        case 1:
            $vars['view'] = 'category';
            $vars['category_id'] = $segments[0];
            break;
        case 2:
            $vars['view'] = 'element';
            $vars['category_id'] = $segments[0];
            $vars['id'] = $segments[1];
            break;
        default:
            $vars['task'] = $segments[0];
            $vars['id'] = $segments[1];
    }
    
return $vars;
    
}


все работает, все устраивает - есть только один косячный момент, на сайте выводится меню с пунктами указывающими на конкретные каталоги (категории продуктов) в моём компоненте  - при проходе по таким ссылкам они естественно выделяются при переходе внутри категории на страницу конкретного продукта пункт меню - текущей категории остается выделенным. Однако кроме этого меню  на общей странице моего компонента выводятся все категории - уже вывод самого компонента - и вот если пройтись по любой категории то пункты меню не выделяются! Как привязать (выделить) пункт меню и показ определенной категории в моем компоненте?
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Вот ключевой метод рутера моего каталога. Ищет правильный пункт меню по заданным параметрам:

Код: php
function queryMenu($menus, $view, $param=null, $value=null)
{
if( !$menus ) return null;

$siteMenu = &JSite::getMenu();
$item = null;
foreach( $menus as $menu )
{
// Get at least a menu item with the same view
if( $view === @$menu->query['view'] )
$item = $menu;
if( $param !== null && $value !== null )
{
$mparams = $siteMenu->getParams($menu->id);
if( is_array( $value ) &&  in_array( $mparams->get($param, 0), $value ))
{
$item = $menu;
break;
}
else if( !is_array( $value ) && $mparams->get($param, null) == $value )
{
$item = $menu;
break;
}
}
else if( $item !== null ) break;
}
return $item;
}
Вот использование:
Код: php
	$menu = &JSite::getMenu();
$myMenus = $menu->getItems('component', 'com_scatalog');
// Determine if we have a menu entry for this link:
$view = @$query['view'];
switch( $view )
{
case 'category':
case 'product':
$catid = intval($view == 'category' ? @$query['id'] : @$query['catid']);
if( $catid > 0 )
{
$cats = &getCatChain( $catid );
$mItem = queryMenu( $myMenus,  'category',  'catid', $cats );
}
else $mItem = queryMenu( $myMenus,  'category',  'catid', 0);
break;
case 'brands':
case 'brand':
$mItem = queryMenu( $myMenus,  'brands' );
break;
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Надо переделать готовый компонент Генератор Купонов J2.5 на J1.5

Автор mkoff

Ответов: 3
Просмотров: 1923
Последний ответ 18.12.2014, 10:22:04
от assa1988
Компонент вывода информации из внешней базы данных

Автор rambeer

Ответов: 33
Просмотров: 10435
Последний ответ 12.09.2014, 05:01:34
от Mad_Doc
Модифицировать компонент

Автор karabert

Ответов: 0
Просмотров: 1207
Последний ответ 28.11.2011, 22:39:04
от karabert
Новый компонент. Реализация поиска/фильтрации таблицы в админке.

Автор passat

Ответов: 6
Просмотров: 3521
Последний ответ 26.03.2011, 12:21:45
от yunoshev
Пишу первый в жизни MVC компонент

Автор artmasterpro

Ответов: 14
Просмотров: 2584
Последний ответ 24.03.2011, 09:26:39
от artmasterpro