Новости Joomla

Вышли релизы безопасности Joomla 6.1.4 и Joomla 5.4.9

Релиз безопасности Joomla 6.1.4 и Joomla 5.4.9

Проект Joomla! рад сообщить о выходе Joomla 6.1.4 и Joomla 5.4.9. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

JoomShift - компонент переноса контента между Joomla сайтами.

‍ JoomShift - компонент переноса контента между Joomla сайтами.

JoomShift - компонент переноса контента между Joomla сайтами.Он позволяет экспортировать модули, меню, материалы, категории, пользовательские поля и пользователей в виде переносимых JSON/ZIP-файлов, а затем импортировать их в любую другую установку Joomla.

Возможности компонента:- Модули — полная настройка, назначение пунктов меню, позиционирование и содержимое SP Page Builder.
-Меню — иерархия родительских/дочерних элементов, типы элементов, ссылки, уровни доступа и параметры. Отсутствующие типы меню создаются автоматически, а элементы, указывающие на неустановленные компоненты, пропускаются с предупреждением.
-Статьи и категории — контент, метаданные, изображения и иерархия категорий.
-Пользовательские поля — группы полей, определения, ограничения по категориям и значения (включая поля с несколькими значениями) — экспортируются и автоматически создаются заново на целевом сайте.
-Пользователи — данные профиля, назначения групп и хэши паролей, чтобы учетные записи работали сразу после импорта.
-Кросс-версииJoomla - компонент адаптируется к различиям в схеме базы данных между версиями Joomla.
-Создан для крупных сайтов — постраничные списки (20/50/100/250строк) и автоматический пакетный экспорт для сайтов с более чем 500 элементами, поэтому он продолжает работать на обычном хостинге.
-Опция перезаписи — обновляет совпадающие элементы при повторном импорте вместо создания дубликатов.
-Drag-n-drop импорт с подробным отчетом о том, что было импортировано, обновлено или пропущено, и почему.

На момент написания заметки для скачивания необходима регистрация/логин на сайте разработчика.

-Joomla Extensions Directory-Страница расширения#joomla#расширения

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Кроме этого, в состав пакета установки входит плагин, который позволяет выводить атрибуты товара в список всех товаров, менять эти атрибуты и добавлять товар в корзину из списка товаров. Если атрибутов много, то их можно выводить в всплывающем (модальном окне).

В модуле предусмотрено 2 макета дизайна для Bootstrap и UIkit и максимальная кастомизация для переопределения макетов в шаблон.Демо расширенияСтраница расширения

Видео в Telegram

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

john.deff

  • Захожу иногда
  • 115
  • 0 / 0
что подразумевается под "Роутер не работает"? фатальная ошибка? или не получает управление?
ошибок не выдаёт, просто не переходит на страницу
site.ru/index.php?view=object_list&id_category=kakaya-to-kategoryya

а вот если раскомментировать строку:
if( isset($query['id_category']) ){$segments[] = $query['id_category']; unset($query['id_category']); }
Код
function AbreadBuildRoute( &$query )
{
    $segments = array();
    if( isset($query['view']) ){       unset($query['view']); }
    if( isset($query['task']) ){       $segments[] = $query['task'];        unset($query['task']); }
    if( isset($query['id_category']) ){$segments[] = $query['id_category']; unset($query['id_category']); }
    if( isset($query['id']) ){         $segments[] = $query['id'];          unset($query['id']); }
    if( isset($query['limitstart']) ){ unset($query['limitstart']); }

    //echo "<pre>"; print_r($segments); echo "</pre>";
    return $segments;

}
function AbreadParseRoute( $segments )
{
    $vars  = array();
    $count = count($segments);
    $menu  = JMenu::getInstance('site')->getActive();
    $view  = isset($menu->query['view'])? $menu->query['view'] : '';

    if( $view === 'object_list' && $count == 1 ){
        $vars['view'] = 'object_view';
        //$vars['id_category'] = $segments[0];
        $vars['id'] = $segments[0];
        return $vars;
        //echo "<pre>"; print_r($vars); echo "</pre>";
    }

}
то выходит ошибка:

Warning: array_merge(): Argument #2 is not an array in site.ru/libraries/cms/router/router.php on line 350
Fatal error: Unsupported operand types in site.ru/libraries/cms/router/router.php on line 234

