Новости 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 Гость просматривают эту тему.
  • 11 Ответов
  • 5838 Просмотров
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Здравствуйте, разрабатываю свой компонент и столкнулся с проблемой.

Задача следующая. Вывести метки на Яндекс карту через objectManager, следовательно надо получать данные с сайта в формате JSON
Для тестирования сделал view.josn.php (на скорую руку, потом уберу в контролер и сделаю модель) Сам вывод:http://test.joomlazen.com/index.php?option=com_jz_location&view=ymap&format=json
Код вывода:
Код
class JZLocationViewYmap extends JViewLegacy {
public function getMapObject($data) {
    $item = new stdClass();
    $item->type = 'Feature';
    $item->id = $data->id;
    $item->geometry = new stdClass();
    $item->geometry->type = 'Point';
    $item->geometry->coordinates = '[55.831903,37.411961]';
    $item->properties = new stdClass();
    $item->properties->balloonContent = 'Content';
    $item->properties->clusterCaption = 'Cluste';
    $item->properties->hintContent = 'Hint';
    return $item;
    }
public function getMapFeatures() {
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query
        ->select('*')
        ->from($db->quoteName('#__k2_items','a'))
        ->group($db->quoteName('a.id'))
        ->order('a.id DESC')
    ;
    $db->setQuery($query);
    $rows = $db->loadObjectList();
    if ($rows) {
        foreach ($rows as $row) {
            $main[] = $this->getMapObject($row);            
        }
        return $main;
    }
    return false;
}

public function display($tpl = NULL) {
    $app = JFactory::getApplication();
    $app->setHeader('Content-Type', 'application/json; charset=utf-8');
    $data = new stdClass();
    $data->type = "FeatureCollection";
    $data->features = $this->getMapFeatures();
    echo json_encode($data);
}
И соответственно создал вывод для удобства в простом HTML (Пример взял из Песочницы Яндекс, а на сайте сделал Access-Control-Allow-Origin:"*" )
Код
<!DOCTYPE html>
<html>
<head>
    <title>Примеры. Добавление на карту большо числа объектов</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!-- Если вы используете API локально, то в URL ресурса необходимо указывать протокол в стандартном виде (http://...)-->
    <script src="http://api-maps.yandex.ru/2.1/?lang=ru-RU" type="text/javascript"></script>
    <script src="http://yandex.st/jquery/2.1.0/jquery.min.js" type="text/javascript"></script>
    <script>
ymaps.ready(init);

function init () {
    var myMap = new ymaps.Map('map', {
            center: [55.831903,37.411961],
            zoom: 10
        }, {
            searchControlProvider: 'yandex#search'
        }),
        objectManager = new ymaps.ObjectManager({
            // Чтобы метки начали кластеризоваться, выставляем опцию.
            clusterize: true,
            // ObjectManager принимает те же опции, что и кластеризатор.
            gridSize: 32
        });

    // Чтобы задать опции одиночным объектам и кластерам,
    // обратимся к дочерним коллекциям ObjectManager.
    objectManager.objects.options.set('preset', 'islands#greenDotIcon');
    objectManager.clusters.options.set('preset', 'islands#greenClusterIcons');
    myMap.geoObjects.add(objectManager);

    $.ajax({
        url: 'http://test.joomlazen.com/index.php?option=com_jz_location&view=ymap&format=json'
    }).done(function(data) {
        objectManager.add(data);
    });

}</script>
<style>
        HTML, body, #map {
            width: 100%; height: 100%; padding: 0; margin: 0;
        }
    </style>
</head>
<body>
<div id="map"></div>
</body>
</html>
Честно говоря с AJAX не сильно дружу. поэтому прошу помочь разобраться. Заранее благодарен.

Для тех кому удобнее отвечать на stackoverflow вот ссылки http://ru.stackoverflow.com/questions/521697/joomla-json-yandex-map http://stackoverflow.com/questions/37134854/joomla-json-output-ajax
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Аякс тут совсем не нужен, собирайте данные в массив или объект, как вам надо для карты, потом с этим массивом/объектом json_encode() и все.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Аякс тут совсем не нужен, собирайте данные в массив или объект, как вам надо для карты, потом с этим массивом/объектом json_encode() и все.
Так вся, как я понимаю и проблема в JSON, точнее в том что карта не понимает что это json (хотя по логу ссылка распознается как "application/json; charset=utf-8")
Посмотрите пожалуйста код. может в нем проблема. А Акс мне потом понадобиться но дальше то я управлюсь просто застрял на этом месте
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Из кода не видно что у вас в data приходит, на вскидку добавьте еще в AJAX параметр dataType : 'json', тогда данные в data будут не строкой а объектом (если там действительно json приходит).
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Из кода не видно что у вас в data приходит, на вскидку добавьте еще в AJAX параметр dataType : 'json', тогда данные в data будут не строкой а объектом (если там действительно json приходит).
сам JSON вывод http://test.joomlazen.com/index.php?option=com_jz_location&view=ymap&format=json
 dataType : 'json', - попробовал не помогает
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Включайте FireBug, отлавливайте ошибки. json с виду вполне нормальный.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Включайте FireBug, отлавливайте ошибки. json с виду вполне нормальный.
Да в том то и дело, что там пусто. data в консоль тоже передается
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Проблему удалось решить путем добавления контролера. Код контролера
Код
function __construct($config = array()) {
    parent::__construct( $config );
}

