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)
Вышел номер Joomla Community Magazine за секнтябрь 2024
Сентябрьский выпуск официального журнала сообщества Joomla. Краткое содержание статей и интервью этого номера.
👩‍💻 Как сделать, чтобы шаблон Joomla выглядел как нативное мобильное приложение. Статья-мануал, рассказывающая как стандартному шаблону Joomla 4 и Joomla 5 Cassiopeia придать вид мобильного приложения.
👩‍💻 Кассиопея, мощный стандартный шаблон Joomla: как изменить шапку сайта с помощью CSS Grid. Даны простые примеры работы с CSS Grid, media-запросов. Один из результатов - меню шаблона Кассиопея встаёт в один ряд с логотипом.
👩‍💻 Joomlers Unite: Подведение итогов августовского мероприятия Pizza Bugs and Fun. Крайнее событие PDB состоялось 24 августа 2024 года, в нём приняли участие люди из Австрии, Канады, Египта, Франции, Германии, Греции, Италии, Кении, Нидерландов, Швейцарии, Великобритании и США.
👩‍💻 Steve Burge - человек стоящий за Joomlashack. Проекты Стива OSTraining и Joomlashack широко известны в мире Joomla. Как бывший школьный учитель решил посвятить свою профессиональную жизнь созданию качественных расширений для Joomla - в интерьвью Сержа Билона.
👩‍💻 Наконец-то я устранил самые досадные проблемы в управлении сайтом. В статье даются простые ответы на вопросы: как избавиться от лишних уведомлений по e-mail от Joomla? Как увидеть изменения на сайте сразу, а не с запозданием? Редактор Joomla не позволяет вставлять любой HTML несмотря на то, что я суперпользователь?
👩‍💻 Удивительные женщины в Joomla: Nadja Lamisch. Одна из серии статей, рассказывающая о женщинах-разработчиках, которые постоянно оставляют свой след в нашей любимой CMS.
👩‍💻 Шаблоны для Joomla - Эпизод 5: T3, Extendible TM, GK, YT & Plazart Frameworks. Продолжение серии статей о шаблонах для Joomla.
👩‍💻 Инструменты для создания компонента - Часть 3: создание компонента. Продолжение серии статей, в которой вы приступите к созданию собственного компонента.
👩‍💻 Пролейте немного света на ваши расширения... В статье рассказывается о том, как разработчики Joomla расширений могут разместить их в официальном маркетплейсе расширений Joomla Extensions Directory.

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

Подписывайтесь на новости мира Joomla на канале @joomlafeed
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Тот случай, когда комментарий к посту даже лучше, чем пост ))
👍2
Обновил компонент JL Sitemap до v.2.0.0
Forwarded from Joomla Feed (Sergey Tolkachyov)
Вышел компонент XML-карты сайта JL Sitemap v2.0.0 для Joomla 5
Компонент формирует статические XML-файлы карты сайта, получая данные от плагинов для каждого поддерживаемого компонента. Есть возможность запускать генерацию карты вручную, по CRON и действиями пользователей.
v.2.0.0 Что нового?
Основная задача релиза - обновить компонент в текущем его состоянии до архитектуры расширений Joomla 4 / Joomla 5.
👩‍💻 Добавлено
- компонент обновлён до архитектуры Joomla 4 / Joomla 5. Успешно протестирован на Joomla 4.4.x и Joomla 5.1.x
- плагины, входящие в пакет, обновлены до архитектуры Joomla 4 / Joomla 5.
- генерация XML карты сайта работает с выключенным плагином обратной совместимости Joomla 5.
👩‍💻 Удалено
- Удалена поддержка Joomla 3. Данная версия компонента не установится и не будет работать на Joomla 3.
- Удалён плагин для K2.
👩‍💻 Исправление ошибок
В процессе рефакторинга были исправлены некоторые ошибки, в том числе и те, для которых были открыты issue на GitHub.
- Плагин Kunena. Добавлена недостающая языковая константа
- Плагин Virtuemart. Исправлена ошибка, из-за которой производители не добавлялись в XML карту сайта

Новость на Joomline.ru
Скачать
GitHub компонента

#расширения
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
WT Lightbox2.js для Joomla разработчиков v.2.11.5
Этот плагин для разработчиков Joomla. Плагин регистрирует Lightbox2.js пакет в Joomla Web Assets Manager. Затем вы можете использовать его в своих расширениях.
Список изменений
- Update to v2.11.5. fix: Remove IE6,7 specific css rules: zoom and filter by @lokesh in #755
docs: fix spelling by @lokesh in #756
Подробнее
👍2
Нежданный отзыв )))
👍2😎2
Рабочие будни...
🔥4
Куда всё катится? Создание сайтов, время проведенное в смартфонах.

