Мечта об удобной вставке картинок в текст

Аватар пользователя SaBoNim SaBoNim 25 ноября 2007 в 3:00

Скачала модуль Image Picker, по совету в http://drupal.ru/node/6108 со страницы http://www.tonyspencer.com/2007/08/15/finally-a-good-image-upload-module...
Очень довольна. Это именно то, что я хотела видеть в Drupal. Изображения с превью вставляются в контент, при этом есть гибкая система настройки показа.
Потом может переведу что он там сказал, просто пока времени нет.
---------------------------------------------
---------------------------------------------
Перевод вышеуказанной страницы и файла Readme:
После того как я попробовал все доступные модули Drupal, а также их сочетания для загрузки изображений, я был разочарован и решил разработать собственный. Мне нужно было:
* Загружать изображение
* Превью, создающиеся автоматически
* Указывать изменение размера для одного или обоих превью и большого изображения
* Выбирать изображения из загруженных ранее, указывать выравнивание, атрибут alt, ссылку на свойства, и чтобы HTML код создавался автоматически на месте текущей позиции курсора.

Мне нравится функция загрузки изображений, встроенная в Wordpress, но ему не хватает некоторых вещей:
1. Изменение размера превью недоступно, и оно очень маленькое
2. Нельзя изменить размер основного изображения после загрузки, поэтому, если у вас очень большое изображение с цифровой камеры, Вы не сможете сделать нормальный размер для Интернета
3. Нельзя в WP выравнивать картинку по левому и правому краю, что я часто делаю в своих постах и сайтах Drupal.

Поэтому я разработал этот новый модуль загрузки изображений - Image Picker, работающий как загрузка изображений в Wordpress, но со всеми расширениями, нужными мне.

Для получения дополнительной информации по использованию см. readme файл в модуле. Этот модуль только для Drupal 5.xx.

Файл readme:
1. Установка
Положите папку imagepicker в папку modules. Войти на сайт как админ и перейдите на страницу Модули. Включите Imagepicker. Модуль создаст структуру каталогов в папке файлов (настраивается через Админка> Настройка> Файловая система) и все картинки будут сохраняться в них в зависимости от имени пользователя, который загружает изображение.

ПРИМЕЧАНИЕ: Если вы установите Imagepicker, не рекомендуется менять путь к папке файлов. Но если вы сделаете это, убедитесь, что вы скопировали весь каталог изображений созданный Imagepicker.

2. Активация imagepicker
Только пользователи, которые имеют права пользоваться фильтром Full HTML смогут использовать imagepicker. Так потому, что Imagepicker использует HTML код, недоступный, если пользователь не будет использовать этот фильтр. Если вы хотите, чтобы Imagepicker модуль использовался для остальных пользователей, вам придется перенастроить фильтры.

3. Настройка фильтров
Выберите Админка> Настройка > Форматы ввода. Вы увидите список всех имеющиеся фильтров на сайте. Выберите Full HTML и нажмите настроить. В поле Роли выберите все роли которым вы хотите дать доступ к этому фильтру и сохраните конфигурацию. Чтобы увидеть эти изменения нужно очистить кэш меню (след. пункт), в противном случае, вы увидите страницу «Доступ запрещен» вместо Imagepicker.

4. Очистка кэша меню
Войдите на страницу управления базой данных и очистите таблицу cache_menu. Конечно, вы можете использовать функции очистки кэша в Drupal, так что выбор за Вами. Еще один простой способ очистить кэш меню: выберите Админка> Конструкция> Меню, а затем «Добавить пункт меню» и нажмите на кнопку «Отправить» без добавления пункта меню. Это восстановит меню Drupal. Странно, да? Но это Drupal, он имеет много функций, которые даже не нужны ... Во всяком случае, этот способ не работает все время, так что лучший вариант состоит в том, чтобы сделать это прямо в базе данных.

5. Использование Imagepicker
Войдите под любым пользователем с правами использовать фильтр full HTML. Перейти к страницу Создать материал> Story. Под телом ноды вы должны увидеть область Imagepicker модуля. Выберите картинку с компьютера, введите максимальный размер (в пикселях) большей стороны превью, введите максимальный размер большей стороны исходного изображения, если вы хотите его масштабировать, или оставьте пустым (если не хотите изменять размер), введите название и описание и нажмите кнопку Загрузить. Если вы сделали ошибки, вы увидите сообщение об ошибке, если нет, будете перенаправлены на страницу "Вставить изображения" снова. На ней просто выберите нужные вам настройки и нажмите кнопку вставить. Вы можете изменять или удалять изображения. Попробуйте нажать на вкладку "Browse All" если вам нужна уже загруженная картинка, найдите и нажмите на нее. Фотографии расположены по дате - последние вначале.

ПРИМЕЧАНИЕ:
название изображения используется в качестве альтернативного текста и заголовка для ссылки. Описание будет использоваться только на странице изображения (imagepicker / image / {image_id}), которая создается автоматически для каждой картинки.

Совместимость с браузерами
Firefox 1,5, Firefox 2,0, IE6.5 и IE7. Во всех других браузерах - попробуйте сами, но я думаю, он должен работать с большинством из них.

Совместимость с tinyMCE
Я тестировал модуль с tinyMCE (tinyMCE версия - 2.0) и он прекрасно работает с Firefox 1,5 и 2,0. Но имеет некоторые проблемы с IE6 и IE7. В этих браузерах сначала необходимо выбрать изображение, установить все настройки. Затем нажмите в текстовой области редактора tinyMCE и лишь затем нажмите на кнопку «Insert image». После добавления изображения в tinyMCE редактор (неважно, какой браузер вы используете) курсор будет стоять перед "</a> </div>” HTML тегами. Это может вызвать некоторые проблемы, помните об этом.
----------------------------------------------
---------------------------------------------
Update: Узнала что этот модуль разместили и на Drupal.org

0 Thanks

Комментарии

Аватар пользователя restyler restyler 25 ноября 2007 в 12:05

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

Аватар пользователя НовичОК НовичОК 25 ноября 2007 в 12:42

у меня не работает в Drupal 5.3, установлен TinyMce, картинка прикрепляется, но не показывается.

Аватар пользователя UrbanRider UrbanRider 25 ноября 2007 в 23:21

не работал в опере наверно из-за отключенной ява...

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

прям как ворон старый... ни один мимо не какает =))

Аватар пользователя worona worona 26 ноября 2007 в 14:35

Похоже нигде...
Заметил интересную особенность этого модуля ( у себя)
Пользоваться им может только 1админ
Если дать права админа зарегистрированному пользователю, то все равно
модуль не будет ему доступен.
Как бы это изменить...

Аватар пользователя beerman beerman 19 марта 2008 в 15:21
worona wrote:

Заметил интересную особенность этого модуля ( у себя)
Пользоваться им может только 1админ

Господа, кто-нибудь победил этот баг?
Либо посоветуйте, плз, модуль вставки картинок, чтоб превьюшки сам создавал.

Аватар пользователя SaBoNim SaBoNim 26 ноября 2007 в 16:33

Нужно помнить, что он работает только в полном HTML, поэтому картинки у некоторых не вставляются, и поэтому пользователи не могут вставить (ведь у них полный html скорее всего отключен)

Аватар пользователя SaBoNim SaBoNim 26 ноября 2007 в 18:33

После включения модуля Image и Flash Gallery пропала страница настройки этого модуля и он появляется во всех типах материала, как исправить

Аватар пользователя SaBoNim SaBoNim 1 декабря 2007 в 23:39

Вот перевела))
----------------------
и документацию (см выше) и сам модуль (первый опыт перевода)

Аватар пользователя restyler restyler 28 ноября 2007 в 10:06

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

я не про html создаваемый, а про исходники.

Аватар пользователя UrbanRider UrbanRider 2 марта 2009 в 16:40
restyler wrote:

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

я не про html создаваемый, а про исходники.

хех, тут еще проще все объяснить, часто у разработчика наступает такой момент, что уже не важно как написано, лиж бы работало, я не говорю что это круто и так надо, но у меня часто так :)

Аватар пользователя AlterEgoEast AlterEgoEast 5 декабря 2007 в 7:17

Тема правильно названа - мечта!!!
МОдуль этот странный какой то, хотя на первый взгляд кажется удобным...
Не знаю как нужно извращаться что бы оставить его у себя..
кто то реально и успешно применяет его??

Аватар пользователя Гость Гость (не проверено) 28 декабря 2007 в 21:58

+1
Я уж лучше хостингом картинок *** буду пользоваться, чем этим модулем

Аватар пользователя iex iex 19 декабря 2007 в 13:05

Похоже нигде...
Заметил интересную особенность этого модуля ( у себя)
Пользоваться им может только 1админ
Если дать права админа зарегистрированному пользователю, то все равно
модуль не будет ему доступен.
Как бы это изменить...

- у меня такая же проблема, при этом когда я выставил все права для обычных юзверей, всё равно при добавлении материала этот модуль проявляется только у Админа.
И ещё один вопрос - а не небезопасно ли давать всем юзерам фильтр ввода full html ?

Кажется придётся отказать от этого модуля ... мда...

Аватар пользователя Сет Сет 13 января 2008 в 23:20

Вместо картинки "Full size" вставляет код с пустой ссылкой.
При загрузке изображений с русскими названиями получаются кракозябры...

