MODX маминой подруги - Исправление бага с непослушным menuindex

Привет сообществу!

Из-за сильной занятости над проектами я и не заметил, что еще в Апреле был смерджен мой PR по исправлению бага с непослушным menuindex.

О баге на GitHub сообщил @Руслан Алеев, но о нём было известно и до этого. По крайней мере я точно знал, потому как очень часто клиенты которые пользуются панелью управления сообщали, что при каких-то мистических обстоятельствах поле menuindex не изменяется или ведет себя странно. Выяснилось, что происходит это в тех обстоятельствах, когда ресурс открыт пользователем на редактирование и он находясь там же сортирует ресурсы в дереве ресурсов.

Пару слов о сортировке в MODX
Процессор сортировки ресурсов в дереве


Стоит еще заметить, что при сортировке одного ресурса (если речь идёт о перетаскивании в дереве) процессор затрагивает и вносит изменения не только сортируемому ресурсу, но и его соседним ресурсам, так сказать сдвигает их при необходимости.

Пример ситуации для того, чтобы вам было ясно почему MODX так себя ведет. Имеем 3 ресурса, в скобках menuindex:

  1. Ресурс (0)
  2. Ресурс (1)
  3. Ресурс (2)
Очевидно, что если мы переместим 3-й ресурс между 1-ым и 2-ым, то menuindex 2-го ресурса должен быть сдвинут, потому, что нельзя указать в качестве значения menuindex 0,5. Это еще и является ответом на вопрос почему после множественных сортировок у ресурсов в поле menuindex появляются двузначные числа, типа 35 или 76 хоть и ресурсов всего 5. Надеюсь, мне удалось вас просветить.

Исправление бага с непослушным menuindex
Changing the menuindex of the updating resource after sorting in tree




Теперь при сортировке ресурсов в дереве, если открыт ресурс на редактирование, его значение будет обновляться в форме редактирования.

Как итог, баг исправлен, PR смерджен, Я молодец.

Более детально можно посмотреть по ссылкам:
Сам PR и Issue

☕ Угостить чашкой кофе
Баха Волков
12 июля 2019, 14:48
modx.pro
2 007
+22

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

Баха Волков
12 июля 2019, 15:08
+2
На самом деле, мне очень хотелось влить PR в 2-ку, потому, что считаю такие баги требующими мгновенного исправления. Но учитывая требования MODX которые передал @Иван Климчук все новые изменения должны уходить в 3-ку из-за большого рефакторинга ядра.
    Руслан Алеев
    12 июля 2019, 15:37
    +1
    Да, подход иногда излишне бюрократичен, хотя без этого никак, видимо.
    Еще смущает то, что версии для 2-ой ветки не заканчиваются, вроде планировалась MODX 2.7.0 быть финальной, потом 2.7.1, теперь 2.7.2 :) И из-за этого PR часто висят в неопределенном состоянии.
      Баха Волков
      12 июля 2019, 17:17
      +1
      Есть такое)

      Хотя по поводу 2.7.* они видимо подумали что логичнее было бы исправить ошибки которые возникли после 2.7.0

      С другой стороны правильно вроде делают, чтобы новые PR были уже после рефакторинга, им будет легче чтобы с конфликтами не возиться
      Yurij Finiv
      18 июля 2019, 15:04
      +1
      У меня тоже было желание влить PR в 2.7.* но через рефакторинг пришлось влить в 3. А исправление на 2 и 3 ветке делалось по разному.
      Это сообщение было удалено
        Это сообщение было удалено
          Это сообщение было удалено
          Это сообщение было удалено
            Это сообщение было удалено
              Это сообщение было удалено
            Это сообщение было удалено
              Это сообщение было удалено
                Это сообщение было удалено
                  Это сообщение было удалено
                    Это сообщение было удалено
                      Это сообщение было удалено
                        Это сообщение было удалено
                  Павел Гвоздь
                  13 июля 2019, 10:56
                  +11
                  Может показаться, что все кто молчит, согласны с наездами, поэтому отпишусь.
                  Я не согласен! Человек захотел написать об этом заметку, почему нет? Сообщество итак редко пополняется, а часто бывают заметки, которые просто трудно читать из-за корявого форматирования. А тут вам и оформление, и гифка — читать приятно, короче. К тому-же, если это мотивирует Баху, то блин, пусть хоть каждую неделю пишет!

                  P.S. Если взять за основу психологическую модель «Треугольник Карпмана», то оч забавно наблюдать, как притеснители, высказывая своё недовольство и получив жёсткий ответ, становятся в роль жертвы…
                    Андрей Шевяков
                    13 июля 2019, 11:53
                    +1
                    Если что, он Баха!
                    Так держать!
                    Спасибо за твой труд, за вклад в MODX 3, за статьи и за помощь, в которой ты не отказываешь!
                      iWatchYouFromAfar
                      13 июля 2019, 14:36
                      +2
                      Не Баха, хрень ты сделал, 1 мизерный PR, и ради этого целый пост? Вот когда напишешь MODx 4 и чтобы уважаемым джентльменам вроде @Николай Савин он был угоден, вот тогда разрешаем тебе написать тут один маааааленький постик в честь этого, скажем, строчек на 10-15… Но не больше.

                      А то че это ты, 24 строчки добавил и думаешь что тебе теперь все можно?
                        Дмитрий Середюк
                        15 июля 2019, 00:11
                        0
                        Да не гони лошадей, человек захотел написал, ты захотел осудил, те кому это интересно прочтут! Везде так было так есть и так будет всегда.
                      Василий Наумкин
                      13 июля 2019, 17:06
                      0
                      Ребят, я всё еще здесь, не шалите.
                        Алексей Суслов
                        13 июля 2019, 18:00
                        +5
                        А я просто хочу сказать спасибо за такие посты и за ваш вклад в Modx.
                        Я вообще был бы только за то, чтобы каждое более-менее важное изменение или починка бага были так подробно расписаны — это позволяет лучше понять как и что работает в системе.
                          Василий Столейков
                          13 июля 2019, 23:24
                          0
                          @Баха Волков так и не понял, почему меня упомянули тут, видимо в удалённых комментариях… )))

                          За статью спасибо — было интересно читать.
                          Пиши почаще — напоминает о необходимости общего вклада.
                            Николай Савин
                            14 июля 2019, 11:04
                            +1
                            Вспоминали многострадальный снег. Но это не Баха вспоминал.
                              Василий Столейков
                              14 июля 2019, 13:44
                              0
                              Вспоминали многострадальный снег.
                              Так лето ведь, а вам только снег подавай!.. ))))

                              А так — у данного сообщества есть свой модератор, и если он решает когда статья или дополнение не соответствует правилам. Он может диктовать правила, а не кто-то с «улицы». Кто-то с улицы может сделать своё дополнение, написать свою статью, создать своё дополнение или своё сообщество в конце концов. А лезть к другим с осуждением…
                              А подстраиваться под мнение и ожидания каждого человека — это гнаться за ветром пытаясь его поймать… Угодить всем нельзя и смысла в этом никакого.

                              Это мысли вслух. Может быть зря я их сюда написал — не хочется очередного бессмысленного холивара.
                                iWatchYouFromAfar
                                14 июля 2019, 23:02
                                0
                                Именно он… )
                                Баха Волков
                                14 июля 2019, 15:00
                                +1
                                Спасибо @Василий Столейков

                                так и не понял, почему меня упомянули тут, видимо в удалённых комментариях… )))
                                Ничего особенного, флуд да и только, я вспоминал про твой снег)
                                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                33