sslion
@sslion

Как в обработать If-Modified-Since в Joomla?

Собственно вопрос в заголовке. Если страница/контент были изменены, то выдавать новое, а если нет, то код 304.
Вся инфа что попадается в нете 10-ти летней давности. Может в джумле есть встроенный функционал?
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 2
gogowq
@gogowq
Ozh domosh acha ozh
В Joomla есть встроенный функционал для обработки If-Modified-Since заголовка
// Получаем объект текущего ответа
$response = JFactory::getApplication()->getDocument()->getRenderer('component')->getResponse();

// Проверяем наличие заголовка If-Modified-Since
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
    $lastModified = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);

    // Получаем время последнего изменения страницы/контента
    $modifiedTime = strtotime($yourContentModifiedTime);

    // Если контент был изменен после указанной даты If-Modified-Since, отправляем полный ответ
    if ($modifiedTime > $lastModified) {
        // Ваш код для генерации и отправки полного ответа
    } else {
        // Отправляем код 304 Not Modified
        $response->setHeader('HTTP/1.1', '304 Not Modified', true);
        JFactory::getApplication()->close();
    }
} else {
    // Ваш код для генерации и отправки полного ответа, так как If-Modified-Since заголовок отсутствует
}
Ответ написан
sergeytolkachyov
@sergeytolkachyov
https://web-tolk.ru
Нужно писать системный плагин или плагин группы Вашего компонента, для которого нужно модифицировать заголовок. А в нём уже код, который Вам уже подсказали выше.
Только для Joomla 4 он подустарел. Обновить с использованием namespace нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы