我有一些文本存储在名为“协议”的自定义内容类型的正文字段中。当您查看节点时,存储在 body 字段中的内容并不完全是我希望看到的内容。要么是完整的,要么是预告片。例如我可能会存储这样的东西:
“[用法]可重复使用 DNA 模板微阵列通过无细胞合成进行蛋白质排列。[/用法] [安全注意事项]测试安全注意事项 [/安全注意事项]”
但是当您查看它时我想要显示的是:
“通过无细胞合成可重复使用 DNA 模板微阵列进行蛋白质排列。测试安全性考虑”
我教这是你可以使用 hook_view 的,所以我在我的模块中尝试了这个功能:
function molmethtag_node_view($node, $view_mode, $langcode) {
if ($node->type == 'protocol2' && $view_mode=='full') {
$body = $node->body;
$prot_array = _molmethtag_extract_data($body['und'][0]['value']);
$protocol = '';
foreach($prot_array as $tag => $prot_row) {
$protocol .= "<div id='molmethtag_".$tag."'>".$prot_row."</div>";
}
$body['und'][0]['value'] = $protocol;
}
}
但这并没有如我所愿。我希望保存在协议中的文本在查看时会显示为正文,但它显示的是原始文本。
有人知道我做错了什么吗?hook_view 不用于此吗?我应该改用/做什么?