Перейти к публикации

Вопрос про библиотеку fileuploader.js


Рекомендованные сообщения

Приветствую вас форумчане. При использовании данной библиотеки в своем плагине столкнулся с такой проблемой как невозможность вывода сообщений об ошибках в событии onComplete: function(id, fileName, response){ };  если данную ошибку обрабатывает сам плагин ( например: typeError, sizeError, emptyError ). Можно лишь заменить текст ошибки через событие messages: {}; или вообще отключить вывод этих ошибок через  showMessage: false,

Можно ли как-то заставить обрабатывать эти ошибки через onComplete: function(id, fileName, response){ }; чтобы я мог повесить их там на функцию DLEPush? Или других вариантов чтобы разрешить вывод всех ошибок в событиях onComplete и onError в самом fileuploader кроме как изменяя исходный код самого плагина нету? Хотя пишут что, изменение исходного кода сторонней библиотеки не рекомендуется. Или же придется использовать плагин другого загрузчика?

Ссылка на сообщение
Поделиться на других сайтах

fileuploader.js это библиотека загрузчика файлов расположенного в DLE по адресу engine/classes/uploads/html5/fileuploader.js. Она имеет собственный вывод ошибок в случае если загрузка файла по каким либо причинам не состоялась ( их там много, но меня интересуют только typeError, sizeError, emptyError)

<script type="text/javascript" src="/engine/classes/uploads/html5/fileuploader.js"></script>
<script type="text/javascript">
$(document).ready(function(){

	var uploader = new qq.FileUploader({
        ----------- часть кода --------------                 
	onComplete: function(id, fileName, response){
            if (response.success) { 
               DLEPush.info('Файл успешно загружен', 'Удача');
            } else {
               if (response.error) {
                 if (response.error == 'big_size') {
                      DLEPush.error('Файл слишком большого размера', 'Возникла ошибка');
                 }  
               }
            }  
        },
        messages: {
            sizeError: "тут текст ошибки",
        },
		debug: false
        ----------- часть кода --------------   
    });
});
</script>

Вот кусок кода. Не пойму как можно выводить ошибки в onComplete: { }; если эти ошибки выводит сам плагин. Поменять сам текст то ошибки можно через  messages: {};

Ссылка на сообщение
Поделиться на других сайтах

О каких конкретно ошибках идёт речь ?

 

Изменено пользователем TeraMoune
Ссылка на сообщение
Поделиться на других сайтах

Например если пытаться залить файл большего размера чем допустимо, то ошибку выведет событие messages: {}; в всплывающем окне. Так как я понимаю что пример такой ошибки обрабатывает сам плагин через например sizeError. Надо же попытаться вывести ее как то в событии onComplete: { } Удаление messages: {}; из скрипта ничего не дает. Запрет вывода ошибок через showMessage: false, тоже. Через событие onComplete: { } получается вывести лишь ту ошибку которой нет в ошибках плагина: к примеру если соотношение сторон изображения не соответствуют допустимым 

Изменено пользователем dds
Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, dds сказал:

Так как я понимаю что пример такой ошибки обрабатывает сам плагин через например sizeError.

В message описываются шаблоны ошибок и базовые ошибки которые будут перехвачены скриптом, сами ошибки обрабатывались в функции showMessage и эта функция как раз вызывала другую функцию (этого самого окна) то есть окно даже не принадлежит загрузчику.

showMessage:function(a){
  parent.DLEalert(a,"info")
}

Это код из файла fileuploader.js, все любые ошибки которые не перехватываются как раз обрабатываются в функции onComplete по тому принципу который вы хотели, проверяя response.error и определяя условием какая ошибка и действие для этой ошибки.

Так что в showMessage надо прописать другую функцию, но а в message свести уведомления до кодов (вместо текста: Файл {file} имеет неверное расширение. Только {extensions} разрешены к загрузке.) написать что-то вроде file_extensions_err и внутри функции showMessage сделать условия проверяющие входной параметр на соответствие. Но вот как вы будите определять конкретику ошибок я не знаю. Если вы поменяете текст уведомления в message на простые коды для условий вы потеряете детали ошибки по типу (какие расширения допускаются, или до какого размера файла ограничение)

Наверное проще уже подставить одну функцию какую-то, и чтобы message оставался таким какой есть, и в функцию просто отправлялся текст ошибки.

Изменено пользователем TeraMoune
Ссылка на сообщение
Поделиться на других сайтах

Понял. Спасибо большое

То есть хочешь, не хочешь, а ковырять код fileuploader.js придется?

Изменено пользователем dds
Ссылка на сообщение
Поделиться на других сайтах

fileuploader.js устаревший загрузкчик, больше не используется DLE. А DLEPush функции актуальных версий DLE. Переводите свой плагин на работу с новым загрузчиком, там вы можете управлять выводом ошибок как вам угодно и по своему желанию.

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

Ссылка на сообщение
Поделиться на других сайтах

Спасибо за ответ. Решил сделать  плагин  с применением функции DLEPush и столкнулся с данной проблемой.

Изменено пользователем dds
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...