WebTolkRu
101 subscribers
629 photos
73 videos
2 files
651 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)
Яндекс выпустил в beta инструмент Подбор запросов и анализ рынка
В некоторых кабинетах вебмастеров Яндекс.Вебмастер появился инструмент для подбора запросов и анализа рынка. Он позволяет указать запрос, минус-слова, регион и тип устройства. В итоге будут показаны запросы и их частотность, конкурентность, спрос и количество кликов.
Основные запросы - содержащие ключ. Дополнительные запросы - это запросы, которые могут не содержать заданных слов, но при этом они популярны у пользователей в схожем контексте. Пример: "joomla" и "джумла". По спросу и кликам показывается среднемесячное значение за последний год.

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

Можно сказать, что это сильно упрощенная версия Key Collector, которая нужна в тех случаях, когда нужно просто за полчаса примерно понять картину на рынке в конкретной нише. В проектах, где предполагается серьёзная работа по продвижению сайта по прежнему требует сбора и кластеризации полноценного семантического ядра и анализа конкурентов.

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

@joomlafeed

#seo #яндекс
👍1
Forwarded from Joomla Feed (Sergey Tolkachyov)
WT SM Otpravka.pochta.ru - обновление расчета стоимости доставки Почтой России для JoomShopping
Расширение для расчета стоимости доставки и интеграции интернет-магазина Joomla JoomShopping с личным кабинетом сервиса Отправка Почты России для бизнеса. Расчет стоимости происходит по тарифам согласно Вашему договору с Почтой России. Автоматическое создание заказов в Личном кабинете Почты России после успешной оплаты или при смене статуса заказа (как вручную, так и программно).
В историю заказа сохраняется созданный трек-номер и расчетное время доставки.
👩‍💻 Что нового?
Joomla 4 / Joomla 5
Пакет расширений переписан под архитектуру Joomla 4 / Joomla 5. Это означает, что он без проблем будет работать и на Joomla 6.
Габариты отправления и платный вес Почты России
С лета 2024 года Почта России начинает учитывать не только вес отправления при рассчете стоимости, но и объём. Поэтому необходимо указать минимальные габариты отправления для корректного расчета стоимости доставки. Настройки габаритов находятся в настройках цены на способ доставки JoomShopping.
Рефакторинг кода
Большая работа по рефакторингу и чистке кода.

Страница расширения
#расширения #JoomShopping

@joomlafeed
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🙏1
👩‍💻 Совет по Joomla: Выбор группы для плагина Joomla.
В Joomla развитая система плагинов. Во время работы Приложения Joomla в разные моменты его жизненного цикла вызываются разные события. Эти события "слушают" плагины, получают данные для работы и возвращают их обратно, если это необходимо или выполняют любую необходимую в данный момент времени работу.
Плагины группы system вызываются всегда и раньше, чем плагины конкретных групп. Если ваш плагин работает всегда и везде и решает разные задачи в разных местах сайта - делаем системный плагин, но учитываем, что к нему будет обращение даже тогда, когда он не нужен.
Плагины конкретных групп вызываются в определенный момент времени, в определенном контексте и не создают дополнительную нагрузку, так как необходимый код выполняется только в нужный момент времени. Но это накладывает определенные ограничения и порой нужно создавать 2-3 плагина, которые можно было бы объединить в одном системном. 

@webtolkru

#разработка #development #joomla #php #cookbook
Please open Telegram to view this post
VIEW IN TELEGRAM
Программное создание материалов с пользовательскими полями в Joomla 5+

С помощью материалов Joomla на сайте можно сделать не только контентный сайт-статейник или новостник, но каталог, простую доску объявлений и т.д. Начиная примерно года с 2016 очень много трафика из поисковиков уходит в соц.сети, стриминговые платформы, мессенджеры. Много контента стало создаваться напрямую в интерфейсе, например, Telegram. И в связи с этим встаёт вопрос об автоматическом наполнении сайта контентом из соц.сетей и мессенджеров. Для этого как раз и нужно знать как создавать материалы в Joomla 4 / Joomla 5 и старше программным способом....
Read more …