Ключевая аудитория сайтов - 35+. Аудитория 25-34 - меньше в силу того, что они выросли в век мобильных приложений и сайты для многих из них менее привычные. 35+ - core-аудитория на будущее ещё и потому, что молодёжи мало. Не только в России, но и во всем мире проблемы с рождаемостью. Вырастает небольшая "прослойка" населения, которая ещё и будет менее финансово активна. 30-летние "сражаются" за больший объём доходов с 40-50-летними, которые 30-летних туда не пускают, так как 40-50-летние ещё вполне в расцвете сил. С другой стороны 30-летних начинают "подпирать" 18-летние, которые также жаждут роста.

Население будет стареть в целом. Говорят об будущем увеличении продолжительность жизни до 100 лет за счет более качественной чем ранее медицины, моды на ЗОЖ, правильного осознанного питания и потребления. Для разработчиков сайтов лучше тот возрастной сегмент, где больше народа и выше покупательская способность. Поэтому "целиться" нужно во взращивание и пестование той аудитории сайта, которая уже есть.

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

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

MashRoom - интересный подкаст, куда приходят и интересные гости.
В этом выпуске оказался Владимир Тодоров - главный редактор крупнейшего российского СМИ Lenta.ru, директор по развитию медиа Rambler&Co и продюсера по документальному контенту кинотеатра Okko.

Подкаст в вк и на ютубе - у кого что работает.
https://vk.com/video?z=video-217610177_456240915
https://www.youtube.com/watch?v=XCu9lTNpvRE
WT Fabric.js v.6.4.3
Этот плагин для разработчиков Joomla. Плагин регистрирует скрипт Fabric.js в Joomla Web Assets Manager. Затем вы можете использовать его в своих расширениях.
Список изменений
- Update to Fabric.js 6.4.3.
Подробнее
😁1
Joomla становится всё больше и больше user friendly.
При обновлении до Joomla 5.2.0 выходит краткое описание нововведений - это очень круто. Можно быть в курсе событий.
❤3
Подключение сторонних PHP библиотек в Joomla
PHP библиотеки удобны тем, что к ним можно обращаться из любого места приложения: из плагина, модели компонента, модуля и т.д. В случае, если подобную задачу кто-то уже решал и оформил в виде библиотеки (и даже обновляет её) - имеет смысл подключить в свою Joomla эту библиотеку. Например, вам для разработки способа оплаты интернет-магазина нужна официальная библиотека платёжного агрегатора. Или вас устраивает официальный PHP SDK какой-нибудь CRM.

Composer
Joomla не поддерживает работу с Composer напрямую. Для того, чтобы использовать библиотеку в своей работе её нужно "обернуть" в расширение Joomla типа library и установить. В серьёзных проектах принят подход фиксации версий всех составляющих проекта: код проверен не один раз, протестирован и допущен до работы в проде. Вы создаете пакет с вашей библиотекой, устанавливаете везде, где нужно. По мере выхода новых версий библиотеки - вы обновляете свою обёртку и получаете все преимущества работы с расширениями Joomla: обновление расширений стандартным способом, в том числе через CLI. Просмотр Changelog расширения в админке ДО обновления и т.д.

Joomla, PSR, Symfony
Joomla соответствует стандартам PSR, поэтому в этом плане с ней удобно работать. В ядро Joomla включены некоторые пакеты Symfony (console, string, var-dumper, yaml, error-handler и друге), поэтому, если вдруг вы захотите добавить ещё - они встанут как влитые и будут хорошо работать. Посмотреть что ещё стоит в Joomla кроме компонентов Symfony можно в libraries/vendor.

Как обернуть PHP библиотеку в расширение Joomla?
Ничего сложного. Файлы библиотеки как правило находятся в папке src. Рядом с этой папкой нужно создать XML-манифест расширения Joomla согласно документации (manual.joomla.org). Затем пакуем всё в zip-архив и готово! Можно устанавливать.
Если для работы библиотеки нужны свои таблицы в базе данных - при установке или обновлении нужно добавить нужные файлы c SQL-запросами. Поскольку Joomla 4+ работает с namespaces, важно указать для расширения этот namespace в XML-манифесте.
Приведу сокращенный пример XML-манифеста для библиотеки Joomla.
<?xml version="1.0" encoding="UTF-8" ?>
<extension type="library" method="upgrade">
<name>WebTolk AmoCRM library</name>
<libraryname>Webtolk/Amocrm</libraryname>
<version>1.2.1</version>
...
<namespace path="src">Webtolk\Amocrm</namespace>
<files>
<folder>src</folder>
<filename>amocrm.xml</filename>
</files>
</extension>

