Drupal - пользовательская тема не разбирает разметку медиа модуля - PullRequest
3 голосов
/ 11 октября 2011

У меня проблема с модулем 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 ]

3 голосов
/ 06 декабря 2011

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

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

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

3 голосов
/ 01 октября 2013

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

print media_filter(html);
2 голосов
/ 24 марта 2014

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

print media_wysiwyg_filter(html);
1 голос
/ 06 декабря 2011

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

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

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

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

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

0 голосов
/ 31 марта 2016

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

...