我需要在Drupal 7中使用主题视图。有一个内容类型'Book',我需要列出5本书并以特殊方式对它们进行主题设置(预览图像,标题和作者)。
当我覆盖views-view-field.tpl.php并打印原始SQL结果时,我看到显示所有字段。这段代码
echo "<pre>";
print_r($row);
echo "</pre>";
给出
[entity] => stdClass Object
(
[title] => ...
....
[nid] => 34
...
[body] => Array
...
但我不希望从数据库传递[body]到php端,因为它可能很大并导致性能问题。我没有在视图设置中选择[正文]。
有没有办法只将某些字段传递给views-view-field.tpl.php?
提前致谢。
答案 0 :(得分:4)
可用变量写在sites / all / modules / views / theme文件夹的文件中。
通常,您需要在views-view-fields.tpl.php模板上查看和修改的变量是$ fields
我使用devel模块(http://drupal.org/project/devel)查看可用的变量:
<?php
//after enabling the devel module...
dpm($fields);
// This will print a Kuomo display on the page with the array's vars
?>
通常,在节点视图上
<?php print $fields['title']->content; ?>
将打印节点标题。对于字段,请尝试
<?php print $fields['field_FIELDNAME']->content; ?>
如果你有内存,你可以使用
捕获Kuomo模板上的所有可用变量<?php dpm(get_defined_vars()); ?>
在尝试查看变量之前,请确保清除缓存。
答案 1 :(得分:3)
如果您想要做的是主题某个字段,您可以为该特定字段创建一个模板,如下所示: views-view-field - field-nameofmyfield.tpl.php 放置它在您的主题文件夹中,重新扫描View主题中的模板:View配置的信息部分。
要使其工作,您必须将该字段添加到视图中的字段。
答案 2 :(得分:0)
要对主题中的信息进行排序,请使用以下命令:
<?php dpm ($rows); ?> // View all the information in the view
<?php foreach ($rows as $row_count => $row): ?>
<?php print $row['title'];
<?php print $row['nid'];
<?php endforeach; ?>
答案 3 :(得分:0)
如果您想更改主题视图,请按以下方式更改 views-view-fields.tpl.php :
<div class="pagecontent">
<div class="colleft">
<?php if($fields['field_file']->content){ ?><div class="views-field-file"><?php print $fields['field_file']->content; ?></div><?php } ?>
</div>
<div class="colright">
<div class="views-field-title"><?php print $fields['title']->content; ?></div>
<div class="views-field-body"><?php print $fields['body']->content; ?></div>
<div class="views-field-view-node"><?php print $fields['view_node']->content; ?></div>
</div>
</div>