如何正确浏览Drupal 7中的主题视图

时间:2012-03-28 19:17:19

标签: performance drupal views drupal-theming

我需要在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?

提前致谢。

4 个答案:

答案 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>