WebTolkRu
99 subscribers
621 photos
72 videos
2 files
646 links
Joomla-разработчик. Контрибьютер ядра Joomla. https://web-tolk.ru. Разработка Joomla на заказ. Также пишу в @JoomlaFeed.
@sergeytolkachyov Хабр: https://habr.com/ru/users/sergeytolkachyov/posts/
Download Telegram
Под проект обновил пару плагинов для JoomShopping для вставки канонических страниц, отписал авторам.
- Joomshopping-Category_canonical-plugin
- Joomshopping-Products-Product_canonical-plugin
Теперь они по структуре Joomla 5+, должны без проблем работать и на Joomla 6, которая уже скоро...

#joomla #JoomShopping
🔥1
Forwarded from Joomla Feed (Sergey Tolkachyov)
Вышел шаблон Astroid Framework Version 3.2.0

Обновление популярного шаблона-билдера Astroid для Joomla. После выхода версии 3.1.0 добавлено много улучшений.

👩‍💻 Что нового?

Динамический контент.
Самое главное обновление - это добавление динамического контента (доступно в PRO-версии и для тестировщиков).

Улучшения
- Множество улушений кодовой базы шаблона и конструктора
- Возможность объединить страницу «Coming Soon» с Offline-страницей

Обновлено
- Используйте меню Link Icon Class, если он задано.
- Обновление Scss с версии 1.12 до версии 2.0.1
- Обновление Bootstrap 5.3.5
- Обновление локализации в связи с добавлением динамического контента
- Обновление Font Awesome 6.7.2

Спасибо за новость участнику нашего сообщества Ринату Кажетову (@rkazhet).

Скачать с GitHub

#joomla #шаблоны
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Ищу подмастерье / напарника.

Стек - web full stack (php, JavaScript, css). Joomla 5, Bootstrap 5, Joomshopping (на данный момент), работа в небольшой команде. Шаблоны-конструкторы не рассматриваю (Helix, Astroid и т.д.). Есть опыт написания плагинов / модулей - великолепно!

Обучение.

Формат работы time & materials (почасовка). Задачи в CRM, трекинг по тайм-трекеру. Я сам так работаю.

Ссылка на пару-тройку проектов или на GitHub желательна. Если их нет - возможно попрошу продемонстрировать свои компетенции. Прошу понять правильно.
👍5❤1🔥1
Попалось в Tenchat: Рынок готовой еды в России 2024

Если кратко: люди всё больше заказывают доставку готовой еды вместо того, чтобы готовить самим.

Joomla тут не причем. Думаю, можно сделать заметку на полях о том, какой сайт предлагать и кому, в каких направлениях развивать уже существующие.
Показались любопытными комментарии к посту:
Готовая еда — не столько категория, сколько сдвиг быта.
Пересобрались повседневные решения:
не “что съесть”, а “как не отвлекаться от главного”.

Выигрывает не тот, кто вкуснее.
А тот, кто встроен в архитектуру новой жизни —
в ритм, в логику, в логистику.

И это уже не про вкус.
Это — про фокус.


Ещё один:
Для демонстрации этого тренда прекрасно подходят два варианта приёма пищи - это попкорн в кинотеатре (или смартфон в фудкортах) и употребление блюд в полной темноте в ресторане (чтобы зрительный фактор не отвлекал от вкуса). В первом случае еда служит дополнением к контенту. Во втором случае подобные рестораны не выдержали конкуренции.

В ответ на вопрос одного из комментаторов о возможных причинах другой отвечает:
1) Быстрая урбанизация (образ жизни становится более занятым)
2) Рост семей с двойным доходом (оба партнёра работают, нет времени на готовку)
3) Рост располагаемых доходов (как следствие - меньше экономии на продуктах, больше денег тратится на "удобную" еду)
4) Растущее разнообразие кухонь (хочется попробовать разное)
5) Тенденция на ЗОЖ (часто проще купить сбалансированное и полезное блюдо, чем готовить), сюда же - рост популярности белковых и вегетарианских диет
6) Смена поколений (всё больше молодых профессионалов, которые менее заинтересованы в готовке)
7) Развитие технологий для упаковки (например, теперь многие блюда можно разогреть в микроволновке, что раньше было недоступно, а обработка под высоким давлением позволяет продлить жизнь на полке)


