Drupal - пользовательская тема не разбирает разметку медиа модуля

У меня проблема с модулем Media для Drupal 7, он отлично работает на всем сайте, кроме созданного мной пользовательского модуля. Поле, которое используется этим модулем, использует то же форматирование текста, что и остальная часть сайта, оно правильно отображает жирный шрифт, таблицы, все вещи TinyMCE. Но так или иначе это не может обработать изображения, вставленные медиа-плагином.

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

Итак, я отображаю поле:

   echo '<p class="product-section-content">' . $element['value'] . '</p>'."\n";

но вместо изображения я получаю:

[[{"type":"media","view_mode":"media_large","fid":"71","attributes":{"alt":"","class":"media-image","typeof":"foaf:Image"}}]][[{"type":"media","view_mode":"media_large","fid":"63","attributes":{"alt":"","class":"media-image","typeof":"foaf:Image"}}]] 

Как мне позвонить, чтобы разобрать эту разметку тегов?

5 ответов

Для модуля Media (только ветка 1.x) вы обычно можете использовать функцию media_filter:

print media_filter(html);

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

Вы должны пойти в admin/config/content/formatsотредактируйте текстовый формат (ы), который вы хотите использовать с медиа, и включите Converts Media tags to Markup флажок для каждого.

Тогда это будет работать:)

Если кто-либо использует ветку Media module 2.x, вы должны использовать:

print media_wysiwyg_filter(html);

Похоже, вам нужно использовать функцию render(), а не просто распечатывать значение для элемента.

http://api.drupal.org/api/drupal/includes--common.inc/function/render/7

поэтому ваш код должен выглядеть примерно так:

echo '<p class="product-section-content">'.render($element).'</p>'."/n";

Помогло бы иметь немного больше контекста о вашем модуле. Вы пытаетесь распечатать этот элемент в файле шаблона? Ваша цель - просто отредактировать HTML-код для элемента? и т.п.

Эй, вам нужно использовать drupal "safe_value" вместо "value"

Другие вопросы по тегам