Drupal → Модуль One Click Upload — простая заливка файлов в текст

02.04.2011

One Click Upload — это модуль быстрой загрузки файлов в BUEditor, CKEditor и обычные textarea.

Модуль представляет из себя кнопку на панели редактора, клик на которой вызывает диалог выбора файлов. После выбора файлов и загрузки их на сервер, в редактор вставляется шаблон, соответствующий расширению файла. Например если была загружена картинка, то в редактор вставится код:

<img src="/sites/default/files/public/usergen/old/images/image.jpg" alt="" />

Если был загружен текстовый файл, то вставленный код будет:

<a href="/sites/default/files/public/usergen/old/file.txt">file.txt</a>

Возможности

  • Загрузка картинок и вставка html кода прямо в редактор.
  • Поддержка стилей изображения (Image Style) (скриншот).
  • Загрузка файлов и вставка в редактор ссылки на файл.
  • Мультизагрузка файлов и картинок.
  • Drag&drop файлов на кнопку редактора и на сам textarea (версия 2.x).
  • Редактируемые html шаблоны, которые вставляются в редактор после загрузки файла (скриншот).
  • Настройка разрешений для каждого шаблона (скриншот).

Видео демонстрация

Живое демо с версией 1.x.

Скриншоты

Установка

Установка модуля

  1. Распаковать архив с модулем в sites/all/modules
  2. Включить модуль One Click Upload
  3. (только для версии 1.x) Скачать SWFUpload v2.2.0.1 Core, распаковать архив в sites/all/libraries и переименовать папку SWFUpload v2.2.0.1 Core в swfupload. После этого, основной файл swfupload.js должен быть доступен по адресу sites/all/libraries/swfupload/swfupload.js (проверьте в браузере).

    Drush пользователи могут воспользоваться командой drush ocupload-dl-library

Интеграция с модулем BUEditor

  1. Открыть страницу настроек BUEditor — admin/config/content/bueditor
  2. Кликнуть по ссылке Edit напротив используемого редактора.
  3. Добавить новую кнопку с кодом js: E.showFileSelectionDialog(); (не изменяйте этот код!) (скриншот).
  4. Сохранить изменения.

Интеграция с модулем CKEditor (не с модулем Wysiwyg)

  1. Открыть страницу настроек CKEditor — admin/config/content/ckeditor
  2. Кликнуть по ссылке edit напротив используемого редактора.
  3. В секции Editor appearance, в поле Toolbar, переместить иконку One Click Upload из All buttons в Used buttons (скриншот до, скриншот после).
  4. В этой же секции, ниже, в поле Plugins, отметить плагин One Click Upload (скриншот).
  5. Сохранить изменения.
  6. Очистить кэш браузера.

Интеграция с модулем Wysiwyg + CKEditor 4

  1. Открыть страницу настроек модуля Wysiwyg — admin/config/content/wysiwyg
  2. Кликнуть по ссылке Edit напротив используемого редактора.
  3. Раскрыть группу Buttons and plugins и отметить кнопку One Click Upload.
  4. Сохранить изменения.

Важно: версия 1.x не работает в режиме техобслуживания (Maintenance mode).

Если модуль не работает

В комментариях или через обратную связь, оставляем:

— подробное описание ошибки
— ссылку на скриншот
— при каких обстоятельствах появляется ошибка
— содержание консоли ошибок javascript
— содержание системного журнала Drupal (watchdog)
— содержание error.log вашего сервера
— версию Drupal
— версию модуля BUEditor (если установлен)
— версию модуля CKEditor и версию самого редактора (если установлен)
— версию модуля Wysiwyg (если установлен)
— дату сборки модуля One Click Upload
— название и версию браузера
— название и версию ОС

Все просьбы о помощи без этих данных будут игнорироваться.

Написанное актуально для
Drupal 7
Похожие записи

Комментарии

Здравствуйте!
В редакторе Ckeditor drupal 7 есть кнопка One click upload. Когда наведете мышку на эту кнопку отображается значение этой кнопки "Upload file". Хотела перевести эту подсказку на русский язык через Перевод интерфейса - Перевести - Upload file. Раньше перевод отсутствовал, но добавила. Очистила кеш, сделала крон, также очистила кеш браузера, но подсказка Upload file все еще не перевелась на русский.
Пожалуйста подскажите как можно чтобы подсказка отображалась на русском. Спасибо.

всё сделали правильно, фраза должна была перевестись

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

Здравствуйте.Модуль отличный все работает.Мне бы хотелось узнать, можно ли накладывать водяной знак на картинки добавленные с помощью этого модуля?Поставил imagecache_actions-7.x-1.3 ,Пытаюсь создать тему на форуме, редактор ckeditor 4, когда нажимаю фото загрузить на картинке водный знак есть, нажимаю сохранить выдает ошибку
Warning: explode() expects parameter 2 to be string, array given в функции menu_node_submit() (строка 722 в файле C:\Documents and Settings\semdvadzat\modules\menu\menu.module).
и фотки не отображается совсем

Спасибо.Отключил Hierarchical Select Menu ошибка пропала, но картинка почему то перестала через ваш модуль добавляться, хотя до экспериментов с водными знаками все было отлично.Для меня это не страшно могу все вернуть назад.Подскажите с помощью стандартных настроек модулей, должен у меня watemark накладываться на картинку добавленную через ваш модуль или нет?

если картинка выводится с помощью стиля то зависит от стиля, если нет, то не должен

Если я правильно понимаю стиль картинки определяет imagecache, а это значит что у меня все должно получиться.

Извиняюсь за назойливость.Только, что попробовал на рабочем сайте просто добавить картинку с помощью модуля, оказалось та же история. нажимаю добавить, картинка появляется в редакторе, нажимаю сохранить, комментарий сохраняется, но без картинки, она куда то исчезает.Подскажите с чем может быть связано, значит дело было не в watemarke.На демо версии работы модуля пробовал, там картинка остается.Может я какую нибудь настройку упустил?

Прошу прощения.Оказывается. если стоит режим ввода Filtered HTML картинка не добавляется, а вот если ставлю Full HTML то картинка на сохраняется как надо, правда с watemark еще не пробовал.Если так оставлять, то вроде Full HTML не безопасный фильтр и рискованно его оставлять для пользователей?

В режим ввода Filtered HTML не стоял тег img, поставил, теперь все как надо, все работает так как мне было надо.Только начала появляться ошибка Warning: array_merge() [function.array-merge]: Argument #1 is not an array в функции image_styles() (строка 582 в файле /home/u9163/domains/friends-motors.com/modules/image/image.module). Подскажите критично это или нет и возможно ли совсем убрать ошибку?

Спасибо за модуль. Установил его для загрузки картинок в BuEditor загружает отлично, но одна проблема - то загружает в теге , то ссылкой с классом colorbox, внутри и возможностью просмотра через colorbox, но делает это по своему усмотрению одну и ту же картинку раз так загрузит, раз так. Можно ли как нибудь выбирать как мне надо через калорбокс или статичную картинку?

Добрый день. Недавно обновил Drupal до версии 7.22 и у меня переслав работать One click upload. При загрузке изображения показывается "пустая картинка" - такой маленький квадратик, который показывает, что по ссылки нету запрашиваемого файла в директории /sites/default/files/styles/large/public/images/ . Опытным способом установил, что если загрузить картинку через модуль и скопировать ее новое имя (ее конечно в директории не будет) и загрузить через FTP в эту директорию это же изображение вручную с новым именем, которое сгенерировал друпал (или модуль), то все отображается. Складывается впечатление, что при загрузке через One click upload изображение тут же удаляется. Вот только непонятно почему.

Спасибо, все работает. Почему-то не сверил версии модуля.

Антон
17.07.2013, 13:29

Доброго времени суток. Столкнулся с ошибкой работы модуля на одном сайте, не могу понять в чем проблема.

Сразу вопрос: модуль работает на доменах РФ?

При загрузке файла модуль выдает ошибку "Error -220: Error #2038".
Версия Drupal 7.22, версия модуля 1.5. Библиотеку переустанавливал. Кэш чистил.
Сайт не на обслуживание, в рабочем режиме.
Права проверял.

Думаю что проблема может быть в рф домене.
Также на этом сайте не работает elfinder (бесконечно грузиться, пытается отобразить содержимое каталога).

