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

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

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

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

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

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

      Единственное, была ошибка:
      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
        ничего страшного, при установке пакет удаляет целиком таблицу modx_lmims и создает ее заново.
        у тебя этой таблицы нет — вот и показал ошибку.
    Алексей Карташов
    28 мая 2015, 09:39
    О, в мои репозитории кто-то даже контрибьютит))

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

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

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

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

          Понятное дело, что это мелочь, но раз делать — то делать хорошо) Поэтому настройка всё-таки нужна.
            Володя
            28 мая 2015, 12:12
            ну раз ресурс поменяли или удалили — значит изменения были, не так ли? По мне так логично.
            Отслеживать непонятно по какой логике — лишняя нагрузка на мозг и на компонент…
              Алексей Карташов
              28 мая 2015, 12:17
              Да нет тут никакой нагрузки — ни на мозг, на на компонент.
              А ситуацию я ж описал — в VirtualPage параметр ресурса поменяли, а ненужный ресурс — удалили. У нового ресурса шаблон/контент/алиас — все те же. При этом на этом ресурсе через VirtualPage могут быть доступны сотни и тысячи урлов — вывод пользователей, каких-то своих объектов, мало ли. У них ни урлы, ни контент не изменился. Но last-modified дата изменится. Не логично.
              Поэтому и нужна настройка, кому нужно — пусть её выключают.
                Володя
                28 мая 2015, 12:31
                ну если так, то давай конкретно разберем ситуацию.
                обработчик ресурс — вывод конкретного ресурса, если он был удален — 100% были изменения
                обработчик сниппет/ чанк — не обрабатываются [lmims]
                обработчик динамический ресурс — id динамическго ресурса == site_start
                так в каком из этих вариантов будет описанная тобой ситуация???
                  Алексей Карташов
                  28 мая 2015, 12:48
                  если он был удален — 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
                    Залейте на modstore, что-ли..)
                      Алексей Карташов
                      28 мая 2015, 13:21
                      Чтобы залить на modstore надо документацию написать, а у меня времени нет)
                        Володя
                        28 мая 2015, 13:23
                        да что там документировать то… Напиши описание из вот этого github.com/antixrist/modLMIMS/blob/master/README.md
                        и описание настроек пакета. Думаю более чем достаточно.
                          Алексей Карташов
                          28 мая 2015, 13:26
                          Пользуясь случаем, хочу спросить — не знаете, случаем, как из репозитория удалить папку, не удаляя её физически с диска?
                          Ну т.е. я её сперва отправил на гитхаб, потом добавил в .gitignore, но вот из репозитория она не удаляется
                    Володя
                    28 мая 2015, 13:04
                    Да абсолютно без претензий. Пускай будет. Я лишь пытался представить ситуацию когда оно нужно…
                    На этом закончим спор.
        Володя
        28 мая 2015, 09:42
        О, в мои репозитории кто-то даже контрибьютит))
        контри… чего? )))
      yani
      04 июня 2015, 09:15
      Привет!
      А у меня такой вопрос, если исправить шаблон документа, добавить что то или удалить, то БЕЗ обновления кеша будет отдаваться 304 not modified?
      Если точно так же чанк изменить — не увидим изменений?
        Николаевич
        18 июля 2016, 23:19
        При установке всплывает: Couldn't find modx's base path!
        Подскажите, пожалуйста, с чем может быть связано?
          Павлик Мышкин
          21 декабря 2017, 11:38
          Поставил на 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
            Добрый день. Вы решили вопрос — у меня тоже отдает такой ответ
              Павлик Мышкин
              11 июля 2018, 13:26
              Нет. Пробовал еще на паре сайтов — не работает.
                Андрей
                11 июля 2018, 13:31
                Спасибо. Может кто из разработчиков подскажет так должно быть или нет?
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            31