Не работает загрузка файлов в настройках плагина
Исходя из документации:
https://developers.webasyst.ru/cookbook/plugins/pl...
достаточно добавить
'icon' => array(
'title' => _wp('Icon'),
'description' => _wp('Upload a 16*16px large icon file.'),
'control_type' => waHtmlControl::FILE,
),
и все заработает, однако на практике не происходит, и форма запрашивается как и без файла по AJAX что соответсвено передается без всяких файлов, что то нужно еще где то настроить, указать, ударить в шаманский бубен?
13 ответов
Up
Загрузка файлов из админки - это довольно сложная техническая задача в вебасисте. Нужно очень глубоко покопаться в движке, чтобы с этим разобраться. Либо просто скопипастить часть кода с другого плагина, который это умеет. Думаю тут у каждого разработчика свои рецепты.
Тогда вопрос к WebAsyst будет ли подвижки в данном направление, в идеале исправление функционала чтобы он работал из коробки, на худой конец "правильная" инструкция как нужно делать?
Просто ломать голову над загрузкой файлов в 21 веке, причем в фремеворке, думаю как то не правильно.
Можно не AJAX хотя бы простую загрузку реализовать.
Посмотрите https://developers.webasyst.ru/features/upload/ для справки и далее в самом плагине добавляете saveSettings() и пишете обработчик
в saveSettings не передаются файлы, так как у вас сделано ajax сохранение
У них не аякс сохранение, а iframe transport
ok сейчас проверим
В saveSettings все прекрасно ловится. Но там куча нюансов.
Не получается. идем по порядку:
Использую плагин, в нем 'custom_settings' => true,
форма естественно
<form action="?module=plugins&id=actions&action=save" method="post" id="plugins-settings-form" enctype="multipart/form-data">
Поле
<input type="file" name="test_image">
Для отладки в saveSettings
В итоге нажимаем сохранить, и по отладке видим что файлы не передаются:
Можно конечно убрать id у формы и забыть все это как страшный сон вернувшись к простой обработке без всяких iframe_transport но для чего то он же был сделан? Как все таки заставить его работать?
Вы не правильно именуете поля формы. Если имена не подходят под определенный шаблон, вебасист их отбрасывает.
Копните обработчик форм немного глубже, поймете как он работает.
Да вот и не хотелось бы копаться в коде фрамеворка, проще тогда самому сделать как обычную загрузкую файлов.
Думаю тут в этом месте затык:
как установить useIframeTransport я не увидел
если шаблон настроек кастомный, то думаю нужно добавить туда скрипт:
Вышло обновление фреймворка с исправлением этой ситуации. Проверьте, пожалуйста, сохранилась ли у вас проблема.