Поле сетки ImpressPages 4 для загрузки файла во временную папку вместо репозитория

Я создал плагин для IP 3.9, чтобы загружать видео на encoding.com и преобразовывать их в mp4, чтобы пользователям не приходилось беспокоиться о формате видео для использования на своих сайтах html5.

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

В новом классе Impress Pages 4 Grid элемент element_file был заменен на поле RepostoryFile, и он напрямую загружает файл в основной репозиторий (не позволяет выбрать место назначения), что делает незакодированное видео доступным для пользователя.

Есть ли способ переопределить это поведение без изменения основных файлов?

или есть способ сказать репозиторию не показывать эти файлы, пока они не будут закодированы (например, флаг видимости)?

или я могу создать собственный тип поля из плагина?


person jeruki    schedule 02.05.2014    source источник


Ответы (1)


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

Ввод файла, который сохраняет файлы в папку tmp, будет полезен для других. Так что вы тоже можете внести свой вклад в ядро.

person Mangirdas Skripka    schedule 02.05.2014
comment
На самом деле я это исправил, я продублировал код в Ip\Internal\Grid\Model\Field\RepositoryFile и поместил его в File.php в том же месте, изменил имя класса на File и в методе создания объявил $field = new \Ip\Form\Field\File(...) вместо \Ip\Form\Field\RepositoryFile. Вместо этого файл был сохранен в file/secure/tmp, мне просто пришлось удалить код, связанный с ограничением файла. Это правильное место для сохранения? - person jeruki; 03.05.2014
comment
Звук очень хороший. Должен быть идеальным. ожидание запроса на вытягивание на GitHUB - person Mangirdas Skripka; 03.05.2014
comment
Загрузка файла работала нормально, но интерфейсная часть формы немного проблематична, поле «Форма файла» не имеет представления для редактирования, поэтому, когда я использую его в сетке и нажимаю «Изменить», я получаю только кнопку загрузки и никаких других признаков того, что файл уже загружен, я попытался скопировать код просмотра репозиторияFile.php в Ip/Form/Field/adminView/file.php, и это сделало имя существующего файла под кнопкой, но ' x' рядом с ним не удаляет файл, также проверка вызывает некоторые проблемы. Что еще я могу изменить, чтобы заставить его работать, скажем, передать массив допустимых расширений? - person jeruki; 03.05.2014
comment
Вероятно, это означает, что Ip\Form\Field\File не готов к редактированию. Он не работает не потому, что вы что-то сделали не так, а скорее всего потому, что он сам не реализован. - person Mangirdas Skripka; 04.05.2014
comment
Я вижу, в этом случае мне придется добавить эту функциональность, я думаю. - person jeruki; 05.05.2014
comment
Да, потому что в моих руках решение для электронной коммерции. - person Mangirdas Skripka; 05.05.2014