Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

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

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
last-modified
« : 19.11.2013, 21:23:51 »
Версии:
3.2 ??
Суть:
Отдается параметр last-modified - но неверно, тупо сегодняшняя дата ?
Решение:
требуется
Статус:
не отправлено разработчикам
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: last-modified
« Ответ #1 : 19.11.2013, 22:08:51 »
да, отдает сегодняшнюю дату
проверено на J3.2

Главная - пункт меню Блог категории
Кеширование отключено
прим. http://j3.elleseo.ru/

Материал - http://j3.elleseo.ru/index.php/1-getting-started
Спойлер
[свернуть]
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Re: last-modified
« Ответ #2 : 20.11.2013, 10:35:53 »
решение
тупо в шаблон com_content прописываем или куда требуется впрочем как и всегда
*

Sulpher

  • Живу я здесь
  • 2136
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: last-modified
« Ответ #3 : 20.11.2013, 12:07:27 »
У меня вопрос: обработка где находится? в системном плагине SEO?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: last-modified
« Ответ #4 : 20.11.2013, 12:12:46 »
Внимание! С последним обновлением Joomla 3.2 разработчики вернули отдачу Last-modified в виде текущей даты. Это придется отключать вручную. А именно в файле /libraries/joomla/application/ необходимо закомментировать 429 строчку в файле web.php. Выглядит она следующим образом: $this->setHeader('Last-Modified', gmdate('D, d M Y H:i:s'). ' GMT', true);
*

Sulpher

  • Живу я здесь
  • 2136
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: last-modified
« Ответ #5 : 20.11.2013, 12:26:03 »
Опс, не увидел очевидного. Спасибо и сорри за невнимательность. Старею :-)
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: last-modified
« Ответ #6 : 20.11.2013, 23:09:56 »
Такс, а раньше же тоже last-modified не работал?
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: last-modified
« Ответ #7 : 20.11.2013, 23:15:26 »
Раньше работал также - неправильно
Потом его убрали (не помню с какой версии)
В 3.2 вернули
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: last-modified
« Ответ #8 : 20.11.2013, 23:36:42 »
Итак, строка 422:
Цитировать
// If the response is set to uncachable, we need to set some appropriate headers so browsers don't cache the response.
То есть если кэширование не включено, устанавливается always modified.

В противном случае берется $this->modifiedDate. Интересно, почему при кэшировании учитывается $this->modifiedDate, а без него нет.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: last-modified
« Ответ #9 : 20.11.2013, 23:45:26 »
походу условие не работает..
испробовала стандартное кеширование и прогрессивное
во всех случаях -
Спойлер
[свернуть]
попробуйте кто-нибудь еще..
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: last-modified
« Ответ #11 : 15.01.2014, 16:36:26 »
походу условие не работает..
испробовала стандартное кеширование и прогрессивное
во всех случаях -
Спойлер
[свернуть]
попробуйте кто-нибудь еще..
Я сегодня весь день провозился с этой фигней. На локалхосте удалось заменить 429ю строчку на 443ю
И, о чудо, Joomla отдала Last-Modified = дата изменения статьи!
Я, на радостях проделал то же самое на реальном сайте и получил "белый лист". И вот никак не могу понять, почему на денвере работает, а на сайте нет.
Включение кеширования также не дало результатов. Более того, при включенном кешировании у меня в заголовках присутствуют
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: last-modified
« Ответ #12 : 15.01.2014, 16:48:25 »
Надо у себя обновить тестовое окружение и покапаться с этим Last-Modified.
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: last-modified
« Ответ #13 : 17.01.2014, 11:05:42 »
У кого какие успехи? Я достиг следующего:
в файл .../com_content/article/default.php добавил следующий код
Код
$LastModified_unix = $this->item->modified;
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
$IfModifiedSince = false;
if (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))
$IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
$IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) {
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');     exit; }
header('Last-Modified: '. $LastModified);
Благодаря этому Last-Modified выдается не "сейчас", а дата изменения материала, записанная в базе. Кроме того: при первой загрузке страницы получаем ответ 200 ОК. Обновляем страницу и ответ уже 304 Not Modified
На первый взгляд все работает, но у меня какие-то сомнения. Я новичок в программировании, да и в заголовках я не особо разбираюсь и возможно что-то упустил. Все работы проводились на локальном сайте, на основу пока боюсь выкладывать :)
Было бы неплохо, если кто-нибудь из местных гуру проверит код у себя.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: last-modified
« Ответ #14 : 17.01.2014, 11:08:01 »
Ну уже что-то. У меня не было времени глянуть и к сожалению не уверен, что в ближайшее время смогу это сделать...
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: last-modified
« Ответ #15 : 17.01.2014, 11:18:23 »
Я могу ошибаться, но мне кажется есть еще некоторые проблемы с кэшем. Дело в том, что после того как получен ответ 304, редактирую материал и меняю в нем "Дату изменения". Страница продолжает отдавать предыдущую дату изменения и код 304. Приходится обновлять кэш и тогда опять получаю код 200 а затем 304.
Не понятно откуда взялся кэш, ведь на сайте он отключен и в заголовках стоит no-cache, no-store.... В общем, нужны дополнительные анализы
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: last-modified
« Ответ #16 : 17.01.2014, 11:30:46 »
Рискнул, вставил код на основной сайт. Не работает  >:( выдает "Сейчас"
Почему на локалке нормально работает, а на хостинге нет? Может что-то нужно включить?  !
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: last-modified
« Ответ #17 : 18.01.2014, 23:19:13 »
Все, у меня проблема решилась. На всех сайтах Last-Modified и коды ответа отдаются корректно.
Решение на этой странице
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться