WebTolkRu
101 subscribers
629 photos
73 videos
2 files
651 links
Joomla-разработчик. Контрибьютер ядра Joomla. https://web-tolk.ru. Разработка Joomla на заказ. Также пишу в @JoomlaFeed.
@sergeytolkachyov Хабр: https://habr.com/ru/users/sergeytolkachyov/posts/
Download Telegram
Пакетное скачивание изображений со страницы с помощью javascript через консоль.
Понятно, что это какое-то извращение, но пригодилось разок. Сохраню сюда.
// ссылки к картинкам находятся в атрибуте href ссылки
// чтоб при клике открывать в модальном окне
let links = document.querySelectorAll('.objects-list .item a');

for(i = 0; i < links.length; i ++){

fetch(links[i].href)
.then(response => response.blob())
.then(blob => {
let link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = new Date().getTime();
link.click();
}
)
}


@webtolkru

#разработка #javascript
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Сборка расширений Joomla с помощью PHP Storm и Phing
Меняем быстро имена версий и мета-информацию в XML-манифестах расширений Joomla и в PHP Doc blocks во всех файлах проекта.

Задачи для Phing, пока что для 2.x версии. Под 3.х надо править.

@webtolkru

#php #phing #development #joomla #разработка #phpstorm
👍1
Быстрый поиск по id или содержимому в админке Joomla.
Если вы ищете конкретный модуль и знаете его Id, то укажите в поиске через двоеточие его id - id:124. Точно так же можно искать в материалах, контактах, тегах и т.д.
В материалах можно искать ещё и по содержимому, написав content:искомое слово. Ещё один поддерживаемый префикс поиска в Joomla - author:имя автора.

@webtolkru

#joomla
🔥2
Layouts и subLayouts в Joomla
В Joomla есть понятие layout. Это кусочек вёрстки, который можно многажды использовать в любом месте сайта: как в панели администратора, так и во фронтенде. Можно рассматривать лейауты как оторванные от контекста элементы дизайна. Находятся они в папке layouts в корне сайта. Как их использовать? Один из вариантов - использование LayoutHelper.
use Joomla\CMS\Layout\LayoutHelper;

// $item - ваш объект или массив с данными, которые нужно использовать в верстке

echo LayoutHelper::render('components.swjprojects.project.icons', ['item' => $item]);

1-й аргумент - это dot-separated (разделенный точками) путь к файлу лейаута. Название папки
"layouts" в данном случае пропускается как само собой разумеющееся. На скриншоте путь отмечен цифрами 1-4. Внутрь файла приходит массив $displayData, в котором будет лежать наш $item - $displayData['item'].
extract($displayData);

echo '<button role="button" class="btn btn-primary">'.$item->title.'</button>';

Либо же, если макет можно раздробить на более мелкие примитивы - тулбар с иконками разбить на отдельные иконки - то можно использовать метод subLayout().
В первом примере кода мы "вошли" в лейаут icons. А в файле icons.php можно вызвать подмакеты. Для этого нужно создать рядом папку с таким же названием - icons. А в нём уже будут лежать файлы подмакетов.
// icons.php
extract($displayData);

// обращаемся к /icons/downloads.php
echo $this->sublayout('downloads', $displayData);

// обращаемся к /icons/hits.php
echo $this->sublayout('hits', $displayData);

Передавать туда можно как целиком $displayData, так и какую-то часть от него. Тут уже как вам удобно.

Также помним, что файлы из layouts подвержены переопределениями в шаблонах.

Где это применимо? Да в принципе везде, хотя данный пример относится к разработке компонента.

@webtolkru

#joomla #development #php #разработка
❤1
Forwarded from Joomla Feed (Sergey Tolkachyov)
Обновление компонента SW JProjects v.2.0.0
Компонент позволяет создать свой собственный каталог расширений 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

#расширения #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
SW JProjects v.2.0.1
Компонент - менеджер цифровых проектов для Joomla! CMS™. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.
Список изменений
- Статистика скачиваний. Неправильно отображалась статистика скачиваний во фронтенде. Исправлено.
Подробнее
WT JSwiper - SWiper.js для Joomla-разработчиков v.11.1.10
Этот плагин для разработчиков Joomla. Плагин регистрирует Swiper.js пакет в Joomla Web Assets Manager. Затем вы можете использовать его в своих расширениях c помощью $wa->useScript('swiper-bundle')->useStyle('swiper-bundle').
Список изменений
- Bug Fixes. pagination: fixed swiper Infinite loop scroll jumping (#7690)
zoom: fix zoomIn after currentScale is set to 1 (#7663) (94173da)
Подробнее
WT Telegram bot - SW JProjects v.1.0.1
Плагин позволяет отправлять в Telegram чат или канал информацию о проектах и их версиях, документации из компонента SW JProjects прямо из интерфейса Joomla. Отправка производится вручную с помощью кнопки на тулбаре в списке проектов, версий, документации или при их редактировании. Для работы плагина нужен установленный и настроенный основной плагин System - WT Telegram bot.
Список изменений
- SW JProjects 2.0.0. Добавлена совместимость с SW JProjects 2.0.0
Подробнее
WT Jshopping SW JProjects v.2.1.1
Плагин для автоматической генерации лицензионных ключей в менеджере цифровых проектов SW Projects при продаже расширений Joomla с помощью интернет-магазина JoomShopping.
Список изменений
- SW Projects 2.0.0. Совместимость с новой версией компонента SW JProjects
Подробнее
Интеграция форм компонента RS Form PRO с Битрикс 24 (создание сделок) - код

Во время решения задачи интеграции форм обратной связи компонента RS Form PRO на Joomla 4 родился следующий код, который оставлю в блоге на правах заметки. Однако, он может помочь для быстрого решения задачи отправки форм из Joomla в Битрикс 24 "на коленке". В идеале нужно создавать плагин интеграции. Но на первое время данный способ также подойдёт.
Подробнее
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Совет по Joomla: атрибут showon в XML-формах Joomla Form
При создании расширений Joomla порой набирается куча полей, которые загромождают экран. Их можно группировать в fieldset, а можно скрывать, если одно поле зависит от значения другого (как на видео). Разработчики используют в XML описаниях полей атрибут showon.
Например, мы спрашиваем у пользователя является ли атрибут JoomShopping цветом и если да, то показываем поле для ввода цвета в HEX (как на видео).
Пример использования:
showon="radio1:2[AND]radio2:2"

Или пример кода из видео:
<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. Для этого в настройках поля перейдите во вкладку "Параметры" и укажите системное имя id поля следующим образом field + ID:
field36:value1[OR]field36:value2

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

@webtolkru

#joomla #php #xml #разработка #development
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Попалось в одном из чатов))
😁3
Писал статью почти 4 месяца )) Делюсь трудами:

Анатомия умного поиска в Joomla 5. Создание плагина.
Исторически в ядре Joomla существовало 2 компонента поиска: просто "поиск" и "умный поиск" (smart search). Простой поиск был в составе ещё Joomla 1.x и с тех пор существенно не менялся, а начиная с Joomla 4 был исключен из состава ядра. Начиная с Joomla 2.5 в число штатных был включен компонент Умного поиска (smart search) - com_finder, главным отличием которого от простого поиска стала индексация контента. Как создать плагин для умного поиска Joomla расскажет эта статья.

Читать на Хабре

#разработка #php #хабр #development #joomla #search
👍3
Forwarded from Joomla Feed (Sergey Tolkachyov)
⚠️ Joomla 5.1.3 и 4.4.6 - изменена работа пагинации. Ошибки в работе JoomShopping.
Релизы 5.1.3 и 4.4.6 были связаны в том числе с закрытием уязвимостей.
Все Pull Requests, связанные с безопасностью являются не публичными. Была изменена работа пагинации, что вызвало ошибки в работе страниц пагинации в компоненте интернет-магазина JoomShopping.
В международном чате Joomla-сообщества знают о проблемах и сообщили, что ближайшие релизы Joomla 5.1.4 и 4.4.8 исправят проблему. На GitHub Joomla они имеют уже статус RC2, а это означает, что стабильная версия ожидается со дня на день.

С одной стороны не могу не рекомендовать обновить Joomla до последних актуальных версий, так как это релизы безопасности. С другой стороны, если вы используете JoomShopping - стоит чуть повременить, чтобы не сломать боевые сайты.

Будьте внимательны и осторожны!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Совет по 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 потерять наши исправления. В данном случае можно вывести рендер одного поля вместо трёх.

@webtolkru

#joomla #php #backend #development #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
WT JSwiper - SWiper.js для Joomla-разработчиков v.11.1.11
Этот плагин для разработчиков Joomla. Плагин регистрирует Swiper.js пакет в Joomla Web Assets Manager. Затем вы можете использовать его в своих расширениях c помощью $wa->useScript('swiper-bundle')->useStyle('swiper-bundle').
Список изменений
- Bug Fixes. centeredSlides with centeredSlidesBounds don't work correct when slidesPerView: 'auto' and width of the swiper-container bigger then width of slides (#7696) (c11172a)
element: fix element styles to have correct order override (f26036f), closes #7704
virtual: fix bypassing initial translate check if Virtual is enabled (df957bb), closes #7699
Подробнее
Рабо-о-ота...
🔥4
Joomla Dialog (popup) script.
Документация по окну Joomla Dialog - javascript. Рылся по коду Joomla, наткнулся на примеры в комментариях, а оказалось, что и документация есть даже...
- генерация модального окна из javascript и автогенерация из data-атрибутов.
- 4 источника / типа содержимого модального окна:
- - iframe
- - inline содержимое
- - данные, полученные по ajax
- - картинка
... и много всего другого

А также переопределение стандартных alert() и confirm() в стилизованные.

https://manual.joomla.org/docs/general-concepts/javascript/js-library/joomla-dialog

#javascript #joomla #разработка
👍3
WT JSwiper - SWiper.js для Joomla-разработчиков v.11.1.12
Этот плагин для разработчиков Joomla. Плагин регистрирует Swiper.js пакет в Joomla Web Assets Manager. Затем вы можете использовать его в своих расширениях c помощью $wa->useScript('swiper-bundle')->useStyle('swiper-bundle').
Список изменений
- Bug Fixes. cards: fix cards effect styles leak (0be4c6a), closes #7712
- Features. a11y: add containerRole parameter (#7708) (1542c01)
Подробнее
👏1
JLSitemap - SWJProjects v.2.0.0
Плагин для интеграции Joomla компонента цифровых проектов SW JProjects и статической XML-карты сайта JLSitemap
Список изменений
- Joomla 5. Плагин переписан по архитектуре расширений Joomla 5. Это означает, что он будет работать без проблем и в Joomla 6.
- Скрытые проекты. Добавлена поддержка видимых проектов. Скрытые проекты теперь не попадают в карту сайта.
- SW JProjects 2.0.0. Поддержка SW JProjects 2.0.0. С более ранними версиями компонента плагин работать не будет.
Подробнее
👍2