Обновить
21.2

CMS *

Системы управления сайтом

Сначала показывать
Порог рейтинга

E-mail шаблоны Joomla 5: добавление и просмотр своих переменных

В Joomla 5 появились настраиваемые email-шаблоны, как системные, так и сторонних компонентов. Их нельзя (пока что) добавить самостоятельно, они добавляются расширениями при установке. Но их можно отредактировать в Система - Шаблоны - Шаблоны писем. В настройках шаблонов писем (кнопка настроек компонента в верхнем правом углу) мы выбираем формат писем текст или HTML. Тогда становятся доступны настройки макетов шаблонов писем Joomla. Эти глобальные параметры можно переопределить в каждом конкретном email-шаблоне. Таким образом для каждого из email-шаблонов можно указать свою вёрстку и настройки логотипа.
Это, конечно, требует отдельной подробной статьи...

Для разработчиков: как добавить свои переменные для e-mail шаблонов Joomla?

Полезны окажутся 2 триггера для плагинов: onMailBeforeTagsRendering и onMailBeforeRendering.

onMailBeforeRendering - триггер, который позволяет добавлять свои шорт-коды для строковой замены в плагине. Отдать туда надо массив вида [ variable_name => variable_value ]. Из админки свои переменные нужно добавлять уже с фигурными скобками: {variable_name} заменится на variable_value. Аргументом $event плагина является экземпляр класса BeforeRenderingMailTemplateEvent, в котором есть кроме прочих 2 метода: getTemplate() (получение объекта мейлера, куда можно добавлять свои данные) и getTemplateId() (получение id шаблона письма вида com_users.registration.admin.new_notification), по которому мы определяем нужный ли это для нас email-шаблон или нет. Аналогично контексту в контент-плагинах.

Также полезное свойство класса для передачи данных из плагина в лейаут письма для рендера - $layoutTemplateData. Это ассоциативный массив.

// Получаем текущий мейлер 
$mailTemplate = $event->getTemplate();
$data = [
   'variable_name' => 'variable_value'
];
// с Joomla 4 для всех типов писем. 2-й аргумент - plain - текстовый формат письма 
$mailTemplate->addTemplateData($data, false);
// с Joomla 5.2 - для HTML-писем
$mailTemplate->addLayoutTemplateData($data);

// пример из ядра Joomla
// Add additional data to the layout template
$this->addLayoutTemplateData([
    'siteName' => $app->get('sitename'),
    'lang'     => substr($this->language, 0, 2),
]);

onMailBeforeTagsRendering - триггер, который добавляет ваши переменные в список доступных переменных для замены в окне редактирования email шаблона Joomla. Отдать туда нужно массив с переменными, но без их значений.

Чат Joomla-сообщества в Telegram

Мой личный Telegram-канал

Теги:
Рейтинг0
Комментарии0

Shopify's Sidekick — так себе

❗️ Дисклеймер: Я не обижаю ИИ от Shopify, а высказываю опыт работы с ним. Если тон поста показался грубым, то вам показалось.