Читать пост на Tenchat
Forwarded from Joomla Feed (Sergey Tolkachyov)
Вышел релиз Joomla 5.3.0

Joomla 5.3 — последняя минорная версия в серии Joomla 5 перед выходом Joomla 6 осенью 2025 года.
Этот релиз сосредоточен на продуманных улучшениях, которые совершенствуют работу с CMS. От лучшей организации файлов и журналирования задач до расширенной обработки электронной почты и улучшенной доступности — Joomla 5.3 помогает администраторам и разработчикам работать более эффективно, сохраняя ваш сайт современным, безопасным и готовым к будущему.

👩‍💻 Joomla v.5.3.0. Что нового?

Улучшенные HTML-шаблоны писем. Просмотр шаблона письма теперь имеет доступ к параметрам шаблона, что позволяет лучше настраивать исходящие сообщения.
Добавлена папка "files". В Медиа Менеджере добавлена новая папка «files», которая помогает организовать не графические файлы (PDF, документы и т. д.) отдельно от изображений.
Запланированные задачи — история выполнения. Планировщик теперь ведет полный журнал выполнения задач, что упрощает мониторинг автоматизированных процессов и поиск ошибок.
Настройки текста ссылки «Подробнее» в модуле материалов. Добавлена новая опция, позволяющая администраторам сайта отображать или скрывать заголовок статьи в ссылках «Подробнее», выводимых в модуле материалов.
Улучшенная доступность. Иконки в компоненте «Контакты» теперь полностью доступны для экранных читалок, что улучшает пользовательский опыт для всех.
SEO. Роутинг: Улучшенная маршрутизация. Строгая маршрутизация и улучшенные параметры SEF URL уменьшают количество дублированного контента и ненужных перенаправлений, повышая SEO вашего сайта.
Современные события плагинов. Joomla продолжает переход к типизированным классам событий в основных плагинах, улучшая читаемость кода и поддержку в IDE (среда разработки).
Тонкая настройка прав доступа (ACL) для параметров компонентов. Теперь владельцы сайтов могут давать администраторам доступ к настройке параметров компонентов без полного доступа ко всему компоненту.
HTMLHelper::script() и HTMLHelper::stylesheet() помечены как устаревшие. Используйте WebAsset API.
Поддержка PHP 8.4. Joomla 5.3 включает важные изменения для обеспечения совместимости с PHP 8.4, помогая вашему сайту быть готовым к будущим обновлениям.

Подробнее на портале Joomla сообщества.

Подпишись на @joomlafeed
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
👩‍💻 Рендер пользовательского поля внутри другого пользовательского поля. Joomla 5.3.

Писал ранее о том, как внутри одного пользовательского поля рендерить другое пользовательское поле. Применил для этого возможность Joomla обращаться к методам плагинов напрямую. Процитирую строчку кода из предыдущего поста:
$joomlaFieldContentPlugn->onContentPrepare('com_content.article', $fakeItem, $app->getParams());

Joomla постепенно переходит от простого указания аргументов для триггеров плагинов к собственным классам событий. Это позволяет не запоминать порядок передачи аргументов класса и использовать человекопонятные методы $event->getContext(), $event->getItem() и т.д. А то в одном месте в Joomla было $article, в другом - $item, в третьем ещё как-то... Порядку больше становится.

Сегодня обновил сайт клиентов до Joomla 5.3. В ней обновили контент-плагин fields и мой финт ушами с вызовом метода плагина отвалился потому, что я передавал в нём 3 аргумента, вместо одного. И для события onContentPrepare это должен быть объект класса ContentPrepareEvent.

Как меняется фрагмент кода из предыдущего поста:
// мы находимся в файле макета поля

use Joomla\CMS\Event\Content\ContentPrepareEvent;
use Joomla\CMS\Factory;

$app = Factory::getApplication();
$fakeItem = new \stdClass();
// Получаем id текущего материала из объекта Input
$fakeItem->id = $app->getInput()->getInt('id');
// {field 29} - это шорт код вставки поля с id 29 - "ассортимент проекта"
// к содержимому поля конкатенируем шорт-код для обработки
$fakeItem->text = $field->value . '{field 29}';
// Получаем объект плагина
$joomlaFieldContentPlugn = $app->bootPLugin('fields', 'content');
// вызываем метод обработки напрямую
// вместо 3-х аргументов теперь указываем один
// это объект класса ContentPrepareEvent
$joomlaFieldContentPlugn->onContentPrepare(new ContentPrepareEvent('onContentPrepare', [
'context' => 'com_content.article',
'subject' => $fakeItem,
'params' => $app->getParams(),
'page' => 0,
]));
// выводим оба поля
echo $fakeItem->text;

@webtolkru

#joomla #webdev #php #разработка #поля
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Forwarded from Joomla Feed (Sergey Tolkachyov)
Управление очередностью плагинов в Joomla 5 с помощью приоритетов обработки событий

Для разработчиков Joomla предоставляет 7 уровней приоритета выполнения плагинов. По умолчанию большинство плагинов запускаются с приоритетом NORMAL. Если вы как разработчик хотите дать возможность своим пользователям устанавливать порядок выполнения плагинов не только с помощью перетаскивания их мышкой в админке в рамках одной группы, но и с помощью параметра, то вам окажется полезной эта заметка.

Автор - участник нашего сообщества Виталий Некрасов (@vitalik_a).

Читать на Joomlaportal

#joomla #разработка #php

👩‍💻 Если у вас есть интересные и полезные материалы о Joomla - присылайте админам сообщества. Разместим, тегнем, дадим ссылку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
😁4
Христос воскресе! С праздником светлой Пасхи всех причастных! На фото вид с нашего клироса сейчас)
👍6
Forwarded from Igor Berdichevskiy
Малоли кому пригодиться запуск xdebug в cli
/usr/bin/php82 -dxdebug.mode=debug -dxdebug.client_host=АЙПИ_ВАШЕГО_КОМПА -dxdebug.client_port=9003 -dxdebug.start_with_request=yes /var/www/siteuser/www/site.test/cli/joomla.php
👍4
WT Yandex map items v.2.0.3
Модуль выводит метки из различных компонентов на Яндекс.Карты. На данный момент выводятся только материалы Joomla. Используется API 3.0 Яндекс.Карт. Поддерживается Joomla 4, Joomla 5 и старше.
Список изменений
- Ошибка ajax-запроса. Исправлена ошибка AJAX запроса в случае, если указанное поле координат имело неверный формат.
- Выбор полей для макетов. Теперь поля макета для маркеров и всплывающих окон не ограничиваются только типом text
Подробнее
👍4
Forwarded from Joomla Feed (Sergey Tolkachyov)
This media is not supported in your browser
VIEW IN TELEGRAM
WT View PDF - контент-плагин просмотра PDF для Joomla

Плагин позволяет отображать pdf файлы на сайте Joomla в виде HTML5 <object>, а так же с помощью javascript библиотеки PDF.js. В этом случае подключите её самостоятельно или используйте плагин web assets WT PDF.js. Укажите путь к файлу в шорт-коде {PDF}path/to/file.pdf{/PDF}.

Вы можете указать параметр tmpl в шорт-коде для отображения PDF с выбранным макетом. Например, {PDF tmpl=html5object}path/to/file.pdf{/PDF} . Если параметр tmpl не указан, то PDF-файл будет отображаться с помощью макета, указанного по умолчанию в настройках плагина.

