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

Аватар пользователя SaBoNim

Скачала модуль 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

Модули и темы:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя worona
worona 10 лет назад

Полностью согласен.
Пользуюсь и радуюсь.

Аватар пользователя restyler
restyler 10 лет назад

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

Аватар пользователя НовичОК
НовичОК 10 лет назад

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

Аватар пользователя worona
worona 10 лет назад

Странно, у меня в Опере работает.

Аватар пользователя UrbanRider
UrbanRider 10 лет назад

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

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

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

Аватар пользователя Shelendor
Shelendor 10 лет назад

а где его можно в работе посмотреть?

Аватар пользователя worona
worona 10 лет назад

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

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

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

Аватар пользователя SaBoNim
SaBoNim 10 лет назад

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

Аватар пользователя worona
worona 10 лет назад

У меня работает в BB

Аватар пользователя SaBoNim
SaBoNim 10 лет назад

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

Аватар пользователя SaBoNim
SaBoNim 10 лет назад

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

Аватар пользователя worona
worona 10 лет назад

Что, извините? И где?

Аватар пользователя restyler
restyler 10 лет назад

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

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

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

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

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

Аватар пользователя AlterEgoEast
AlterEgoEast 10 лет назад

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

Аватар пользователя Гость
Гость (не проверено) 10 лет назад

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

Аватар пользователя iex
iex 10 лет назад

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

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

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

Аватар пользователя Сет
Сет 10 лет назад

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

Аватар пользователя Гость
Гость (не проверено) 10 лет назад

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

Аватар пользователя beerman
beerman 10 лет назад

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

Аватар пользователя anreyyyy
anreyyyy 10 лет назад

УРРРА!! нашел то что давно искал ))))))))

Аватар пользователя wp
wp 10 лет назад

Не работает в 6-м Друпале.. Мечты разбиты..

Аватар пользователя Wincert
Wincert 10 лет назад

Unable to create a directory structure for your images.

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

Аватар пользователя kiev1
kiev1 10 лет назад

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

Аватар пользователя kiev1
kiev1 10 лет назад

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

Аватар пользователя Химический Али
Химический Али 10 лет назад

В ридми к FckEditor инструкция по настройке. все там прелестно вставляется.

Аватар пользователя kiev1
kiev1 10 лет назад

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

Аватар пользователя Химический Али
Химический Али 10 лет назад

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

Аватар пользователя kiev1
kiev1 10 лет назад

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

Аватар пользователя Trina04
Trina04 9 лет назад

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

Error while uploading file!

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

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

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

Аватар пользователя Химический Али
Химический Али 9 лет назад
Trina04 написал:
Куча всего сделали разработчики но всю кучу портят такие мелкие вещи.

ВОзьмите Joomla

Аватар пользователя homutovsky
homutovsky 9 лет назад

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

Аватар пользователя keyjey
keyjey 9 лет назад

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

Аватар пользователя PGorlov
PGorlov 9 лет назад

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

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

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

Аватар пользователя PGorlov
PGorlov 9 лет назад

Вобщем с кириллицей нашел решение, на абсолютную верность не претендую, так как опыта мало, но теперь во всяком случае свою работу он делает на 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 9 лет назад

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

Аватар пользователя Antoniy
Antoniy 9 лет назад

Спасибо!

Аватар пользователя ivcons
ivcons 9 лет назад

Все работает хорошо, кроме Оперы. Не хочет вставлять код в текст.

Аватар пользователя ivcons
ivcons 9 лет назад

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

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 5 лет назад

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

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

Аватар пользователя iNFerNo
iNFerNo 5 лет назад

Так напиши свой модуль и будет для всех такое решение. Кто мешает...

Аватар пользователя НовичОК
НовичОК 5 лет назад

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

Аватар пользователя iNFerNo
iNFerNo 5 лет назад

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

Аватар пользователя НовичОК
НовичОК 5 лет назад

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