我有一个视图,从3种不同的内容类型中提取标题。其中一种内容类型的标题应该链接到外部网站,另外两种类型的标题链接到Drupal网站中的节点。有没有办法我可以设置Title字段来根据标题的内容类型来区别地处理链接?
回答感谢Vlad下面!! :)
这是我们在views-view-fields--news--block.tpl.php
模板中使用的工作代码..
<?php if ($fields['type']->content == 'Event'): ?>
<a href="<?php print $fields['path']->content; ?>"><?php print $fields['title']->content; ?></a>
<?php endif; ?>
<?php if ($fields['type']->content == 'PATF News'): ?>
<a href="<?php print $fields['path']->content; ?>"><?php print $fields['title']->content; ?></a>
<?php endif; ?>
<?php if ($fields['type']->content == 'News Link'): ?>
//This link goes to _blank
<a href="<?php print $fields['field_link']->content; ?>" target="_blank"><?php print $fields['title']->content; ?></a>
<?php endif; ?>
答案 0 :(得分:1)
Drupal 6
Node: Type
添加到Fields
Basic settings
群组中点击Theme: Information
,然后点击Row style output
Row style output
复制到您的主题文件夹中的主题文件(应该命名为views-view-fields--viewsname.tpl.php
或views-view-fields--viewsname--viewsnamw.tpl.php
)。Drupal 7
您可以在Theme: Information
组中找到Advanced
并且必须在Content: Type
群组中添加Fields
,这与差异非常相似。
在views-view-fields--xxx--xxx.tpl.php
文件中写下如下内容:
if ($fields['type']->content == 'Page') {
// print title linking to node
print $fields['title']->content;
}
if ($fields['type']->content == 'News') {
// print title linking to other website
print 'http://example.com/'. $fields['title']->content;
}
改进代码
$link = $fields['path']->content;
$title = $fields['title']->content;
$options = array();
if ($fields['type']->content == 'News Link') {
$link = $fields['field_link']->content;
$options['attributes']['target'] = '_blank';
}
print l($title, $link, $options);
答案 1 :(得分:-1)
我之前通过以下步骤完成了这项工作:
只要外部链接存在,它就会显示外部链接,并且只要不是,就会回退到与原始内容链接的标题。