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
Модуль WT Yandex map items опубликован в Joomla Extensions Directory

И стал 35-м по счёту моим расширением, опубликованным в официальном маркетплейсе расширений для Joomla.

Смотреть на JED

#joomla #jed
👍8
Потихоньку правлю статью о Joomla в русской Википедии.

https://ru.wikipedia.org/wiki/Joomla!
👍6
Клиенты прислали отзыв своих клиентов о сайте, над которым мы работаем ))

#отзывы
👍2
Forwarded from Joomla Feed (Sergey Tolkachyov)
Вышла новая версия плагинов для вставки VK Видео на сайт под управлением Joomla.

В новой версии полностью переписан интерфейс вставки видео. Теперь нет необходимости вставлять IFRAME с сайта VK. Достаточно вставить просто ссылку на видео.

Номер версии: 1.2.0

Плагины распространяются бесплатно.

Инструкция

Разработчик: участник нашего сообщества Владимир Егоров (@sitogon)

#joomla #вк #расширения
👍3
Forwarded from Joomla Feed (Sergey Tolkachyov)
Плагин вставки языковых констант в контент Joomla.

Плагин позволяет вставлять значения языковых констант в статьи, модули и другой контент Joomla с помощью синтаксиса {langos LANGUAGE_CONSTANT}.

При создании мультиязычного сайта на Joomla вы часто сталкиваетесь с ситуацией:
Нужно изменить всего несколько слов в модуле или статье в зависимости от языка — но приходится создавать отдельные копии контента для каждой языковой версии. Это неудобно и требует лишних усилий.


👩‍💻 Решением проблемы становится плагин Langos.

Langos позволяет вставлять языковые константы прямо в контент с помощью простого синтаксиса:
{langos YOUR_LANGUAGE_CONSTANT}

Это работает как вызов \Joomla\CMS\Language\Text::_('YOUR_LANGUAGE_CONSTANT'), но без необходимости программировать или редактировать шаблоны.

Кроме того, плагин поддерживает загрузку языковых файлов конкретных расширений, например модулей или компонентов. Для этого просто укажите третий аргумент в шорткоде:
{langos MOD_FOOTER_LINE1, mod_footer}

Теперь плагин загрузит языковую константу из соответствующего языкового файла именно этого расширения.

Ключевые особенности плагина

🚀 Результаты работы плагина сохраняются в кэше, что положительно влияет на производительность сайта
🔁 Совместим с Joomla Cache, JotCache и другими популярными системами кэширования
🧩 Вставка языковых констант в любые элементы контента: статьи, модули и т.д.
🌐 Полная интеграция с системой мультиязычности Joomla
🔌 Работает «из коробки» с любыми стандартными типами контента
🛠 Не требует навыков программирования
🧪 Подходит для использования визуальными редакторами и не-программистами
📦 Поддержка загрузки языковых файлов конкретных расширений
🎯 Идеален для динамической замены текста в разных языках

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

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

Скачать плагин с GitHub и документация.

#joomla #расширения
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Forwarded from Joomla Feed (Sergey Tolkachyov)
Обновление модуля WT Quick links v.2.3.0
Модуль позволяет создавать быстрые наборы элементов: ссылки на различные сущности на сайте Joomla: категории материалов, Virtuemart, JoomShopping, пункт меню или пользовательскую ссылку. Есть условия для исключений показа элементов списка.

Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео. Также это могут быть не только ссылки, но и список вопросов FAQ, элементы Bootstrap Tabs, Accordion и т.д.

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

- Собственные макеты для ссылок
Теперь для каждой ссылки можно указать собственный макет из папки /tmpl/sublayout/. Для использования модуля в этом режиме, необходимо выбрать макет модуля - default-sublayouts или создать собственный вариант этого макета.
- Обработка плагинами контента
Содержимое поля Дополнительный текст для ссылки теперь обрабатывается плагинами контента.
- Поле примечания
Добавлено поле примечания для ссылки. Это удобно ориентации в большой форме.
- Рефакторинг кода
Проведена чистка и улучшения кода.

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

#расширения #virtuemart #JoomShopping
👍4
Свой класс события для плагинов Joomla. Продолжение.

Продолжение потому, что начало уже было в статье Виталия Некрасова на Хабре.