 public function getMapObject($data) {
    $item = new stdClass();
    $item->type = 'Feature';
    $item->id = $data->id;
    $item->geometry = new stdClass();
    $item->geometry->type = 'Point';
    $item->geometry->coordinates = array(55.831903,37.411961);
    $item->properties = new stdClass();
    $item->properties->balloonContent = 'Content';
    $item->properties->clusterCaption = 'Cluste';
    $item->properties->hintContent = 'Hint';
    return $item;
    }
public function getMapFeatures() {
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query
        ->select('*')
        ->from($db->quoteName('#__k2_items','a'))
        ->group($db->quoteName('a.id'))
        ->order('a.id DESC')
    ;
    $db->setQuery($query);
    $rows = $db->loadObjectList();
    if ($rows) {
        foreach ($rows as $row) {
            $main[] = $this->getMapObject($row);            
        }
        return $main;
    }
    return false;
}

public function some() {
    $app = JFactory::getApplication();
    $app->setHeader('Content-Type', 'application/json; charset=utf-8');
    $data = new stdClass();
    $data->type = "FeatureCollection";
    $data->features = $this->getMapFeatures();
    echo json_encode($data);

}
Так же была ошибка в координатах  
Код
$item->geometry->coordinates = '[55.831903,37.411961]';
Они должны быть массивом
Код
 $item->geometry->coordinates = array(55.831903,37.411961);
« Последнее редактирование: 16.05.2016, 11:41:43 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Почеме в контроллере работаете с базой данных?
еще не окончательная версия, пока не более чем набросок для тестов (а тестировать удобно когда все в одном файле). Пока, не думал как в итоге сделать, но точно по другому.
Все операции с базой как полагается будут в model, возможно формирование объекта тоже(причем в одной функции). А вот дальше пока не знаю. С одной стороны формировать json под аякс  во view тоже не комильфо, с другой стороны это все же вывод.
« Последнее редактирование: 16.05.2016, 19:10:31 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Ну отдайте представлению чистые данные, а оно пусть само решает, что с ними делать. Либо в контроллере получите данные и дальше представлению, хотя при аяксе представление по сути лишнее. Как правило, в контроллере сразу JResponseJson формируете, забрав данные у модели, и отдаёте через echo.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Как правило, в контроллере сразу JResponseJson формируете, забрав данные у модели, и отдаёте через echo.
Ну вот я пока именно в эту сторону склоняюсь. Но все же до этого мне по плану еще далеко, просто не удержался с картой поиграться
« Последнее редактирование: 16.05.2016, 20:00:42 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не занимать место под пустой вывод модуля

Автор platonische

Ответов: 11
Просмотров: 1362
Последний ответ 28.04.2020, 07:53:11
от sivers
[РЕШЕНО] curl-файл Joomla $model->save($data) подключение модели администратора

Автор platonische

Ответов: 31
Просмотров: 2554
Последний ответ 30.05.2019, 16:10:57
от sivers
Вывод данных из нескольких одинаковых таблиц

Автор Outpost

Ответов: 6
Просмотров: 1125
Последний ответ 11.02.2019, 14:42:55
от passer
Вывод сгенерированного изображения в модуле

Автор Inoken

Ответов: 4
Просмотров: 1336
Последний ответ 16.08.2017, 22:00:59
от robert
Структура компонента (1 запись + JSON ИЛИ Много записей)

Автор platonische

Ответов: 4
Просмотров: 1319
Последний ответ 02.03.2017, 15:18:26
от passer