lm_any - плагин Last-Modified для любого контента

  • 425 Ответов
  • 25881 Просмотров

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

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
Ув. форумчане!

Предлагаю вашему вниманию плагин lm_any (plg_system_lm_any) для любого контента (компонента) сайта (Last-Modified Any Content).

Я унифицировал разрозненные наработки по управлению выдачей заголовков страниц last-modified и if-modified-since для ускорения сканирования сайтов поисковыми ботами и, соответственно, улучшения ваших сайтов в плане SEO. Исходный материал по данной теме обсуждался в этом посте.

Плагин был мною переписан для удобства расширения его под другие компоненты. Некоторый исходный код мною был изменен. В папку /plugins вы можете положить свой производный класс для нужного вам компонента. В файле /plugins/com_example.plugin.php показан пример подключения под отдельную страницу вашего компонента и под страницу категорий компонента.



На данный момент плагин поддерживает:
  • com_adsmanager-- компонент доски объявлений AdsManager для Joomla (только в платной версии); главная /стартовая/ страница объявлений категории, страница объявления
  • com_cobalt -- конструктор контента (CCK) Cobalt CCK (только в платной версии; тестировался на версии Joomla 3.x, форум, блог; поддержка страниц статьи и категории (секции))
  • com_content -- статьи
  • com_djclassifieds -- компонент доски объявлений DJ-Classifieds (v.3.6.1) для Joomla (только в платной версии); главная /стартовая/ страница объявлений категории, страница объявления
  • com_easyblog -- компонент блога (v.3 - v.5) для Joomla (только в платной версии)
  • com_easydiscuss -- форум (только в платной версии; Joomla 2.5 & Joomla 3.x)
  • com_flexicontent -- конструктор контента (CCK) FlexiContent; поддержка  страниц материала и категорий
  • com_hikashop -- компонент электронной коммерции для Joomla (только в платной версии)
  • com_jcomments -- компонент комментариев для Joomla (только в платной версии)
  • com_jshopping (Joom Shopping) -- магазин JShopping (пока только страница товара)
  • com_mediastore -- онлайн медиа-магазин, позволяет продавать скачиваемые / цифровые товары (только в платной версии; Joomla 3.x)
  • com_mosets -- бизнес-каталог Mosets Tree (категории и карточка объекта)
  • com_k2 -- конструктор контента (CCK) K2
  • com_komento -- компонент комментариев для Joomla (только в платной версии)
  • com_kunena -- форум Kunena (благодарим за старания форумчанина ast)
  • com_virtuemart -- магазин VirtueMart (есть исправления от 2014-03-05)
  • com_yvcommodity -- магазин yvCommodity
  • com_zoo -- конструктор контента (CCK) ZOO (доработан 2014-11-23)


Совместимость:
  • Joomla 2.5
  • Joomla 3.x  - платно 7.99$

Начиная с версии 1.1.1 улучшена работа в режиме кэша, а также добавлены новые опции по настройке заголовка ответа (Header Response) в режиме кэширования, а именно: Cache-Control & Expires, Vary, ETag. При разработке использовалась следующая литература:
Спойлер
[свернуть]

История версий:
Спойлер
[свернуть]

Скачать обновленную версию (платный и бесплатный вариант) плагина можно здесь
Проверить работу сайта после установки плагина можно здесь: http://last-modified.com/ru/
Проверить работу HTTPS-сайта после установки плагина можно здесь: https://redbot.org



Кому пригодился плагин и кто силен в английском -- милости прошу оставить отзыв на сайте расширений.

Что касается установки платной версии плагина v.1.3.1 для Joomla v.3.3+
Скачивать и устанавливать ТОЛЬКО ПЛАГИН!

Особенности установки платной версии плагина ДО v.1.3.1 для Joomla v.3.3+
  • при первичной установке пакета выдается сообщение, что произошла замена файла ядра Joomla (этот патч снимает ограничения Joomla на замену заголовков Last-Modified и остальных служебных);
  • название файлов пакета:  pkg_lmac_vX.X.X_j3.X.zip;
  • во время установки пакета также ставится и сам плагин;
  • название установочных файлов самого плагина: plg_system_lmac_vX.X.X_j3.X.zip;
  • сервер обновлений поддерживает обновление ТОЛЬКО для плагина;
  • после обновления Joomla, как правило,  необходимо повторно установить ВЕСЬ ПАКЕТ!
  • пакет для Joomla 3.3+ удалять нельзя! можно только отключить в управлении расширениями, либо только плагин
