[ms2Gallery] Версия 1.3.2 - картинки на странице

Представляю вам новую версию ms2Gallery, в которой исправлены все известные ошибки и добавлены новые интересные возможности по выставлению файлов галереи на страницу её ресурса.

Отключение вкладки с галерей

Почему-то (мне непонятно почему), многие просили дать возможность отключать вкладку галереи на некоторых ресурсах.

Честно, не знаю, чем она может помешать, и почему при этом никому не мешает вкладка «Группы ресурсов» — ведь ей пользуются гораздо реже. Но, желание покупателей — закон, так что встречайте системную настройку ms2gallery_disable_for_templates. В ней можно перечислить id шаблонов через запятую, для которых вкладку с галерей выводить не стоит.

Оформление картинок на странице

Немногие знают, что ms2Gallery, в отличии от других подобных решений, умеет выводит картинки прямо при генерации страницы ресурса, безо всяких сниппетов.

Вам нужно просто активировать системную настройку ms2gallery_set_placeholders и вы можете использовать в контенте такие плейхолдеры:
  • [[+ms2g.0]] — распечатанный массив со всеми данными 1й картинки ресурса. Вторая картинка будет [[+ms2g.1]]
  • [[+ms2g.0.url]] — ссылка на оригинальную картинку
  • [[+ms2g.0.120х90]] — ссылка на превью, размером 120x90.
  • [[+ms2g.0.name]] — название картинки
  • и т.д.
Понятное дело, что выборка всех картинок генерирует дополнительные запросы в БД, поэтому по умолчанию она отключена.

В новой версии вам доступны 3 дополнительные настройки этой функции.
ms2gallery_placeholders_tpl
Имя ТВ параметра или чанка для оформления плейсхолдера [[+ms2g.0]], содержимое которого будет использовано для оформления картинки. Например:
<a href="[[+url]]">
	<img src="[[+120x90]]" />
</a>
Логика работы такая:
  1. Если включен вывод плейсхолдеров, и настройка ms2gallery_placeholders_tpl не пуста то
  2. Проверяем, привязан ли к текущему ресурсу ТВ с указанным именем.
  3. Если нет, то ищем чанк с таким именем
  4. Если получаем непустой ТВ или чанк, то используем его содержимое для оформления плейсхолдеров на странице.
  5. В противном случае, будет как и раньше, распечатанный масив со всеми свойствами.
Теперь вы можете спокойно писать тексты на сайте, разбавляя их вставками тегов [[+ms2g.1]] или там [[+ms2g.25]]. Учитывая, что плейсхолдеры выставляются не по id, а по rank, вы можете легко менять порядок вывода картинок на странице простым перетаскиванием их в галерее.

Ну а внешний вид выводимых картинок можно указывать или в ТВ этого ресурса, или в настройках этого ТВ по умолчанию, или в общем для всех чанке. На мой взгляд, достаточно гибко.

Для экономии ресурсов предусмотрены оставшиеся 2 настройки:
ms2gallery_placeholders_for_templates
Список id шаблонов через запятую, для которых нужно включить функцию выставления плейсхолдеров. Настройка пуста по умолчанию, поэтому плейсхолдеры выставляются для всех.

ms2gallery_placeholders_thumbs
Список превью картинок, которые нужно выбирать для показа на странице. По умолчанию там тоже пусто, и выбираются все превьюшки подряд. Но вы можете указать что-то типа «120x90,360x270» и сэкономить на лишних запросах в БД.

Рабочий пример вывода картинок через эти настройки можно посмотреть вот здесь. Исходник страницы в админке вот такой:

Теги [[+image.0]], [[+image.1]] и т.д. — это и есть наши картинки из галереи, оформленные согласно системных настроек. Префикс плейсхолдера вы можете поменять там же.

Исправление ошибок

Исправлена ошибка с неудалением картинок при удалении самого ресурса. Теперь всё удаляется четко при очистке корзины из админки. Не остаётся даже директории ресурса в источнике файлов.

Исправлена ошибка с сортировкой картинок, если их больше 255 в одной галерее. Проблема была в слишком малом размере поля rank в БД.

Удалены старые лексиконы для французского и немецкого языков, оставшиеся от miniShop2. Их просто некому поддерживать, да и не думаю, что много немцев и французов покупают галерею в нашем магазине.

Заключение


Обновление уже доступно в магазине, все покупатели могут закачать его бесплатно.

Обновляемся, тестируем, пишем отзывы.
Василий Наумкин
08 декабря 2014, 05:54
modx.pro
4
6 177
+5

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

