Drupal Camp Беларусь 18-19 мая 2019 в Минске.

Drupal masonry и views_load_more

Есть прекрасный модуль Masonry API, он интегрирует библиотеку Masonry от David DeSandro с Drupal.
Masonry в переводе - кирпичная кладка.
Есть еще один модуль Masonry Views, который интегрирует эту библиотеку во Views, и можно без труда выводить любые элементы в виде masonry.
Всё бы хорошо, но когда приходиться использовать Masonry API и Views load more, то возникает небольшой баг.

Во всем виноват masonry/masonry.js, а именно

      // Apply Masonry to container
      if (settings.images_first) {
        $container.imagesLoaded(function () {
          $container.masonry($options);
        });
      }
      else {
        $container.masonry($options);
      }

Когда Drupal ajax подгружает новые элементы, то masonry, новые элементы остаются без masonry и эти элементы налезают поверх старых.
Визуализация бага
На drupal.org уже есть N-ое количество issue с этим багом:

Я применил патч из первого issue и всё прекрасно заработала.

      // Apply Masonry to container
      if (settings.images_first) {
        $container.imagesLoaded(function () {
          $container.hasClass('masonry') ? $container.masonry('reload') : $container.masonry($options);
        });
      }
      else {
        $container.hasClass('masonry') ? $container.masonry('reload') : $container.masonry($options);
      }

Ну и в итоге всё работает вот так:
Правильная работа masonry