Drupal Views:根据内容类型处理标题字段链接的方式有所不同?

时间:2012-07-12 20:01:40

标签: drupal drupal-7 views hyperlink drupal-views

我有一个视图,从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; ?>

2 个答案:

答案 0 :(得分:1)

Drupal 6

  1. 在您的视图设置中,将Node: Type添加到Fields
  2. Basic settings群组中点击Theme: Information,然后点击Row style output
  3. 将所有内容从Row style output复制到您的主题文件夹中的主题文件(应该命名为views-view-fields--viewsname.tpl.phpviews-view-fields--viewsname--viewsnamw.tpl.php)。
  4. 修改输出,您应该检查内容类型并输出不同的内容。
  5. 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)

我之前通过以下步骤完成了这项工作:

  1. 包含内容标题内容链接外部字段的字段 链路即可。
  2. 从视图隐藏内容标题和内容链接。
  3. 内容链接的
  4. 重写结果应设置为令牌 内容标题(两者仍然隐藏)。
  5. 您应将外部链接字段的
  6. 无结果行为设置为 Content Link的令牌。
  7. 只要外部链接存在,它就会显示外部链接,并且只要不是,就会回退到与原始内容链接的标题。