Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

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

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 3270 Просмотров
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Бесплатный плагин Joomla 3 для определения геоданных посетителей сайта по IP адресам.

Определение геоданных основано на Sypex Geo.
Определяет страну, регион, город, географическую широту/долготу (центра выявленного города).




Особенности
Установочный архив с плагином сам по себе не включает базу Sypex Geo. За счёт этого весит мало, устанавливается быстро.
При включении плагина, в админ-панели, предложит скачать актуальную базу Sypex для дальнейшей работы.
Далее с установленной периодичностью будет предлагать актуализировать базу (скачать обновлённую) - прямо в системном сообщении, в любом разделе админки, не только в настройках плагина. Там же (в системном сообщении) и кнопка для быстрого обновления - минимум усилий  ^-^
Плагин на ранней стадии загрузки Joomla определяет геоданные посетителя с записывает их в константы, которые далее доступны в любом PHP скрипте (хоть в компонентах, хоть в модулях, хоть в плагинах, хоть в шаблоне). Кроме того, есть возможность на выходе HTML заменить в текстах названия констант их значениями.
Например, если в заголовке модуля написать "Город GEODATA_CITY_NAME_RU" на странице этот заголовок модуля будет выглядеть: "Город Москва", "Город Челябинск" и так далее.

Что касается нагрузки
Само по себе решение SypexGeo - довольно хорошее, но всё же для сайтов с большой посещаемостью определять геоданные (анализируя базу Sypex) для каждой загрузки страниц каждым посетителем - это вполне ощутимая по ресурсоёмкости задача.
Поэтому предпринята такая схема для оптимизации:
Анализируем базу через Sypex только в том случае, если не нашли данных для этого посетителя в его сессии или не нашли данных для его IP в базе данных.
То есть сначала плагин пробует брать геоданные из сессии. Таким образом, если это уже знакомый посетитель (с сессией), то вообще никаких дополнительных телодвижений не делается.
Если в сессии нет геоданных - пробует найти геоданные для IP посетителя в БД. Если они там есть (например, это бот или краулер), то на этом и финиш, данные получены. Один запрос.
Если же нет ни в сессии, ни в БД, тогда подключаем класс SypexGeo и получаем геоданные (записываем в сессию и БД).
Всё это очень эффективно минимизирует нагрузку.

Плагин выпущен изначально, кажется, летом-осенью 2020 года.
Используется ежедневно мной на довольно посещаемом ресурсе. Всё стабильно.
С ноября 2020 года плагин выложен общественности - бесплатно. Есть скачивания, жалоб пока нет  ^-^

Официальный сайт: https://iresurs.com/ru/joomla/ir-geodata

Приглашаю затестить  ;)
В случае чего - пишите.
« Последнее редактирование: 17.03.2021, 20:19:14 от rsn »
Возможно, будет интересно: Интеграция с Ozon
*

stepan39

  • Захожу иногда
  • 499
  • 28 / 0
Как можно данный плагин привязать к профилю пользователя?
Интересует отображение информации в админке.
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Как можно данный плагин привязать к профилю пользователя?
Интересует отображение информации в админке.
Не понял, что имеете в виду.

Хотите видеть, откуда посетители?
Возможно, будет интересно: Интеграция с Ozon
*

stepan39

  • Захожу иногда
  • 499
  • 28 / 0
Хотите видеть, откуда посетители?
Именно. Используя нужные константы отображать инфу о пользователях.
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Задача решаема, но только константы не помогут отображать...
Они ведь в памяти только при формировании страницы.
А в Вашем случае это надо зафиксировать в памяти.

Сделать можно примерно так:
Создать в БД отдельную таблицу для хранения связок: user_id - сессия - город.
PHP-cкрипт (либо в другом плагине, либо в шаблоне) для пользователей проверяет, есть ли соответствующая запись в этой таблице для этого пользователя и этой сессии. Если нет - записывает.
Потом в админке (можно даже просто правкой шаблона админки) выводить рядом с пользователями столбец, в котором,
к примеру, - наиболее часто повторяющийся город из последних 20 записей для этого пользователя.

Нужно программирование, да.
Возможно, будет интересно: Интеграция с Ozon
*

stepan39

  • Захожу иногда
  • 499
  • 28 / 0
Используется ежедневно мной на довольно посещаемом ресурсе.
Хотелось узнать о практическом применении.
Т.е. понятно, что можно эти данные вывести для пользователя (Привет, мы определили что Вы из Москвы по таким то координатам), но зачем?
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
но зачем?
Например: когда сайт мультирегиональный с поддоменами - отправить посетителя на нужную версию сайта, для его региона.
Или: в интеграции со службой доставки - посчитать условия доставки.
Погода в его городе. Местное время. Ближайший к его городу наш магазин.
И так далее. Да много вариантов.
Возможно, будет интересно: Интеграция с Ozon
*

stepan39

  • Захожу иногда
  • 499
  • 28 / 0
Например: когда сайт мультирегиональный с поддоменами - отправить посетителя на нужную версию сайта, для его региона.
Или: в интеграции со службой доставки - посчитать условия доставки.
Погода в его городе. Местное время. Ближайший к его городу наш магазин.
И так далее. Да много вариантов.
т.е. в любом случае кодить, обрабатывая данные полученные с помощью плагина. Верно?
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Для обозначенных выше целей - да.
Можно сказать, что плагин вспомогательный. Определить локацию - чтобы что-то сделать далее.

Многим пригождается. Вот несколько похожих тем:
Местоположение пользователя
Определение города пользователя по IP
Модуль определения города посетителя
« Последнее редактирование: 18.03.2021, 08:29:53 от rsn »
Возможно, будет интересно: Интеграция с Ozon
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Без обид, но это уже устарело.
Лучше использовать сторонний сервис  , не создавая нагрузку на сайт .
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Лучше использовать сторонний сервис  , не создавая нагрузку на сайт .

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

Если данные стороннего сервиса подгружать AJAX-ом (на странице, которая уже открыта), тогда да, согласен с Вами.
Возможно, будет интересно: Интеграция с Ozon
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Если цель - редиректнуть на более подходящий региональный поддомен (редиректнуть так, чтобы посетитель не заметил),
то сторонний сервис - серьёзное увеличение времени отдачи HTML. Ухудшение быстродействия - ухудшение seo факторов.
Пользовался этой штукой. Слишком много ошибок она дает. У провайдеров (типа Билайна) пул динамических ip-адресов собран со всех регионов и выдают они их рандомно, не заморачиваясь привязками к региону. В итоге все равно надо пилить подтверждение и выбиралку города юзером с сохранением в куку или еще куда-нибудь. В итоге теряется смысл с определения города по IP.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
У провайдеров (типа Билайна) пул динамических ip-адресов собран со всех регионов и выдают они их рандомно, не заморачиваясь привязками к региону. В итоге все равно надо пилить подтверждение и выбиралку города юзером с сохранением в куку или еще куда-нибудь. В итоге теряется смысл с определения города по IP.
Да, @sivers, именно так! Определяю город (для редиректа) - именно если нет куки (новый посетитель). Если уже есть (он уже сменил город, в этот момент записали куку), то редирект не делаем.
Возможно, будет интересно: Интеграция с Ozon
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

SM FAQ - компонент Вопрос-Ответ для Joomla 2.5+

Автор SmokerMan

Ответов: 682
Просмотров: 156429
Последний ответ 11.10.2025, 12:43:44
от wishlight
SW JProjects - Менеджер цифровых проектов для Joomla! CMS™

Автор Septdir

Ответов: 60
Просмотров: 18239
Последний ответ 13.09.2025, 19:12:05
от sergeytolkachyov
JSLazyLoading — плагин для отложенной (ленивой) загрузки и мультивывода изображений

Автор Филипп Сорокин

Ответов: 36
Просмотров: 19568
Последний ответ 10.08.2025, 13:17:43
от kaaaaaljan
WT Telegram bot - отправка данных из Joomla в Telegram-бота

Автор sergeytolkachyov

Ответов: 4
Просмотров: 3469
Последний ответ 01.08.2025, 09:26:57
от sergeytolkachyov
Модуль вывода новостей. Joomla 3.x

Автор fbr

Ответов: 54
Просмотров: 29351
Последний ответ 22.07.2025, 10:13:22
от fbr