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

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

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

ps. Надеюсь Алексей будет не против. Всем спасибо!
Володя
27 мая 2015, 07:22
2
1 906
+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
            Спасибо. Может кто из разработчиков подскажет так должно быть или нет?