Принимаются предложения по улучшению и расширению, а также благодарности в карму или на кофе и шоколад. :)
Webmoney: R241481671015

За разработку материально отблагодарили
Спойлер
[свернуть]
« Последнее редактирование: 26.02.2017, 02:33:28 от yunoshev »

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
Добавил поддержку com_k2.
Также добавлена поддержка сервера обновлений для плагина, т.е. о выходе новых версиях вы сможете узнать в менеджере обновлений админки сайта.
Исправлена одна важная функция -- рекомендую обновиться.
« Последнее редактирование: 01.08.2015, 18:43:14 от yunoshev »

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
У меня не работает. Отдает "сейчас".
Joomla! 3.2.1

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@master-smeta
Покажите скриншот и напишите для какого компонента (версии) проверяли.
Я делал сам для компонентов: K2, yvCommodity. Для других компонентов я нашел решения здесь и почти не правил, лишь изменил для работы в связке с плагином.

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
@master-smeta
Покажите скриншот и напишите для какого компонента (версии) проверяли.
Я делал сам для компонентов: K2, yvCommodity. Для других компонентов я нашел решения здесь и почти не правил, лишь изменил для работы в связке с плагином.
Никаких сторонних компонентов не использую (пока), сайт только что установил на хост и просто настраиваю. Может я что-то не то делаю... Проверяю ласт-модифайт следующим образом:
1) ПКМ на странице -- Информация о странице -- Дата последнего изменения;
2) FireBug -- вкладка "сеть" -- "Заголовки ответа" для страницы.
Правильно?
Какие скриншоты предоставить?

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@master-smeta
Результат проверки с сайта http://last-modified.com/ru/
Покажите так, как у меня скриншот на этой странице.
« Последнее редактирование: 18.01.2014, 19:53:00 от yunoshev »

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
вот скрин
Спойлер
[свернуть]

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@master-smeta
ОК. Проверьте на странице с каким-нибудь материалом. Если у вас голый сайт, то может такой ответ и будет. Надо хоть что-то добавить.

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Минуту, сейчас добавлю страничку

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Добавил страничку. Результат тот же
Спойлер
[свернуть]

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@master-smeta
Отлично! А теперь сохраните ее, чтобы даты создания и модификации отличались:
Спойлер
[свернуть]
И проверьте снова.

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Пересохранил, даты различаются:
Спойлер
[свернуть]
Результат тот же:
Спойлер
[свернуть]

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Кстати говоря, на Вашем скрине указана версия PHP 5.2, а Joomla 3.2.х работает только на 5.3+
Может у Вас другая версия Joomla и на ней действительно все нормально работает

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@master-smeta
Спойлер
[свернуть]

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Заработало! Но нужно сыграть на бубне следующую мелодию :)
Идем в папку /libraries/joomla/application и открываем файл web.php
комментируем 429ю строку, т.е. должно быть так: //$this->setHeader('Last-Modified', gmdate('D, d M Y H:i:s'). ' GMT', true);
После этого плагин начинает работать, а страница отдает "правильный" Last-Modified. Не смотря на это, страница отдает ответ 200 OK
Чтобы исправить код ответа, нужно в вышеуказанном файле, в строке 423 убрать восклицательный знак. т.е. должно получиться это: if ($this->response->cachable)
Лично у меня все заработало только так. Проверено на двух тестовых сайтах (на денвере) и одном реальном.
Итог: при первой загрузке страницы получаем ответ 200 ОК. При последующем - 304 Not Modified.

P.S. ВНИМАНИЕ! Правка вышеуказанных файлов приводит к включению кэширования, причем кэшируется и фронтенд и админка. Лично я с этим уже свыкся, заголовки важнее...
« Последнее редактирование: 17.03.2014, 09:03:54 от master-smeta »

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
Ясно. Прямо как в полторашке -- причина в ядре. Будем искать выход.
« Последнее редактирование: 19.01.2014, 00:57:20 от yunoshev »

*

x1

  • Давно я тут
  • ****
  • 372
  • 14
Добрый вечер. Привожу результат тестирования работы модуля на К2 версии K2 v2.5.7:


Хостинг:
Linux  2.6.32-458.18.1.lve1.2.39.el6.x86_64 #1 SMP Mon Sep 16 12:10:28 EEST 2013 x86_64
Версия базы данных    5.5.34-cll-lve
Кодировка базы данных    utf8_general_ci
Версия PHP    5.2.17
Веб-сервер    Apache
Интерфейс между веб-сервером и PHP    cgi-fcgi
Версия Joomla!    Joomla! 2.5.9 Stable [ Ember ] 4-February-2013 14:00 GMT
Версия Joomla! Platform    Joomla Platform 11.4.0 Stable [ Brian Kernighan ] 03-Jan-2012 00:00 GMT
Браузер пользователя    Mozilla/5.0 (Windows NT 5.1; rv:26.0) Gecko/20100101 Firefox/26.0

До установки:
Цитировать
Last-Modified найден!
304 Not Modified не найден!
Результат: провалено
Сайт http://ХХХ отдал время последней модификации, но не отреагировал на If-Modified-Since

После установки модуля:
Цитировать
Last-Modified найден!
304 Not Modified найден!
Результат: отлично
Сайт http://ХХХ корректно отдает код 304 Not Modified.

Скриншоты не привожу. Кажется все нормально?

Так вот...  тестирую страницу повторно - выдает - ничего не изменялось. Изменяю текст странички (перефразирую всего один абзац) - тут же выдает - есть изменения!
« Последнее редактирование: 19.01.2014, 01:28:35 от x1 »

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
А можно добавить поддержку Mosets tree?

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@master-smeta
Можно, но для этого мне нужен сам Mosets Tree.

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@All
Большая просьба ко всем, у кого стоит Joomla! 3.2, установить последнюю версию плагина (или обновиться) -- кажется, я нашел решение для этой ветки Joomla без применения патчей и хака ядра.

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
Неужто некому проверить? :)

*

voland

  • Профи
  • ********
  • 9365
  • 421
  • СКАЙП утерян! Пишите в телеграм @volandku
Неужто некому проверить? :)
Боюсь мало кто уже использует 3.2 на рабочих проектах.. новички разве что.

*

voland

  • Профи
  • ********
  • 9365
  • 421
  • СКАЙП утерян! Пишите в телеграм @volandku
ЗЫ. А с zoo \ 2.5 пока не работает?

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@voland
Может быть, может быть. :)
Сегодня планирую сделать MosetsTree, а завтра постараюсь с Zoo разобраться.

*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
@All
Большая просьба ко всем, у кого стоит Joomla! 3.2, установить последнюю версию плагина (или обновиться) -- кажется, я нашел решение для этой ветки Joomla без применения патчей и хака ядра.
Я обновился. Все работает.

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@master-smeta
Отлично, значит я не ошибся в своем решении. Спасибо!

*

demis

  • Осваиваюсь на форуме
  • ***
  • 43
  • 2
Привет.
Не работает на Joomla! 3.2.1, все материалы на сайте на CCK K2, кроме главной страницы.
Проверка: Last-Modified найден!, 304 Not Modified найден!, но даты то Неправильные отдаются )

Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Date   Thu, 30 Jan 2014 18:28:26 GMT
Expires   Mon, 1 Jan 2001 00:00:00 GMT
Last-Modified   Thu, 30 Jan 2014 18:28:26 GMT
Pragma   no-cache
Server   nginx/0.7.67

Плагин ставил вот этой версии plg_system_lm_any v.1.0.3.zip, она последняя, правильно?

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@demis
Работа плагина в Joomla 3.2 еще проверяется, т.к. на одном хостинге мне выдает правильно, а на другом нет. Причину найти не могу.

*

demis

  • Осваиваюсь на форуме
  • ***
  • 43
  • 2
@demis
Работа плагина в Joomla 3.2 еще проверяется, т.к. на одном хостинге мне выдает правильно, а на другом нет. Причину найти не могу.
Может причина быть в использовании PHP как FastCGI или PHP как модуль Apache? Там вроде есть какая то разница в работе Last Modified (где то что то попадалось на эту тему) если я не ошибаюсь.

*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • *
  • 1238
  • 175
@demis
Не знаю, не попадалась такая информация.