Тег <libraryname> означает, что папка src из нашего архива будет скопирована в JPATH_SITE/libraries/Webtolk/Amocrm. В секции <files> мы указываем что из архива туда нужно положить. А <namespace path="src">Webtolk\Amocrm</namespace> говорит, что для папки src в JPATH_SITE/libraries/Webtolk/Amocrm необходимо зарегистрировать namespace Webtolk\Amocrm.
Важные моменты!
- До Joomla 4.2.7 по сути тег <namespace> из XML манифеста не работал. Поэтому нужно было в комплект библиотеки добавлять системный плагин, который бы регистрировал неймспейс на событии (Event Dispatcher) onAfterInitialise c помощью JLoader. Начиная с Joomla 4.2.7 его починили и можно обходиться без плагина.
- Пока что обновление библиотеки = переустановке. То есть расширение удаляется и устанавливается. Такое решение было принято где-то в недрах версий Joomla 3.x. Почему? - скрыто под горами PR. Нужно искать. Почему это важно? Потому что при установке любого расширения создается запись в "реестре" расширений - в базе данных в таблице #__extensions. В этой таблице есть 2 столбца типа TEXT - params и custom_data. А это, согласитесь, немалый объём данных. Если вы храните какие-то параметры библиотеки в базе данных с помощью Joomla\CMS\Helper\LibraryHelper, то нужно учитывать это поведение инсталлера и при обновлении библиотеки предварительно сохранять, а потом добавлять обратно сохранённые параметры в installer script расширения.
// фрагмент метода preflight() 

/**
*
* Joomla при обновлении расширений типа library по факту удаляет их (вместе с данными в базе),
* а потом устанавливает заново.
* Дабы избежать потерь данных библиотеки из базы пишем этот костыль.
*
* @see https://github.com/joomla/joomla-cms/issues/39360
*
*/

if ($type == 'update')
{
$lib_params = LibraryHelper::getParams('Webtolk/Amocrm');
$jconfig = $this->app->getConfig();
$options = [
'defaultgroup' => 'wt_amo_crm_temp',
'caching' => true,
'cachebase' => $jconfig->get('cache_path'),
'storage' => $jconfig->get('cache_handler'),
];
$cache = Cache::getInstance('', $options);
$cache->store($lib_params, 'wt_amo_crm_temp');

}

return true;

}

А в методе postflight() соответственно помещаем спасённые параметры обратно с помощью LibraryHelper::saveParams('Webtolk/Amocrm', $lib_params);.
- Чтобы библиотека работала - она должна быть включена в менеджере расширений (Меню - Система - Управление - Расширения).
- Нередко для работы библиотеки нужны некие параметры (API ключи, токены и прочее), что должно указываться людьми в админке Joomla. Для этих целей удобно писать плагин (своего интерфейса для настройки параметров расширение типа library не имеет). Либо системный, либо своей кастомной группы - не важно. Внутри своей библиотеки получать параметры плагина довольно быстро можно так:
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\Registry\Registry;

if (PluginHelper::isEnabled('system', 'wt_amocrm'))
{
$plugin = PluginHelper::getPlugin('system', 'wt_amocrm');
$params = \json_decode($plugin->params);
$param = $params->param;
// ИЛИ можно использовать Joomla\Registry\Registry
$params = new Registry($plugin->params);
$param = $params->get('param', 'defatul value if empty');
}


#php #разработка #joomla #symfony
Forwarded from Joomla Feed (Sergey Tolkachyov)
Media is too big
VIEW IN TELEGRAM
Обновление сайта с Joomla 3 до Joomla 5. Инструкция.
В видео рассказывается и показывается как быстро обновить сайт со старой Joomla 3 до Joomla 5. Собственно обновление, за вычетом всех рассказов, занимает около 10-15 минут. Рассказывается о релизном цикле Joomla, системных требованиях и общей логике обновления.
Ссылки для видео:
- Скрипт для отключения всех расширений, не относящихся к ядру Joomla
- Joomla GitHub
- Сайт русскоязычного сообщества joomla
- Русский язык для Joomla