Подскажите куда копать. Заранее спасибо.

на доменах рф не проверял. копать в сторону логов

Гость
30.07.2013, 17:46

Тоже .рф домен и тоже ошибка 2038 :-(

Гость
15.08.2013, 20:51

Спасибо больше автору, все понятно и доступно. все заработало.

Дмитрий
17.08.2013, 12:35

При просмотре на iphone , кнопка не активна, в силу понятных причин, есть какое то решение с html5 file uploaderом ?

я думаю в восьмёрке откажусь от флэша.
сейчас решения нет

Антон
20.08.2013, 04:44

На счет доменов .рф

Единственное, что пока у меня заработало, это файловый менеджер elfinder с доработанной библиотекой

Меня устроило

Гость
16.09.2013, 12:42

А среди подстановочных шаблонов для пути загрузки нет поддержки "тип материала"?

Павел
26.09.2013, 11:31

Добрый день!
Столкнулся со следующей проблемой: в IE 10 загрузка не работает. "прогресс бар" висит и никаких изменений не происходит. В других браузерах все загружается.
Причем такое поведение наблюдается, если использовать связку ckeditor module 7.x-1.13 + CKEditor 4.2.1. При замене редактора на CKEditor 3.6.6.1 загрузка происходит корректно.
Что знал проверил. Проверял на трех машинах. Ошибок в журналах нет. Подскажите, пожалуйста, куда копать дальше.

У меня такая проблема, загрузил картинки в тему форуме. сохранил все хорошо.Нажал кнопку отредактировать тему и все картинки в ней пропали пришлось заново их вставлять.

Когда нажимаешь кнопку изменить сообщение, происходит переход на страницу редактирования сообщения, на ней уже в поле body текст остается неизменным, а вот фотки пропадают и если нажимаешь сохранить то в сообщении уже нет картинок которые добавил ранее, приходится их заново вставлять.Использую CKEditor

это делает явно на ocupload, ищите причину

Сообщения добавляются в формате Filtered HTML, может быть дело в каком нибудь фильтре?

Гость
29.09.2013, 20:42

to shved, может формат ввода режет содержимое?

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

Artemiy-tlt
29.09.2013, 20:48

to shved, просто поставь формат ввода Full html

На первый взгляд это самое простое решение, но вроде как Full html небезопасно разрешать пользователям.Хотя на пробу можно не надолго сделать.

Сейчас попробовал.Действительно в Full html все работает так как надо.Осталось только методом исключения определить фильтр который вредит работе этого чудесного модуля.

Artemiy-tlt
29.09.2013, 20:57

Нет, разрешать пользователям использовать Full html ни как нельзя, тогда зайди Конфигурация -> Форматы ввода -> Filtered html и добавь в разрешенные тэги

Artemiy-tlt
29.09.2013, 20:59

Сообщение порезалось. Добавь тэг img

Спасибо всем за советы.Как можно определить какой тег необходимо добавить и в то же время, что бы все было безопасно?

Последнее сообщение написал с запозданием.
Тег img уже присутствует в списке
Вот все, что там есть

    Поставил пробел между тегами, но не заработало.Может есть еще какие нибудь варианты?

    Может в фильтрах проблема

    откл Показывать любой HTML как обычный текст
    вкл Ограничение на разрешённые HTML теги
    вкл Преобразовывать адреса в ссылки
    откл Обработчик PHP
    откл Display Suite evaluator
    вкл Преобразовывать переводы строк в соответствующие HTML теги (т.е. и

    )
    вкл Исправлять неправильный и обрезанный HTML

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

    ыы

    через какую то секунду он пропадает и остается только текстовое сообщение, а картинки нет.

    Код не вставился в предыдущем сообщении
    здесь я убрал из кода некоторые символы class="colorbox" ="/sites/default/files/styles/uvelichennoe_avto/public/vcommentah/20132909212408.jpg?itok=XuSy9hiH" target="_blank">

    Подскажите.Если в Full html у меня картинки при редактировании не пропадают, а в Filtered HTML пропадает.Какого тега может не хватать? Тег img на месте.

    Пока так и не смог разобраться в причине странного поведения модуля на моем сайте.Может кто из специалистов подскажет какой тег может влиять на работу One Click Upload

    Кстати, как думаете может ли быть причиной странного поведения модуля ошибка которую так же пока не получается победить? Warning: array_merge() [function.array-merge]: Argument #1 is not an array в функции image_styles() (строка 582 в файле /home/u9163/domains/friends-motors.com/modules/image/image.module).

    Ребята подскажите.Я создал новый профиль в ck editor с теми же параметрами, что и filter html и теперь картинки на странице редактирования материала не пропадают и работают как надо.В чем тогда могла быть причина неправильной работы модуля?Дело в том, что вроде бы все хорошо, но цвет фона набора текста в таком фильтре розовый и никак не удается фон изменить на белый, что то я уже запутался, что вообще происходит в сочетании editora и uploada?

    Мария
    12.11.2013, 19:44

    Добрый вечер.
    Модуль замечательный, прекрасно работает. Спасибо :)
    Но есть вопрос. Если в поле загружено через ocupload несколько изображений, как бы сделать так чтобы их все можно было пролистать в colorbox (скажем, slidshow per post)?
    Заранее спасибо.

    у всех элементов должен быть какой-то атрибут, вроде rel="gallery". смотрите документацию

    Модуль суперский - спасибо!
    Интересно, его как-то пристроить отдельно, только к полю реально?
    По принципу штатного field-image

    Столкнулся с такой проблемой. На сайте установил модуль CDN, который старые пути картинок удачно подхватил, но новые, которые создаются OCU, не подхватывает. Вся соль в этой функции:

    function _ocupload_get_local_url($uri) {
      return drupal_substr(file_create_url($uri), drupal_strlen($GLOBALS['base_root']));
    }

    Для того, чтобы CDN успешно альтерил путь, нужно возвращать следующее значение:

    function _ocupload_get_local_url($uri) {
      return file_create_url($uri);
    }

    На работоспособность модуля это не повлияло(при беглом тесте). С какой целью там возвращается относительный путь?

    с целью работы адресов при смене имени сайта

    Но это никак не влияет на запись в таблицу "file_managed" по обоим вариантам там значение сохраняется, как 'public://images/name_file.jpg'

    Гость
    07.02.2014, 14:35

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

    Гость
    07.02.2014, 14:49

    истоки задачи в желании заказчика чтобы картинки до отправки на сервер сразу пережимались до меньшего объёма как это реализовано вконтакте например и складывались в отдельный каталог

    Если у вас в Drupal пропадают файлы случайным образом - то возможно дело в данном модуле. Снимите галочку с Delete unused files. Проблема толи в том, что путь к файлам указывался через http://www.domainname, толи в обработке пробелов, которые в ссылке кодировались как %20

    I amdroid
    24.05.2014, 15:25

    Спасибо за модуль, сделано чертовски классно.
    Использую в связке с BUeditor, все работает.

    Вопрос: будет ли работать, если поместить swfupload в sites/sitename/libraries а не в all? Попробовал - не заработало, включал libraries - то же самое.

    Еще заметил странность, я использую для BUeditor нестандартные иконки кнопок, с прозрачностью. Так вот кнопка upload срабатывает только если тыкать на непрозрачную область.

    Вопрос: будет ли работать, если поместить swfupload в sites/sitename/libraries а не в all?

    нет

    Еще заметил странность, я использую для BUeditor нестандартные иконки кнопок, с прозрачностью. Так вот кнопка upload срабатывает только если тыкать на непрозрачную область.

    надо смотреть вживую

    Сергей
    22.07.2014, 10:54

    А удаляются ли картинки физически при удалении их из статьи? Или же необходимо искать и удалять файл картинки вручную?

    Сергей
    22.07.2014, 11:06

    Установив модуль, нашел ответ на свой вопрос в опции "Delete unused files".

    Сергей
    22.07.2014, 11:22

    Почему-то данная опция файлы также не удаляет. Она работает по крону или сразу после сохранения настроек?
    И еще вопрос, есть ли возможность переименовывать загружаемые файлы в транслитированный заголовок статьи (проще говоря, в то, что будет в URL), или же это невозможно из-за того, что нельзя получить этот параметр до фактического сохранения записи и вставить его в ссылку?

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

    Сергей
    22.07.2014, 11:27

    А если я тестировал загрузчик, но не сохранял запись, что тогда происходит с файлами? Сейчас, я смотрю, файлы так и не удалились.

    удаляться через определённый промежуток времени

    Роман
    29.07.2014, 23:58

    Добрый день.

    Сегодня установил этот модуль, понастраивал его с BUEditor и заметил один логический недостаток.
    А именно, если для одной роли, например, задать BBCode, а другой - HTML, то шаблоны вставляемых картинок и файлов по сути должны различаться. Например, [img]01.jpg[/img] и .
    Но возможность задать различные шаблоны для различных BUEditor - редакторов отсутствует.

    Вы не планируете эту возможность реализовать ?

    спасибо, модуль работает, но подскажите, где поискать такой момент
    при вставке картинки в коде в начале адреса появляется ?q= а в конце имени файла появляются &itok=FGHskjhf такие "добавки". хочу от них избавится.

    и так же хотелось бы понять как подставить в адрес сохранения самой картинки не общую папку а папку юзера.

    с уважением :)

    Гость
    26.02.2015, 18:57

    Выставил ограничение для размера файлов в 5MB, но файлы в 3.5MB все равно не загружаются.
    http://prntscr.com/6a3ckm
    Или нужно увеличить лимит в друпале?

    "не загружаются" в чём выражается?

    Гость
    26.02.2015, 19:36

    Никаких сообщений не выводится, просто никакой реакции.

    PS
    В php.ini поставил upload_max_filesize = 5M и перезагрузил сервер.
    Теперь все ОК.

    Игорь
    03.04.2015, 11:04

    drush ocupload-dl-library
    The drush command 'ocupload-dl-library' could not be found. Run [error]

    Игорь
    03.04.2015, 13:12

    Спасибо, xandeadx.
    p.s.: С CKEditor4 заработала только связка dev-версий wysiwyg и ocupload.

    Андрей
    04.04.2015, 16:47

    Добрый день. Спасибо вам за этот замечательный модуль...

    Возможно это баг:
    Сколько символов может помещается в поле "Link template" при активации чекбокса "Добавлять ссылку на оригинальное изображение". Как изменить размер этого поля?

    Хочу вставить в это поле следующий html код, а оно не помещается:

    <p class="rtecenter">
    <a class="zoom colorbox" href="!filepath" target="_blank">!image</a>
    <br>Нажмите на изображение для увеличения</a></p>
    Андрей
    04.04.2015, 18:22

    поставьте последнюю dev версию

    Поставил 1.7 Dev. Увы не помогло.
    В поле помещается макс. 128 символов.

    версия 1.x больше не развивается

    Андрей
    04.04.2015, 18:41

    версия 1.x больше не развивается

    Подскажите, v2.0 можно просто накатить на v1.7?
    PS
    Я владелец сайта и не имею возможности дергать программистов по мелочам.
    Спасибо заранее.

    заменить файлы, запустить update.php

    Андрей
    04.04.2015, 19:12

    заменить файлы, запустить update.php

    Все заработало, только пришлось выключить и снова включить плагин в настройках CKEditor (до этого часть кнопок в нем была заблокирована).

    Спасибо еще раз.

    Андрей
    04.04.2015, 23:35

    А почему убрали опцию автоматическое переименование имени файла в дата-время?

    Андрей
    06.04.2015, 12:14

    А почему убрали опцию автоматическое переименование имени файла в дата-время?

    Можно вернуть эту функцию в модуль?

    При включении модуля ocupload кнопки в редакторе становятся почти все не активны. Подскажите в чем дело, как решали проблему?

    Гость
    10.04.2015, 15:21

    На два сообщение выше, голову поднять трудно?

    На два сообщение выше, голову поднять трудно?
    Мне не помогло

    Была проблема, файлы не загружались на сервер.
    Помогла смена версии jquery в jquery update. Мб кому пригодится.

    Модуль работает с любой версий jQuery от 1.4.4 до 1.10 включительно.

    andreystrelkov
    23.06.2015, 09:08

    Для полного счастья теперь не хватает ещё вставки изображения из буфера обмена с последующей обрезкой перед сохранением с помощью рук человека и как бонус с возможностью выделения чего нить на изображении =)

    Добавить комментарий