[lmims] - заголовки Last-Modified и Not Modified

Алексей Карташов написал неплохой пакет для этого дела.
Были небольшие недочеты:
— избыточное хранение html всей страницы в базе
— хранение старых записей удаленных ресурсов

сегодня я поправил это, пакет можно собрать тут

ps. Надеюсь Алексей будет не против. Всем спасибо!
Володя
27 мая 2015, 07:22
modx.pro
2
3 827
+6
Поблагодарить автора Отправить деньги

Комментарии: 31

Василий Наумкин
27 мая 2015, 10:36
0
Нужно отправить pull-request Алексею и там уже с ним обсудить, против он или нет.
    Володя
    27 мая 2015, 10:39
    0
    Спасибо!
    Отправил.
    Павел Левин
    27 мая 2015, 23:02
    0
    Как оно вообще должно ставиться?
    Заливать core и поиск локально?
      Виктор
      28 мая 2015, 00:00
      0
      0) Заливаешь папку lmims в корень сайта
      1) Открываешь в браузере sitename.ru/lmims/_build/lmims/build.transport.php
      2) Пакет появится в менеджере пакетов в админке, его нужно будет установить
        Павел Левин
        28 мая 2015, 00:54
        0
        Получилось, спасибо.

        Единственное, была ошибка:
        Could not drop table modLMIMS SQL: DROP TABLE `modx_lmims` ERROR: Array ( [0] => 42S02 [1] => 1051 [2] => Unknown table 'modx_lmims' )
          Володя
          28 мая 2015, 09:26
          0
          ничего страшного, при установке пакет удаляет целиком таблицу modx_lmims и создает ее заново.
          у тебя этой таблицы нет — вот и показал ошибку.
      Алексей Карташов
      28 мая 2015, 09:39
      +1
      О, в мои репозитории кто-то даже контрибьютит))

      Пуллреквест приму хоть сейчас, но есть один момент.
      Удаляя из таблицы строки, которые связаны с удаляемыми из корзины ресурсами, вы забыли про одну вещь — ресурсы-то могут и удалиться, а вот урлы и контент могут остаться теми же. Компонент VirtualPage (которым я активно пользуюсь) — яркое тому доказательство.
      Поэтому, по-хорошему, надо сделать системную настройку, которая как раз и отвечала бы за эту функциональность.
      Ну и по-хорошему надо куда-то в меню добавить кнопку, по которой можно было бы полностью очистить таблицу — и можно выкладывать в репозиторий.

      Первое я могу хоть сейчас сделать, а вот как кнопку добавлять — хз)
        Володя
        28 мая 2015, 09:41
        0
        Удаляя из таблицы строки, которые связаны с удаляемыми из корзины ресурсами, вы забыли про одну вещь — ресурсы-то могут и удалиться, а вот урлы и контент могут остаться теми же. Компонент VirtualPage (которым я активно пользуюсь) — яркое тому доказательство.
        так а в чем проблема? Значение обновится и все. Не думаю что это необходимо как то отслеживать…
        Ну и по-хорошему надо куда-то в меню добавить кнопку, по которой можно было бы полностью очистить таблицу — и можно выкладывать в репозиторий.
        При установке таблица полностью удаляется и создается новая…
          Алексей Карташов
          28 мая 2015, 09:45
          0
          Значение обновится и все
          Блин, точняк xD

          При установке таблица полностью удаляется и создается новая
          Согласен — вариант)

          Я тогда сейчас установочные файлы немного обновлю и заодно пакет соберу, чтобы на гитхабе лежал
            Алексей Карташов
            28 мая 2015, 12:00
            0
            так а в чем проблема? Значение обновится и все
            Если мы удалим строки, которые были привязаны к удалённым ресурсам, но при этом урлы и контент останутся доступны (к примеру, в VirtualPage параметр ресурса поменяли, а ненужный ресурс — удалили), то в lmims-таблице будут созданные новые данные, с новой датой. И поисковики будут думать, что контент по этим адресам обновился, хотя это может быть и не так.

            Понятное дело, что это мелочь, но раз делать — то делать хорошо) Поэтому настройка всё-таки нужна.
              Володя
              28 мая 2015, 12:12
              0
              ну раз ресурс поменяли или удалили — значит изменения были, не так ли? По мне так логично.
              Отслеживать непонятно по какой логике — лишняя нагрузка на мозг и на компонент…
                Алексей Карташов
                28 мая 2015, 12:17
                0
                Да нет тут никакой нагрузки — ни на мозг, на на компонент.
                А ситуацию я ж описал — в VirtualPage параметр ресурса поменяли, а ненужный ресурс — удалили. У нового ресурса шаблон/контент/алиас — все те же. При этом на этом ресурсе через VirtualPage могут быть доступны сотни и тысячи урлов — вывод пользователей, каких-то своих объектов, мало ли. У них ни урлы, ни контент не изменился. Но last-modified дата изменится. Не логично.
                Поэтому и нужна настройка, кому нужно — пусть её выключают.
                  Володя
                  28 мая 2015, 12:31
                  0
                  ну если так, то давай конкретно разберем ситуацию.
                  обработчик ресурс — вывод конкретного ресурса, если он был удален — 100% были изменения
                  обработчик сниппет/ чанк — не обрабатываются [lmims]
                  обработчик динамический ресурс — id динамическго ресурса == site_start
                  так в каком из этих вариантов будет описанная тобой ситуация???
                    Алексей Карташов
                    28 мая 2015, 12:48
                    0
                    если он был удален — 100% были изменения
                    Вот о том и речь, что не факт.

                    Да и я не пойму претензий — VirtualPage был для примера, какой смысл конкретно его по косточкам разбирать? Ситуаций, когда возможны такие коллизии, может быть разных. По мне — так лучше перебдеть.

                    Или претензия в том, что это лишняя нагрузка? Если да, то это ж всего лишь одно обращение к массиву системных параметров, которые и так уже доступны — лишних запросов не будет:
                    $ids = $modx->event->params['ids'];
                    if ($modx->getOption('modlmims.remove_related_lmims_on_empty_trash') && !empty($ids)) {
                      $modx->removeCollection('modLMIMS', array(
                        'resource:IN' => $ids,
                      ));
                    }

                    В любом случае — настройка уже добавлена и по умолчанию включена — никаких лишних действий не требуется. Пусть её меняют только те, кому это действительно нужно.

                      Максим Кузнецов
                      28 мая 2015, 13:00
                      0
                      Залейте на modstore, что-ли..)
                        Алексей Карташов
                        28 мая 2015, 13:21
                        0
                        Чтобы залить на modstore надо документацию написать, а у меня времени нет)
                          Володя
                          28 мая 2015, 13:23
                          0
                          да что там документировать то… Напиши описание из вот этого github.com/antixrist/modLMIMS/blob/master/README.md
                          и описание настроек пакета. Думаю более чем достаточно.
                            Алексей Карташов
                            28 мая 2015, 13:26
                            0
                            Пользуясь случаем, хочу спросить — не знаете, случаем, как из репозитория удалить папку, не удаляя её физически с диска?
                            Ну т.е. я её сперва отправил на гитхаб, потом добавил в .gitignore, но вот из репозитория она не удаляется
                      Володя
                      28 мая 2015, 13:04
                      0
                      Да абсолютно без претензий. Пускай будет. Я лишь пытался представить ситуацию когда оно нужно…
                      На этом закончим спор.
          Володя
          28 мая 2015, 09:42
          0
          О, в мои репозитории кто-то даже контрибьютит))
          контри… чего? )))
        yani
        04 июня 2015, 09:15
        0
        Привет!
        А у меня такой вопрос, если исправить шаблон документа, добавить что то или удалить, то БЕЗ обновления кеша будет отдаваться 304 not modified?
        Если точно так же чанк изменить — не увидим изменений?
          Николаевич
          18 июля 2016, 23:19
          0
          При установке всплывает: Couldn't find modx's base path!
          Подскажите, пожалуйста, с чем может быть связано?
            Павлик Мышкин
            21 декабря 2017, 11:38
            0
            Поставил на MODX 2.6.1
            Last-Modified не найден!
            HTTP/1.1 200 OK
            Server: nginx/1.10.2
            Date: Thu, 21 Dec 2017 08:38:07 GMT
            Content-Type: text/html; charset=UTF-8
            Connection: close
            Vary: Accept-Encoding
            X-Powered-By: PHP/7.0.15
            Expires: Thu, 19 Nov 1981 08:52:00 GMT
            Cache-Control: no-store, no-cache, must-revalidate
            Pragma: no-cache
            Set-Cookie: PHPSESSID=t2vbvbfe1uhbf1b72ea1on9u04; expires=Thu, 28-Dec-2017 08:38:07 GMT; Max-Age=604800; path=/; HttpOnly
            Vary: User-Agent
            Получено: 437 байт
            Затрачено: 0,13 сек
              Андрей
              11 июля 2018, 13:18
              0
              Добрый день. Вы решили вопрос — у меня тоже отдает такой ответ
                Павлик Мышкин
                11 июля 2018, 13:26
                0
                Нет. Пробовал еще на паре сайтов — не работает.
                  Андрей
                  11 июля 2018, 13:31
                  0
                  Спасибо. Может кто из разработчиков подскажет так должно быть или нет?
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              31