Видео также доступно на RuTube и VK Video
👍4
Forwarded from Joomla Feed (Sergey Tolkachyov)
Как событие Joomla назовёшь, так оно и триггернётся?
— Нет! Вы, конечно, можете называть события как угодно и вызывать откуда угодно, но правильно составленные имена событий не будут требовать заучивания, они как будто сами будут печататься на экране.

Как же следует именовать события в своих компонентах? — Так, чтобы они читались как полноценные предложения, а для этого надо разобраться с их структурой.

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

Читать статью на Хабре участника нашего сообщества Виталия Некрасова (@vitalik_a)

#разработка #php
WT JShopping products anywhere v.2.0.1 - плагин вставки товаров JoomShopping в материалы Joomla и другие места, где контент-плагины работают.
Пакет, состоящий из двух плагинов: контент-плагина и плагина кнопки редактора, позволяющие быстро и удобно вставлять товары JoomShopping в материалы, модули и везде, где работают контент-плагины. Макет default - это просто ссылка на товар. Если Вы измените категорию товара (например), то ссылки исправятся автоматически.

Контент-плагин поддерживает макеты вывода. Это значит, что Вы можете создать свой собственный макет вывода и представить более полную информацию о вставленном товаре: изображение, краткое описание, цену, количество просмотров, рейтинг, количество товара и т.д. Подробнее смотрите в файле plugins/content/wt_jshopping_products_anywhere/tmpl/default.php.

Чтобы создать свой макет вывода плагина - скопируйте файл default.php и переименуйте его. Внутри файла поместите Вашу HTML-вёрстку. Выбор макета появится во всплывающем окне выбора товара при редактировании материала.
v.2.0.1. Что нового?
- Ошибки установки. Исправлены ошибки пакета плагинов, из-за которых оба плагина оказывались в одной группе. С момента последнего релиза прошло больше года и только-только мне написал об этом пользователь... Люди, нужно быть чуточку активнее и сообщать о проблемах!
- Changelog URL. Добавлен changelog url и теперь вы сможете просматривать изменения в расширении перед установкой прямо в панели администратора Joomla.
- Изменения в плагине кнопки редактора. Плагин кнопки редактора поменял своё системное имя. Его функционал остался полностью тем же - выбор товара в модальном окне, но из-за нового системного имени при обновлении у вас появится как бы "новый" плагин. Старый нужно будет удалить, оставить новый. Будьте внимательны с вашими макетами вывода товаров, если вы решитесь переустановить пакет полностью!

Страница плагина
Также выложил пакет на GitHub.

#joomla #php #расширения #интернетмагазин
Первая часть моей статьи о создании плагина умного поиска вышла в октябрьском номере Joomla Community Magazine.
Статью эту ранее публиковал на Хабре под названием "Анатомия умного поиска в Joomla 5. Создание плагина". По оценке Хабра время прочтения её 27 минут. Для зарубежной аудитории мне посоветовали разбить эту статью на 3 части. Мол, серия статей по 4,5К знаков плюс-минус лучше воспринимается читателем. Поэтому встречайте: "The anatomy of smart search in Joomla 5 Part 1: Introduction." - третья публикация на английском в официальном журнале международного Joomla сообщества.

#joomla #php #development #разработка
👍4
WT Contact anywhere with fields v.1.0.2
Вставляйте контакты Joomla везде, где работают плагины контента. Используйте шорт-код {wt_contact_wf contact_id=XXXX tmpl=XXXX}. Создавайте собственные макеты вывода в папке tmpl плагина. Также показывает блок информации об авторе в материалах Joomla.
Список изменений
- Удален target = '_ blank'. Удален атрибут target='_blank' в макете link. Теперь страница контакта открывается в текущем окне.
Подробнее
WT YooKassa PHP библиотека для Joomla v.3.7.0
Официальная PHP библиотека платёжного сервиса YooKassa, "обёрнутая" в пакет для использования в Joomla 4 и 5. Для разработчиков PHP Joomla.
Список изменений
- YooKassa PHP SDK v.3.7.0. Добавлена работа со счетами
- YooKassa Validator v.1.0.2. Обновлена библиотека YooKassa Validator до версии v.1.0.2
Подробнее
Forwarded from Joomla Feed (Sergey Tolkachyov)
Кто создал CMS Joomla
Небольшой экскурс в историю любимой CMS от PHP Zone.

Погрузиться в историю

Также интересные крупицы информации о Joomla можно найти в статье на сайте агентства Peppers Digital
👍1