@webtolkru
#разработка #development #joomla #php
👍2
Media is too big
VIEW IN TELEGRAM
Демо работы обновлённого WT SM Otpravka pochta ru для #joomla #joomshopping с фронтенда
👍1
Благодарность настигла, когда её совсем не ждёшь))

#отзывы
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
К Joomla никакого отношения не имеет, попалось на просторах VK 😂
🤣2
WT YooKassa PHP библиотека для Joomla v.3.5.0
Официальная PHP библиотека платёжного сервиса YooKassa, "обёрнутая" в пакет для использования в Joomla 4 и 5. Для разработчиков PHP Joomla.
Список изменений
- Отключение платежного метода. Отключен платежный метод Installments
Подробнее
👍1
WT Guru YooKassa платёжный плагин v.1.0.1
Платёжный плагин для компонента Guru, позволяющий принимать платежи с помощью сервиса YooKassa. Требует установленной библиотеки WT YooKassa library.
Список изменений
- Joomla 5. Улучшена совместимость с тёмной темой Joomla 5
- Установка на Joomla 5. Исправлены ошибки установки на Joomla 5
Подробнее
👍1
👩‍💻 Совет по Joomla: использовать класс Joomla\Uri\Uri для создания URL.
При построении url в коде можно собрать всё строками с конкатенацией вида
$url = $domain.'/index.php?option='.$option.'&view='.$view.'&param1='.$value1;

и для небольших строк это может быть даже и удобно. Но если параметров много или они требует стандартизации/чистки в процессе, то уже не все так удобно и очевидно. Например, в части url может быть ведущий слеш (слеш в начале фрагмента url) и пришедший домен для запроса тоже может оканчиваться на слеш - и вот мы получаем некорректный url для запроса с двойным слешем где-нибудь в середине...

Для задач стандартизации и единообразия получения url в Joomla есть класс Joomla\Uri\Uri. Раньше, с Joomla 1.6 и старше он назывался JUri. Этот класс обеспечивает работу с url по стандарту RFC3986 и берет на себя работу по разбору url на запчасти или по сборке url из запчастей ))
Пример: получить конкретный параметр из url.
 use Joomla\Uri\Uri;

$url = 'https://web-tolk.ru/dev/biblioteki?param=value';
$uri = new Uri($url);
// здесь выведет строку 'value'
echo $uri->getVar('param');

Да, есть же нативная PHP функция parse_url, скажете вы... Но класс Uri обеспечивает безопасную работу с UTF-8 в url, в том числе с кириллическими доменами. Дабы не писать различные проверки самостоятельно - можно воспользоваться возможностями ядра Joomla.

Как собрать нужный url
Тут тоже все просто:
use Joomla\Uri\Uri;

$uri = new Uri;
$uri->setHost('web-tolk.ru');
$uri->setScheme('https');
// setPath() начинаем со слеша
$uri->setPath('/dev/biblioteki');
// GET-параметры можно передать массивом
$vars = [
'param1' => 'value1',
'param2' => 'value2',
'param3' => 'value3',
];
$uri->setQuery($vars);
// выводим в строку наш url
echo $uri->toString();

Иерархия классов Uri в Joomla сделана так, что методы-геттеры находятся в классе AbstractUri, а сеттеры - в классе Uri. Сеттеры можно посмотреть в файле libraries/vendor/joomla/uri/src/Uri.php. Геттеры смотрим в файле libraries/vendor/joomla/uri/src/AbstractUri.php.

Если у вас есть PHP Storm, то он прекрасно знает Joomla и подсказывает всё, что нужно.
Ну и можно дать ссылку на страницу старой документации, которая до сих пор в большей своей части актуальна с поправкой на использование неймспейсов.

@webtolkru

#разработка #joomla #php #development #cookbook
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#отзывы подоспели
👍1
Список устаревших классов ядра Joomla 1.6-3.10 и их современные аналоги в ядре Joomla 5.x

