[ms2Gallery] Переработанная версия 1.2.0-rc
Наверное многие здесь знают наш компонент для управления галереей ресурса ms2Gallery.
Первоначально эта галерея появилась в miniShop2 и была очень тепло встречена пользователя. Сразу же пошли просьбы сделать возможность использовать эту галерею без MS2, с любыми ресурсами.
Спустя некоторое время Александр Рахимов сделал отдельный компонент, в котором был гораздо более удобный загрузчик Plupload, а сама панель с галереей регистрировалась через специальный тип ТВ.
Загрузчик переехал в версию MS2, а оттуда в ms2Gallery пришла возможность работы с разными типами файлов, а не только с картинками. В общем, плодотворное сотрудничество платной и бесплатной версии.
Ну а теперь, по разным причинам, ms2Gallery вернулась обратно ко мне на поддержку, и я предлагаю вам новую, существенно переработанную версию.
Подробности под катом
В новой версии панель с галерей регистрируется на странице при помощи плагина ms2Gallery.
Одноименный ТВ параметр больше не используется. Если вы обновляете компонент, то установщик пройдёт по всем значениям этого ТВ и сохранит id источника файлов каждого ресурса в поле properties.
Короче говоря, ТВ больше нет и вы ничего при этом не потеряете. Наоборот, у вас не будет больше пустого пункта на панели ТВ параметров и лишней надписи вверху самой галереи.
Также при регистрации галереи учитывается, работает ли в системе AjaxManager. Если да, то дополнительный таб регистрируется с небольшой задержкой.
Если нет — то таб рисуется сразу при создании страницы и его позиция зпоминается.
То есть, если AjaxManager нет, то таб с галерей становится родным для табов ресурса, потому что регистрируется так:
Если кто-то придумает способ регистрации через Ext.ComponentMgr.onAvailable вместе с AjaxManager — он очень умный.
Заодно добавлена проверка на товары miniShop2. Теперь ms2Gallery не включается для товаров, ибо у них есть собственная встроенная галерея, и не нужно путать пользователей.
Как видно по скриншотам, галерея значительно преобразилась.
Я решил, что занимать половину рабочей области картинкой активной превьюшки слишком жирно, и нужно убрать её во всплывающее окно. Это позволяет нам гораздо более гибко управлять большими галереями.
Окошко вызывается двойным кликом, или из контекстного меню.
Кстати говоря, из-за косяков PhpThumb в MODX 2.2, картинку в окошке пришлось обрезать (&zc=1), а в MODX 2.3 она показывается целиком. В любом случае, при клике на неё, откроется отдельное окно с изображением в полный рост.
По умолчанию теперь выводится 50 превьюшек на одной странице, а чтобы это не тормозило на слабых хостингах, был оптимизирован процессор getlist — он стал работать через PDO, без modX::getCollection().
Понятное дело, галерея работает и в MODX 2.2, и в MODX 2.3.
Заменил старые иконки-картинки от Bootstrap 2 на Font Awesome, который встроен в админку MODX 2.3 по умолчанию. Для MODX 2.2 шрифт загружается отдельно, плагином.
Если убрать дерево ресурсов слева, то галерея нормально растянется на весь экран:
Вообще, почти все ExtJS компоненты галереи были переписаны заново, так что там много мелких улучшений, не видных на первый взгляд, но влияющих на ваш комфорт.
Еще были исправлены пара багов: неправильная сортировка при удалении первой превьюшки, и неправильная работа с источником файлов, отличным от стандартного.
Для всех тех, кто уже купил компонент ms2Gallery обновление бесплатное, как обычно. Для остальных цена осталось неизменной — всего 990 рублей.
В следующих обновлениях я планирую заменить сниппет ms2GalleryFirstImages на нормальный pdoTools сниппет для выборки всех изображений с превьюшками и фильтрацией по ресурсам.
Если у вас есть еще идеи и предложения — пишите, не стесняйтесь.
Ссылка на магазин.
Первоначально эта галерея появилась в miniShop2 и была очень тепло встречена пользователя. Сразу же пошли просьбы сделать возможность использовать эту галерею без MS2, с любыми ресурсами.
Спустя некоторое время Александр Рахимов сделал отдельный компонент, в котором был гораздо более удобный загрузчик Plupload, а сама панель с галереей регистрировалась через специальный тип ТВ.
Загрузчик переехал в версию MS2, а оттуда в ms2Gallery пришла возможность работы с разными типами файлов, а не только с картинками. В общем, плодотворное сотрудничество платной и бесплатной версии.
Ну а теперь, по разным причинам, ms2Gallery вернулась обратно ко мне на поддержку, и я предлагаю вам новую, существенно переработанную версию.
Подробности под катом
Регистрация панели
В новой версии панель с галерей регистрируется на странице при помощи плагина ms2Gallery.
Одноименный ТВ параметр больше не используется. Если вы обновляете компонент, то установщик пройдёт по всем значениям этого ТВ и сохранит id источника файлов каждого ресурса в поле properties.
Короче говоря, ТВ больше нет и вы ничего при этом не потеряете. Наоборот, у вас не будет больше пустого пункта на панели ТВ параметров и лишней надписи вверху самой галереи.
Также при регистрации галереи учитывается, работает ли в системе AjaxManager. Если да, то дополнительный таб регистрируется с небольшой задержкой.
Если нет — то таб рисуется сразу при создании страницы и его позиция зпоминается.
То есть, если AjaxManager нет, то таб с галерей становится родным для табов ресурса, потому что регистрируется так:
Ext.ComponentMgr.onAvailable("modx-resource-tabs", function() {
this.on("beforerender", function() {
this.add({
xtype: "ms2gallery-page",
title: _("ms2gallery"),
...,
});
});
});А если включен AjaxManager, то приходится регистрировать такExt.onReady(function() {
window.setTimeout(function() {
var tabs = Ext.getCmp("modx-resource-tabs");
if (tabs) {
tabs.add({
xtype: "ms2gallery-page",
title: _("ms2gallery"),
...,
})
}
}, 10);
});Иначе на странице получается несколько галерей, и все глючит.Если кто-то придумает способ регистрации через Ext.ComponentMgr.onAvailable вместе с AjaxManager — он очень умный.
Заодно добавлена проверка на товары miniShop2. Теперь ms2Gallery не включается для товаров, ибо у них есть собственная встроенная галерея, и не нужно путать пользователей.
Улучшения интерфейса
Как видно по скриншотам, галерея значительно преобразилась.
Я решил, что занимать половину рабочей области картинкой активной превьюшки слишком жирно, и нужно убрать её во всплывающее окно. Это позволяет нам гораздо более гибко управлять большими галереями.
Окошко вызывается двойным кликом, или из контекстного меню.
Кстати говоря, из-за косяков PhpThumb в MODX 2.2, картинку в окошке пришлось обрезать (&zc=1), а в MODX 2.3 она показывается целиком. В любом случае, при клике на неё, откроется отдельное окно с изображением в полный рост.
По умолчанию теперь выводится 50 превьюшек на одной странице, а чтобы это не тормозило на слабых хостингах, был оптимизирован процессор getlist — он стал работать через PDO, без modX::getCollection().
Понятное дело, галерея работает и в MODX 2.2, и в MODX 2.3.
Заменил старые иконки-картинки от Bootstrap 2 на Font Awesome, который встроен в админку MODX 2.3 по умолчанию. Для MODX 2.2 шрифт загружается отдельно, плагином.
Если убрать дерево ресурсов слева, то галерея нормально растянется на весь экран:
Вообще, почти все ExtJS компоненты галереи были переписаны заново, так что там много мелких улучшений, не видных на первый взгляд, но влияющих на ваш комфорт.
Заключение
Еще были исправлены пара багов: неправильная сортировка при удалении первой превьюшки, и неправильная работа с источником файлов, отличным от стандартного.
Для всех тех, кто уже купил компонент ms2Gallery обновление бесплатное, как обычно. Для остальных цена осталось неизменной — всего 990 рублей.
В следующих обновлениях я планирую заменить сниппет ms2GalleryFirstImages на нормальный pdoTools сниппет для выборки всех изображений с превьюшками и фильтрацией по ресурсам.
Если у вас есть еще идеи и предложения — пишите, не стесняйтесь.
Ссылка на магазин.
Комментарии: 46
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.