Плагин предоставляет 4 макета:
- default - pdf-файл встраивается в страницу целиком с помощью библиотеки PDF.js. Требует установленного плагина веб-ассета WT PDF.js.
- bootstrap-modal - просмотр файла во всплывающем окне Bootstrap 5. Отображается кнопка, по нажатию на которую открывается модальное окно. Также внизу окна отображается прогресс просмотра текущего файла. Требует установленного плагина веб-ассета WT PDF.js.
- html5object - отображение содержимого файла с помощью HTML5 тега <object>. Этот макет не требует установки никаких дополнительных плагинов и отображает содержимое pdf файла в Joomla с помощью стандартного для браузера окна.
- uikit-modal - аналогично макету Bootstrap, но с использованием UIkit.

Также вы можете создать собственные макеты вывода в папке plugins/content/wtviewpdf/tmpl плагина Joomla.

Минимальная версия Joomla - 5.

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

👩‍💻 Спасибо за помощь в работе над плагином участнику нашего сообщества - Виталию Некрасову (@vitalik_a).

#joomla #расширения
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2❤1
Forwarded from Joomla Feed (Sergey Tolkachyov)
Логирование действий пользователя в Joomla. Создание плагина Actionlog.

На вашем сайте, внутреннем портале, в интернет-магазине кто-то что-то сделал, а потом всё сломалось: сайт открывается криво (или не открывается вообще?), перестали работать фоновые задачи в планировщике, установились неправильные скидки всем пользователям на все товары... Предположим, что с безопасностью у вас всё хорошо: Joomla свежая, актуальная, расширения - тоже. Да и в логах сервера и логах Joomla тоже чисто... Тогда остаётся ещё один источник информации - Лог действий пользователей Joomla. Основная его задача - помочь быстро найти кому настучать по рогам причину и устранить её.

Всё, что связано с действиями в админке - может логироваться: от обновления системы и компонентов, изменения настроек до редактирования и сохранения конкретных элементов (статьи, товары, категории и т.д.) и загрузки файлов через медиа менеджер. Нередко этот функционал помогает найти тех контент-менеджеров, кто дублирует названия товаров, создавая дубли и тем самым негативно влияя на SEO. Или же вдруг обнаруживается недозаполненная, но опубликованная карточка товара, которой не должно было быть, но она появилась. И ладно если б это был единичный случай...

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

#joomla #разработка #php
👍5
Media is too big
VIEW IN TELEGRAM
Моя статья участвует в конкурсе Технотекст 7 на Хабре

Ссылка. Технотекст - конкурс технических статей на Хабре, который стал уже традиционным. Тематика статей самая разная: фронтенд, бэкенд, AI и ML, фуллстэк, научпоп и многое другое. Пассионарные авторы дерзают принять участие в этом соревновании) В этот раз я подал в номинацию "Бэкенд" статью "Анатомия умного поиска в Joomla 5. Создание плагина". Судя по регламенту конкурса дата публикации шорт-листов ещё не наступила, но список номинантов уже доступен и я себя в нём нашёл!

Ожидаемо, до первых мест вряд ли дойду. Тренды на Хабре давно другие: большие цифры, большие проекты. Но тут сам факт участия и участия с темой "Joomla" весьма важен.

Теперь ждём дальше)

#joomla #технотекст #хабр
👍5🔥2
Media is too big
VIEW IN TELEGRAM
👩‍💻 Экспорт материалов из Joomla 3 в Joomla 5 через REST API. Joomla 3 CLI script.

Написал небольшой скрипт для переноса материалов со старого Joomla 3 сайта на новый сайт на Joomla 5 через REST API. Выложил код в виде gist на GitHub.

❓ Почему перенос, если можно просто обновиться?
Потому, что за годы работы с сайтом бывает накапливается много мусора, который легче почистить при миграции автоматически, чем сидеть в админке и переделывать вручную.

✔️ Как пользоваться?
Качаем файл export_articles.php, помещаем его в папку cli вашего Joomla 3 сайта и запускаем в командной строке:
/usr/bin/php /path/to/joomla/cli/export_articles.php --context=articles

Скрипт можно расширить, чтобы он работал не только с материалами Joomla, но и с категориями, контактами и т.д., поэтому в него заложена возможность указывать команды-аргументы к скрипту. Сейчас это одна команда по умолчанию - --context=articles.

⚠️ Скрипт не создаёт автоматически категории и поля.

В моём случае это было создано вручную, а затем в свойствах скрипта была настроена карта сопоставления категорий (свойство $categoriesMapOldToNew): id старой категории Joomla 3 => id новой категории Joomla 5.

Аналогично и с пользовательскими полями. Создаёте вы их самостоятельно, а затем указываете в свойстве $customFieldsMapOldToNew системное имя (алиас) старого поля на Joomla 3 и нового на Joomla 5. Бывает, что используются какие-то старые плагины полей, а вы их заменяете на новые. В процессе переноса можно заменить один плагин на другой.

В свойстве $itemPropertiesMap указывается карта сопоставления свойств старых и новых материалов - что куда переносим. Здесь в целом можно оставить всё по умолчанию, но мало ли и тут вам могут потребоваться какие-то операции.

⚠️ Обратите внимание на пользовательские поля типа media. В Joomla 5 они хранят данные немного по-другому, поэтому в середине скрипта их системные имена нужно перечислить в массиве после комментария
// FOR MEDIA FIELDS - USE OTHER SCTRUCTURE
if(in_array($newFieldName, [
photo',
'skhema-proezda'
]))

На видео демо работы одной из промежуточных версий скрипта.

Смотрите gist на GitHub.

#joomla #php #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
👍4🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Метки карты: HTML-макеты. WT Yandex map items - Документация.

Написал часть документации к модулю вывода материалов Joomla на Яндекс.карты. Здесь рассказывается о том, как сделать пользовательские HTML-макеты для маркеров. Тот же принцип используется и для макетов всплывающих окон.

Просьба к тем, кто пользуется модулем - посмотрите, пожалуйста, всё ли в документации понятно. Может что-то нужно добавить, разъяснить, проиллюстрировать дополнительно.

https://web-tolk.ru/dev/joomla-modules/wt-yandex-map-items/documentation/yandex-maps-placemark-markers-icon-custom-html-layouts

#joomla #яндекс #расширения
👍1
Forwarded from Joomla Feed (Sergey Tolkachyov)
Учимся использовать Dependency Injection Containers (DI контейнеры) в Joomla 5.

На Хабре вышла статья, рассказывающая как использовать dependency injection контейнер (DI-контейнер) в Joomla, а так же затрагивающая работу с трейтами. Она полезна всем разработчикам, работающим с Joomla.

Автор статьи - участник нашего сообщества Виталий Некрасов (@vitalik_a).

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

#joomla #разработка #php
👍2
Forwarded from Joomla Feed (Sergey Tolkachyov)
Reset Media Version v.2.0.0. Плагин для Joomla!

Плагин выводит кнопку, для быстрого обновления версии медиафайлов Joomla.

Простой способ обновить кэшированные CSS/JS файлы в Joomla.
При обновлении стилей и скриптов на сайте браузеры часто загружают старые версии из кэша, даже если файлы на сервере изменились. Это приводит к несоответствию отображения сайта и путанице у пользователей или клиентов.

👩‍💻 Решение проблемы
Этот плагин добавляет кнопку на главную панели управления Joomla (в группу Quick Icon), которая позволяет администратору вручную сбросить системную версию медиа-файлов, чтобы все CSS и JS ресурсы начали подключаться с новым параметром версии (?ver=...). Это принудительно обновляет кэш браузеров и CDN.

Системные требования
- Joomla >= 4.2 / 5.x
- PHP >= 7.4

Разработчик - участник нашего сообщества Артём Васильев (@kernusr)

Скачать с GitHub

#joomla #расширения #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5