我已成功为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); ?>
您可以想象, 是一个令人满意的长期解决方案。
非常感谢!
答案 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中的类而不是模板文件,可以更好地满足您的需求。