Отдать заголовок 404 из кастомного скрипта
Дата публикации: 06.09.2014
Версия UMI.CMS: 2.8.0+
При обращении к несуществующей странице UMI.CMS отдает заголовок 404 и обрабатывает шаблон /tpls/content/not_found/default.tpl
Как можно принудительно отдать заголовок 404 из кастомного макроса? Казалось бы, вызвать метод content::gen404(). Однако, при этом отдается заголовок 200. Посему просто скопируем содержимое метода:
public function notfound(){ $template = 'default';//шаблон, по которому отобразится контент $buffer = outputBuffer::current(); $buffer->status('404 Not Found'); def_module::setHeader('%content_error_404_header%'); list($tpl_block) = def_module::loadTemplates("content/not_found/".$template, 'block'); $template = $tpl_block ? $tpl_block : '%content_usesitemap%'; return def_module::parseTemplate($template, array()); }
Как задать время модификации:
$buffer->header('Last-Modified', (gmdate('D, d M Y H:i:s', time()) . ' GMT')); $buffer->header('Expires', (gmdate('D, d M Y H:i:s', time() + 24 * 3600) . ' GMT'));