WebTolkRu
100 subscribers
622 photos
73 videos
2 files
648 links
Joomla-разработчик. Контрибьютер ядра Joomla. https://web-tolk.ru. Разработка Joomla на заказ. Также пишу в @JoomlaFeed.
@sergeytolkachyov Хабр: https://habr.com/ru/users/sergeytolkachyov/posts/
Download Telegram
Forwarded from Joomla Feed (Sergey Tolkachyov)
Как добавить свой повторяемый элемент интерфейса в класс HTMLHelper Joomla 4+
В API Joomla есть полезный инструмент - класс HTMLHelper. Он выводит HTML-элементы интерфейса с нужными параметрами: модальные окна, аккордеоны, табы, изображения и т.д. Для рендера мы передаём все нужные данные: заголовки окон, содержимое табов, атрибуты изображений.

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

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

#разработка #php #joomla #development
👍2
Кажется я обучил нейросетку Яндекса ))
Во всех источниках (кроме stackoverflow там про ASP.NET) лежит текст моих постов, которые я стараюсь публиковать на всех подходящих ресурсах.
🔥5❤1
WT Content Image gallery v.1.2.2
Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content.
Список изменений
- Двойные слеши в путях. Добавлена проверка на двойные слеши во вставленные пути к медиа-ресурсам.
Подробнее
👍2
Вышла 2-я часть моей статьи The anatomy of smart search in Joomla 5 Part 2: Creating a plugin I. в официальном журнале международного Joomla сообщества - Joomla Community Magazine.

https://magazine.joomla.org/all-issues/november-2024/the-anatomy-of-smart-search-in-joomla-5-part-2
👍2🔥2
Forwarded from Joomla Feed (Sergey Tolkachyov)
Блочный редактор Editor JS для Joomla
Блочный редактор выглядит проще традиционных "мини-Word" и позволяет работать с текстом статьи как с конструктором. Многие контентные площадки (например, Хабр, VC и другие) используют блочный редактор. Минималистичность средств позволяет стандартизировать отображение контента сотен и тысяч авторов и не даёт некоторым особо старательным авторам возможность покрасить половину отдельного слова в оттенок красного и совершенно другим шрифтом инлайн стилями, нежели вся остальная статья.
Editor.js - бесплатный скрипт блочного редактора с открытым исходным кодом, который развивается сообществом разработчиков со всего мира. Он используется, например, в веб-версии социальной сети TenChat.

👩‍💻 Участник нашего сообщества Александр Новиков (@pro_portal) оформил блочный редактор Editor.js в виде плагина Joomla и теперь вы можете использовать редактор на ваших сайтах. В его исполнении редактор поддерживает работу с контент-плагинами Joomla.

⚠️ Отличительная особенность блочных редакторов заключается в том, что они весь текст хранят в виде JSON: абзац, картинка, видео, файл - всё это элементы массива данных. В то время как традиционные редакторы Joomla хранят в базе данных HTML-код статьи. При смене одного традиционного редактора на другой вы сможете одинаково работать как со старыми статьями, так и с новыми. В случае с Editor.js так уже не получится, поэтому автор рекомендует использовать этот редактор только на новых сайтах и предупреждает, что отказаться от него будет невозможно в дальнейшем.

❓ Однако, возможно, эта задача будет решена в следующих версиях.

Подробное описание и документацию смотрите по ссылке ниже.

Плагин editor.js для Joomla
Проект editor.js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Совет по Joomla: группированные списки select с помощью HTMLHelper
Порой в выпадающих списках нужно группировать большое количество значений для удобного восприятия. В HTML это выглядит как:
<select>
<optgroup label="Группа 1">
<option value="1">Значение 1</option>
<option value="2">Значение 2</option>
<option value="3">Значение 3</option>
</optgroup>
<optgroup label="Группа 2">
<option value="4">Значение 4</option>
<option value="5">Значение 5</option>
<option value="6">Значение 6</option>
</optgroup>
</select>

Как вывести такой список select с помощью Joomla программным методом? Для этого существует метод groupedlist() класса Select HTMLHelper. В коде он вызывается с помощью HTMLHelper::_('select.groupedlist'). Писал об этом статью выше. Нужно подготовить массивы данных определенной структуры.
Это массив с группами опций для select.
$groups = [
'shop' => [
'id' => 'shop',
'text' => 'Интернет-магазин',
'items' => $tariff_shop_options
],
'dostavka' => [
'id' => 'dostavka',
'text' => 'Доставка',
'items' => $tariff_dostavka_options
]
];

shop и dostavka - это ключи, необходимые при построении otpgroup. Вложенные массивы - это данные для группы, где:
- id - это атрибут id <optgroup>. Можно не указывать.
- text - это заголовок <optgroup>
- items - это уже готовые <option value="">.

Готовим предварительно массивы с options:
$tariff_shop_options = [];
$tariff_dostavka_options = [];
foreach ($tariff_shop as $tariff)
{
$tariff_shop_options[] = HTMLHelper::_('select.option', $tariff['code'], $tariff['name'] . ' (code: ' . $tariff['code'] . ')');
}
foreach ($tariff_dostavka as $tariff)
{
$tariff_dostavka_options[] = HTMLHelper::_('select.option', $tariff['code'], $tariff['name'] . ' (code: ' . $tariff['code'] . ')');
}

И потом рендерим группированный список с помощью select.groupedlist:
echo HTMLHelper::_('select.groupedlist', $groups, 'field_name', ['id' => 'field_id_attr', 'group.id' => 'id']);

group.id - это ключ, по которому в массивах групп будет назначен атрибут id для <optgroup>.

Подробнее можно посмотреть в файле libraries/src/HTML/Helpers/Select.php.

@webtolkru

#разработка #php #joomla
👍1
Тесты dev.to и сео-наблюдения
Тестируем dev.to дальше: скопировал 1-ю часть статьи о плагине умного поиска на этот портал. Посмотрим как оно отзовётся.

Удивительно, но в международном (преимущественно западном) сообществе Joomla никто практически не занимается публикацией контента на нескольких площадках. Буквально пару человек можно увидеть. В основном те, кто пишут статьи, публикуют их на своих ресурсах (иногда) и в официальном журнале Joomla сообщества - Joomla Community Magazine. В итоге получается, что полезный и нужный контент получает гораздо меньше шансов дойти до аудитории. При этом, как показала практика достаточно даже просто копировать текст один-в-один и охват аудитории будет больше. Я вижу в своей Яндекс.Метрике переходы как с Хабра, так и с сайта русского сообщества Joomla - Joomla portal, с VC и других. Хотя везде я публикую почти одни и те же тексты.

Так же недавно писал о том, что на моих постах и текстах обучилась джумле Яндекс GPT, которая выдает нейро-ответ в поиске. Из 6 источников в 5 был мой контент. И везде один и тот же. Напрашивается вывод, что для обучения нейросетей поисковиков нужно максимум присутствия и при этом не обязательно пилить уникальный контент под каждую платформу. Хотя ещё несколько лет назад сеошники об уникальном контенте говорили как об очевидно необходимой вещи. Особенно, когда речь заходила о PBN. В общем, нужно присутствовать там, где есть траффик, тогда есть шанс получить его малую каплю.


https://dev.to/sergeytolkachyov/the-anatomy-of-smart-search-in-joomla-5-part-1-introduction-4mfo
👍3
Forwarded from Joomla Feed (Sergey Tolkachyov)
Вышел номер Joomla Community Magazine за ноябрь 2024
Ноябрьский выпуск официального журнала сообщества Joomla. Краткое содержание статей и интервью этого номера.
👩‍💻 Как поделиться страницей на Facebook. Как внедрить теги OpenGraph в Joomla, а в качестве изображения для поста использовать картинки, генерируемые нейросетью сервиса cloudinary.com.
👩‍💻 Приведём документацию в порядок. Куда идёт развитие сайтов документации Joomla и как можно помочь?
👩‍💻 Мой эксперимент с Joomla 5.2: создание мультиязычного лендинга на 35 языков.
👩‍💻 Продолжаем путь к созданию высокопроизводительного веб-сайта на Joomla. Вопросы создания контента и работы с ним: утилитами для оптимизации изображений и видео, СЕО (техническое СЕО, внутреннее и внешнее СЕО) а так же пользовательский опыт (UX сайта).
👩‍💻 Интервью с руководством - Nadja Lamisch, казначей Joomla.
👩‍💻 Как создать адвент-календарь с помощью нового модуля материалов в Joomla 5.2
👩‍💻 Анатомия умного поиска в Joomla. Часть 2: создание плагина. 2-я часть перевода статьи "Анатомия умного поиска в Joomla" Сергея Толкачева на английский язык.
👩‍💻 Инструменты для создания компонента - 5: Component Creator. Обзор сервиса Component Creator, онлайн-инструмента для создания заготовок расширений Joomla.
👩‍💻 J2Store - компонент электронной коммерции для Joomla продолжает развитие.
Основная команда разработчиков J2Store перестала развивать компонент, но 2 разработчика создали форк, выпустили несколько релизов и делятся в статье о своих планах.
👩‍💻 Удивительные женщины в Joomla: Ane Miren Alvarez. Интервью. Анна Мирена настраивала автоматизацию Make для Joomla.
👩‍💻 Исследование: сложная миграция. Заметки о миграции старого сайта на Joomla 5.
👩‍💻 Tim Davis: путь от священника в жизни к евангелисту Joomla. Когда речь заходит о видео, подкастах и стримершах на Joomla, всегда бросается в глаза одно имя: Тим Дэвис! Случайно ли, что этот пастор из реальной жизни с таким энтузиазмом делится своими знаниями и страстью к Joomla? Мы спросили его о его взаимоотношениях с сообществом и о том, как он пришел к созданию таких интересных и ценных видеороликов.
👩‍💻 Они захватывают мир Интернета: ИКОНКИ. Заметка о правилах удобства использования и доступности иконок.
👩‍💻 Доступность и типографика в Joomla: выбор доступного шрифта. В статье приводится список шрифтов, а так же перечисляются некоторые признаки, по которым можно попытаться найти подходящий с точки зрения доступности шрифт.

Подробнее на Joomlaportal.ru

@joomlafeed

#joomla #php #разработка #cms #jcm
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Forwarded from Joomla Feed (Sergey Tolkachyov)
Русская локализация для Joomla 5.2.2
Вышла официальная русская локализация Joomla 5.2.2.
Перевод готовится силами участников сообщества. Присоединиться к процессу перевода может любой желающий и тем самым ускорить выход релиза. Работа ведётся на GitHub https://github.com/JPathRu/localisation

Спасибо за перевод участнику сообщества @kostelano

#локализация

- Скачать пакеты локализации с Joomlaportal
- Скачать локализацию Joomla 5.2.2 с GitHub
👍2
Forwarded from Joomla Feed (Sergey Tolkachyov)
Доступна новая версия компонента "Жимолость" (ex. Спам-оборона для Joomla)
Бесплатный компонент работает под Joomla и позволяет защищать формы сайта от атак спам ботов и спам-регистраций.

👩‍💻 Что нового?
В настройках компонента был добавлен параметр «Ограничение на количество символов при записи в лог», так как некоторые формы передают настолько большое количество данных, что не умещались в поле базы при логировании.

Компонент бесплатный. Работает с Joomla 4 и Joomla 5. Существует более ранние версии для Joomla 3.
Разработчик - участник нашего сообщества Владимир Егоров @sitogon

Новость на сайте разработчика
Страница расширения

#расширения
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Идём в ногу со временем )) Подтягиваем сайты до последних версий.
👍5
😁6👍1
WT CDEK library v.1.2.0
Небольшая нативная PHP Joomla библиотека для работы с API v.2 службы доставки CDEK. Пакет состоит из плагина для хранения настроек, PHP-библиотеки и виджета карты для выбора пунктов выдачи заказа. Библиотека представляет собой клиент для авторизации в CDEK API по OAuth, работы с некоторыми методами API: получения ряда данных и расчета стоимости доставки. Поддерживается Joomla 4.2.7 и выше.
Список изменений
- Добавлено поле Joomla Form для списка тарифов. Смотрите libraries/Webtolk/Cdekapi/src/Fields.
- Обновление списка тарифов. Добавлены некоторые тарифы в список для инернет-магазина....
Подробнее
👍1
Forwarded from Joomla Feed (Sergey Tolkachyov)
SM WT CDEK аддон доставки для JoomShopping v.1.2.0
Способ доставки для интернет-магазина JoomShopping с выбором ПВЗ на карте, работающий со CDEK API v.2.0. Расчет стоимости по актуальным тарифам для физ.лиц (доставка) и интернет-магазин (для некоторых тарифов требуется юр.лицо).
👩‍💻 v.1.2.0 Что нового?
- Обновление бесплатной библиотеки WT Cdek до версии 1.2.0. Библиотека предназначена для Joomla разработчиков, бесплатная. Так же обновилась сегодня.
- Информация о выбранном ПВЗ в подтверждении заказа. Id и адрес пункта выдачи заказа CDEK добавляется к информации о доставке на странице подтверждения заказа.
- Показывать кнопку выбора ПВЗ? В настройки цены способа доставки добавлен новый параметр "Выбор ПВЗ для покупателя?". Для некоторых тарифов не имеет смысла показывать кнопку выбора ПВЗ. Вы можете скрыть эту кнопку для способа доставки курьером и оставить для ПВЗ или постамата.
- Добавлен системный плагин. Для корректной обработки нулевой цены способов доставки CDEK должен быть включен плагин System - WT JShop CDEK.
- Улучшена кодовая база.

Системные требования: Joomla 4.2.7+, JoomShopping 5+.
Рекомендуемые: Joomla 5.x, JoomShopping 5.5.x
Зависимости: требует установленную и настроенную бесплатную библиотеку WT Cdek.

- Страница расширения
- Скачать WT CDEK library v.1.2.0
- GitHub библиотеки

#joomla #php #cdek #JoomShopping
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Просто на память)
👍4😁3
Запуск выполнения задач планировщика задач 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


@webtolkru

#joomla #php #cli #dev #webdev
👍1
Получение объекта текущего пользователя - CurrentUserTrait в Joomla 4.2+
Трейты - фрагменты кода, оторванные от контекста и их можно использовать в самых разных местах. Они добавляют свои методы к вашим собственным классам. Так, при разработке расширений порой нужно работать с текущим пользователем сайта: гость он или авторизованный? Если авторизованный, то к какой группе доступа принадлежит? И так далее.

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

👩‍💻 Как использовать трейт CurrentUserTrait в Joomla?
use Joomla\CMS\User\CurrentUserTrait;

final class Wtcategory extends FieldsPlugin implements SubscriberInterface
{
use DatabaseAwareTrait;
use CurrentUserTrait;

public function MyMethod()
{
$user = $this->getCurrentUser();
}
}

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

@webtolkru

#php #joomla #разработка #development #dev #webdev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Forwarded from Joomla Feed (Sergey Tolkachyov)
WT Category - плагин пользовательского поля Joomla для выбора категорий
Плагин пользовательского поля выбора категории, который можно использовать в материалах, контактах, баннерах и других компонентах, которые используют стандартные для Joomla категории.
Обычно этот функционал называется мультикатегории.

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

Плагин нужен больше для Joomla-разработчиков, так как сама Joomla не позволяет находиться одной сущности в нескольких категориях сразу и неопытному пользователю плагин может быть бесполезен.
В параметрах поля можно указать имя компонента, для которого нужно получить список категорий в виде com_component или com_component.entity или выбрать из списка стандартных.

Плагин поддерживает уровни доступа и не будет отображать недоступные для текущего пользователя категории.

Минимальная версия Joomla 4.2.0.
- Страница расширения
- GitHub расширения
🔥2