Кратко.
В Joomla 5+ для событий аргументы упаковываются в собственные классы событий: ContentPrepareEvent, AfterSaveEvent и т.д. Данные из них мы получаем в виде $event->getArgument('argument_name') или [$var, $var2] = array_values($event->getArguments());. Для разных типов событий могут быть специфичные методы типа $article = $event->getItem(); в ContentPrepareEvent и т.д. И в статье Виталия как раз об этом рассказывается.

А так же рассказывается о методах onGet<ArgumentName> и onSet<ArgumentName>. В ядре Joomla в классе \Joomla\CMS\Event\AbstractEvent сказано:
 /**
* Add argument to event.
* It will use a pre-processing method if one exists. The method has the signature:
*
* onSet<ArgumentName>($value): mixed
*
* where:
*
* $value is the value being set by the user
* It returns the value to return to set in the $arguments array of the event.
*
* @param string $name Argument name.
* @param mixed $value Value.
*
* @return $this
*
* @since 4.0.0
*/

Добрался я тоже до своего класса события для плагинов и подумал, что onSet... и onGet... методы не обязательно делать (хотя в статье по ссылке об этом не упоминается). Это методы для "предварительных проверок и манипуляций" с данными перед тем, как они будут отданы через getArgument или get<MethodName>. Метод getData() отдаст данные, которые предварительно будут обработаны методом onGetData(). Но обработаны они будут только в том случае, если метод реализован. Если нет, то ничего страшного. Ошибки не будет.😎

Эти методы напоминают своеобразные плагины внутри плагинов. На мой взгляд излишнее усложнение, хотя сеттеры и геттеры должны заниматься по идее только сеттерством и геттерством, а проверку/ приведение типов можно отдать в методы onSet... / onGet....

@webtolkru

#joomla #разработка #php #webdev
👍3❤1
Ошибка работы с моделями материалов и категорий Joomla из-за WorkFlow исправлена в Joomla 6.

При работе с созданием материалов через командную строку (CLI) возникала ошибка
[TypeError] Joomla\CMS\Workflow\Workflow::__construct(): Argument #2 ($app) must be of type ?Joomla\CMS\Application\CMSApplication, Joomla\CMS\Application\ConsoleApplication given, called in ....../libraries/src/MVC/Model/WorkflowBehaviorTrait.php on line 90

После нескольких лет обсуждений её всё же исправили и внедрили в ядро Joomla. К сожалению, исправление будет доступно только в Joomla 6. Если кому-то надо сделать здесь и сейчас - посмотрите изменённый файл libraries/src/Workflow/Workflow.php в PR на GitHub.

#joomla #php #cli #разработка
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Совет по Joomla: показ полей форм Joomla по пустому / не пустому значению. Атрибут showon.

По горячим следам пишем заметку. При создании расширений Joomla в XML-манифестах ИЛИ при использовании пользовательских полей для материалов / категорий / контактов и т.д. можно скрывать или показывать одни поля в зависимости от того является ли другое поле пустым. То есть проверить не только значение, но и его отсутствие.

Пример:
  <field
name="text"
type="text"
label="test field"
/>
<field
name="text2"
type="text"
hint="видно если первое поле пустое"
label="test field"
showon="text:"
/>
<field
name="text3"
type="text"
label="test field"
hint="видно если первое поле НЕ пустое"
showon="text!:"
/>

В атрибуте showon двоеточие заменяет символ равно. Если после него пусто - значит проверяем значение на пустоту. Если двоеточие с восклицательным знаком - отрицание условия - проверяем на отсутствие пустоты.
- "showon:" - проверка на пустое значение
- "showon!:" - проверка на отсутствие пустого значения

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

@webtolkru

#joomla #php #webdev #разработка #form
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
WT Jshopping SW JProjects v.2.1.1.1
Плагин для автоматической генерации лицензионных ключей в менеджере цифровых проектов SW Projects при продаже расширений Joomla с помощью интернет-магазина JoomShopping.
Список изменений
- Ошибка при установке. Исправлена ошибка при установке плагина
Подробнее
👍1
Forwarded from Joomla Feed (Sergey Tolkachyov)
Вышел JoomShoppping 5.7.0
Один из популярных компонентов интернет-магазина на Joomla.
30 апреля вышел релиз 5.6.2, а 15 мая его догнал релиз 5.7.0. В целом можно отметить, что команда разработки взяла курс на развитие собственного установщика расширений для JoomShopping, а так же на удобство администрирования магазина в панели администратора.

👩‍💻 v.5.7.0. Что нового?
- Добавлено управление платными расширениями (установка / обновление / получение ключа).
- Возможность изменять позиции для аддонов. Других подробностей нет, но возможно это означает что для вывода данных аддонов стало возможно переключать позиции вывода в шаблоне JoomShopping вида _tmp_var_bottom_price и т.д.
- Улучшена форма создания клиента для администратора – введенные данные сохраняются после ошибки проверки.
- Новый параметр конфигурации admin_products_search_by_prod_id_range (поиск по диапазону идентификаторов товаров (x-y)). В интерфейсе настроек его нет. Нужно включать в файле user_config.php.
- для разработки аддонов - новый метод getAddonParam().
- Добавлены новые триггеры для плагинов
- Исправления ошибок.

👉 v.5.6.2 (30.04.2025)
- Атрибуты, характеристики - добавлена иконка в списке с подсказкой о том, что этот элемент не используется
- Атрибуты, характеристики - подсчет количества товаров, где используется данная характеристика / атрибут
- Библиотека обработки изображений:
- - добавлена поддержка avif
- - исправлена ошибка с обработкой прозрачности для webp
- Добавлена новая настройка: поиск товаров администратором по коду атрибута
- Добавлена кнопка "Копировать" в списке способов оплаты (опции / способы оплаты)
- Шаблон товара - оптимизирована загрузка шаблона - block_image_middle, блокировка изображения с помощью большого пальца
- Все поля mysql имеют значения по умолчанию
- Исправления ошибок
- Добавлены новые триггеры для плагинов

Скачать JoomShopping

#JoomShopping #расширения
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Пробуем новую JoomGallery 4. Посмотрим, что выйдет. Сама Joomla обновилась влëт, теперь смотрим обвязку)
👍1
Динамические позиции вывода для аддонов JoomShopping 5.7.0.

На днях в @joomlafeed писал о том, что вышел JoomShopping 5.7.0. И одним из любопытных и таинственных нововведений стало "Dynamic position variable for addons". А 3 дня назад на YouTube канале JoomShopping вышло видео, где показывается этот новый функционал.

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

⚠️ Новый функционал можно увидеть, если включить в настройках JoomShopping режим разработчика: настройки - фукнции магазина - режим магазина: разработчик.
Затем нужно зайти в список аддонов: Опции - Дополнения. В списке аддонов добавится колонка "Обслуживание" с иконкой гаечного ключа между колонками "Конфигурация" и "Публикация". Описываемые ниже параметры можно найти там.

Для аддонов стало возможно указать пути к папкам с переопределениями. Например,
путь аддона по умолчанию: components/com_jshopping/templates/addons/attr_value_description. А путь к переопределению для этого аддона по умолчанию: templates/{YOUR_JOOMLA_TEMPLATE}/html/com_jshopping/addons/attr_value_description. Но вы можете указать свой путь в настройках аддона. И не забываем о том, что свой собственный шаблон вы тоже можете сделать.
Аналогично можно указать переопределение папок для javascript и css аддона.

Изменение позиций вывода зависит от самого аддона. Видимо, к механизму аддонов JoomShopping под капотом добавлены возможности хранить позиции (вида _tmp_var...) по умолчанию и сущностей для вывода (категория товаров, товар, корзина и т.д.). Для каждого вывода информации можно вручную указать имя нужной позиции. А посмотреть нужные имена позиций можно в коде шаблона JoomShopping. Аддоны должны хранить в своих параметрах массив tmp_vars, который получат потом уже в рабочий код.

Отладка и логирование аддона. Там же добавлены настройки, позволяющие включить отладку, а так же собственные логи аддона.

@webtolkru

Upd.: И эта же новость, но со скриншотами на сайте.

#joomla #JoomShopping #разработка #php
👍3
👩‍💻 Что влияет на код ответа сервера в ajax-интерфейсе Joomla?

Некоторые API сторонних сервисов щепетильно относятся к коду ответа сервера, который возвращает Joomla. И если он не совпадает с допустимыми значениями - отключает вебхук. Логично.

Мой dev-сайт был выключен (система - общие настройки - сайт выключен: да). Я проверял работу вебхука для com_ajax, скопировав ссылку в браузер - всё работало хорошо, код ответа был 200. Когда же сервис делал запрос к сайту - получал код ответа 503. При этом, что удивительно - мой код работал при этом корректно.

