Как конвертировать URL-адреса изображений в полях узла Drupal во время рендеринга?


Я разработал новый модуль CCK с использованием Plupload, где пользователи могут перетаскивать и загружать изображения с помощью собственных API HTML5. Поскольку я не знаю, как перетаскивать изображения непосредственно в CKEditor, я делаю то, что после загрузки изображений с помощью виджета jQuery plupload я показываю изображение вместо имени файла, из которого пользователи могут перетаскивать это изображение в CKEditor. Это 2-шаговый процесс перетаскивания.

Теперь, когда я перетаскиваю изображения в редактор CKEditor с помощью Chrome, CKEditor генерирует следующий код

<p>
    <img src="http://myportal/sites/myportal/files/plupload/p15sjkcj2c1o3koe3hsp19761ep14.jpg" /></p>

Когда я выполняю аналогичное действие с помощью Firefox/Safari, CKEditor генерирует следующий код

<p>
    <img src="../../sites/myportal/files/plupload/p15sjle1js11r5289aibk0m1n7q3.jpg" /></p>

Проблема заключается в том, что в зависимости от того, откуда я просматриваю узел (представления, панель и т. Д.), Изображения Иногда отображаются, а иногда нет, потому что они указывают на местоположение, начинающееся с ../../, а не с http://myportal/.

Итак, как мне убедиться, что, когда Drupal генерирует представление узла, "../../sites/myportal/files/plupload/p15sjle1js11r5289aibk0m1n7q3.jpg "расширяется или преобразуется в"http://myportal/sites/myportal/files/plupload/p15sjkcj2c1o3koe3hsp19761ep14.jpg "

Один из способов, которым я могу это сделать, - использовать jQuery для поиска всех тегов <img> со словом "plupload" в их атрибуте src, а затем изменить этот атрибут с полным URL-адресом. Но это сильно замедлит отображение. Есть еще идеи с использованием модуля Drupal или пользовательского кодирования?

Author: Alex Weber, 2011-04-05

1 answers

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

 1
Author: Matt V., 2011-04-05 23:51:21