Я отестировал Sidekick (https://www.shopify.com/magic) — ИИ менеджер встроенный в Shopify и мне не понравилось. Во-первых, что он вообще умеет на данный момент?

Я пробовал давать простые команды по типу:
“Убери скидки со всех товаров, где она есть”

Задачи посложнее, например:
“Сделай скидки и создай новую колелкцию под них”

Но пока что всё, что делает Sidekick это отображает данные. К примеру, он может показать какие товары в магазине имеет скидочную цену. Это, конечно, хорошо. Но это можно сделать зайдя во все продукты в админ-панеле.

Во-вторых, долгое ожидание. Я бы, может, не прикапывался если бы его выпустили год назад. Но его не выпустили год назад, а он появился в большинстве магазинов только две недели назад.

Поэтому этот искуственный менеджер уже не кажется вау обновлением. Ну добавили и добавили, к сожалению, пока что ничего интересного Sidekick не умеет.

Будем ждать. Возможно, скоро он выйдет из беты и тогда начнётся.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Подготовка расширений к Joomla 6: CMSObject -> stdClass

В Joomla 6 метод getItem() в Adminmodel будет возвращать \stdClass вместо CMSObject. Это означает, что все устаревшие функции этого класса будут недоступны.

Разработчики в Joomla 6 должны напрямую работать со свойствами объекта item и не использовать устаревшие методы set() и get().

Устаревший способ

<?php
$article = $app->bootComponent('content')->getMVCFactory()->createModel('Article', 'Administrator')->getItem(1);
echo $article->get('title');

Как будет в Joomla 6

<?php
$article = $app->bootComponent('content')->getMVCFactory()->createModel('Article', 'Administrator')->getItem(1);
echo $article->title;

Соответствующий Pull Request уже принят в ветку Joomla 6.

PR на GitHub

Теги:
Рейтинг0
Комментарии0

Запуск выполнения задач планировщика задач Joomla из консоли (CLI)

Чтобы запустить выполнение задач планировщика с помощью CLI Вам нужно подключиться к своему серверу по SSH и выполнить команду:

php /path/to/site/public_html/cli/joomla.php scheduler:run

Если требуется запустить конкретную задачу, то посмотреть список можно с помощью команды

php /path/to/site/public_html/cli/joomla.php scheduler:list

а затем запустить задачу по её id

php /path/to/site/public_html/cli/joomla.php scheduler:run --id=XXX

В некоторых случаях на сервере может быть не доступна просто команда php и может потребоваться указание пути к php. Начиная с Joomla 4 у неё под капотом консоль от Simfony.

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

Совет по Joomla: используем Promise в Ajax-запросах

В статье Ajax-запросы нативными средствами Joomla было подробно разобрано, как с помощью Joomla.request можно легко создавать Ajax-запросы в Joomla.

В одном из комментариев был вопрос по поводу Promise, а умеет ли Joomla? Умеет, но начиная с Joomla 4. Достаточно при создании запроса выставить флаг promise в true и результатом выполнения запроса будет Promise:

Joomla.request({
    url: Joomla.getOptions('system.paths', '').root+'/index.php?option=com_ajax&format=json&module=example',
    method: 'POST',
    promise: true
})
.then(response => {
    let text = JSON.parse(response.text);
    return text.data;
})
.catch(error => {
    console.log(error);
});

Таким образом мы можем эффективно строить асинхронные цепочки, добавив всего один флаг к вызову Joomla.request.

Теги:
Всего голосов 8: ↑8 и ↓0+11
Комментарии0

Совет о Joomla: использование FileLayout для рендера элементов макета.

Этот механизм используется под капотом Joomla для рендера отображения почти всех элементов интерфейса как фронта, так и админки. Обычно переиспользуемые "запчасти" выносятся в отдельные файлы: кнопки, тулбары, меню, табы и т.д. Для унификации отображения каждого элемента нужны некие данные данные и/или параметры: например, заголовок таба, надпись или onclick для кнопки, CSS класс и т.д.

<?php
use Joomla\CMS\Layout\FileLayout;

/**
 * Method to instantiate the file-based layout.
 *
 * @param   string  $layoutId  Dot separated путь к файлу, включая имя файла относительно base path
 * @param   string  $basePath  Основной путь к папке с макетами
 * @param   mixed   $options   Данные, нужные для работы макета. Registry или массив
 *
 * @since   3.0
 */
 $layout = new FileLayout('layout_file_name', JPATH_SITE . '/path/to/your/layout', ['buttonName' => 'Button name']);
// Рендерим наш макет
echo $layout->render();

Внутрь файла (/path/to/your/layout/layout_file_name.php в нашем случае) передаются данные и параметры для рендера. Получить эти данные можно следующим образом.

<?php
// Это содержимое файла /path/to/your/layout/layout_file_name.php
// Переданные данные приходят в формате Registry. Можно указать значение по умолчанию
$buttonName = $this->options->get('buttonName', 'Default name if value is empty');
?>
<button class="btn btn-primary"><?php echo $buttonName;?></button>

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Совет по Joomla: атрибут showon в XML-формах Joomla Form

При создании расширений Joomla порой набирается куча полей, которые загромождают экран. Их можно группировать в fieldset, а можно скрывать, если одно поле зависит от значения другого (как на видео). Разработчики используют в XML описаниях полей атрибут showon.Например, мы спрашиваем у пользователя является ли атрибут JoomShopping цветом и если да, то показываем поле для ввода цвета в HEX (как на видео).

Пример использования:

<field type="radio"
       name="is_color"
       label="Атрибут является цветом?"
       class="btn-group btn-group-yesno"
       description="Если да, то указываем код цвета в HEX или CSS-класс"
       default="0">
    <option value="0">JNO</option>
    <option value="1">JYES</option>
</field>
<field type="color"
       name="attr_color_code"
       label="Код цвета в HEX"
       showon="is_color:1"/>

Если поле is_color имеет значение "1", то поле с атрибутом showon="is_color:1" будет видно пользователю. Поддерживается логика И, ИЛИ, НЕ и несколько полей в условии. Работает даже для текстовых полей. Например, если не заполнен пароль для подключения к внешнему сервису - нет смысла показывать все остальные поля.

Почитать: Официальная документация Joomla по атрибуту showon.

Также использовать этот атрибут можно в пользовательских полях Joomla. Во вкладке "Параметры" поля укажите правило следующим образом field + ID:

field36:value1

где 36 - это id поля, от состояния которого зависит видимость данного.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии2

Совет по Joomla: как изменить вывод полей в админке?

Сегодня в Joomla-чате встретился вопрос:

Можно ли как-то убрать поля "Описание" и "Без описания" у пользовательского поля "Медиа (media)"?

Это поле типа AccessibleMedia, которое создаётся плагином группы Fields. Поле этого типа создаётся в админке для материалов, контактов и любых других компонентов, поддерживающих. В нём всегда есть поле для заполнения атрибута alt и галочка "без описания".

В админке Joomla действуют ровно те же правила, что и во фронтенде: практически всё можно переопределить в папке html шаблона. Шаблон админки Joomla по умолчанию - Atum. Поле AccessibleMedia использует для рендера layout joomla.form.field.media.accessiblemedia. Это dot-separated путь в папке layouts в корне сайта. Значит мы берём файл layouts/joomla/form/field/media/accessiblemedia.php и копируем его в папку html шаблона админки: administrator/templates/atum/html/layouts/joomla/form/field/media/accessiblemedia.php. Всё. Дальше в скопированном файле делаем всё, что хотим, не боясь при обновлении Joomla потерять наши исправления. В данном случае можно вывести рендер одного поля вместо трёх.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Совет по Joomla: использование методов плагинов в любом месте Joomla 4 / Joomla 5.

Нередко расширения Joomla в готовом виде состоят из пакета - комплекта плагинов, модулей, библиотек. Расширения из одного пакета могут нуждаться в одном и том же методе. В Joomla 4 и старше новая (хм-м, 2 года уже прошло...) архитектура плагинов позволяет обращаться к методам плагина откуда угодно, что может стать удобным решением задачи.

Обращение к методу "Сделать хорошо"
Обращение к методу "Сделать хорошо"

Такой подход можно использовать везде: в компонентах, плагинах, библиотеках, модулях и т.д. Например, если в настройках компонента можно переключить источник данных - плагин-провайдер, то один путь - триггерить событие для группы этих плагинов. А можно вызвать нужный метод напрямую.

<?php
use Joomla\CMS\Factory;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Plugin\PluginHelper;

// Получим параметры компонента
$component_params = ComponentHelper::getParams('com_mycomponent');
// Получим имя плагина-провайдера
$plugin_name = $component_params->get('data_provider');
// Проверим, а включён ли плагин?
if(PluginHelper::isEnabled('system', $plugin_name))
{
     // Загрузим плагин
     $plugin_provider = Factory::getApplication()->bootPlugin($plugin_name, 'system');
     // Получим данные из него напрямую
     $external_data = $plugin_provider->getExternalData($any_id);
}

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии1

Обновление компонента SW JProjects v.2.0.0

Скриншот панели администратора компонента SW JProjects в Joomla 5
Скриншот панели администратора компонента SW JProjects в Joomla 5

Компонент позволяет создать свой собственный каталог расширений Joomla (и не только) и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей. Для разработчиков Joomla есть возможность для каждого расширения указать сервер обновлений, changelog url для отображения изменений прямо в панелях администратора сайтов ваших клиентов.

v.2.0.0. Что нового?

Joomla 5 ready. Сделан большой рефакторинг. Компонент переписан на архитектуру расширений Joomla 5 и работает без плагина обратной совместимости.

Новый дизайн. Для большинства разделов обновлён дизайн. Вы также можете создать свои собственные макеты и выбрать их в настройках компонента.

Оглавление в документации. Теперь при чтении документации вам доступны все разделы, связанные с данным расширением.

Плагины для вставки проекта в контент. Добавлено 2 плагина: контент плагин и плагин кнопки редактора. Контент плагин позволяет превращать non-SEF ссылки вида index.php?option=com_swjprojects... в SEF. А также обрабатывает шорт-коды вида {swjprojects project_id=1 tmpl=your_tmpl_name}. Таким образом вы можете вставлять информацию о проектах везде, где работают плагины контента. Плагин кнопки редактора позволяет легко вставлять ссылки или шорт-коды с выбранным макетом.

Исправление ошибок. Модуль категорий неправильно работал на мультиязычных сайтах, отображая данные на одном языке. Исправлено.

Страница расширения

GitHub расширения

Joomla Extensions Directory

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Скрипт для отключения расширений, не входящих в ядро Joomla 3 (для обновления на Joomla 5+)

Перед обновлением сайта с Joomla 3 на Joomla 4 и выше нужно обновить все старые расширения до последних (для Joomla 3) версий. Затем отключить их, особенно системные плагины. Это делается для того, чтобы ничто не мешало процессу обновления. Для того, чтобы сделать это быстро - накидал скрипт, который отключает нестандартные расширения в Joomla 3.

➡️ Получить код скрипта (GitHub gist)

Файл disable_non_joomla3_extensions.php нужно положить в папку administrator вашего сайта и перейти по нему в браузере - yoursite.ru/administrator/disable_non_joomla3_extensions.php. Если всё успешно отключилось - выйдет сообщение.

XXX extensions that are not included in the Joomla 3 core have been detected and disabled. Make sure that they are disabled in the Site Admin Panel: Extensions - Extension Manager - Management.

Проверяем работу в менеджере расширений и после этого обновляем Joomla до Joomla 4 с помощью пакета обновлений Joomla 4.0.0. Обновляем Joomla 4 находясь на PHP 7.4 до конца. Меняем базу данных на MySQL 8+ (импорт-экспорт базы), поднимаем PHP до 8.1.

⚠️ Всё это делаем находясь ещё на Joomla 4. Обновиться нужно минимум до Joomla 4.4.0. Только после этого можно обновляться на Joomla 5 пакетом обновления 5.0.0. Затем обновляем все расширения и постепенно включаем их.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии3

Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других?

На основе данных из $_GET, $_POST порой строится логика работы кода начиная от шаблона Joomla и кончая модулями и плагинами. Для работы с этими данными используется объект Input, который мы получаем из Приложения Joomla.

Приведу пример, часто использующийся при разработке шаблонов Joomla

<?php
/** @var \Joomla\CMS\Application\CMSApplication $app */
$app   = Factory::getApplication();
/** @var \Joomla\Input\Input $input */
$input = $app->getInput();

// Имя параметра и его значение по умолчанию
$option   = $input->get('option','');
$view     = $input->get('view', 'category');
$layout   = $input->getCmd('layout', 'edit');
$task     = $input->getString('task', '');
$itemid   = $input->getInt('Itemid', '');

В методе $input->get() 2-й аргумент - это значение по умолчанию на случай, если данных не обнаружено. 3-й аргумент - параметры фильтрации данных - будьте с ним внимательны. Например, вы хотите получить данные, отправленные на ендпоинт в виде JSON.stringify.

<?php
/** @var \Joomla\Input\Input $input */
$input->json->get('title', '', 'RAW')
// ИЛИ
$data = $input->json->getArray();

Если вы уверены, что данные должны быть именно в $_POST и нигде более, то получайте их именно оттуда.

<?php
/** @var \Joomla\Input\Input $input */
$title = $input->post->get('title', '', 'RAW');

Подробнее в файле libraries/vendor/joomla/input/src/Input.php.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Список устаревших классов ядра Joomla 1.6-3.10 и их современные аналоги в ядре Joomla 5.x

Разработчикам при обновлении расширений на архитектуру Joomla 4 / Joomla 5 нередко не сразу удаётся найти аналоги устаревших методов ядра. Особенно, если под рукой нет современной среды разработки (IDE), например PHP Storm, который подсказывает нужные методы ядра Joomla. Без него, конечно, разработка для Joomla становится непростым делом. В этой статье вы найдете табличку соответствия старых и новых названий PHP классов ядра Joomla и её расширений для того, чтобы быстрее и легче было обновить свои расширения. Эти классы пока что можно использовать в случае, если включён плагин обратной совместимости Joomla 4 / Joomla 5. Но в Joomla 6 или последующих версиях он может быть удалён.

Подробнее: Список устаревших классов ядра Joomla 1.6-3.10 и их современные аналоги в ядре Joomla 5.x.

Теги:
Всего голосов 4: ↑2 и ↓2+2
Комментарии0

Ближайшие события

Совет по Joomla: метод HTMLHelper::image() для рендера изображений

В API Joomla есть довольно богатый инструмент - класс HTMLHelper. С его помощью можно выводить различные HTML-элементы с нужными параметрами: модальные окна, аккордеоны, табы, изображения и т.д.

Наглядности и чистоты кода ради стоит использовать этот метод, дабы не делать бесконечную конкатенацию HTML с PHP кодом и не потерять глаза в поисках утерянной кавычки.

Самый простой способ рендера изображений - с 2-мя аргументами:

  • $img - путь к изображению

  • $alt - текст для атрибута alt изображения 3-й необязательный параметр - массив или строка с атрибутами изображения: class, title, различные data-атрибуты, onclick, loading и т.д. Я предпочитаю удобно и наглядно собрать атрибуты в массив, использовать условия в PHP, а не HTML коде.

<?php
use Joomla\CMS\HTML\HTMLHelper;

$img_src = 'images/banner.webp';
$img_attribs = [
    'loading' => 'lazy',
    'class'=>'img-fluid',
    'data-custom-attr'=>'your-custom-data-attr-value',
    'title'=> 'Title attribute for image'
];

echo HTMLHelper::image($img_src,'Alt text for image', $img_attribs);

Если изображение найдено - получим HTML-разметку <img src="..."/> с нашими данными. Если не найдено - null.

Ещё 2 параметра, которые используются реже и связаны с одной из главных фишек Joomla - функционалом переопределений. Но их описание не укладывается в размер поста на Хабре 😢

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Плагин JLSitemap - Phoca Download

JL Sitemap - компонент для формирования статической XML карты сайта. В результате работы компонента формируется файл или файлсет карт сайта, который не нагружает каждый раз сервер при обращении к нему. Компонент получает данные для формирования XML карты сайта от плагинов. В стандартную поставку входят плагины:

  • Плагин поддержки Материалов Joomla.

  • Плагин поддержки Меток Joomla.

  • Плагин поддержки Контакты Joomla.

  • Плагин поддержки K2.

  • Плагин поддержки Kunena.

  • Плагин поддержки Virtuemart.

Также сторонними разработчиками созданы плагины:

  • JoomShopping

  • Phoca Gallery

Теперь к этому комплекту плагинов добавился плагин поддержки компонента Phoca Download. Он добавляет в карту сайта ссылки на категории и файлы Phoca Download с учетом того опубликован файл/категория или нет, действуют ли даты публикации, подтверждён файл или нет и т.д.

Плагин имеет сразу 2 релиза:

  • Версии 0.9.x созданы для Joomla 3 по старой архитектуре расширений. Возможно будут работать на Joomla 4 и Joomla 5 с включённым плагином обратной совместимости

  • Версии 1.х созданы для Joomla 4 и Joomla 5 по новой архитектуре расширений. Если Ваш сайт на Joomla 4 и старше - рекомендуется использовать именно последние версии плагина.

Страница расширения

Компонент XML-карты сайта JL Sitemap

Компонент Phoca Download

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Вышел Astroid Framework v.3.1.0 для Joomla

Обновление популярного шаблона-билдера Astroid для Joomla.

Что нового в отличие от версии 3.0.0?
- Добавлено эелементы бильдера - Виджеты. Более 20 виджетов. (Можно включить или отключить в настройках плагина.) Теперь можно создавать шаблон с помощью бильдера и можно создавать свои виджеты.
- Добавлены Макеты блоков. Можно создать свой блок макетов с помощью элементами билдера и применить его в шаблоне.
- Добавлена Макеты материалов. Макеты материалов можно создать свои и применить его в настройках макетов категории.
- Виды блоков категории (в настройках меню Blog options)
- Удаление генератора тега Joomla в настройках плагина.
- Можно выбирать модуль меню (свой модуль Astroid menu) в настройках шаблона (Не обязательно создать дубликать стиля для каждого языка сайта)

Улучшения
- Fontawesome 6.6.0
- Очистка кода и стабилизация
- Улучшения UI/UX разделов админки шаблона
- Поддержка 3-х сторон для создания виджетов для Astroid с помощью плагинов

Шаблон работает на Joomla 4/5.

Скачать с GitHub

Примечание:
- astroid-framework-3.1.0.zip - только фреймворк
- astroid-package-v3.1.0.Framework-Template.zip - фреймворк и 3 базовых шаблона

Для тех кто хочеть отправить донат или поблагодарить автора
ko-fi.com/astroidframework

Если есть пожелание или предложения по улучшению продукта, то можете оставить их на Github

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии2

Сравниваем Headless- и традиционный подход на примере Strapi CMS и WordPress

Разница традиционного и Headless-подходов
Разница традиционного и Headless-подходов

Headless CMS — это Low Code Solution для управления контентом.

При первом приближении Headless CMS очень похожа на стандартный подход с Django, Laravel или WordPress с прикрученным JSON API. Но дело в том, что у Headless-подхода есть несколько дополнительных преимуществ.

Выделим главные из них, сравнив Strapi CMS и WordPress:

  • Полная и простая кастомизация дизайна

    Фронтенд в Strapi — это отдельное приложение. Он не имеет отношения к самой CMS, что дает большую гибкость для создания интерфейсов.

  • Скорость отдачи контента

    Спорный момент, но Google заявляет, что сайты разработанные с использованием Headless CMS работают быстрее, чем, например, на WordPress.

  • Безопасность

    У WordPress достаточно много уязвимостей, и поэтому даже простой бэкэнд на нем не совсем безопасен.

  • Простота обслуживания и деплоя

    Со Strapi всё проще: собираем Docker-образ, пушим изменения кода в репозиторий, и, если настроен CI/CD, всё деплоится без проблем.

  • Мультиязычность

    В Strapi мультиязычность подключается проще, чем в WordPress. А также поддерживается интеграция со сторонними сервисами для переводов: можно отделить зону ответственности и не пускать переводчиков в систему управления контентом, и в таком случае, они будут использовать свой привычный инструмент.

Если есть, что добавить к плюсам Strapi CMS на фоне WordPress — велкам в комментарии, обсудим. А подробнее о тонкостях работы с Headless CMS пишем в большой статье.

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Работа с Joomla в PHPStorm. Шаблоны (boilerplate) для быстрого создания модулей, плагинов Joomla в IDE.
PHPStorm - среда разработки для PHP-программистов, работающих с кодом как на чистом PHP, так и с такими PHP-фреймворками как Symfony, Laravel, Yii и другими. PHPStorm с 2016 года имеет отличную поддержку Joomla, подсказывает методы ядра, аргументы функций, навигация по коду и всё-всё, что нужно для комфортного кодинга разработчика.

Бойлерплейты Joomla расширений для PHPStorm

Участник нашего сообщества, разработчик Игорь Бердичевский (@septdir) поделился на GitHub своими "плюшками" для работы с Joomla:

  • codeStyle - Code formating style

  • colors - цветовая схема для PHPStorm

  • fileTemplates - шаблоны для расширений Joomla

  • options - файл с названиями для шаблонов

  • project - шаблон для пустого Joomla-проекта включая задания для сборщика проекта Phing

  • templates - Live Templates for files

  • watchers - Configuration for File Watcher Этот инструментарий позволяет разработчику в PHPStorm быстро создать каркас нового модуля, плагина, компонента и не тратить время на ручное создание структуры файлов и папок.

Репозиторий JetBrains-PhpStorm на GitHub

Также полезные ссылки:

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Вышла новая версия Quantum Manager - популярного медиа и файлового менеджера под Joomla 4/5. Отличительной особенностью данного релиза является включение в ядро дистрибутива библиотеки lib_fields (ранее тянулась из внешнего источника при установке), а также интеграция с AcyMailing (компонент для e-mail рассылок). Также исправлены некоторые ошибки.

Что нового?

  • [добавлено] - Интеграция с AcyMailing. Это компонент для e-mail рассылок. Теперь можно при формировании писем вызывать медиа поле с Quantum.

  • [изменение] - Библиотека lib_fields, теперь часть пакета. Это позволит поставить компонент локально, без Интернет, а также решает проблему блокировки Github в
    некоторых регионах.

  • [исправлено] - Создание пустых папок при открытии менеджера, когда добавлялась область "Директория поля».

  • [исправлено] - Отображение название областей в конфигурации.

  • [добавлено] - Показывается id наименование области в конфигурации.

Quantum Manager работает на Joomla 4 и Joomla 5 (без плагина обратной совместимости), проверен на PHP 8.2+ и полностью бесплатен.

Работа с Quantum Manager
Работа с Quantum Manager

Ссылки:

Также добро пожаловать в Телеграм чат Joomla для профессионалов.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

WT CDEK library для Joomla

Скриншот настроек в плагине. Joomla 5.1.
Скриншот настроек в плагине. Joomla 5.1.

Небольшая нативная PHP Joomla библиотека для работы с API службы доставки CDEK. Пакет состоит из плагина для хранения настроек, PHP-библиотеки и виджета карты для выбора пунктов выдачи заказа. Поддерживается Joomla 4.2.7 и выше.

Библиотека представляет собой клиент для подключения и авторизации в API CDEK и несколько методов для работы с ним с предварительной проверкой структуры данных, а также обработку ошибок при запросе. Для работы с библиотекой под рукой необходимо иметь официальную документацию CDEK API.

Данное расширение предназначено для Joomla-разработчиков. Они могут использовать его в качестве зависимости при разработке своих расширений для Joomla. Pull Requests welcome со стороны Joomla разработчиков!

В составе библиотеки методы для получения списка ПВЗ, регионов, городов, 2 метода для расчета стоимости доставки и другие.

Виджет выбора типа доставки от CDEK (карта с выбором ПВЗ)

В состав библиотеки включен виджет карты ПВЗ последней на данный момент версии: 3.10.2. Javascript виджета оформлен как Joomla Web Asset. В своём коде подключаем его с помощью WebAssetManager.

По умолчанию в комплекте с виджетом идёт файл service.php, который является точкой входа для ajax-запроса. В данной библиотеке функционал этого файла (получение списка ПВЗ и калькуляции тарифов) перенесён в системный плагин Joomla.

Страница расширения и примеры кода.

GitHub репозиторий WT CDEK Library

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии2