Новости 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 Гость просматривают эту тему.
  • 21 Ответов
  • 5853 Просмотров
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Проверял сайт с помощью сервиса PageSpeed Insights используйте кэш, время хранения
решил с помощью такого в файл который в корне .htaccess вставил это

Код
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
Код
<ifModule mod_headers.c>
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
Код
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>
« Последнее редактирование: 31.07.2015, 00:49:12 от leo78 »
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Цитировать
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
Сделаешь изменения в шаблоне. Пользователи, уже бывавшие на сайте, изменения увидят через год. Две недели вполне достаточно.
« Последнее редактирование: 30.07.2015, 21:42:36 от ChaosHead »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
ChaosHead
Есть и другие варианты
Код
# compress text, HTML, javascript, CSS, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
 
# Or, compress certain file types by extension:
 
SetOutputFilter DEFLATE
 
# кеширование в браузере на стороне пользователя
 
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"

Но у всех "access 1 year"

Код
# 480 weeks
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=290304000, public"
</FilesMatch>

# 2 DAYS
<FilesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</FilesMatch>

# 2 HOURS
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>

<ifModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>


Кстати изменения я сразу вижу, с этим нет проблем
« Последнее редактирование: 31.07.2015, 00:48:41 от leo78 »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
А главное по оценке PageSpeed Insights
для мобильных      для компьютера - до изменений
70 / 100 Скорость      83 / 100
92 / 100 Удобство для пользователей
для мобильных      для компьютера - после
79 / 100 Скорость      93 / 100
92 / 100 Удобство для пользователей

« Последнее редактирование: 31.07.2015, 00:38:55 от leo78 »
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Да знаю я это всё. Ты ссылки на левые сайты не давай, вот давай обсуждать конкретно сервис Pagespeed и его советы.
Вот он конкретно пишет: https://developers.google.com/speed/docs/insights/LeverageBrowserCaching
Цитировать
Для всех кешируемых ресурсов нужно обязательно указывать один заголовок из пары Expires и Cache-Control max-age, а также один заголовок из пары Last-Modified и ETag. Использовать и Expires, и Cache-Control: max-age излишне, как и указывать Last-Modified и ETag одновременно.

На хостинге, где ты хостишься отдётся Etag заголовок. Он работает автоматом. Сервер сообщит браузеру, если какой-то файл изменился и его нужно подгрузить заново.


Остаётся указать либо Expires либо Cache-Control max-age, т.к. написано выше, что оба указывать - излишне.
Сколько времени указывать? Минимальный срок - 8 дней. Проверено на личном эксперименте.
Год - это перебор. Это значит, что ты год с сайтом ничего не будешь делать.
« Последнее редактирование: 30.07.2015, 23:25:12 от ChaosHead »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
ChaosHead
Верю, но почему другие переделают друг у друга, и кто не заметил этого и сколько должно быть?

Код
ExpiresByType text/javascript "access plus 8 days"
ExpiresByType text/css "access plus 8 days"


Еще странность
Код
ExpiresDefault "access 7 days"
ExpiresByType text/html "access plus 7 day"

- написание days и day - разница есть?
 :o

Цитировать
access plus 7 day            доступ плюс 7 дней
access plus 7 days           доступ плюс 7 дней
access 7 day                   доступ на 7 дней
access 7 days                 доступ 7 дней
access plus 8 day            доступ плюс 8 день
access plus 8 days          доступ плюс 8 дней


Код
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 8 days"
ExpiresByType text/css "access plus 8 days"
ExpiresByType text/html "access plus 7 days"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"

Как-то так должно выглядеть  ;D
« Последнее редактирование: 31.07.2015, 01:01:50 от leo78 »
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Потому что надо думать головой самому, что это и зачем, а не тупо копировать.
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
найдено в интернете про Joomlo
Спойлер
[свернуть]
*

Opiumfantom

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
leo78, Спасибо, последний вариант мне помог увеличить скорость, а также лучше отображаться в PageSpeed Insights. Осталось теперь "Удалить из верхней части страницы код JavaScript и CSS, блокирующий отображение". :o
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
leo уже в админке получил приключений себе, теперь твоя очередь.
Смотри: скрипты кэшируются допустим на месяц. Ты обновляешь Joomla, там новые скрипты выпустили. А у тебя и у старых посетителей в браузере старые. Что произойдёт - глюки.
*

vitzer

  • Захожу иногда
  • 303
  • 5 / 0
найдено в интернете про Joomlo
Спойлер
[свернуть]

Внес изменения в htaccess: сайт ускорился на 6 едениц, глюков пока не отмечено.
*

Mihanja80

  • Завсегдатай
  • 1918
  • 168 / 4
  • Всю жизнь учусь...
Код
Options +FollowSymLinks -Indexes
AddDefaultCharset utf-8
DirectoryIndex index.php
Это у нормального хостера включено в настройках сервера, мне так кажется...

Код
<ifModule mod_php.c>
А если PHP в режиме FastCGI? Можете получить ошибку 500?!

Цитировать
ifModule mod_deflate.c

mod_gzip
У меня nginx занимается сжатием перед отправкой, думаю нет смысла сжимать ещё и апачем.
Цитировать
mod_expires
А если nginx стоит проксисервером? Он передаст эти настройки или перепишет на свои?


Никогда не нужно копипастить простыни настроек без понимания...
Я с мобильного, в основном...
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Если стоит nginx, он сам файлы обрабатывает. Apache их не трогает. Он передаст только HTML
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Re: PageSpeed Tools
« Ответ #13 : 11.03.2018, 12:24:53 »
Интересно, сейчас  PageSpeed Tools  показывает Оптимизация ->Good -> 81 / 100

Как только включаю кеширование на хостинге 15 минут

В результатах отображается
_http://domen/images/kartinka.png (15 мин)

Но оптимизация сразу падает на 2 пункта

Фигня какая то
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
15 минут маловато для картинок.
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Да я для пробы, но сам факт меня удивил
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Ну так Google это считает почти или как нету кеширования и вычитает проценты)
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
15 минут маловато для картинок.
Маловато, поставил 7 дней, стало нормально

Да вообще остались какие то странные предложения

Удалите код JavaScript, препятствующий отображению:
Половина скриптов из движка, при очередном обновлении, надо повторять исправления, да и не понятно как и на что повлияет
Те что из шаблона, сразу тормозят загрузку меню в мобильной версии (не срабатывают, меню остаётся как для версии ПК)

Оптимизируйте работу CSS
Типа встроить непосредственно в код HTML? Зачем тогда вообще писать отдельный файл ?
Загружать в конце ? У кого медленный интернет получит сайт сразу без стилей, а потом уже CSS - так меня не устраивает

Сократите время ответа сервера
Ну тут непонятка, ответ сервера постоянно изменяется от 0.18 до 0.36, но в большинстве меньше 200мс, так что это предложение практически отсутсвует

Используйте кеш браузера
А вот тут проблема, остались только скрипты от Google, он чё? указывает мне на свои ошибки

    https://www.googletagmanager.com/gtag/js?id... (15 минут)
    https://www.google-analytics.com/analytics.js (2 часа)

Как исправить, не знаю

от Google есть только такой код
<!-- Global site tag (gtag.js) - Google Analytics -->
92 / 100 Удобство для пользователей
Это где посмотреть ?
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
« Последнее редактирование: 04.05.2018, 22:03:12 от Aleks.Denezh »
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Re:
« Ответ #19 : 31.03.2018, 16:09:05 »
92 / 100 Удобство для пользователей
Я спрашивал где это посмотреть?

А мой результат
Оптимизация
Good
89 / 100

*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
*

stendapuss

  • Давно я тут
  • 945
  • 20 / 0
  • Valera Stankevich
На хостинге, где ты хостишься отдётся Etag заголовок. Он работает автоматом. Сервер сообщит браузеру, если какой-то файл изменился и его нужно подгрузить заново.
А где это посмотреть? на хосте А то задолбал гоша с кешем.  Спасибо
В .htaccess так прописал:
В
Спойлер
[свернуть]
Может месяц много. Но материал не меняется.
« Последнее редактирование: 31.03.2018, 18:47:57 от stendapuss »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Заменить ремаркетинг на Контекстный тарг

Автор Влад

Ответов: 0
Просмотров: 965
Последний ответ 07.08.2017, 18:19:17
от Влад
1200 внутренних ссылок на каждой странице

Автор Dmitriy M

Ответов: 0
Просмотров: 945
Последний ответ 16.03.2017, 18:25:37
от Dmitriy M
Микроразметка schema.org vs validator HTML

Автор Strikerus

Ответов: 3
Просмотров: 1844
Последний ответ 15.02.2017, 12:11:20
от dmitry_stas
исключения из redirect 301

Автор iliya777

Ответов: 1
Просмотров: 1293
Последний ответ 12.01.2017, 15:15:20
от iliya777
Оптимизация изображения по PageSpeed Insights в Joomla 3.x (5, 6)

Автор News_N

Ответов: 9
Просмотров: 3331
Последний ответ 27.07.2016, 12:08:12
от Missile