Поиск сообщества
Показаны результаты для тегов 'файл'.
Найдено: 11 результатов
-
-
-
Приложение позволит пользователям покупать файлы другим пользователям в подарок. Новая опция выбора пользователя добавится на странице оформления заказа. Просмотр полной приложение
-
[Локализация] Русский язык для Give Someone A Gift File
Кирилл опубликовал тема в Приложения и плагины
Русский язык для Give Someone A Gift File Просмотр файла Русский язык для приложения Добавил Кирилл Добавлено 20.04.2021 Категория Локализация -
-
Приложение добавит функцию часто задаваемых вопросов в файлы приложения Загрузки, что поможет сократить количество запросов на поддержку, если что-то не понятно пользователю. Автор файла и модераторы (при наличии соответствующего разрешения) могут управлять вопросами и ответами. Настройки: Вопросов на странице при просмотре файла. Категории, в которых можно настраивать FAQ.
-
Приложение добавит функцию часто задаваемых вопросов в файлы приложения Загрузки, что поможет сократить количество запросов на поддержку, если что-то не понятно пользователю. Автор файла и модераторы (при наличии соответствующего разрешения) могут управлять вопросами и ответами. Настройки: Вопросов на странице при просмотре файла. Категории, в которых можно настраивать FAQ. Просмотр полной приложение
-
-
Плагин добавляет буквенный фильтр для фильтрации файлов по первой букве в названии. Фильтр отображает на странице категории (просмотр списка файлов). Просмотр полной приложение
-
Чтобы разрешить загрузку файлов в вашем коде, вы должны использовать класс \IPS\Helpers\Form\Upload внутри Помощника формы. Администратор имеет возможность контролировать как хранить различные типы файлов - из-за этого использование поля Upload немного сложнее, чем большинство других типов форм. Расширение FileStorage Вы должны создать расширение FileStorage в своем приложении, которое в основном используется для предоставления обратных вызовов для поиска файлов, загружаемых вашим полем. Для начала создайте файл расширения FileStorage с помощью Центра разработчика для вашего приложения. Файл скелета будет создан в директории applications/app/extensions/core/FileStorage с кодом примером. Вам нужно будет предоставить код для всех методов. Например, если вы сохраняете каждый файл в строке в таблице базы данных, код может выглядеть примерно так: <?php namespace IPS\forums\extensions\core\FileStorage; class _Key { /** * Count stored files * * @return int */ public function count() { return \IPS\Settings::i()->setting_key ? 1 : 0; } /** * Move stored files * * @param int $offset This will be sent starting with 0, increasing to get all files stored by this extension * @param int $storageConfiguration New storage configuration ID * @param int|NULL $oldConfiguration Old storage configuration ID * @throws \Underflowexception When file record doesn't exist. Indicating there are no more files to move * @return void */ public function move( $offset, $storageConfiguration, $oldConfiguration=NULL ) { $thing = \IPS\Db::i()->select( '*', 'my_table', 'image IS NOT NULL', 'id', array( $offset, 1 ) )->first(); \IPS\Db::i()->update( 'my_table', array( 'image' => (string) \IPS\File::get( $oldConfiguration ?: 'app_Key', $thing['image'] )->move( $storageConfiguration ) ), array( 'id=?', $thing['id'] ) ); } /** * Check if a file is valid * * @param \IPS\Http\Url $file The file to check * @return bool */ public function isValidFile( $file ) { try { \IPS\Db::i()->select( 'id', 'my_table', array( 'image=?', $file ) )->first(); return TRUE; } catch ( \UnderflowException $e ) { return FALSE; } } /** * Delete all stored files * * @return void */ public function delete() { foreach( \IPS\Db::i()->select( '*', 'my_table', "image IS NOT NULL" ) as $forum ) { try { \IPS\File::get( 'app_Key', $forum['image'] )->delete(); } catch( \Exception $e ){} } } } Однако, соответствующий код для использования будет зависеть от природы того, как хранятся файлы, созданные вашим контентом. Создание элемента формы При создании элемента вы должны указать параметр $options, указав только что созданное расширение. Например, код для создания вашего элемента будет похож на этот: $form->add( new \IPS\Helpers\Form\Upload( 'my_upload_field', NULL, TRUE, array( 'storageExtension' => 'app_Key' ) ) ); Доступны дополнительные опции, позволяющие загружать несколько файлов, ограничивать разрешенные расширения, максимальный размер файла и многое другое. Смотрите исходный код класса для всех доступных опций. Обработка данных Возвращаемое значение будет объектом класса \IPS\File (или массив объектов \IPS\File, если поле допускает загрузку нескольких файлов). Вам не нужно ничего делать с самим файлом, поскольку он уже был сохранен в соответствии с предпочтениями администратора. Тем не менее, вам нужно сохранить URL-адрес (который вы можете получить путём преобразования объекта \IPS\File в строку), поскольку это то, что вам понадобится получить и манипулировать файлом позже, и использовать внутри созданного вами расширения ранее. Например, ваш код может выглядеть так: $form = new \IPS\Helpers\Form; $form->add( new \IPS\Helpers\Form\Upload( 'my_upload_field', NULL, TRUE, array( 'storageExtension' => 'app_Key' ) ) ); if ( $values = $form->values() ) { \IPS\Db::i()->insert( 'my_table', array( 'image' => (string) $values['my_upload_field'] ) ); } Манипулирование файлом позже Чтобы вернуть объект \IPS\File позже, вы должны вызвать: $file = \IPS\File::get( 'app_Key', $url ); Первый параметр является вашим расширением, а второй - URL-адресом, который вы получили при сохранении формы. Затем вы можете использовать этот объект, чтобы получить содержимое файла, удалить его и т.д. Смотрите PhpDocs в \IPS\File для получения дополнительной информации о том, что вы можете делать с файлами. Если это файл изображения, вы также можете создать объект \IPS\Image для изменения размера, добавления водяного знака и т.д. Для этого вы должны вызывать: $image = \IPS\Image::create( $file->contents() ); Смотрите PhpDocs в \IPS\Image для получения дополнительной информации о том, что вы можете делать с изображениями.