Новости Joomla

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

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

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
Просмотров: 2215
Последний ответ 18.12.2014, 10:22:04
от assa1988
Компонент вывода информации из внешней базы данных

Автор rambeer

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

Автор karabert

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

Автор passat

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

Автор artmasterpro

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