Импортируем изображения через wysiwyg

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

Т.е. новый сайт уже готов, но есть старый, на котором какое то количество статей, требующих аккуратного переноса, при чем они содержат картинки. При переносе «вручную» приходится копировать сначала текст. Потом скачивать картинки себе на компьютер (ага, save as). Потом мы вставляем картинки в новую статью, т.е. грузим их через файл-менеджер wysiwyg на сайт, корректируем размеры, наверное и заголовок, поле alt понадобится заполнить попутно. Все это не укладывается уже в схему простого copy-paste.

Когда статей очень много, то без написания программы экспорта не обойтись, но для полусотни публикаций экспорт писать дело неблагодарное.

Почему бы не заставить drupal самостоятельно скачивать картинки? Ведь когда мы копируем в редактор кусок html, он сохраняет внешний URL картинки и все её прочие атрибуты. Нужно только программно закачать картинку и подменить путь в HTML на какой то локальный.

Задачу решал в Drupal 7, потому в моём примере код будет реализован в hook_node_presave. Для шестерки следует реализовать зацепку nodeapi.

Надеюсь, этот кусочек кода съэкономит вам время. :)

Мало букафф? Читайте есчо !

Как пользоваться flock()?

Март 24, 2017 г.

Если вы решаете задачу конкурентного доступа к файлу (или какому то другому ресурсу) в PHP, и решили использовать flock() для этой цели, то вам понадобится верно представлять как работает механизм блокировки. Представим себе, что есть разные программные ...

Читать

Убираем вставку   в пустые div контейнеры в CKEditor 5

Апрель 9, 2025 г.

Неприятная особенность CKEditor - добавляет в пустые контейнера (в <div>,<p> и т.п.) html код неразрывного пробела. Покажу как можно от этого избавиться через код в кастомном плагине для CKEditor 5 в экосистеме Drupal 8+. Нам понадобится ...

Читать

Ошибка в Drupal: once is not a function

Май 8, 2023 г.

В Drupal 9/10 нет jQuery плагина once(), потому при использовании этой функции вы увидите сообщение о том, что once - не является функцией. Плагин удобен, но его не сложно заменить в коде буквально парой вставок. Он работает по следующему алгоритму ...

Читать

Переводим массив в XML на PHP

Июнь 18, 2018 г.

Итак, как перевести ассоциативный массив в XML? Воспользуемся "родным" для PHP классом SimpleXMLElement. В качестве основного контейнера используем тег <values/>, а  установить UTF-8 кодировку нам поможет небольшая хитрость. Инициализация ...

Читать
 

Комментарии к «Импортируем изображения через wysiwyg»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: