Drupal - 自定义主题不解析媒体模块标记

时间:2011-10-11 14:40:19

标签: drupal drupal-7 drupal-themes

我对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 个答案:

答案 0 :(得分:3)

这是因为媒体模块提供了默认情况下未激活的新输入过滤器。需要此过滤器来解析媒体标记。

您需要转到admin/config/content/formats,修改要用于媒体的文字格式,并为每个格式启用Converts Media tags to Markup复选框。

然后它会工作:)

答案 1 :(得分:3)

对于Media模块(仅限1.x分支),您通常可以使用 media_filter 功能:

print media_filter(html);

答案 2 :(得分:2)

如果任何人使用Media module 2.x分支,您应该使用:

print media_wysiwyg_filter(html);

答案 3 :(得分:1)

看起来您需要使用render()函数,而不仅仅是打印出元素的值。

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

所以你的代码应该更像这样:

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

有助于更多地了解您的模块。您是否尝试在模板文件中打印出此元素?您的目标是编辑元素的包装HTML吗?等

答案 4 :(得分:0)

嘿你需要使用drupal&#34; safe_value&#34;而不是&#34;值&#34;