Максим Кузнецов
08 декабря 2014, 09:13
+1
Спасибо!)
    Наумов Алексей
    08 декабря 2014, 09:23
    0
    Спасибо!

    ms2gallery_disable_for_templates — ура)

    Хотя логичнее было сделать просто ms2gallery_templates, по умолчанию — пустую.
      Василий Наумкин
      08 декабря 2014, 10:03
      +1
      И как из названия ms2gallery_templates понять, что это отключение, а не включение?

      Или ты и подразумеваешь включение, и у тебя есть желание бегать в настройку после создания каждого нового шаблона, и добавлять его в список?
        Наумов Алексей
        08 декабря 2014, 10:40
        0
        Я подразумевал включение.
        Может мы по разному пользуемся галереями, в моем сценарии галерея есть у 1-2 шаблонов на сайте, мне проще их включить, чем после каждого добавления шаблона бегать отключать.
          Василий Наумкин
          08 декабря 2014, 10:43
          +1
          Ты обратил внимание, что я вообще не понимаю, чем может помешать эта вкладка, и зачем её отключать?

          Кстати, а что ты делаешь со вкладкой «Группы ресурсов»?
            Наумов Алексей
            08 декабря 2014, 10:58
            0
            Скрываю через настройку форм.
              Василий Наумкин
              08 декабря 2014, 11:06
              +1
              Ну тогда ты можешь точно так же скрыть и галерею через ту же настройку форм по её id — ms2gallery-page.

              Новая настройка тебе, выходит, ни к чему.
      Виталий Киреев
      08 декабря 2014, 10:51
      0
      Хорошие нововведения.
      и почему при этом никому не мешает вкладка «Группы ресурсов»
      Группы ресурсов можно же отключить в настройках форм самого MODX, что я обычно и делаю для клиентов.
        Василий Наумкин
        08 декабря 2014, 10:53
        +1
        В это никто не верит, но вкладку с галерей можно отключить точно так же, в настройках форм.
          Виталий Киреев
          08 декабря 2014, 11:19
          0
          Каким образом? Для этого ей при установке должен быть прописан регион в modActionField, как я тогда добавлял для полей в Tickets. Есть другой способ?
            Василий Наумкин
            08 декабря 2014, 11:23
            0
            Я же говорю — никто не верит.
              Виталий Киреев
              08 декабря 2014, 11:28
              0
              Ну вот, для того, чтобы узнать, какой ID, надо лезть в код.
                Василий Наумкин
                08 декабря 2014, 11:30
                0
                Даже, не дай бог, открыть консоль браузера. Страшное неудобство для веб-разработчика, понимаю.

                Именно поэтому теперь есть новая настройка, позволяющая прятать вкладку гораздо более комфортно. Хотя, и это уже не всех устраивает, не знаю как дальше быть.
                  Наумов Алексей
                  08 декабря 2014, 11:35
                  0
                  Хотя, и это уже не всех устраивает, не знаю как дальше быть.
                  устраивает, читай самые первые комментарии!
                    Василий Наумкин
                    08 декабря 2014, 11:37
                    0
                    Ладно, ладно — молчу!

                    Рано встал работать, вот и хочется побурчать.
                      Наумов Алексей
                      08 декабря 2014, 11:53
                      0
                      =)))
                      у каждого свое видение того, как что-то работать может. Все, читающие эту публикацию, безусловно рады нововведениям, но исходя из своего опыта, пытаются «усовершенствовать» функционал, предлагая разные пути, в надежде, что будет найден «идеал». Так что мы не критикуем, а предлагаем и обсуждаем. Вот)
        Владимир
        08 декабря 2014, 11:08
        0
        Спасибо. Василий за прекрасный компонент.
        И, шепотом, вопрос: не планируется ли добавить в генерацию превьюшек возможность задавать только ширину или высоту, для пропорционального изменения изображения?
          Василий Наумкин
          08 декабря 2014, 11:10
          0
          А что мешает сейчас не указывать в источнике файлов ширину или высоту? Когда в последний раз проверял — работало.
            Владимир
            08 декабря 2014, 11:11
            0
            ??? ого, все есть
            Что ж я даже не пробовал то ?)))
              Василий Наумкин
              08 декабря 2014, 11:32
              1
              +1
              Не знаю. Специально проверил и вот такие на выходе плейсхолдеры:

              Источник файлов вот такой:
              [{"w":120,"q":90,"zc":"0","bg":"000000"},{"h":270,"q":90,"zc":"0","bg":"000000"}]
                Артём Добряков
                23 декабря 2014, 12:04
                0
                Василий, подскажите по поводу принципа генерации превьюшек. У меня при добавлении вертикальных фоток, они переворачиваются в горизонтальный вид.
                Пример
                Пробовал просто указать высоту, но итог такой же. В настройках у меня стоит maxUploadWidth=1920, maxUploadHeight=1280, правильные пропорции от исходного фото которое загружаю с разрешением 5184х3456.
                Источник файлов такой
                [{"w":256,"h":227,"q":95,"zc":"1","bg":"cccccc"},
                {"h":940,"q":95,"zc":"0","bg":"ffffff","fltr":"wmi|wm.png|BR|70|30|30"}
                ]
                Ставил и так
                [{"w":256,"h":227,"q":95,"zc":"1","bg":"cccccc"},
                {"w":1620,"h":1080,"q":95,"zc":"0","bg":"ffffff","fltr":"wmi|wm.png|BR|70|30|30"}
                ]
                Вообщем решение одно — загружать фото заведомо меньшего размера по высоте, что стоит в настройках maxUploadHeight=1280, тогда картинка все равно становится прямоугольной но заполняется фоном.
                Пример

                Как избавиться от переворота фоток?
                  Василий Наумкин
                  23 декабря 2014, 12:21
                  0
                  Как избавиться от переворота фоток?
                  Не загружать повёрнутые фотки.

                  И не важно, что на компе они у тебя отображаются правильно — на самом деле они повёрнутые и есть.

                  Позавчера только обсуждали.
                    Артём Добряков
                    23 декабря 2014, 12:25
                    0
                    Как то я на это не подумал. Буду разбираться. Просто хотел для мамы из коробки настроить, без всяких фотошопов, нащелкал, перетащил, подписал. Спасибо за разъяснения.
          Илья
          08 декабря 2014, 11:58
          0
          Василий, обновил галерею на работающем сайте и столкнулся с проблемой — в значениях полей пусто.
          Вывожу вот так:
          <div id="msGallery">
          	<a rel="fancybox" href="[[+ms2g.1.url]]" target="_blank" title="[[+ms2g.1.description]]">
          		<img class="right" src="[[+ms2g.1.230x173]]" width="230" height="173" alt="[[+ms2g.1.name]]" title="[[+ms2g.1.description]]" id="mainImage" />
          	</a>
          </div>
          Вот мои системные настройки (они оставлены по умолчанию):


          ms2gallery_set_placeholders включено

          Что я упустил и вышеуказанной инструкции?
            Илья
            08 декабря 2014, 12:05
            0
            Увидел новое обновление. Всё заработало!
          De Ribaskin
          08 декабря 2014, 14:38
          -2
          Спасибо за ms2gallery_disable_for_templates.
          Но все же думаю лучше было бы сделать логику не от обратного. То есть добавить настройку ms2gallery_enable_for_templates, а если она пустая — выводить галерею для всех шаблонов.

          Часто шаблонов несколько десятков, а галерея нужна лишь на нескольких.
            Пётр Молчанов
            08 декабря 2014, 16:40
            0
            > Теперь всё удаляется четко при очистке корзины из админки
            а как увидеть данный код без установки самого дополнения?
              Василий Наумкин
              09 декабря 2014, 11:27
              0
              Как обычно — поискать репозиторий ms2Gallery на GitHub и поглядеть историю коммитов.
              Семён Лобачевский
              10 декабря 2014, 14:35
              0
              А если у меня новости выводятся через getTickets
              [[!getTickets? 
                         &tpl=`item` 
                         &parents=`1`  ]]
              То в чанке item я могу использовать плейсхолдеры ms2Gallery?
              <img scr="[[+ms2g.0]]" />
              Или надо изменить вывод на что-нибудь другое?

                Василий Наумкин
                10 декабря 2014, 16:01
                0
                Нет.

                Плейсхолдеры выводятся при открытии страницы-ресурса с галереей.
                  Иван Чуваев
                  12 декабря 2014, 15:50
                  0
                  Здравствуйте!
                  А можно пример, как через getTickets в чанке item из приведенного выше примера, вывести первую картинку из галереи ms2Gallery?
                Alex Alex
                Alex Alex
                23 февраля 2015, 13:48
                0
                Добрый день, есть возможность получить лексикон для немецкого языка? (пусть даже старый)
                adminixi
                03 мая 2016, 10:41
                0
                Если просто тут свой размер превью прописать, генерируются все равно только 120x90 и 360x270
                ms2gallery_placeholders_thumbs
                Список превью картинок, которые нужно выбирать для показа на странице. По умолчанию там тоже пусто, и выбираются все превьюшки подряд. Но вы можете указать что-то типа «120x90,360x270» и сэкономить на лишних запросах в БД.

                Еще Источник файлов: MS2Gallery Images надо править…
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  36