Новости Joomla

SW JProjects v.2.6.0 - компонент каталога расширений для Joomla

👩‍💻 SW JProjects v.2.6.0 - компонент каталога расширений для Joomla.Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам.👩‍💻 v.2.6.0. Что нового?Этот релиз прежде всего связан с SEO и AI-оптимизацией. - Микроразметка Schema.org.Добавлен плагин микроразметки Schema.org для сущностей компонента. Для списков используется ListItem, для страницы проекта и версии - SoftwareApplication, для страницы документации - TechArticle. Плагин группы schemaorg в отличие от стандартных плагинов заполняет данные автоматически, но встраивает данные в граф сущностей микроразметки Joomla. Также исправляется одна ошибка генерируемой ядром микроразметки в зоне ответственности компонента.- Улучшение поиска по ключам. В панели администратора в списке ключей теперь можно искать по номеру заказа, email, домену, содержимому примечания к ключу.- Список ключей в админке. В списке ключей в панели администратора добавлен вывод домена и примечания- Поиск в списке проектов. Поиск в списке проектов в панели администратора стал более точным. Из полей для поиска убраны лишние поля.Компонент работает на Joomla 6 без включённого плагина обратной совместимости.Страница расширения и скачатьGitHub расширения.Joomla Extensions Directory#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

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

Здравствуйте! После прочтения топиков про ЧПУ, ItemID и индексацию страниц в качестве эксперимента в функции getItemId в /includes/joomla.php вставил в самом начале функции return ""; и теперь имею ссылки на контент в виде sitename/content/view/N#/

Очень хотелось бы узнать мнение специалистов, может ли данное изменение на чем-либо отразиться кроме бардака в расположении модулей. Я просто решил переделать шаблон кардинальным образом и наверное расположение модулей зашью прямо туда (буду анализировать $option в коде шаблона).

*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ну помимо расположения модулей, не будут работать проверки уровня доступа к пунктам меню. Не будут загружаться параметры пунктов меню... Много чего работать не будет...

я убрал генерацию itemid только для элементов контента. Smart, можешь по памяти сказать, что отвалится именно при таком ограничении? Или надо в код лезть и там смотреть?

я думаю что поторопился со своим вопросом, можно считаь этот вопрос снятым - я сам протестирую работоспособность  и отпишу здесь когда будут получены какие то выводы.

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

На сайте было два места где располагался материал - главная страница и интерфейс компонента AlphaContent. Оба доступны через пункты меню, ItemId равные 1 и 31 соответственно.
Что было сделано: в файлах, где формируются ссылки для выводимых материалов было закоментировано все, что добавляло в ссылку ItemId. У меня это были файлы от com_content, com_alphacontent и мамбот от JComments.
После этого в файл /includes/sef.php было внесено изменение, для всех урлов имеющих $option=content и с отсутствующим ItemID в ссылке принудительно добавлялся ItemID = 31.

В результате при открытии главной страницы количетсво запросов к базе упало с 37 до 23, при открытии AlphaContent с 46 до 27.

Это связано с тем, что при старом варианте работы для каждого материала выполнялся запуск метода getItemId, вычислящий номер ItemId для подстановки в формирующуюся ссылку.
На текущий момент я продолжаю тестировать сайт, пока что потерь в функциональности не обнаружено (опубликованных модулей у меня нет).
Возможно, кому то эта информация пригодится, но если будете это делать, делайте, пожалуйста, на свой страх и риск)))

я что-то поторопился)) рассказал тока о том, ради чего сам это делал - об уменьшении числа обращений к базе.
Минусы:
Хотя это уже говорилось, повторюсь - при таком изменении нарушится схема расположения модулей, то есть расположение модулей будет одним и тем же (как для пункта меню с ItemId=31), независимо от того, на какой странице мы находимся в момент когда жмем на ссылку.
Если для пунктов меню установлены разные уровни доступа, также может произойти перекос.

Если у кого-то есть идеи о том, что еще может случиться, отпишите, пожалуйста.

Взависимости от того, какая цель преследуется, можно получить два результата - либо уменьшение числа запросов (если сделать отключение ItemId только для какой то части сайта и восстанавливать его динамически в sef.php), либо в дополнение получить единые ссылки на материал, без ItemId (елси убрать формирование ItemId повсеместно).
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Если для пунктов меню установлены разные уровни доступа, также может произойти перекос.
дело не только в уровнях доступа... согласно параметра Itemid для блог-разделов и блог-категорий к примеру грузятся параметры пункта меню... если этого параметра нет, то блог отображаться будет по дефолтным настройкам...

"если этого параметра нет"
этот параметр как раз есть. его нет только в сгенеренных ссылках, которые отображаются на странице, а в движок он передается. просто я не могу предложить универсальный метод вычисления этого параметра (ItemId) налету - я значение этого параметра подставляю в sef в виде константы, потому что меня вполне устраивает, что он будет одинаковым. для других задач, возможно, потребуется алгоритм по вычислению этого параметра, возможно, даже отличный от оригинального алгоритма.

я пока столкнулся с такой проблемой - есть другие места, где генерится ItemId - например, если в редакторе JCe сделать ссылку ан внутреннюю статью. Поскольку я хочу ради эксперимента вообще иметь все ссылки на материал в виде sitename/content/view/id/ , то я, наверное, внесу изменения и в мамбот mossef.

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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
этот параметр как раз есть. его нет только в сгенеренных ссылках, которые отображаются на странице, а в движок он передается. просто я не могу предложить универсальный метод вычисления этого параметра (ItemId) налету - я значение этого параметра подставляю в sef в виде константы, потому что меня вполне устраивает, что он будет одинаковым
но это означает, что параметры отображения главной страницы, и какого-либо блог-раздела будут совпадать... ведь Joomla именно исходя из значения Itemid выбирает нужный пункт меню и из него берет параметры для отображения (сколько там колонок и т.д.)...

Ну конкретно у меня ситуация такая - все тексты открвываются как бы для пункта меню, соответствующего AlphaContent, меня это вплне устраивает.
А в более универсальном варианте - если надо определить с какой именно страницы пришла эта ссылка в сеф, чтобы открыть ее с соответствующими настройками - можно ли это сделать как то через http[referrer]?
Для меня это вопрос важен, если будет найдено решение, то я смогу его применить на другом сайте, где уже будет несколько старниц для отображения контента и правильно определенный ItemID там будет играть важную роль.

Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работают SEF-ссылки на Joomla 5

Автор Detonator

Ответов: 2
Просмотров: 3276
Последний ответ 29.03.2025, 07:26:44
от azm1n
Как скрыть партнерские ссылки?

Автор paicker

Ответов: 3
Просмотров: 12414
Последний ответ 30.08.2022, 13:19:04
от kovaltaras1
Убрать из ссылки /images

Автор step147

Ответов: 4
Просмотров: 3466
Последний ответ 17.08.2021, 11:19:32
от step147
SEF и красивые ссылки

Автор sergvm

Ответов: 10
Просмотров: 4065
Последний ответ 14.06.2020, 19:52:38
от sergvm
После включения SEF ссылки не до конца становятся красивыми

Автор borro

Ответов: 3
Просмотров: 4249
Последний ответ 19.04.2020, 13:48:12
от robert