Разработчикам при обновлении расширений на архитектуру Joomla 4 / Joomla 5 нередко не сразу удаётся найти аналоги устаревших методов ядра. Особенно, если под рукой нет современной среды разработки (IDE), например PHP Storm, который подсказывает нужные методы ядра Joomla. Без него, конечно, разработка для Joomla становится непростым делом. В этой статье вы найдете табличку соответствия старых и новых названий PHP классов ядра Joomla и её расширений для того, чтобы быстрее и легче было обновить свои расширения. Эти классы пока что можно использовать в случае, если включён плагин обратной совместимости Joomla 4 / Joomla 5. Но в Joomla 6 или последующих версиях он может быть удалён....
Read more …
🙏1
👩‍💻 Совет по Joomla: использование методов плагинов в любом месте Joomla 4 / Joomla 5.
Нередко расширения Joomla в готовом виде состоят из пакета - комплекта плагинов, модулей, библиотек. Расширения из одного пакета могут нуждаться в одном и том же методе и раньше было несколько путей:
- копировать код везде (выкидываем принцип DRY - don't repeat yourself)
- делать простой трейт в одном плагине и обращаться к нему (в Joomla 3 так обычно не делали)
- делать библиотеку отдельным расширением пакета. Но как-то странно так заморачиваться ради одного метода

В Joomla 4 и старше новая (хм-м, 2 года уже прошло...) архитектура плагинов позволяет обращаться к методам плагина откуда угодно.
use Joomla\CMS\Factory;

// Указываем группу плагина и element
$myPlugin = Factory::getApplication()->bootPlugin('system','myplugin');
// И вызываем нужный нам метод плагина "Сделать хорошо"
$result = $myPlugin->doItWell();

Такой подход можно использовать везде: в компонентах, плагинах, библиотеках, модулях и т.д. Например, если в настройках компонента можно переключить источник данных - плагин-провайдер, то один путь - триггерить событие для группы этих плагинов. А можно вызвать нужный метод напрямую.
use Joomla\CMS\Factory;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Plugin\PluginHelper;

// Получим параметры компонента
$component_params = ComponentHelper::getParams('com_mycomponent');
// Получим имя плагина-провайдера
$plugin_name = $component_params->get('data_provider');
// Проверим, а включён ли плагин?
if(PluginHelper::isEnabled('system',$plugin_name))
{
// Загрузим плагин
$plugin_provider = Factory::getApplication()->bootPlugin($plugin_name,'system');
// Получим данные из него напрямую
$external_data = $plugin_provider->getExternalData($any_id);
}


@webtolkru

#разработка #joomla #php #development #cookbook
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
WT Fabric.js v.6.1.0
Этот плагин для разработчиков Joomla. Плагин регистрирует скрипт Fabric.js в Joomla Web Assets Manager. Затем вы можете использовать его в своих расширениях.
Список изменений
- Версия 6.1.0.
Подробнее
👩‍💻 Совет по Joomla: скрыть часть строки за многоточием
Если вы хотите скрыть часть строки, в Joomla есть метод StringHelper::abridge(), который маскирует часть строки с помощью многоточия. Этот метод похож на метод #laravel Str::mask().
use Joomla\CMS\HTML\Helpers\StringHelper;

$str = 'Длинная строка, весьма и весьма длинная';
echo StringHelper::abridge($str, 20,5);

Класс находится в файле libraries/src/HTML/Helpers/StringHelper.php.

Также в этом классе находится метод StringHelper::truncate(). Он обрезает текстовые блоки с превышением указанного лимита символов и закрывает все открытые HTML-теги. При необходимости метод не будет усекать отдельные слова, он найдет первый пробел, который находится в пределах указанного лимита, и выполнит обрезку в этом месте. Этот метод UTF-8 безопасен.
use Joomla\CMS\HTML\Helpers\StringHelper;

$str = 'Длинная строка, весьма и весьма длинная';
echo StringHelper::truncate($str, 10, true);

Другой метод этого класса StringHelper::truncateComplex() является продолжением метода truncate(), но для более сложных ситуаций. Его задача заключается в том, чтобы получить строку обычного текста нужной длины с сохранением как можно большей части html-кода, при этом все теги должны быть правильно закрыты.

Ещё один StringHelper...
Поскольку в Joomla 4 "под капот" влит Joomla Framework (php фрейм), много лет бывший отдельным проектом, то часть функционала Joomla переведена на классы фреймворка, а часть ещё использует старые классы CMS. Процесс постепенно идёт. Поэтому сейчас (Joomla 5.1.2) в ядре есть 2 стринг хелпера.

2-й хелпер - Joomla\String\StringHelper.
Часть его методов - обёртки для нативных функций PHP - trim(), str_split(), strtolower(), strrpos() и т.д., но с безопасной работой с UTF-8. Также в нём есть метод increment(), работу которого мы видим при сохранении материалов, название и алиас которых уже существуют (при копировании) - к ним автоматически добавляются цифры в скобках (1) в заголовок и через дефис в алиас - -1.
Посмотреть что в нём есть можно в файле libraries/vendor/joomla/string/src/StringHelper.php.

@webtolkru

#joomla #php #development #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Немного обновил страницу о Joomla в википедии: содержание, скриншоты. Гляньте, посоветуйте https://ru.wikipedia.org/wiki/Joomla! Если у кого есть аккаунт там - помогайте тоже.
SM WT CDEK аддон доставки для JoomShopping v.1.1.0
Способ доставки для интернет-магазина JoomShopping. Работает с API CDEK v.2. Считает стоимость доставки, позволяет выбрать пункт выдачи заказа CDEK на карте, отображает полную информацию о ПВЗ в заказе. Для работы аддона необходимо установить и настроить библиотеку WT CDEK. Joomla 4.2.7+, JoomShopping 5+.
Список изменений
- Параметр совместимости с одностраничными заказами. В параметрах расширения для расчета стоимости доставки в разделе Настройки виджетадобавлен параметр Используется одностраничный (ajax) заказ.

Существует несколько расширений для создания одностраничного оформления заказа. Из-за этого могут возникать ошибки в работе расширения WT SM Cdek, так как невозможно предусмотреть все способы реализации сторонних разработчиков. Включение этой опции может помочь решить проблемы с появлением модального окна для выбора ПВЗ и собственно выбора ПВЗ....
Подробнее
👍1
Скрипт для отключения расширений, не входящих в ядро Joomla 3 (для обновления на Joomla 5+)
Перед обновлением сайта с Joomla 3 на Joomla 4 и выше нужно обновить все старые расширения до последних (для Joomla 3) версий. Затем отключить их, особенно системные плагины. Это делается для того, чтобы ничто не мешало процессу обновления. Для того, чтобы сделать это быстро - накидал скрипт, который отключает нестандартные расширения в Joomla 3.

➡️ Получить код скрипта (GitHub gist)

Файл disable_non_joomla3_extensions.php нужно положить в папку administrator вашего сайта и перейти по нему в браузере - your-site.ru/administrator/disable_non_joomla3_extensions.php.
Если всё успешно отключилось - выйдет сообщение
XXX extensions that are not included in the Joomla 3 core have been detected and disabled. Make sure that they are disabled in the Site Admin Panel: Extensions - Extension Manager - Management.

Проверяем работу в менеджере расширений и после этого обновляем Joomla до Joomla 4 с помощью пакета обновлений Joomla 4.0.0. Обновляем Joomla 4 находясь на PHP 7.4 до конца. Меняем базу данных на MySQL 8+ (импорт-экспорт базы), поднимаем PHP до 8.1.
⚠️ Всё это делаем находясь ещё на Joomla 4. Обновиться нужно минимум до Joomla 4.4.0. Только после этого можно обновляться на Joomla 5 пакетом обновления 5.0.0 (ссылка 2).
Когда всё успешно произошло - обновляем расширения, можно прямо в выключенном состоянии.
Почему-то у меня лежит скачанный когда-то файл Joomla_5.0.0-Stable-Update_Package-only-from-4.4.0.zip, которым обновляюсь сам. На всякий пожарный его прикладываю следующим постом.

@webtolkru

#joomla #разработка #php #development
🔥2