Аватар пользователя Гость Гость (не проверено) 14 марта 2008 в 20:11

а я пользуюсь picamatic
никаких проблем с русским,
картинки размещаются быстро и очень удобно!
и что самое приятное - никакой надоедливой рекламы и всяких мигающих баннеров и всплывающих окошек!
советую!

Аватар пользователя beerman beerman 22 марта 2008 в 6:03

нашел причину.
Не виден юзерам в случае включения фильтра HTML или одного из фильтров lightbox
По крайней мере у меня так.

Аватар пользователя Wincert Wincert 31 августа 2008 в 0:21

Unable to create a directory structure for your images.

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

Аватар пользователя kiev1 kiev1 15 октября 2008 в 14:00

6-й друпал, FckEditor - не вставляются (((
что делать?
или в друпале до сих пор так все плохо с картинками что надо CCK image field изобретать?

Аватар пользователя kiev1 kiev1 16 октября 2008 в 3:30

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

Аватар пользователя kiev1 kiev1 16 октября 2008 в 12:41

не нашел где что настраивать, а разьве ImagePicker известен FckEditor-у?
гугль тоже ничего не знает про эту связку (((

Аватар пользователя Химический Али Химический Али 17 октября 2008 в 13:58

Нет, зато Image Assist отлитчно известен, но и без него в fck отлично настраивается свой родной вставляльщик картинок с загрузчиком.

Аватар пользователя kiev1 kiev1 19 октября 2008 в 19:49

Image Assist он вообще какой то недоделанный - во первых кусочек img_assist_fckeditor.js нужно непонятно где искать, во вторых картинку в нем неудобно вставлять - нужно делать очень много движений мышкой, тем более потом они все получаются в куче и мешают друг к другу - то есть он делает что то по подобию галереи картинок, но это никому не нужно - галерея если и нужна - то как галерея, а картинки нужны только один раз - как иллюстрации к одной статье а не хранить их все в куче непонятно зачем.

Аватар пользователя Trina04 Trina04 20 января 2009 в 4:16

Пыталась пользоваться imagepicker в 6.9

Error while uploading file!

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

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

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

Аватар пользователя homutovsky homutovsky 25 февраля 2009 в 22:12

Спасибо автору, у меня в 6,9 все работает... читайте внимательно инструкцию по установке и использованию.

Аватар пользователя keyjey keyjey 1 марта 2009 в 17:23

Скачал для 6 друпала, картинки закачиваются, но не вставляются в текст. Нажимаю Insert Image, но ничего не происходит. Что может быть?

Аватар пользователя PGorlov PGorlov 29 апреля 2009 в 19:50

На самом деле с drupal дружу, вернее пытаюсь, совсем не много, но тоже натолкнулся на подобную проблему.
Что касается модуля ImagePicker - все хорошо только до тех пор пока юзеры имеют имена (имена аккаунтов) на латинице (ну или как минимум без русских букв, т.е. цифры например), а так же имена загружаемых файлов тоже не содержат русских букв. Модуль создает папки с именами аккаунтов, в которые складывает загруженные пользователем картинки, плюс делает внутри еще несколько папок для превьюшек. Вот если в названиях картинок или имени аккаунта была кириллица, то все создается с каракулями. Отсюда и ваши пустые ссылки, я только что проверил, при формировании ссылки все каракули урезаются, вот и получается что ссылка хз на что.
Вторая неприятность, это то что даже если и получилось картинку вставить (все без кириллицы было), то не получается увязать модуль с thickbox.

собственно вот две его проблемы (по сути на вторую многие могут просто закрыть глаза):
1. не работает с кириллицей.
2. не дружит с thickbox.

А вообще мое ощущение от drupal: офигенная вещь, которую везде и постоянно портят какие-то подобные мелкие погрешности. У меня минимум знаний php, настраиваю все мышкой, редко лезу куда-нибудь в код, хотя чем дальше тем чаще... это расстраивает.

Аватар пользователя PGorlov PGorlov 30 апреля 2009 в 11:09

Вобщем с кириллицей нашел решение, на абсолютную верность не претендую, так как опыта мало, но теперь во всяком случае свою работу он делает на 100% верно.

Итак, с кириллицей он косячил дважды:

  1. при создании папки типа: "sites/default/files/imagepicker/others/ВасяПупкин" куда потом загружается картинка, и где создаются превьюшки
  2. при копировании файла с русским именем, получалось что в базу заносится только та часть которая не содержит кириллицы, а в папку ложился файл содержащий в названии каракули

Решение было такое:

  1. создавать папки для юзеров не по именам их аккаунтов, а по их uid'ам. Это единственный момент который мне не нравится в этом решении, не знаю как это может повлиять на безопасность, поправьте меня если я накосячил. В принципе можно использовать какое-нибудь другое уникальное поле юзера, можно специальное завести.
  2. при загрузки файлов убивать их текущие имена и присваивать имя типа годМесяцДеньЧасыМинутыСекунды, в этом не вижу никаких минусов, модуль показывает при выборе превьюшки, при наведении на которые отображаются введенные при загрузке заголовки, так что путаницы никакой не возникнет.

Реализация:

  1. модуль "imagepicker.module" версия файла: v 1.21 2009/03/07 11:02:47, функция "imagepicker_get_path", строка (от начала файла) 428:
    меняем с:
    $username = !is_array($userdir) ? $user->name : $userdir['name'];

    на:

    $username = !is_array($userdir) ? $user->uid : $userdir['uid'];

    (тут вот и видно что использовать можно любое другое поле)

  2. модуль "imagepicker.upload.inc" версия файла: v 1.3 2008/08/28 21:25:20, функция "imagepicker_get_uploaded_file_name" текст функции меняем с:
    function imagepicker_get_uploaded_file_name($destination, $name) {
      $fileext = imagepicker_get_uploaded_file_extension($name);
    
      if (FALSE !== strpos($_FILES['files']['name'][$name], '.')) {
        $filename = drupal_substr($_FILES['files']['name'][$name], 0, strrpos($_FILES['files']['name'][$name], '.'));
      }
      else {
        $filename = $_FILES['files']['name'][$name];
      }
    
      $file = $filename . $fileext;
      $i = 0;
      while (file_exists($destination . $file)) {
        $i++;
        $file = $filename .'_'. $i . $fileext;
      }
      return $file;
    }

    на:

    function imagepicker_get_uploaded_file_name($destination, $name) {
      $fileext = imagepicker_get_uploaded_file_extension($name);
    
      //if (FALSE !== strpos($_FILES['files']['name'][$name], '.')) {
      //  $filename = drupal_substr($_FILES['files']['name'][$name], 0, strrpos($_FILES['files']['name'][$name], '.'));
      //}
      //else {
      //  $filename = $_FILES['files']['name'][$name];
      //}
      $filename = date("YmdHis");
      
      $file = $filename . $fileext;
      $i = 0;
      while (file_exists($destination . $file)) {
        $i++;
        $file = $filename .'_'. $i . $fileext;
      }
      return $file;
    }

    Как видно я просто закомментил предложенный вариант формирования имени файла, и вставил строчку где имя формируется из текущей даты+время.

  3. Надеюсь это кому-нибудь поможет =)

Аватар пользователя 11th_level 11th_level 26 июля 2009 в 19:22

Пожалуйста, подскажите , как возможно задавать размер превью не по большей стороне, а по высоте и длине (как в модуле image)

Аватар пользователя ivcons ivcons 30 августа 2009 в 17:54

Не работает по-моему здесь:

var nodeBody = win.document.getElementById('edit-body');

insertAtCursor(nodeBody, imgpInsertion);

function insertAtCursor(myField, myValue) {
 
    //IE support
    if (document.selection) {
      myField.focus();

      //in effect we are creating a text range with zero
      //length at the cursor location and replacing it
      //with myValue
      sel = document.selection.createRange();
      sel.text = myValue;
         
    }
}

В чем проблема не пойму. Не силен в java-script

файл imagepicker.module строки 984-1041

Аватар пользователя CannibalZ CannibalZ 18 января 2013 в 12:47

Начал работать с Drupal, и понял что Joomla и WordPres сделаны программистом для людей, а не как Drupal программистом для программиста, который должен его еще и доработать. Столкнулся с множеством проблем которые вылазили из неоткуда, чего в других движках некогда не встречал. Грустно все это...
На мое мнение Drupal еще не дорос до звания "хороший, надежный, стабильный cms"

Отошел от темы, на других cms вставка картинки в текст с увеличением делается за 1 мин, тут же надо е****, и может выскочить какая-то ошибка.

Аватар пользователя НовичОК НовичОК 18 января 2013 в 17:38

Люди, которые пользуются Joomla, WordPres, Drupal в большинстве своем не программисты. Зачем советовать написать свой модуль? CannibalZ к сожалению прав.

Аватар пользователя iNFerNo iNFerNo 18 января 2013 в 23:16

Так если тебе нужен функционал которые еще нахаляву не выкинули - закажи его под свой разработку. в чем проблема то?

Аватар пользователя НовичОК НовичОК 21 января 2013 в 21:53

Ммм, ну проблема в том, что в WordPress такой функционал уже есть и ничего платить не надо. А в Drupal его нет. Вот и всё.
А! Да-да. Можно заказать разработку чего угодно. Здесь вы (ты) прав(ы).
Думаю, на этом можно закончить. Нет времени на холивары.