Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#joomla #разработка

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

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

SoFuWa

  • Захожу иногда
  • 61
  • 0 / 0
Ускорить загрузку сайта
« : 01.09.2014, 12:53:05 »
Иногда сайт грузиться очень быстро, иногда по несколько секунд. БД 180 Мб, посетителей нет, на тестовом домене.
Кеширование пока отключено, с ним немного лучше.

Вот инфа из отладки:
Время: 0.0 ms / 0.0 ms Память: 0.585 MB / 0.58 MB Application: afterLoad
Время: 185.2 ms / 185.2 ms Память: 5.647 MB / 6.23 MB Application: afterInitialise
Время: 257.4 ms / 442.6 ms Память: 1.975 MB / 8.21 MB Application: afterRoute
Время: 1447.3 ms / 1890.0 ms Память: 7.763 MB / 15.97 MB Application: afterDispatch
Время: 41.9 ms / 1931.8 ms Память: 0.363 MB / 16.33 MB Application: beforeRenderModule mod_roknavmenu ()
Время: 100.5 ms / 2032.3 ms Память: 1.438 MB / 17.77 MB Application: afterRenderModule mod_roknavmenu ()
Время: 0.3 ms / 2032.6 ms Память: 0.000 MB / 17.66 MB Application: beforeRenderModule mod_roknavmenu ()
Время: 68.9 ms / 2101.5 ms Память: 0.290 MB / 17.95 MB Application: afterRenderModule mod_roknavmenu ()
Время: 13.2 ms / 2114.7 ms Память: 0.000 MB / 17.93 MB Application: beforeRenderModule mod_roknavmenu (Главное меню)
Время: 6.9 ms / 2121.5 ms Память: 0.129 MB / 18.06 MB Application: afterRenderModule mod_roknavmenu (Главное меню)
Время: 0.1 ms / 2121.7 ms Память: 0.000 MB / 18.03 MB Application: beforeRenderModule mod_login (Вход на сайт)
Время: 38.7 ms / 2160.3 ms Память: 0.513 MB / 18.54 MB Application: afterRenderModule mod_login (Вход на сайт)
Время: 0.2 ms / 2160.5 ms Память: 0.000 MB / 18.52 MB Application: beforeRenderModule mod_menu (Реклама)
Время: 5.7 ms / 2166.2 ms Память: 0.060 MB / 18.58 MB Application: afterRenderModule mod_menu (Реклама)
Время: 0.1 ms / 2166.3 ms Память: 0.000 MB / 18.57 MB Application: beforeRenderModule mod_search (Поиск)
Время: 4.3 ms / 2170.6 ms Память: 0.034 MB / 18.60 MB Application: afterRenderModule mod_search (Поиск)
Время: 0.1 ms / 2170.7 ms Память: 0.000 MB / 18.60 MB Application: beforeRenderModule mod_custom (Дата/Время)
Время: 3.0 ms / 2173.7 ms Память: 0.010 MB / 18.61 MB Application: afterRenderModule mod_custom (Дата/Время)
Время: 0.1 ms / 2173.9 ms Память: 0.000 MB / 18.60 MB Application: beforeRenderModule mod_custom (Наш баннер)
Время: 0.4 ms / 2174.3 ms Память: 0.007 MB / 18.61 MB Application: afterRenderModule mod_custom (Наш баннер)
Время: 0.1 ms / 2174.4 ms Память: 0.000 MB / 18.61 MB Application: beforeRenderModule mod_custom (Полезное)
Время: 0.9 ms / 2175.3 ms Память: 0.011 MB / 18.62 MB Application: afterRenderModule mod_custom (Полезное)
Время: 0.1 ms / 2175.4 ms Память: 0.000 MB / 18.62 MB Application: beforeRenderModule mod_custom (Полезное)
Время: 0.6 ms / 2176.0 ms Память: 0.005 MB / 18.62 MB Application: afterRenderModule mod_custom (Полезное)
Время: 0.1 ms / 2176.1 ms Память: 0.006 MB / 18.63 MB Application: beforeRenderModule mod_breadcrumbs (Навигатор сайта (путь к странице))
Время: 16.0 ms / 2192.2 ms Память: 0.064 MB / 18.69 MB Application: afterRenderModule mod_breadcrumbs (Навигатор сайта (путь к странице))
Время: 0.3 ms / 2192.5 ms Память: 0.001 MB / 18.69 MB Application: beforeRenderModule mod_roksprocket (FP Slideshow - RokSprocket Features)
Время: 185.1 ms / 2377.6 ms Память: 1.815 MB / 20.51 MB Application: afterRenderModule mod_roksprocket (FP Slideshow - RokSprocket Features)
Время: 128.3 ms / 2505.9 ms Память: 0.537 MB / 21.04 MB Application: afterRender

В профилировании SQL запросов, query end - обычно тормозит всё.
Самый длинный запрос к БД
Спойлер
[свернуть]
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Ускорить загрузку сайта
« Ответ #1 : 02.09.2014, 12:03:56 »
очень похоже на выборку материалов для главной.
Вот тут в принципе все объясняется, а именно что на тысячах материалов тормоза есть, и что спасет лишь кеширование плагином.
Кеширование запросов мускулом тут не спасет, так как часть касаемая даты '2014-09-01 08:39:40' постоянно меняется, то есть запрос фактически кешируется на секунду.
Лучше переписать запрос, чтобы было округление до '2014-09-01 00:00:00' - тогда запрос будет дергаться из кеша весь день, но невозможно будет указать точное время снятия матеарила с публикации.
В этом случае (query cache) после кеширования его мускулом он будет отрабатывать моментально, если не изменятся данные ни в одной из перечисленных таблиц (а именно пользователи, категории, материалы, материалы для главной, рейтинг) и запрос не выпадет из кеша.
Или урезать "фишки" Joomla с главной, например вообще не проверять снят ли материал с публикации по дате, забить на рейтинг - это ускорит работу запроса и без query cache.

UPD.
Это самый долгий или самый длинный запрос? Время выполнения весьма косвенно связано с длинной запроса, я могу придумать запрос длиннее этого со временем выполнения 2 миллисекунды.
« Последнее редактирование: 02.09.2014, 12:13:28 от neo85r »
*

SoFuWa

  • Захожу иногда
  • 61
  • 0 / 0
Re: Ускорить загрузку сайта
« Ответ #2 : 02.09.2014, 19:13:25 »
Или урезать "фишки" Joomla с главной, например вообще не проверять снят ли материал с публикации по дате, забить на рейтинг - это ускорит работу запроса и без query cache.
А как это сделать? Через админку как я понял никак? )) Или отключить что можно.

Это самый долгий или самый длинный запрос? Время выполнения весьма косвенно связано с длинной запроса, я могу придумать запрос длиннее этого со временем выполнения 2 миллисекунды.
Самый долгий, время выполнения колеблется сильно.
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Ускорить загрузку сайта
« Ответ #3 : 03.09.2014, 09:54:25 »
Да, через админку это не сделать никак. Только внести изменения в код. Для этого создать компонент, скопировав в него все файлы штатного компонента, переименовать его и внести изменения в код.
Или править штатный компонент, только эти правки затрутся при обновлении, но это возможно отследить если использовать систему контроля версий, например git.
Решение чисто на MySQL без переделки движка:
Изменить тип подсистемы хранения на InnoDB, в ней объединение таблиц работает быстрее
Делается это так:
ALTER TABLE `ixh95_content` ENGINE=INNODB;
Пройдите по все таблицам в запросе: ixh95_content_frontpage, ixh95_categories, ixh95_users, ixh95_content_rating
Также обновите MySQL до последней версии (5.6), где-то на зарубежном форуме об этом писалось, что более эфективно используется покрывающий индекс.
И этот индекс по каждой таблице следует построить:
ixh95_content_frontpage - по content_id
ixh95_categories - lft, rgt, extension, published
ixh95_users - name, email
ixh95_content_rating - rating_sum, rating_count

Надеюсь все перечислил. После этого делаем OPTIMEZE TABLE `ixh95_content` и других таблиц (не знаю, стоит ли делать сразу после постоения индекса, возможно они уже оптимизированы), EXPLAIN {запрос}, смотрим что получается. Можете выложить дамп этих таблиц, попробую сам.

Также тормоза по сортировке.
ORDER BY  c.lft, CASE WHEN a.publish_up = '0000-00-00 00:00:00' THEN a.created ELSE a.publish_up END  DESC,  a.created
Тут покрывающий индекс также невозможно использовать - разные таблицы, разный порядок сортировки (по убыванию, по возрастанию). Поэтому если админка позволяет, отключите лишние сортировки, оставив одну без условия CASE, например отключить сортировку по категориям и дате публикации, оставив по дате создания. Вообще сколько там записей в com_content?

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

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

SoFuWa

  • Захожу иногда
  • 61
  • 0 / 0
Re: Ускорить загрузку сайта
« Ответ #4 : 04.09.2014, 15:51:38 »
В Joomla 3 таблицы уже в INNODB
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Ускорить загрузку сайта
« Ответ #5 : 05.09.2014, 10:24:02 »
А по всему остальному что я изложил выше?
Почему бы не включить кеш, и не заниматься оптимизацией того, что требует профессиональных навыков?
*

SoFuWa

  • Захожу иногда
  • 61
  • 0 / 0
Re: Ускорить загрузку сайта
« Ответ #6 : 06.09.2014, 16:38:29 »
А по всему остальному что я изложил выше?
Почему бы не включить кеш, и не заниматься оптимизацией того, что требует профессиональных навыков?
Кэш включён, стоит компонент JotChahe, включено всё кроме кеша браузера. Так же стоит скрипт сжимающий, объединяющий и минимизирующий CSS и JS. Виртуальный хостинг MySQL обновить не могу, стоит 5.5.38

Записей в xh95_content - 15000. Соритровку через админку Joomla принципиально отключить, нельзя, а вообще сортировка на сайте не используется вроде, ну только по дате публикации.

Индексы добавлю сейчас, посмотрю.
« Последнее редактирование: 06.09.2014, 16:47:12 от SoFuWa »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

pptx в теле материала сайта

Автор VIK4

Ответов: 0
Просмотров: 1005
Последний ответ 24.10.2024, 13:04:04
от VIK4
Заявки с сайта на Joomla

Автор ivs1

Ответов: 8
Просмотров: 2677
Последний ответ 18.12.2023, 12:37:45
от SeBun
Перенос сайта на другой компьютер

Автор bekap

Ответов: 15
Просмотров: 2163
Последний ответ 17.11.2023, 09:44:03
от Театрал
Название сайта на картинке

Автор VIK4

Ответов: 5
Просмотров: 1606
Последний ответ 16.10.2023, 12:48:19
от VIK4
Проблема с почтой сайта на Joomla

Автор dima567

Ответов: 1
Просмотров: 1283
Последний ответ 16.09.2023, 09:44:41
от sivers