我对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"}}]]
我应该调用什么来解析这个标记标记?
答案 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;