Я перерыл всё, что только возможно, пока не решил поиграться со значением параметра format в запросе (index.php?option=com_ajax&plugin=myplugin&group=system&format=raw). И если format=raw или format=json возвращали то, что отдавал плагин, то format=html показал причину - сообщение Joomla о том, что сайт закрыт на техническое обслуживание. Стоило включить сайт обратно и код ответа на вебхук стал 200.

Несколько часов поисков...

@webtolkru

#joomla #api #webhook #webdev #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3💯3🥴1
Помогаю освоить создание плагинов. Планируем довести расширение до публичного состояния и выложить в общий доступ.

#joomla
🔥3👏1
WT JSwiper - SWiper.js для Joomla-разработчиков v.11.2.7
Этот плагин для разработчиков Joomla. Плагин регистрирует Swiper.js пакет в Joomla Web Assets Manager. Затем вы можете использовать его в своих расширениях c помощью $wa->useScript('swiper-bundle')->useStyle('swiper-bundle').
Список изменений
- Bug fixes. core: fix for slideResetTransition events (#7989) (473ec25)
core: set innerHTML using trusted type (8a46954), closes #7961
react,vue: fix not rendered slides in effects when Virtual is enabled (e4e1680), closes #7730
types: add enabled property on swiper-class.d.ts (#7973) (ccd96dc)
types: coverflow effect can be number or string with percentage (#7931) (4d988d8)
types: fix effect param type (#7945) (42eec07)
vue: added missing props (#7966) (6aa8d05)
Подробнее
👍1
Привет, друзья. Давно я вам ничего не писал, как-то повода не было. И вот сегодня случился повод: Яндекс провёл трансляцию про обновления в поиске.

Если коротко, вот о чем рассказывали:

- Теперь будет не «Поиск с Нейро», а «Поиск с Алисой».
Обещают структурированные развёрнутые ответы с картинками и видео. Алиса теперь готова рассуждать (без подписки на Алиса Про – честно говоря, впервые слышу о существовании такой подписки – количество запросов будет ограничено), создавать картинки и генерировать тексты.
По ссылке, где была трансляция, - https://ya.ru/alicesearch - теперь краткое описание нововведений.

- Запустили три Вертикали Поиска.
Финансы – агрегаторы страдайте теперь. Потестирую, когда потребуется продлять ОСАГО, ну, или полис КАСКО новый оформить.
Квартиры – доски объявлений страдайте. Хотя сколько времени должно пройти, чтобы люди перестали ходить в Авито, Циан и т.п., чтобы искать покупку или аренду? Пожалуй, бесконечно много, ведь Яндекс.Недвижимость давно существует и никому не нужна. Что вдруг может измениться? Это все тот же агрегатор с сайтов объявлений с сопутствующими проблемами, например, фейковыми объявлениями, адресами и ценами.
Товары – тут как будто та же самая лента «идей для покупок», какую можно видеть пока заказываешь такси, например, или после оформления заказа в Маркете. Гоните ваши бабки, господа.
Подробнее про вертикали: https://ir.yandex.ru/press-releases?year=2025&id=03-22-05-2025

Получается, что органика все дальше проваливается в очко. Впрочем, другого мы и не ожидали. Яндекс берет для своих ответов источники – различные сайты, которые делают контент, чтобы на нем зарабатывать. Если у этих сайтов не будет своего трафика, они просто не будут иметь интереса в развитии и загнутся. А Яндексу просто неоткуда будет брать источники ответов…
Если не сейчас, то однажды стоило бы им задуматься над этим!

Проклятые капиталисты 👊🏻
💯2
Sergey Tolkachyov
Привет, друзья. Давно я вам ничего не писал, как-то повода не было. И вот сегодня случился повод: Яндекс провёл трансляцию про обновления в поиске. Если коротко, вот о чем рассказывали: - Теперь будет не «Поиск с Нейро», а «Поиск с Алисой». Обещают структурированные…
Изменения в поиске Яндекса

Вообще к этому давно шло: появление "вертикалей". Поиск, видимо, будет дробиться на отдельные тематические поиски там, где это возможно или там, где раньше начали учитывать факторы экспертности - EAT. Рекламу так проще показывать будет и проще будет разгрузить общую поисковую выдачу, так как в общей ты конкурируешь с одним набором страниц, а в более узкой - с другим.