ошибка-то понятна, но вот как её отловить, не понятно...
ведь посмотреть что в массиве невозможно!
« Последнее редактирование: 25.05.2016, 09:55:19 от john.deff »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
ошибка-то понятна, но вот как её отловить, не понятно...
Мне кажется, что вам непонятна ошибка, поскольку отловить как раз можно - известны все данные: функция, файл, строка... В данном случае ваша функция AbreadParseRoute() ничего не возвращает, отсюда и ошибка.
ведь посмотреть что в массиве невозможно!
Сделайте
Код: php-brief
exit();
Не будь паразитом, сделай что-нибудь самостоятельно!
*

john.deff

  • Захожу иногда
  • 115
  • 0 / 0
Мне кажется, что вам непонятна ошибка, поскольку отловить как раз можно - известны все данные: функция, файл, строка... В данном случае ваша функция AbreadParseRoute() ничего не возвращает, отсюда и ошибка.Сделайте
Код: php-brief
exit();

как этим пользоваться?
покажите примерами! компонент написал проблем нет, но не могу совладать с роутингом!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
как этим пользоваться?
Так и пользоваться: вызывайте ее после prin_r(), чтобы прервать работу скрипта.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

john.deff

  • Захожу иногда
  • 115
  • 0 / 0
Так и пользоваться: вызывайте ее после prin_r(), чтобы прервать работу скрипта.

если в роутер ставить exit(); то выводятся кракозябры и даже главная страница падает!
ссылки вывожу через модуль!
как реально сделать отладку методов роутера? покажите на примере
« Последнее редактирование: 25.05.2016, 15:26:15 от john.deff »
*

john.deff

  • Захожу иногда
  • 115
  • 0 / 0
 ^-^ Ура! разобрался! мой код с комментариями и возможностью просмотра данных в массивах

Надеюсь кому нибудь будет полезно! всем спасибо! *DRINK*
код файна "router.php" который должен лежать в корне Вашего компонента
Код: php
<? defined('_JEXEC') or die;

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

function AbreadParseRoute( $segments )
{
    $vars  = array();
    $count = count($segments);
    $menu  = JMenu::getInstance('site')->getActive();
    $view  = isset($menu->query['view'])? $menu->query['view'] : '';

    //echo "<pre>"; print_r($count); echo "</pre>";
    //echo "<pre>"; print_r($menu); echo "</pre>";
    //echo "<pre>"; print_r($view); echo "</pre>";
    //echo "<pre>"; print_r($segments); echo "</pre>";

    # Этот блок орабатывает ссылки, типа:
    # index.php?option=com_macomp&view=home&Itemid=106
    # index.php?option=com_macomp&view=object_list&id_category=moya-kategoriya&Itemid=106
    # Главная страница где модуль отображает список ссылок на категории
    # это вид нашего компонента "MycompViewHome"
    if( $view === 'home' && $count == 1){// && $count == 1
        $vars['view'] = 'object_list';
        # так как нам надо отображать только alias категории без id,
        # то убираем из строки ":", так как Joomla сама автоматически проставляет это двоеточие ":"
        $vars['id_category'] = str_replace( ':', '-', $segments[0] );

        //echo "<hr />1<pre>"; print_r($view); echo "</pre>";
        //echo "<pre>"; print_r($vars); echo "</pre>";
        return $vars;
    }

    # Этот блок орабатывает ссылки, типа:
    # index.php?option=com_macomp&view=object_view&id_category=moya-kategoriya&id=29:moya-statya&Itemid=106
    # Так как эта страница выводит конечный объект в категории, то
    # в массиве у нас первей идет имя категории, второй id статьи и имя статьи (alias)
    if( $view === 'home' && $count == 2 ){// && $count == 2
        $vars['view'] = 'object_view';
        # так как нам надо отображать только alias категории без id,
        # то убираем из строки ":", так как Joomla сама автоматически проставляет это двоеточие ":"
        $vars['id_category'] = str_replace( ':', '-', $segments[0] );
        # Здесь отдаём: 29:moya-statya
        $vars['id'] = $segments[1];

        //echo "<hr />2<pre>"; print_r($view); echo "</pre>";
        //echo "<pre>"; print_r($vars); echo "</pre>";
        return $vars;
    }
}

Прошу модератора перевести тему в статус: РЕШЕНО
« Последнее редактирование: 25.05.2016, 17:25:36 от john.deff »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться