xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Parser 2 и инлайновые картинки в body

Опубликовано в

В Parser 2 появилась функция parser_download_images(), которая на вход принимает html код, находит в этом коде картинки (теги img), выкачивает найденные картинки на локальный сервер, исправляет src картинок и возвращает изменённый html.

Пользоваться так — в поле пост-обработка сущности пишем:

$entity_wrapper->body->value = parser_download_images(
  $entity_wrapper->body->value->value(),
  $base_url,
  'public://images'
);

Так же появилась функция parser_download_links(), которая обрабатывает ссылки (теги a):

$entity_wrapper->body->value = parser_download_links(
  $entity_wrapper->body->value->value(),
  array('jpg', 'jpeg', 'gif', 'png'),
  $base_url,
  'public://'
);
Написанное актуально для Parser 2.x
Похожие записи

Комментарии RSS

Спасибо за отличный модуль.Подскажите пожалуйста как можно не выкачивая картинку задать ей абсолютный адрес источника? Надо как-то дописать название домена в пути, так как на сайте источнике все пути относительные.

phpQuery::attr
или preg_replace

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

$text = preg_replace('#<img src="#', '<img src="названиедомена', $text);

Спасибо за возможность.
Было бы еще замечательно, если бы картинки дополнительно добавлялись в поле с картинками и в body вставлялись бы уже оттуда :-)

Можно как нибудь повлиять на названия получаемых файлов? Чтобы по шаблону они делались?

в этой функции нет

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

Привет! Скажи в двух словах, как в Image Field картинку правильно поместить?
И второе - как скачать не все картинки, а только из одного тега?
Типа такого

<div class='saleleft'>
<a href='/upload/1390747917/1429264563_f501.jpg' rel='lightbox[64021]' class='lightbox'><img src='/upload/1390747917/1429264563_f501_thumb.jpg'></a></div>

Или я не правильно понял конструкцию $entity_wrapper->body->value? )))

как в Image Field картинку правильно поместить?

в комментариях к полю написано

как скачать не все картинки, а только из одного тега?

если речь о parser_download_images(), то никак

если речь о parser_download_images(), то никак

Ясно, но как мне ее практически использовать для добавления в поле файла?

никак. функция предназначена для другого

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании