Drupal 7视图自定义视图模板字段

时间:2014-03-17 09:27:18

标签: drupal views

我已成功为Drupal 7网站创建了自定义视图模板,但在输出的内容中添加属性时出现问题。我已经高低搜索了这个答案,但无济于事。

我有一个名为的视图: views-view-fields - homepage-articles.tpl.php

我打印的内容如下:

$fields['title']->content

这很好,期待,并输出:

<a href="link-to-page">Title</a>

但我想为它添加课程 - 怎么样?我以为我需要编写一个钩子,但我无法在任何地方找到它。目前我的解决方案是字符串替换:

<?php print str_replace('<a ', '<a class="brand-blue uppercase nodecoration"', $fields['title']->content); ?>

您可以想象, 是一个令人满意的长期解决方案。

非常感谢!

2 个答案:

答案 0 :(得分:3)

您应该可以使用template_preprocess_views_view_fields()将字段添加到字段中。

编辑:无法按照我的想法进行操作,但您可以像这样覆盖字段的输出:

function MY_THEME_preprocess_views_view_fields(&$vars) {
  $view = $vars['view'];
  if ($view->name == 'node_listing') {
    foreach ($vars['fields'] as $id => $field) {
      if ($id == 'title') {
        $field_output = l($view->result[$view->row_index]->node_title, 'node/'. $view->result[$view->row_index]->nid, array('attributes' => array('class' => 'brand-blue uppercase nodecoration')));

        $vars['fields'][$id]->content = $field_output;
      }
    }
  }
}

答案 1 :(得分:0)

您是否尝试过使用语义视图? https://drupal.org/project/semanticviews - 这样您可以覆盖UI中的类而不是模板文件,可以更好地满足您的需求。