3

我对 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"}}]] 

我应该叫什么来解析这个标记标签?

4

5 回答 5

3

这是因为 Media 模块提供了一个默认未激活的新输入过滤器。此过滤器是解析媒体标签所必需的。

您需要转到admin/config/content/formats,编辑要与媒体一起使用的文本格式,并Converts Media tags to Markup为每个格式启用复选框。

然后它会工作:)

于 2011-12-06T16:25:52.400 回答
3

对于媒体模块(仅限 1.x 分支),您通常可以使用media_filter函数:

print media_filter(html);
于 2013-10-01T08:28:21.830 回答
2

如果有人使用 Media module 2.x 分支,你应该使用:

print media_wysiwyg_filter(html);
于 2014-03-24T15:15:08.707 回答
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 吗?等等

于 2011-12-06T16:07:26.040 回答
0

嘿您需要使用drupal“safe_value”而不是“value”

于 2016-03-31T14:43:49.073 回答