Текст текст текст
Фотоальбом, 5 фото
Текст текст текст
Фотоальбом, 3 фото
Текст текст текст
Фотоальбом 8 фото
Как это лучше всего реализовать через ms2gallery? Альбомы должен добавлять само собой менеджер сайта, а не программист.
Заходишь в системные настройки, включаешь ms2gallery_set_placeholders и можешь делать вот так в контенте страницы:
ms2g — обязательный префикс.
0, 1, 2 — rank, или очередность картинки
id, url — поля картинки
120х90 и т.п. — это все превьюшки, какие есть.
Если что-то непонятно, выводи просто
и увидишь все доступные свойства этой картинки.
Для менеджеров, я думаю, будет удобнее, если к редактору текста привязать плейсхолдеры, а не куски кода.
Почисти кэш браузера через Ctrl+F5.Что кнопка работает видно даже на скриншотах.
А нет, что-то уже успел сломать. Сейчас разберусь и обновлю пакет.
ms2gallery images
Вот исправление, будет в новой версии.
Прошу помочь мне в реализации вывода изображений через ms2gallery
Задача: вывод изображений из 1 ресурса,
вывод должен быть чередующимся, 3 изображения одного размера, далее 1 изображение 2го размера и т.д.
Повторяющийся цикл.
Должно получиться что-то вроде www.komandor.com/ru/about/gallery
Я сделал следующим образом:
Код не срабатывает, сайт просто начинает зависать и офигевать от запроса…
"[[+url]]" "[[+name]]" "[[+description]]" не работают. Не выводятся.
Прошу помочь. Спасибо!
— Необходимо вывести 16 новых тикетов из группы разделов, хранящихся в общем контейнере и отобразить первое сжатое изображение в их галереях.
До попытки leftjoin'ить галерею, группа тикетов выводится корректно, но при добавлении таблиц галереи выходит ошибка " (ERROR @ /index.php) Could not load class: ms2_resource_files from mysql.ms2_resource_files."
Лог выдает: «Could not process query, error #1054: Unknown column 'url' in 'field list'»
Код:
Подскажите, пожалуйста, как можно корректно решить данную задачу? (заранее спасибо)
msResourceFile должно быть, смотри пример.
Журнал ошибок
Нужно пробовать через pdoResources.
(тоже об этом задумывался, но смутила строка из доков у getTickets "*Список может быть расширен общими параметрами pdoTools так как Tickets работает на этой библиотеке." )
P.s. через пдоРесурс выдает
В процессе разработки возник вопрос:
Есть 2 раздела сайта
1 раздел -> размер фото 150х150 и 230х200 источник файлов 1 (ms2gallery, по умолчанию)
2 раздел -> размер фото 120х90 и 700х500 источник файлов 2 (ms2gallery)
Есть ли какая-то возможность источник файлов 2 сделать по умолчанию в разделе 2 для всех вновь создаваемых материалов?
id источника файлов записывается в поле properties ресурса.
Похоже, что не удаляется — нужно доработать.
А как скрыть вкладку с галереей на шаблонах в которых она не нужна?
Зачем скрывать?
создаем вкладку с ID ms2gallery-page и делаем ее скрытой.
У каждого ресурса своя галерея.
Есть даже инструкции, как вывести Gallery в отдельном табе ресурса. Так что, всё возможно — если сильно хочется.