Как сделать заголовок (дата изменения страницы) last-modified InstantCMS 2

InstantCMS 2.X

Сут вопроса. Как получит переменную (изменения страницы) На главной, в контенте, и в профилях людей.

#1 16 января 2020 в 19:48
Нашел код но перемынну $ LastModified_unix = 1294844676; надо замынить на реальную дату изменения страницы.
  1. $LastModified_unix = 1294844676; // время последнего изменения страницы
  2. $LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
  3. $IfModifiedSince = false;
  4. if (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))
  5. $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
  6. if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
  7. $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
  8. if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) {
  9. header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
  10. }
  11. header('Last-Modified: '. $LastModified);
  12. ?>
#2 16 января 2020 в 19:49
Этот заголовок есть по умолчанию в InstantCMS2.
#3 16 января 2020 в 19:54
У меня сервер Server: nginx. .htaccess Не вариант. Может кто-то уже реализовал у себя и знает лучший способ. Подскажите буду очень благодарен.
#4 16 января 2020 в 20:08

.htaccess Не вариант.

@andriu3240
Я где-то говорил про htaccess?
Для страниц записей типов контента, если пользователь не авторизован, указанный заголовок формируется.
#5 16 января 2020 в 20:09
Спасибо.
#6 16 января 2020 в 20:10
#7 16 января 2020 в 20:13



@andriu3240

Прочитайте еще раз мой ответ.

Для страниц записей типов контента

Fuze

На главной и в профилях людей.

@andriu3240
Ни на главной, ни в профилях нет такой переменной.
#8 16 января 2020 в 20:21
К сожалению и на странице контента нет. Сравню сейчас тот файл шо вы показали и то что у меня.
Получается но главной и на страницах людей невозможно реализувать этот заголовак?
#9 16 января 2020 в 20:27
Всё есть.


Получается но главной и на страницах людей невозможно реализувать этот заголовак?

@andriu3240
Не дорабатывая — нет, я же ответил несколько раз.
#10 16 января 2020 в 20:41
Мой файл отличается. if (! $ this-> cms_user-> is_logged) {
             cmsCore :: respondIfModifiedSince ($ item [ 'date_last_modified']);
         } нет.
Просто вставить этот кусочек кода?
#11 16 января 2020 в 21:28
Просто вставить нельзя. ошибка белый экран. версия 2.11
Мой файл system / controllers / content / actions / item_view.php
начинается
  public function run () {

         $ Props = $ props_values = false;

         // Получаем название типа контента и сам тип
         $ Ctype = $ this-> model-> getContentTypeByName ($ this-> request-> get ( 'ctype_name', ''));

// Получаем SLUG записи
         $ Slug = $ this-> request-> get ( 'slug', '');
#12 17 января 2020 в 16:13
Объектно ориентированное php прослушал на курсах. Поэтому и вопросы такие. Что делает list ($ ctype, $ item) = $ this-> getItemAndCtype (); ?
Сама переменная даты изменения страницы ($ item [ 'date_last_modified'])
Этот respondIfModifiedSince публичний метод (функция) находится в system / core / core.php и вставляет заголовак header ( 'Last-Modified: ". $ Last_modified)
У меня возникла ошибка потому что не передавался параметер $ item [ 'date_last_modified']?
#13 17 января 2020 в 16:25
@andriu3240,

Объектно ориентированное php прослушал на курсах

@andriu3240
Не опирайся только на ООП, иногда чтобы сделать нормальную вещь он только мешает, и проще влоб на php.
Тут спор наблюдал, битву гуру, одну и ту же задачу, один решал методом функционального программирования, другой на ООП — на ООП гораздо больше времени потратил раз, потом сам запутался, короче спорно все это что лучше, мое ИМХО есть задача, решать то решать, лучше так сначала сделай что работает — потом сделай как надо — потом сделай лучше..
любым методом главное что работает и есть возможность модернизации и унификации…
#14 17 января 2020 в 20:53
Все движки на ООП. Как ни крутите с двыжком нужно взаимодействовать. Брать данные в данном случае переменных даты изменения материала. Где сам код писать.
#15 18 января 2020 в 16:40
Я с версией ошибся.У меня версия 2 10. Делал по примеру с github.com/instantsoft/icms2/blob/master/system/controllers/content/actions/item_view.php
и github.com /instantsoft/icms2/blob/master/system/core/core.php

 . Заголовок появляется но Дата у всех одна 1970.
Я так понял что $ item [ 'date_last_modified'] пустая она не передается.
Что я не так сделал? Почему эта переменная пустая?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.