我有Drupal 5 View(必须是“Views 1”所以),其中包含Event_StartTime字段,该字段通常显示内部具有实际日期的字段。但我也有一些Event_StartTime字段值的记录,如 1969年12月31日 - 晚上8点,看起来很糟糕,我需要用一些自定义标签替换它们,比如“No Date Available”。
我可以以某种方式将此条件(如果value = x显示值y)注入视图中吗? 即使我在“无可用日期”中打印到SQL中,视图也会显示空字段。
总而言之,一般的问题是View字段是一种限制,有时你只需要替换一些字段值,但它可以是“date or nothing”或“node-reference id or nothing”。
P.S。情况可能有点复杂,因为我使用“Bonus:Views Export”模块,这使我的视图返回CSV数据。
答案 0 :(得分:2)
我不再熟悉Views1了,但我认为你至少有两个选择:
答案 1 :(得分:1)
根据Henrik的评论,在我看来,主题是最好的地方。您需要在template.php文件中添加一个函数来覆盖该特定视图。请参阅Views 1 theming documentation。根据此文档,您可以使用表单视图的名称
创建一个函数function THEMENAME_view_view_VIEWNAME($view, $type, $nodes, $level = NULL, $args = NULL)
以整个视图为主题。 $nodes
是视图中包含的部分加载的节点对象的数组。您可以加载每个节点并使用以下内容检查Event_StartTime字段的值:
foreach ($nodes as $id => $node) {
$temp_node = node_load($node->nid);
//now check value of Event_StartTime assuming that is what you named the field
if ($temp_node->Event_StartTime === 'Dec 31 1969 - 8:00pm') {
$temp_node->Event_StartTime = 'No Date Available';
}
//output the fields of your view . . .
}
我只展示了如何检查Event\_StartTime
字段的值,我不确定实际值是多少。 1969年12月31日在time()
函数返回的日期之前,因此如果这不起作用,您可能需要检查是否Event_StartTime === ''
,如果事件字段刚空,则可能为真。您仍然需要对其余字段进行主题化并将其输出为HTML,这可能只是为了更改一个字段的输出而感到痛苦。您还可以覆盖单个字段的输出。我没有这样做,所以我无法引导你完成它,但我上面给出的链接有一些关于覆盖字段主题功能的文档。