[msOrderFiles] Файлы к заказам miniShop2

Небольшой компонент, предназначенный для прикрепления файлов к заказу miniShop2. Нет ни сниппетов, ни чанков, ни отдельной страницы компонента. Есть только вкладка, встроенная в окошко редактирования заказа miniShop2, и свой Источник файлов.
За идею компонента спасибо Михаилу Воеводскому!
Вывод списка файлов заказа
Чтобы вывести список файлов определённого заказа (например, в личном кабинете юзера), нужно воспользоваться сниппетом pdoResources:
{'!pdoResources' | snippet : [
'class' => 'msOrderFile',
'loadModels' => 'msOrderFiles',
'where' => [
'active' => 1,
'order_id' => 10,
],
'sortby' => '{"rank":"ASC"}',
'tplWrapper' => '@INLINE <ul>{$output}</ul>',
'tpl' => '@INLINE
<li><a href="{$url}">{$name}</a></li>
',
]}Плейсхолдеры для параметра tpl
- id — id файла заказа,
- order_id — id заказа в ms2,
- source — id источника файлов,
- name — название файла,
- description — описание файла,
- file — имя файла с расширением,
- url — путь до файла, начиная от корня сайта,
- mime — тип файла, по стандарту MIME,
- ext — расширение файла,
- hash — хеш, который используется для сравнения уникальности загружаемого файла,
- size — размер файла в байтах,
- createdon — дата загрузки файла,
- createdby — id юзера, который загрузил файл,
- rank — номер позиции файла в списке,
- active — является ли файл активным.
Источник файлов msOrderFiles
В источнике файлов, помимо стандартных настроек (basePath, baseUrl), можно указать и такие:
- allowedFileTypes — список расширений файлов, которые разрешается загружать,
- fileNameType — знакома многим из ms2Gallery, означает метод переименования файла,
- positionNewFiles — позиция новых файлов в списке. Другими словами, куда загружать новые файлы: в начало или в конец.
Купить пакет в modStore.pro
Комментарии: 60
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Можно использовать это modstore.pro/packages/photos-and-files/fileattach и добавить плагин отправки на почту списка ссылок на скачивание файлов, прикрепленных к товарам в заказе, после смены статуса заказа на «Оплачен».
Ниже ребята об этом и говорят.
код = ссылка на файл
2. Кода будет работать с новым минишопом?
2. В процессе, по срокам не сориентирую, но скоро.
Вообще был какой-то компонент, который умел генерировать ссылку на файл и доступ к ней на * кол-во времени, но не могу вспомнить его название.
К товару прикрепляется файл, после покупки файл доступен в истории заказов
В идеале, отсылать ссылку на скачивание после оплаты заказа на почту.
Хранение
1. при загрузке к товару опционально сделать вариант переименовывать или нет в настройках
2. скачанные файлы должны храниться в личном кабинете, в истории заказов
Безопасность
Даже имея ссылку файл скачать нельзя, скачать его может только оплативший покупку.
Это с ходу, так можно многое развить
Последнее время очень часто звучит данный вопрос в ТП modstore… суть в том, что установив политику доступа и не указав параметр сниппета anonym = true, для анонимов форма даже показываться не будет…
Поэтому сниппет необходимо вызывать примерно так:
Гущин СергейВ описании компонента, по сути, инструкции к использованию, есть примечание:
Теперь что касается ТехПоддержки. Вот лог переписки:
Вы:
Я:
Вы:
Я:
Извините, конечно, если грубо получилось. Устал от вопросов, которые по сути дела не ко мне нужно направлять. Я ведь не вызывался обучать вас использованию MODX. Я оказываю поддержку моего компонента. Ваш вопрос был решён?
Гущин Сергей— Управление => Перезагрузить права доступа
— Управление => Завершить все сеансы
Что в общем-то я и без вас делал, но при добавлении политики доступа вы могли бы написать разъяснения, на какие контексты они должны распространяться, хотя бы например, какие указывать права для аннонимов, admin или user, ну хотя бы это, потому что пришлось пробовать все варианты.
Вы же этого ничего не объясняете ссылаясь на то что это к вам не относится, а я считаю что разъяснение все-таки нужно по данному пункту, и это относится к данному решению.
Ну в общем свою позицию высказал, как я понял я такой не один столкнулся с такой проблемой и обратился к вам, но вы данную проблему не считаете нужным объяснять. Вот и все, вот и поддержка, о чем я и написал.
То есть, только «матёрый программист» способен разобраться с тем, какие права анониму назначить, админские или юзерские?.. Может изучение тогда лучше начать с чего-то, вроде Логики? Жаль, что её исключили из школьной программы. :(
Да и не у всех есть время разбираться с деталями работы MODX, вы хотели сказать?
Если вы ещё не поняли, то данный спор упёрся в то, что Гущин Сергей просто не захотел изучать, как работают Политики доступа в системе, которую он выбрал в качестве инструмента. Он захотел, чтобы я ему объяснил во всех подробностях, что это такое, как это настраивать (вплоть до цвета кнопочки, на которую надо нажать), а заодно ещё и прихватил объяснение того, что такое Контексты в MODX, и кто такие админы с юзерами.
Причем тут логика? Непонятно что компоненту надо, если я делаю все по вашим инструкциям, а он работать не хочет. Ни с юзерскими, не с админскими правами — ни с какими! Нужна информация подробнее, чтобы понять что делается не так.
нет, именно ВАШЕГО компонента. Как работают политики доступа в ModX я знаю и пользуюсь, но ВАШ компонент, в код которого у меня нет ни времени, ни желания лезть с указанными параметрами работать не хочет. Сколько раз еще повторить?
Мы сейчас тратим время на то, что бы вы сняли корону и написали простым смертным (каким вы себя видимо не считаете) как заставить этот долбанный компонент работать без тыканий по 3 часа с разными комбинациями параметров.
Что такое контексты и политики доступа от вас объяснять не требую. Я хочу узнать необходимые параметры, которые нужны для работы компонента.
Каждый из нас специалист в своем деле и если каждый с умным видом будет говорить «иди почитай, я не должен ничего объяснять», то ничем хорошим это не закончится.
Если есть столько вопросов по этой теме, то может стоит все-таки спустится с небес на землю и наконец решить этот вопрос?
1) Давайте без истерик.
2) Нет никакой секретной инфы о том, как настроить данный компонент. Я всё описал уже тысячу раз.
3) Если всё сделано по моим инструкциям и не работает, то я уже написал вам в ТП Modstore:
Или мне опять включать экстрасенсорные способности?
Вообще забавно так наблюдать, как человек не хочет ни предоставить доступы, ни разобраться в работе компонента, а только обвинять разработчика в ношении какой-то короны и утаивании секретной настройки компонента. Ещё раз: прекратите истерить и поймите, что это у вас что-то не получается, а я не из-за вредности не говорю, как его настроить, а потому что банально не экстрасенс.
У админа нет прав доступа, указанных в документации к компоненту. Из под него он авторизован в админке и думает, что проверяет из под анонима.
Как проверить:
— Открываем сайт в Режиме инкогнито, проверяем анонимом — всё работает.
— Открываем сайт в браузере, в котором авторизованы админом, у которого нет нужной политики доступа — не работает.
Это к тому, как банальная невнимательность порождает проблемы…
Проблема локальная, компонент до сих пор настраивается без всякой магии. Хотя, ходят слухи, что моя корона не позволяет мне выдавать секреты настройки моих компонентов… :)
P.S. Буду благодарен, если администрация удалит срач в комментах!
Гущин Сергей1) Открываем в админке «Контроль доступа»
2) Кликаем правой кнопкой мыши на «аноним» и выбираем «Редактировать группу пользователей»
3) Жмем «Добавить контекст»
4) далее заполняем поля: контекст -web, Минимальная роль — Member — 9999, Политика доступа — msOrderFilesPolicy
5) Сохраняем все это дело
Уже после всех этих манипуляций делаем это:
— Управление => Перезагрузить права доступа
— Управление => Завершить все сеансы
И все готово.
Я думаю если бы автор не поленился и написал бы эту инструкцию, то здесь не было бы портянки с недовольными комментами
«Поленился», «не поленился»… Если бы вы также хорошо старались при изучении системы, с которой работаете, не было бы таких вопросов.
Может вам ещё по пунктам написать, как компонент скачать и установить? А потом написать, как сниппет вызвать с примерами на все случаи жизни?
Не нужно на автора дополнения сбрасывать ответственность, которую вы берёте на себя, когда соглашаетесь на ту или иную работу!
P.S. Это всё, что я могу сказать вам. Больше отвечать не стану.
Интересует именно клиентская часть — отправка файла при оформлении заказа в корзине. Хочу купить компонент. По описанию вроде все подходит, но хотелось бы увидеть товар лицом, как говорится.
Подскажите, пожалуйста, должно ли формироваться превью загруженного файла и почему его может не быть?
И второй вопрос: после обновления страницы в сером блоке превью название файла меняется на хэш. Можно ли всегда отображать имя файла?