[ms2Gallery] Версия 1.4.0 - теги для ваших файлов
По результатам обсуждения в этой теме представляю вам новую версию ms2Gallery, в которой добавлены 2 новых поля файлам + система тегов (групп).
Внешний вид панели управления файлами преобразился: появился поиск по полям картинок и фильтрация по тегам. Разбивка по страницам переехала вниз.

У имён файлов добавился вывод rank, чтобы было проще вставлять плейсхолдеры в страницу. А в контекстом меню появился пункт «Открыть в новом окне».
Панель редактирования файла выглядит вот так:

Здесь 2 новых поля alt (для альтернативного имени файла) и add (для чего-нибудь еще).
Управление тегами сделано примерно так же как в miniShop2 — набираете текст и поле подсказывает вам, есть ли уже в базе такой тег. Если есть — выбираете, если нет — жмёте Enter и он добавляется в input.
Теги сохраняются только при сохранении формы редактирования.
Для поддержки новинки доработал сниппет ms2Gallery. Теперь он умеет выбирать картинки из нескольких ресурсов (галерей) сразу, а заодно и фильтровать их по тегам.
Новые параметры:
Вот вывод всех картинок на сайте кроме тех, что лежат в контейнере с id = 5, его потомках и ресурсах 15 и 20:
А вот вывод всех картинок с тегами «game» или «movie»:
Ну а с включением приёма тегов через запрос можно давать юзерам ссылки:
site.ru/?tags=tag1
site.ru/?tags=tag2
Сами теги находятся в отдельной таблице msResourceFileTag, в которой всего 2 колонки: file_id и tag, так что работа с ними происходит очень быстро.
Таблица тегов подключается под псевдонимом Tag, а сами файлы теперь под псевдонимом File.
Среди прочего исправлен системный параметр ms2gallery_page_size — галерея теперь слушает указанное в нём значение. Неиспользуемый системный параметр, оставшийся, от MS2 ms2gallery_thumbnail_size удалён.
Сниппет ms2Gallery больше не подключает принудительно jQuery, а при загрузке файла его расширение не попадает в имя. Ну и в чанках уже поле [[+alt]] уже проставлено в соотвествующий атрибут.
Явно прописан параметр &tplSingle, который оформляет галерею, если выводится только одна картинка. Он пуст по умолчанию, но в комплекте идёт чанк tpl.ms2Gallery.single.
Можно обновляться и тестировать.
Внешний вид панели управления файлами преобразился: появился поиск по полям картинок и фильтрация по тегам. Разбивка по страницам переехала вниз.

У имён файлов добавился вывод rank, чтобы было проще вставлять плейсхолдеры в страницу. А в контекстом меню появился пункт «Открыть в новом окне».
Панель редактирования файла выглядит вот так:

Здесь 2 новых поля alt (для альтернативного имени файла) и add (для чего-нибудь еще).
Управление тегами сделано примерно так же как в miniShop2 — набираете текст и поле подсказывает вам, есть ли уже в базе такой тег. Если есть — выбираете, если нет — жмёте Enter и он добавляется в input.
Теги сохраняются только при сохранении формы редактирования.
Для поддержки новинки доработал сниппет ms2Gallery. Теперь он умеет выбирать картинки из нескольких ресурсов (галерей) сразу, а заодно и фильтровать их по тегам.
Новые параметры:
- &parents — Список контейнеров через запятую для поиска галерей ресурсов. По умолчанию пуст и сниппет руководствуется следующим параметром.
- &resources — замена &resource. Список ресурсов для вывода файлов, через запятую. По умолчанию — текущий ресурс.
- &tags — Список тегов для фильтрации выводимых файлов, через запятую.
- &tagsVar — Ключ тегов в $_REQUEST. По умолчанию параметр пуст и пользователь не сможет самостоятельно фильтровать файлы тегами. Но если вы укажете здесь, например, tags, то можно делать такие ссылки на страницу /?tags=111,222
- &getTags — Выборка строки со всеми тегами файла, через разделитель &tagsSeparator. Генерирует дополнительные запросы в БД.
Вот вывод всех картинок на сайте кроме тех, что лежат в контейнере с id = 5, его потомках и ресурсах 15 и 20:
[[!ms2Gallery?
&parents=`+0,-5`
&resources=`-15,-20`
]]А вот вывод всех картинок с тегами «game» или «movie»:
[[!ms2Gallery?
&parents=`0`
&tags=`game,movie`
]]Ну а с включением приёма тегов через запрос можно давать юзерам ссылки:
site.ru/?tags=tag1
site.ru/?tags=tag2
[[!ms2Gallery?
&parents=`0`
&tagsVar=`tags`
]]Сами теги находятся в отдельной таблице msResourceFileTag, в которой всего 2 колонки: file_id и tag, так что работа с ними происходит очень быстро.
Таблица тегов подключается под псевдонимом Tag, а сами файлы теперь под псевдонимом File.
[[!ms2Gallery?
&parents=`0`
&where=`{"File.description:LIKE":"%My photo%"}`
]]Среди прочего исправлен системный параметр ms2gallery_page_size — галерея теперь слушает указанное в нём значение. Неиспользуемый системный параметр, оставшийся, от MS2 ms2gallery_thumbnail_size удалён.
Сниппет ms2Gallery больше не подключает принудительно jQuery, а при загрузке файла его расширение не попадает в имя. Ну и в чанках уже поле [[+alt]] уже проставлено в соотвествующий атрибут.
Явно прописан параметр &tplSingle, который оформляет галерею, если выводится только одна картинка. Он пуст по умолчанию, но в комплекте идёт чанк tpl.ms2Gallery.single.
Можно обновляться и тестировать.
Комментарии: 136
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Пакет, разумеется, куплен.
Сейчас должно работать, проверяй.
На s880.h3.simpledream.ru кликаю миниатюры картинок второй галереи, а результат показывается в первой… Видимо, из-за одинаковых id у обоих галерей на странице.
Может, 2 и более галереи и не нужны на 1-ной странице, но на всякий случай обращаю внимание.
Обнови кэш и покликай снова — поправил.
А переключение источников файлов работало подобно и переключению тэгов.
Не знаю, зачем пихать несколько галерей в один ресурс, тем более теперь, когда есть разделение на группы тегами.
К примеру на страничке есть:
слайдер, размеры: 900x200px
фотогалерея, размеры 1980х1080px, превьюшки 100x100px
С помощью тэгов это никак не реализовать, а вот с помощью разных источников файлов — очень было бы удобно. Тем более что в настройках источников файлов указываются размеры генерируемых превьюшек.
Делать несколько источников для одной галереи не планирую. Даже в самом страшном сне.
Слайды на 3-5 ресурсах, а фотогалерея на ~100 ресурсах.
И получается:
100*30=3000 ненужных превью только по самым скромным подсчетам…
конечно это все мелочи с нынешними ценами на ssd на linode)
1) Как задается размер миниатюр / thumbnails? Как вообще и еще так, чтобы картинки уменьшались / масштабировались не скопом по ширине или скопом по высоте, а по самой большой стороне. То есть, горизонатальные картинки умешались по ширине, сохраняя пропорции, а вертикальные по высоте, тоже сохраняя пропорции. Так, чтобы в итоге максимальные измерения всех картинок-миниатюр были бы равны: чтобы картинки-миниатюры были и горизонтальные, и вертикальные, но чтобы все помещались в квадрат некоей заданной величины.
2) Как задается размер больших изображений (если есть такая опция)? То есть, пользователь добавляет файлы размером 1000x600 и 800x1200, которые система автоматически масштабирует да заданных размеров. Из 1000 на 600 делает 500x300, из 800 на 1200 — 334x500.
3) Как задается качество / quality обрабатываемых системой изображений?
4) В ссылке вокруг img в tpl.ms2Gallery.row есть class=«thumbnail» — это обязательно? Класс на ссылке вокруг изображения может быть нужен для самых разных вещей.
Все параметры работы с превью изображений указываются в источнике медиа. По правилам HTML у любого тега может быть не один класс.
[{«w»:200,«q»:100,«zc»:«0»,«bg»:«000000»},{«h»:200,«q»:100,«zc»:«0»,«bg»:«000000»}]
— При выводе через src="[[+200x]]" картинки уменьшены по ширине. Горизонтальные картинки уменьшились пропорционально и по ширине, и по высоте: ширина 200px, высота та или иная меньше 200px. А вертикальные скейлятся по ширине до 200px, так что высотой оказываются больше 200px.
— При выводе через src="[[+x200]]", соответственно, наоборот. Вертикальные изображения масштабируются как надо, а горизонтальные становятся высотой в 200px и слишком большой ширины.
Подбирай нужные хоть через phpthumbof. Мне уже, честно говоря, надоело отвечать на вопросы.
Удачи!
[{«w»:200,«h»:200,«q»:100,«zc»:«0»},{«w»:200,«h»:200,«q»:100,«zc»:«0»}]
Вывод через src="[[+200x200]]"
— И заработало.
— Я как бы задаю вопросы в рамках предпродажного тестирования твоего товара, так сказать. Значительная часть пользующихся MODX совсем не разработчики: «Designers: take your ground-breaking or trend-smashing mock-ups to mark-up in MODX, in no time», — modx.com/. Так что они, то бишь мы многие вещи либо не знаем, либо не знаем, что это можно знать. Масштабирование изображений относится к функции галереи, каким бы образом это не организовывалось за кадром. Так что вопрос по этой теме вполне правомерен.
А так — всё только по доброй воле.
— Совсем не стоит пробовать ставить на локальный хост? И ms2Gallery тоже? Что у ms2Gallery такого, вроде сугубо локальные действия. Мне сейчас было бы удобно сначало на локальный и только по достижению определенной степени готовности переводить сайт на хостинг.
Потому что для нормальной работы сервер должен кое-что уметь.
А что там умеет локальный сервер на windows и как будет выходить работа с изображениями — я без понятия.
При использовании LIKE как правило указывают символы процента:
Чтобы не заниматься ебалайством — не обновляйся. Ну или выводи картинки через теги, а не поиском строки в описании.
Еще более хреновая позиция называть чужую работу ебалайством. Расширение функционала невозможно без изменений.
Раньше сниппет работал с таблицей msResourceFile, а теперь с modResource и msResourceFile подключается к ней как File — отсюда и необходимость указывать псевдоним в условии. В заметке это указано.
Или предлагаешь ради твоего удобства откатить возможность вывода нескольких галерей сразу в одном вызове сниппета? Ну и теги тогда можно убирать, ибо смысла в них не остаётся — внутри одной галереи и описанием обойдёмся.
Вертаем взад?
Давай я тебе воды минеральной пришлю, выпьешь за мое и твое здоровье, по скайпу тост скажешь — и всё будет хорошо. Не бузи :))
Поможет, в следующий раз.
— Colorbox использует класс ссылки вокруг изображения. Чтобы и простым, и более сложным образом использовать Colorbox, данный класс должен быть в его полной власти.
И потом, в качестве эксперимента я убирал этот class=«thumbnail» целиком, менял значение на другое и никакой разницы в работе галерие вроде не обнаружилось. class=«thumbnail» там тогда для чего, тоже метка для какого-то Lightbox'а? Или что-то более серьезное?
Ты можешь менять и чанки, и родной javascript, или и вовсе его не подключать. Полная свобода оформления.
Родные чанки и javascript просто для примера, чтобы что-то выводилось сразу после установки. Всё можно менять.
поля все заполнены
сам вывод
причем
работает
Обновись, заработает.
Обновляйся снова =)
Здесь работает. Данные для входа в админку выше, в заметке.
Пропала кнопка «сохранить» при попытке редактировать файлы в assets/components/ms2gallery/…
Кнопка пропала только в ms2gallery, в остальных компонентах всё работает.
Извиняюсь, что сразу не уточнил. Может это как-то связано с удалённым доступом к репозиторию?
Настройки поставщика поменял на новые:
Пакет переустановил но результата нет, кнопка не появилась.
Если кнопки сохранения нет, значит нет прав на сохранение этих файлов. Давай не будет оффтопить в этой теме, а?
Я использую ms2gallery в том числе и как обычную галерею фотографий.
Раньше при вызове ms2gallery через pdoPage на странице подтягивались стили assets/components/ms2gallery/css/web/default.css, а сейчас несуществующий /assets/components/ms2gallery/css/pdopage.css
Или я опять что-то путаю…
Так что нужно указать их самостоятельно:
выдает ошибку.
Через pdoResources, примерно такой же вывод работает прекрасно.
Меня заитересовал вот такой вопрос: предполагается ли добавление возможности загружать не только картинки, но и файлы популярных форматов: docx, pdf и некоторых прочих? Для них можно заранее в настройках указывать картинку-превью. И тогда при помощи этого компонента можно будет не просто галереи делать, но и файловые архивы с удобной навигацией, пагинацией, аякс-подгрузкой — вобщем со всеми плюшками, которые дает pdoTools…
Иногда заказчик хочет, что бы у него в разделе документы была смесь файлов — картинок и обычных файлов…
Просто разреши нужные типы файлов в настройке источника медиа.
пробовал раскоммитить качество на сотню тут: github.com/bezumkin/ms2Gallery/blob/master/assets/components/ms2gallery/js/mgr/uploader.grid.js#L154
ну и собственно на чем споткнулся: 3 фото
1 — исходник
2 — plupload сжал высоту до 600px
3 — photoshop сжал высоту до 600px
тема на гитхабе: github.com/moxiecode/plupload/issues/707 давно раскрыта, и есть хорошие альтернативы plupload'у
Пока пытаюсь просто понять как подключается доп. таблица.
Сделал так:
Но при этом выборка не меняется и в showLog этот innerJoin никак не отображается.
Подскажите, как исключить такие картинки… Буду очень благодарен)
пытаюсь теперь сделать так:
но выборка пустая
В общем, держи готовый ответ:
Если у файла будут еще теги, кроме video — он будет выбран по ним. То есть, наличие тега video не исключит его из выборки, так как он подключится по другому своему тегу, который != video.
Бяда, бяда, огорчение.
Сейчас эта ошибка исправлена, параметр прописан, дефолтный чанк на месте. Обновил пакет в репозитории, теперь параметр пуст по умолчанию и не будет мешать работающим галереям.
Если в поле add или description вставлять например вот такое содержимое
то это изображение просто не выводится.
Если вставлять обычный текст, то все впорядке.
Мне нужно как раз ссылку вставлять, будет что-то типо видеогалереи. Можно ли эту проблему поправить изменением типа данных в таблице в базе данных? Или эти поля как-то валидируеются компонентом?
Тип данных менять некуда, там и так — text.
Возможно дело в моем упоротом чанке:
Если я не пишу условие, то все нормально работает и выводится…
[[+resouce_id]] == [[+id]] / [[*id]]?
[[+resource_id]].parent == [[+parent]] / [[*parent]]?
isequalto == is
doc06967820150224162513_001.pdf: Файл не является корректным изображением.
PDF — не изображение.
На здоровье.
Ничего в настройках источника фалов не менял.
Единственное, заметил это то, что папка mod-tmp и ярлык tmp стоят с другими правами и другим владельцем, нежели остальные папки всего сайта.
Лог при этом заполняется вот такими вот сообщениями:
Сайт лежит не у меня поэтому сразу права изменить не могу, чтобы посмотреть в этом ли дело. Может ли вообще быть связано с этим?
modxclub.ru/topics/migx-i-dropbox-2.1.2-beta-1630.html#comment-6232
Потом столкнулся с проблемами, что phpthumbof не создает превьюшки.
modxclub.ru/topics/dropbox-2.1.2migxphpthumbof-1637.html
Слишком много проблем получается…
А хочется просто поставить компонент и заливать на дропбокс картинки.
Если Ваша галлерея может работать с медиа источником дропбокс и нету проблем с превьюшками, то наверное мои проблемы бы и закончились на этом…
Не знаю, как у Dropbox, но у Яндекс.Диск так нельзя в принципе, поэтому он не подходит для хранения файлов галереи.
Компонент можно проверить перед покупкой на modhost.pro — просто выбери ms2Gallery для установки при создании тестового сайта.
Спасибо за ссылку, сейчас попробую. Меня настройка галлерии уже состарила на несколько лет… молю бога чтобы Ваша оказалось тем что мне и надо.
Использую удалённый сервис таким образом, ты ничего не выиграешь, а даже немного затормозишь сайт, потому что для вывода картинки он будет делать запрос в Dropbox, грузить оттуда файл и выводить тебе через PHP, вместо выдачи прямой ссылки на файл, которую откроет сам веб-сервер.
Конечно, он может кэшировать эти файлы, но всё равно это медленнее, чем отдавать их напрямую.
А вот если настроить хранение файлов в Amazon S3 то ссылки будут прямые и картинки будут загружаться сразу с Amazon, что позволит:
1. Не хранить их на сервере. вообще
2. Разгрузить свой сервер, переложив нагрузку на S3
3. Ускорить работу сайта, потому что тяжелые картинки будет отдавать Amazon и браузер их быстрее загрузит.
Есть и российский сервис, аналог S3 — storage.selectel.ru. Так что подумай, нужно ли тебе вообще работать с Dropbox.
Для хранения статических файлов, типа картинок и документов, нужен сервис, который выдаёт их по прямым ссылкам.
Попробуй Selectel, для начала, там точно всё проще. Вот готовый пакет, а вот инструкция в их блоге.
Думаю, разберёшься.
Скажите пожалуйста, Amazon S3 или storage.selectel.ru? Ни тем ни тем не пользовался, все равно что из них выбрать.
С Amazon без бутылки не разберешься в его правах и разрешениях.
Василий если появится немножко времени, ответьте пожалуйста вот тут на пару вопросов, что бы я опять по дебрям не слонялся.
Часто сталкиваюсь с проблемами когда что то ставишь, а оно от 2011 года и никем не поддерживается. А вокруг Ваших компонентов постоянная активность и обсуждение, хотелось бы перейти. Но боязно что много настраивать.
Есть даже встроенная конвертация параметров Wayfinder в pdoMenu. Обычно достаточно просто сменить название сниппета при вызове и всё должно работать.
Если что — вот документация.
Но! Я избавился от одной проблемы сразу же о которой спрашивал тут же сегодня в другом топике
Как чудесно начинается этот день!!!: )
Подскажите можно ли создать два одинаковых размера к примеру 150x150, но только в первом случае он будет zc=1 а во втором zc=0? и потом как то вывести их на странице?
Надо увидеть как выглядит установленная галерея с нуля.
Не понятно что там с дизайном… с превьюшками, с пагинацией на случай если изображений очень много…
Но где взять готовое решение с дизайном…
Цель просто вывести на странице много картинок… Примерно так но много, а не рядок.... Не самому же делать!
iris-noir.de/wedding
Я вам вобщем «должен… отдам»)
Хотелось бы вот так [[+description:empty=`Пусто`]] или
[[+add:empty=`Пусто`]]
Или есть какой другой способ вывести alt картинок по умолчанию, а если заполнено поле, то его?
но данная конструкция не работает(
Заранее спасибо за ответ!
Хостинг таймвеб. Не первый раз замечаю такое на разных сайтах
Возможно ли вызвать только те изображения где присутствуют оба тэга?
Т.е. Сначала из базы выбираются все фотографии с первым тэгом. На следующей итерации цикла выбираю фотографии со вторым тэгом, но при этом только среди тех чьи ID я получил на предыдущей итерации.
Таким образом за две три итерации я сужаю круг и возвращаю id нужных мне файлов
Вторая задача, как передать массив полученных файлов в сниппет ms2Gallery, так как он не позволяет принимать id конкретных файлов. На помощь приходит параметр &where
Ну и &showLog, вроде, тоже есть.
joxi.ru/a2Xak8bI1D6MEA
docs.modx.pro/components/ms2gallery/snippets/ms2gallery#Параметры
Я намекаю на то, что в документации нету таких параметров например как:
Я например не мог вспомнить их на память, зашел в документацию, а их там нет. Нашел в другом месте, но они же должны быть в документации.
НО, документация же… люди, документация)
Естественно, никому это не интересно. Поэтому я сейчас, в полтретьего утра, субботу, заморочился и дописал эту страницу.
Ура.
Ну вот я захожу на страницу в modstore, там Документация. Как бы логично, чтобы на официальном сайте продукта она была в нормальном виде.
Вообще я сделал это как небольшое замечание, причем замечание на пользу, то что в документации пусто, а раздули как будто я негодяй.