[ms2Gallery] Более просторная версия 1.5.0
Привет, друзья!
Хочу представить вам новую версию компонента для управления файлами ресурсов MODX ms2Gallery, в котором стало гораздо больше рабочего пространства.
Теперь в один экран входит лишний ряд файлов вместе с постраничной навигацией, а загрузчик не мозолит глаза лишний раз — он выводится в отдельном окошке:
Остальной список изменений, о которых я не писал с версии 1.4.3, под катом.
Добавлены две новые системные настройки:
— [#9] Исправлена сортировка файлов, которые не являются картинками
— [#10] Улучшена работа с файлами на русском языке
— Исправлена загрузка больших файлов (от 50 Мб и выше)
— Процессор загрузки может принимать url вместо пути к файлу на локальном сервере.
Вот пример консольной загрузки картинки с удалённого сайта:
Хочу представить вам новую версию компонента для управления файлами ресурсов MODX ms2Gallery, в котором стало гораздо больше рабочего пространства.
Теперь в один экран входит лишний ряд файлов вместе с постраничной навигацией, а загрузчик не мозолит глаза лишний раз — он выводится в отдельном окошке:
Остальной список изменений, о которых я не писал с версии 1.4.3, под катом.
Добавлены две новые системные настройки:
- new_tab_mode — более правильная регистрация галереи на странице ресурса, которая хорошо работает с AjaxManager, но не работает с miniShop2 и Articles (по их вине)
- disable_for_ms2 — возможность включить или отключить вывод галереи на странице товара miniShop2. Раньше галерея там всегда отключалась.
— [#9] Исправлена сортировка файлов, которые не являются картинками
— [#10] Улучшена работа с файлами на русском языке
— Исправлена загрузка больших файлов (от 50 Мб и выше)
— Процессор загрузки может принимать url вместо пути к файлу на локальном сервере.
Вот пример консольной загрузки картинки с удалённого сайта:
<?php
define('MODX_API_MODE', true);
require 'index.php';
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$res = $modx->runProcessor('gallery/upload', array(
// Ссылка на файл
'file' => 'https://modx.pro/inc/img/modx_pro_sm.png',
// Id ресурса с галереей
'id' => 1,
),
array(
'processors_path' => MODX_CORE_PATH . 'components/ms2gallery/processors/mgr/'
)
);
if ($res->isError()) {
print_r($res->getAllErrors());
}
else {
print_r($res->getObject());
}
Обновляем, тестируем, пишем отзывы. Комментарии: 32
Василий, может стоит замутить галерею до сохранения ресурса, а не после?
Менеджеры ноют, что нужно обновлять страницу, да и честно говоря мне тоже кажется это не удобным.
При создании ресурса кидать фото в /assets/images/temp к примеру, после сохранения присваивать ресурсу (вроде файлы в tickets так и работают).
Ну и тоже самое для ms2
Менеджеры ноют, что нужно обновлять страницу, да и честно говоря мне тоже кажется это не удобным.
При создании ресурса кидать фото в /assets/images/temp к примеру, после сохранения присваивать ресурсу (вроде файлы в tickets так и работают).
Ну и тоже самое для ms2
А потом менеджеры накидают 100500 файлов и админка повиснет при сохранении документа, потому что не успеет их переместить.
А если еще вспомнить, что галерея может работать с удалённой файловой системой, где-нибудь на Amazon S3, то всё становится гораздо более сложным.
Так что, извини, пока нет.
А если еще вспомнить, что галерея может работать с удалённой файловой системой, где-нибудь на Amazon S3, то всё становится гораздо более сложным.
Так что, извини, пока нет.
Дубль 2.
после сохранения у нас файлы лежат в assets/images/resources/{$id}
При создании ресурса создавать папку, к примеру assets/images/resources/{$timestamp}
После сохранения ресурса переименовывать {$timestamp} на {$id} созданного ресурса
Тут конечно может время совпасть при создании нескольких товаров но очень сомнительно.
ну и папку переименовать не так проблемно как перенести кучу фоток. amazon в пример не берем.
после сохранения у нас файлы лежат в assets/images/resources/{$id}
При создании ресурса создавать папку, к примеру assets/images/resources/{$timestamp}
После сохранения ресурса переименовывать {$timestamp} на {$id} созданного ресурса
Тут конечно может время совпасть при создании нескольких товаров но очень сомнительно.
ну и папку переименовать не так проблемно как перенести кучу фоток. amazon в пример не берем.
После сохранения ресурса переименовывать {$timestamp} на {$id} созданного ресурсаКак узнать, какой timestamp для какого ресурса был создан?
Что делать, если менеджер загрузил 200 файлов и ушел гулять? Или у него отключили интернет на 2 дня?
amazon в пример не берем.В смысле, нужно переписать компонент так, чтобы он больше не работал с источниками файлов и складывал всё всегда на локальном сервере?
Наверное, приятно думать, что автор дополнения ленивая скотина и просто из вредности не хочет реализовывать твои хотелки, но, к сожалению, в данном случае это не так.
Мне сегодня как раз пришла в голову та же идея, хотя именно для ms2Gallery я ее удачной не считаю (: Но у меня есть отличие — $timestamp записывается в отдельную таблицу modx_temporary_ids, а при сохранении ресурса удаляется. Это как раз позволит решить проблему «если менеджер загрузил 200 файлов и ушел гулять»: при входе в админку просто удаляем записи из modx_temporary_ids (и связанные файлы), которые старше чем время жизни сессии.
Менеджер открыл 2 вкладки в браузере и там залил разные файлы.
Как сохранять? Какой timestamp принадлежит какому будущему ресурсу?
Как сохранять? Какой timestamp принадлежит какому будущему ресурсу?
Добавить в форму скрытый input name=«timestamp». Если менеджер открыл 2 вкладки, то будет два разных timestamp. Но у меня задача сохранять картинки в tv в папки типа assets/images/id.
С галереей такое делать нет никакой выгоды: создали документ — сохранили документ — залили картинки == создали документ — залили картинки — сохранили документ. Выигрыша по времени 0.
С галереей такое делать нет никакой выгоды: создали документ — сохранили документ — залили картинки == создали документ — залили картинки — сохранили документ. Выигрыша по времени 0.
выйгрыш есть, особенно во время заполнения товара.
Создать товар — заполнили все поля — сохранили, пошли дальше.
А сейчас создали товар — подождали перезагрузки страницы — заполнили поля — сохранили, пошли дальше.
и не совсем понятно, почему доп.параметры товара (размер, цвет) сделаны во время создания товара, а галерея и тд после
Создать товар — заполнили все поля — сохранили, пошли дальше.
А сейчас создали товар — подождали перезагрузки страницы — заполнили поля — сохранили, пошли дальше.
и не совсем понятно, почему доп.параметры товара (размер, цвет) сделаны во время создания товара, а галерея и тд после
Итак, у нас есть 3 операции:
1. Заполнение полей
2. Сохранение товара
3. Загрузка файлов
Они есть все 3, и как их местами не меняй, они все занимают одно и то же время.
Потому что файлы в галерее при загрузке сохранять повторно не нужно, а товар уже был оформлен на первом этапе.
От перемены слагаемых местами ничего не изменится.
1. Заполнение полей
2. Сохранение товара
3. Загрузка файлов
Они есть все 3, и как их местами не меняй, они все занимают одно и то же время.
Создать товар — заполнили все поля — сохранили, пошли дальше.Вот здесь ты забыл, что при сохранении товара тоже нужно подождать перезагрузки страницы. Или менеджер жмёт Ctrl+S и, не дожидаясь ответа от сервера, закрывает окошко?
А сейчас создали товар — подождали перезагрузки страницы — заполнили поля — сохранили, пошли дальшеНет, сейчас заполнили поля, сохранили, загрузили файлы и посшли в новый товар без дополнительного сохранения.
Потому что файлы в галерее при загрузке сохранять повторно не нужно, а товар уже был оформлен на первом этапе.
От перемены слагаемых местами ничего не изменится.
и не совсем понятно, почему доп.параметры товара (размер, цвет) сделаны во время создания товара, а галерея и тд послеПотому что в галерее картинки привязаны к id ресурса, который известен только после сохранения.
цвета и размеры это не пугает, значит какой-то параметр есть.
Загрузка файлов куда-то есть. Которых может быть 1000 штук весом на 5 гигабайт.
Как об стенку горох, ничего понимать не хочешь вообще.
Как об стенку горох, ничего понимать не хочешь вообще.
да я уже давно понял, тут уже давно идет обсуждение.
Я больше скажу — это галерея ресурса. Пока ресурса нет — нет и его галереи.
Иначе мы бы в одном окошке создавали галерею, в другом ресурс, а третьем бы их соединяли друг с другом — как до сих пор работает Gallery.
Иначе мы бы в одном окошке создавали галерею, в другом ресурс, а третьем бы их соединяли друг с другом — как до сих пор работает Gallery.
Не холивара ради. Можно же наверно сделать, чтобы вкладка галереи появлялась после сохранения, без перезагрузки страницы.
При создании ресурса страница перезагружается, так уж в MODX устроено.
Потому что за создание и обновление ресурса отвечают разные контроллеры.
Потому что за создание и обновление ресурса отвечают разные контроллеры.
Кстати, большинству контент менеджеров было бы понятнее, если бы при нажатии Создать, создавался бы сохраненный но неопубликованный документ, например с ID в пейджтайтле, в алиасе и т.п. А то они не помнят о сохранить, хоть убей их. Жаль, не предусмотрено это «из коробки», плагином, разве что… Или это будет изврат?
Теоретически-то, наверное, можно сделать. Но мне кажется, что будет дофига неопубликованных забытых ресурсов — бардак будет в админке
Человек создаст ресурс (со случайным именем и alias, наверное) — а потом возьмёт, и опубликует его случайно. Он же не понимает, что делает в админке — почему бы и не опубликовать тогда?
В общем, у нас тут какая-то очередная волна «улучшений для дебилов» надвигается.
Ну неужели нельзя найти менеджеров, которые хоть немного умеют работать с компьютером, и закончили школу? Сейчас же кризис, много способных людей ищет работу — дайте им шанс.
Человек создаст ресурс (со случайным именем и alias, наверное) — а потом возьмёт, и опубликует его случайно. Он же не понимает, что делает в админке — почему бы и не опубликовать тогда?
В общем, у нас тут какая-то очередная волна «улучшений для дебилов» надвигается.
Ну неужели нельзя найти менеджеров, которые хоть немного умеют работать с компьютером, и закончили школу? Сейчас же кризис, много способных людей ищет работу — дайте им шанс.
Василий, работодатели на контент-менеджерах экономят. Может кризис вылечит, как знать....?
Я объясняю: создали документ, заполнили пейджтайтл- сохраните, далее все остальное… Увы, это так сложно…
Я объясняю: создали документ, заполнили пейджтайтл- сохраните, далее все остальное… Увы, это так сложно…
Ну, плагин такой и правда написать можно, и даже несложно.
При открытии страницы создания, сразу сохранять ресурс со случайным названием и редиректить на контроллер обновления с новым id — а там уже всё будет.
В принципе, даже не видно будет панель создания, просто сразу почти редирект на редактирование.
При открытии страницы создания, сразу сохранять ресурс со случайным названием и редиректить на контроллер обновления с новым id — а там уже всё будет.
В принципе, даже не видно будет панель создания, просто сразу почти редирект на редактирование.
Многим бы это подошло. Потому что их логика- создали, значит он уже есть. Про ID и т.п. слушают в полуха.
Эх… Но лучше бы они усвоили порядок действий)
Эх… Но лучше бы они усвоили порядок действий)
так как я писал ниже =)
Вспомнил, на yii кто то таким образом сделал.
Вспомнил, на yii кто то таким образом сделал.
Где то видел применения другого способа, не складывать картинки во временную папку, а при создании нового ресурса мы его сохраняем и редиректим на его редактирование. В итоге ИД ресурса у нас есть и ничего никуда перемещать не надо. Но появляется другая проблема, что делать если пользователь передумал «создавать» ресурс, чистить раз в месяц базу если поля пустые?
Василий, подскажи, в новой версии ms2Gallery, загрузку файлов в модальном окне, что несколько непривычно, ты навсегда сделал? Прежний способ казался удобнее. Или я чего то не понимаю?
PS данный вопрос не содержит ГМО (зачеркнуто) претензий :))
PS данный вопрос не содержит ГМО (зачеркнуто) претензий :))
Да, навсегда.
Один лишний клик стоит трети рабочей области.
Один лишний клик стоит трети рабочей области.
Ок. Привыкнем)
А реально ли сделать основную рабочую область зоной приема drag'n'drop? Т.е. просто перетаскиваешь из папки в на страничку галереи, а затем уже всплывает текущее окно загрузки файлов.
*Мечты*
*Мечты*
Теоретически реально, а практически — не факт, что у меня хватит для этого знаний javascript и ExtJS.
Окошко вот тоже изначально сделать не мог. Попробую, позже.
Окошко вот тоже изначально сделать не мог. Попробую, позже.
Красота! Спасибо!
Василий, подскажите пожалуйста, как вывести с помощью ms2Gallery только картинки без тегов?
Василий, спасибо за пример загрузки файлов к ресурсам.
А можете подсказать, как удалять файлы?
Если есть необходимость удалять старые фото, и добавлять новые, как это лучше организовать?
Задача в регулярном обновлении галереи, с частичной заменой фото в ней.
Есть ли у вас пример удаления отдельных файлов, или вообще всех файлов галереи конкретного ресурса?
А можете подсказать, как удалять файлы?
Если есть необходимость удалять старые фото, и добавлять новые, как это лучше организовать?
Задача в регулярном обновлении галереи, с частичной заменой фото в ней.
Есть ли у вас пример удаления отдельных файлов, или вообще всех файлов галереи конкретного ресурса?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.