我想通过检查节点(或未来的分类术语)的'nid'将自定义图像添加到Drupal的日历视图中。我正在编写这个自定义代码在views-view-field-calendar-nid.tpl中。将自定义图像添加到日历视图
问题是,view-view-field-calendar-nid.tpl输出的内容也被插入div标签的'id'属性中。请参阅第div标记。
254是输出,它也被插入'id'属性中。
<div class="view-item view-item-calendar">
<div class="calendar monthview" id="calendar:
254:changed:0:0">
<div id="nid" class="view-field view-data-nid">
254 </div>
</div>
所以,当观点视场 - 日历 - nid.tpl输出IMG标签,它也插入到了“id”属性,它打破了第二DIV标签。
请参阅下面的输出
<div class="view-item view-item-calendar">
<div class="calendar monthview" id="calendar:
<img src="http://www.programmingnature.com/stackoverflow_32.png"> </img>255:changed:0:1">
<div id="nid" class="view-field view-data-nid">
<img src="http://www.programmingnature.com/stackoverflow_32.png"> </img>255 </div>
</div>
</div>
截图:
alt text http://img201.imageshack.us/img201/3140/calendarproblem.png
请注意,日历视图试图插入 'id' 属性里面有IMG标签输出现在的一切都搞砸了......
如何防止Calender将输出插入到'id'属性中?或者有没有其他的方式在Calender视图中插入图像?
以下是视图,视图场的代码 - 日历 - nid.tpl
<?php
$results = $variables['view']->result;
$nid=$output;
$newOutput="";
foreach ($results as $key => $value) {
//Find the matching nid
if ($nid==255) {
$newOutput.= '<img src="http://www.programmingnature.com/stackoverflow_32.png"> </img>';
}
$newOutput.=$nid;
}
print $newOutput;
?>
所建议的模块还可以实现'hook_preprocess_calendar_node()'。使用实现这种功能的自定义模块会更好,因为您可以使用任何主题而无需为每个主体添加'template_preprocess_calendar_node()'。 – kiamlaluno 2010-07-25 23:49:14
我一定会尝试编写我自己的预处理函数。我可以在同一个模板文件中添加此功能吗? @kiamlaluno,感谢提示,编写自定义模块看起来更好选项 – 2010-07-26 18:14:57
@Ajinkya Kulkarni,您可以将它添加到您的主题template.php中。只要记住刷新你的主题缓存。 – 2010-07-26 18:59:27