Bueditor и ImageCache мечтали ли вы об этом? Это сбылось. На сайте разработчика BUEditor появилась кнопка для вставки и редактирования изображения с выбором пресета ImageCache. Код есть для кнопок D5 и D6. Я лишь немного изменила код, так как я не использую и не планирую использовать модуль IMCE, поэтому и выкинула лишний код.
Код для D6:
php:
$filepath = url(file_directory_path());
$presets = array('' => '');
foreach (imagecache_presets() as $preset) {
$presets[$preset['presetname']]= $preset['presetname'];
}
$presets = drupal_to_js($presets);
return "js:
var form = [
{name: 'src', title: 'URL Изображения', required: 1},
{name: 'preset', title: 'ImageCache', type: 'select', options: $presets},
{name: 'alt', title: 'Альтернативный текст', required: 1}
];
E.tagDialog('img', form, {title: 'Вставить/редактировать изображение', submit: function(tag, form) {
var ps = form.elements['attr_preset'];
var url = form.elements['attr_src'];
var fp = '$filepath';
if (ps.value) {
url.value = fp +'/imagecache/'+ ps.value + url.value.substr(fp.length);
ps.value = '';
}
E.tgdSubmit(tag, form);
}})";
Все тоже «НО» для кнопки изображения — все еще не вставляет ссылку на это изображение.
В оригинале и для D5 смотрите на сайте разработчика BUEditor'а.
UPD (20-05-2010): Вы так же можете скачать код, для более удобного использования.
Во вложении вы найдете:
- оригинал + IMCE (Improved version for 6.x-2.x)
- переделанный мной код для использования без IMCE (отображает все пресеты)
- переделанный мной код для использования без IMCE (отображает только указанные пресеты)
- и оригинал + IMCE (для Drupal 5 версии)
Комментарий над надо кодом разъясняет, какой код для чего.
Также может быть полезно…
21 Комментарий [Нет новых]
Спасибо. Это действительно интересно. Вот только у меня вопрос появился — откуда берётся в итоге пресет для изображения, если мы его (изображение) не загружаем на сайт? Ведь мы указываем только ссылку на картинку, которая будет грузиться с другого сайта. Или я что-то неправильно понимаю?
И ещё. Мне кажется, было бы логичным ограничить выбор пресетов. К примеру, я на своём сайте использую для разных целей штук семь пресетов, но хочу, чтобы посетители могли в своих комментариях выбирать только один из двух, которые я специально для них сделаю. Это реально?
Хмм… Для удаленных изображений ImageCache не работает, поэтому не сработает и кнопка.
Так что сначала нужно загрузить изображение по-друпальски, после чего скопировать ссылку на него, типа 
/sites/default/files/image.extи все происходит как надо.Да, это реально. Для этого нужно в опциях вместо
$presetsуказать те пресеты, которые вам нужны в редакторе и убрать генерацию массива вначале кода. Или заполнить массив вручную, что гораздо проще.P.S.: И прошу прощения, в коде была ошибка, материал обновлен.
Запись снова обновлена.
а как сделать, чтобы большая картинка с другого сервера, вставленная пользователем, автоматически уменьшалась до нужного размера?
Тогда лучше использовать Image Resize Filter и будет достаточно просто указать ширину и/или высоту желаемого изображения. Пример вы уже видите.
проверка:
спасибо, но все осталось как и было - я вам большую картинку, а вы вынуждены изменять её в ручную.
Хочется, чтоб автоматически это происходило!
в голову приходит такая идея - сделать чтобы движок брал тэг имг в комментарии пользователя, и автоматически подставлял width="500" например
Так ручками же надо вписать любой размер изображения хоть 500 хоть 200… 100
это известно, речь об удобстве для пользователя.
ведь по сути - лажа, что пользователю приходится вводить какие-то цифры, да ещё и тэг alt заполнять.
ищу решение на эту шляпу, думал вы мож что подскажите.
В общем, будем искать!
Если вам нужен единственный размер изображения и вы используете bueditor, то тут я тоже проблемы не вижу, задайте по умолчанию это значение вот и все. Либо несколько размеров можно в выпадающем списке задать… хотя…это дико вообще, что пользователи не утруждают себя элементарным заполнением формы. Вот раньше вообще все от руки писалось
и ничего картинки в материалах не огромные. WYSIWYG не сразу появились.
а вот и не дико)
вы же сделали чтобы аватары автоматически масштабировались, чтобы избавить пользователя от необходимости искать аватрар нужного размера, вручную его обрезать.
это естественно, отец вырастил яблоню, а нам надо только яблоко сорвать и наслаждаться.
Палец о палец не ударить и яблочек сладких поесть… и это естественно? Хоть что-то, а сделать придется…
P.S.: аватары обрезаются лишь для гармоничности.
у каждого своя работа - он яблок поел, да пошел железную дорогу строить
а сайты пусть умельцы делают
В любом случае, если вам нужен определенный размер(ы), не вижу препятствия вставить это в код кнопки.
да, спасибо за участие!
о майн гад!
а не подскажете как изменить код кнопки вставки изображения, чтобы задать фиксированную ширину, ну например 400px?
var B = eDefBrowseButton('/?q=imce/browse', 'attr_src', 'Browse', 'image');
var form = [
{name: 'src', title: 'Адрес изображения', suffix: B},
{name: 'width', title: 'Ширина x Высота', suffix: ' x ', getnext: true, attributes: {size: 3}},
{name: 'height', attributes: {size: 3}},
{name: 'alt', title: 'Альтернативный текст'},
];
eDefTagDialog('img', form, 'Вставить/Редактировать изображение', 'Вставить');
Подскажу! Нужно просто добавить атрибут
valueи задать значение, получится вот так:{name: 'width', title: 'Ширина x Высота', suffix: ' x ', getnext: true, attributes: {size: 3, value: '400'}},
Большое вам спасибо! Это прекрасно!
Спасибо за модернизацию кнопки. Но можно ли ваше решение дополнить вставкой ссылки на исходное изображение, чтобы вместе с уменьшенным изображением также вставлялась и ссылка на оригинальное изображение?
Если это вопрос, можно ли. То ответ — да. Это не мое решение, я только изменила чуть-чуть.
Если это вопрос как это сделать, про пройдите, на сайт разработчика по ссылке в посте, там в комментариях есть подсказка.
И еще там есть вариант этой кнопки для D7.
Что ты об этом думаешь?