Пакетное скачивание изображений со страницы с помощью javascript через консоль.
Понятно, что это какое-то извращение, но пригодилось разок. Сохраню сюда.
@webtolkru
#разработка #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
Меняем быстро имена версий и мета-информацию в XML-манифестах расширений Joomla и в PHP Doc blocks во всех файлах проекта.
Задачи для Phing, пока что для 2.x версии. Под 3.х надо править.
@webtolkru
#php #phing #development #joomla #разработка #phpstorm
👍1
Быстрый поиск по id или содержимому в админке Joomla.
Если вы ищете конкретный модуль и знаете его Id, то укажите в поиске через двоеточие его id -
В материалах можно искать ещё и по содержимому, написав
@webtolkru
#joomla
Если вы ищете конкретный модуль и знаете его Id, то укажите в поиске через двоеточие его id -
id:124. Точно так же можно искать в материалах, контактах, тегах и т.д. В материалах можно искать ещё и по содержимому, написав
content:искомое слово. Ещё один поддерживаемый префикс поиска в Joomla - author:имя автора.@webtolkru
#joomla
🔥2
Layouts и subLayouts в Joomla
В Joomla есть понятие layout. Это кусочек вёрстки, который можно многажды использовать в любом месте сайта: как в панели администратора, так и во фронтенде. Можно рассматривать лейауты как оторванные от контекста элементы дизайна. Находятся они в папке
1-й аргумент - это dot-separated (разделенный точками) путь к файлу лейаута. Название папки
"layouts" в данном случае пропускается как само собой разумеющееся. На скриншоте путь отмечен цифрами 1-4. Внутрь файла приходит массив
Либо же, если макет можно раздробить на более мелкие примитивы - тулбар с иконками разбить на отдельные иконки - то можно использовать метод
В первом примере кода мы "вошли" в лейаут icons. А в файле icons.php можно вызвать подмакеты. Для этого нужно создать рядом папку с таким же названием - icons. А в нём уже будут лежать файлы подмакетов.
Передавать туда можно как целиком
Также помним, что файлы из
Где это применимо? Да в принципе везде, хотя данный пример относится к разработке компонента.
@webtolkru
#joomla #development #php #разработка
В 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 ссылки вида
👩💻 Исправление ошибок
Модуль категорий неправильно работал на мультиязычных сайтах, отображая данные на одном языке. Исправлено.
- Страница расширения
- GitHub расширения
- Joomla Extensions Directory
#расширения #разработка
Компонент позволяет создать свой собственный каталог расширений Joomla (и не только) и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей. Для разработчиков Joomla есть возможность для каждого расширения указать сервер обновлений, changelog url для отображения изменений прямо в панелях администратора сайтов ваших клиентов.
v.2.0.0. Что нового?
Сделан большой рефакторинг. Компонент переписан на архитектуру расширений 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™. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.
Список изменений
- Статистика скачиваний. Неправильно отображалась статистика скачиваний во фронтенде. Исправлено.
Подробнее
Компонент - менеджер цифровых проектов для 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)
Подробнее
Этот плагин для разработчиков 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
Подробнее
Плагин позволяет отправлять в 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
Подробнее
Плагин для автоматической генерации лицензионных ключей в менеджере цифровых проектов SW Projects при продаже расширений Joomla с помощью интернет-магазина JoomShopping.
Список изменений
- SW Projects 2.0.0. Совместимость с новой версией компонента SW JProjects
Подробнее
Интеграция форм компонента RS Form PRO с Битрикс 24 (создание сделок) - код
Во время решения задачи интеграции форм обратной связи компонента RS Form PRO на Joomla 4 родился следующий код, который оставлю в блоге на правах заметки. Однако, он может помочь для быстрого решения задачи отправки форм из Joomla в Битрикс 24 "на коленке". В идеале нужно создавать плагин интеграции. Но на первое время данный способ также подойдёт.
Подробнее
Во время решения задачи интеграции форм обратной связи компонента RS Form PRO на Joomla 4 родился следующий код, который оставлю в блоге на правах заметки. Однако, он может помочь для быстрого решения задачи отправки форм из Joomla в Битрикс 24 "на коленке". В идеале нужно создавать плагин интеграции. Но на первое время данный способ также подойдёт.
Подробнее
This media is not supported in your browser
VIEW IN TELEGRAM
При создании расширений 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
Писал статью почти 4 месяца )) Делюсь трудами:
Анатомия умного поиска в Joomla 5. Создание плагина.
Исторически в ядре Joomla существовало 2 компонента поиска: просто "поиск" и "умный поиск" (smart search). Простой поиск был в составе ещё Joomla 1.x и с тех пор существенно не менялся, а начиная с Joomla 4 был исключен из состава ядра. Начиная с Joomla 2.5 в число штатных был включен компонент Умного поиска (smart search) -
Читать на Хабре
#разработка #php #хабр #development #joomla #search
Анатомия умного поиска в 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)
Релизы 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-чате встретился вопрос:
Можно ли как-то убрать поля "Описание" и "Без описания" у пользовательского поля "Медиа (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
Подробнее
Этот плагин для разработчиков 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
Подробнее
Joomla Dialog (popup) script.
Документация по окну Joomla Dialog - javascript. Рылся по коду Joomla, наткнулся на примеры в комментариях, а оказалось, что и документация есть даже...
- генерация модального окна из javascript и автогенерация из data-атрибутов.
- 4 источника / типа содержимого модального окна:
- - iframe
- - inline содержимое
- - данные, полученные по ajax
- - картинка
... и много всего другого
А также переопределение стандартных
https://manual.joomla.org/docs/general-concepts/javascript/js-library/joomla-dialog
#javascript #joomla #разработка
Документация по окну 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)
Подробнее
Этот плагин для разработчиков 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. С более ранними версиями компонента плагин работать не будет.
Подробнее
Плагин для интеграции Joomla компонента цифровых проектов SW JProjects и статической XML-карты сайта JLSitemap
Список изменений
- Joomla 5. Плагин переписан по архитектуре расширений Joomla 5. Это означает, что он будет работать без проблем и в Joomla 6.
- Скрытые проекты. Добавлена поддержка видимых проектов. Скрытые проекты теперь не попадают в карту сайта.
- SW JProjects 2.0.0. Поддержка SW JProjects 2.0.0. С более ранними версиями компонента плагин работать не будет.
Подробнее
👍2