2012-03-28 82 views
3

我需要在Drupal 7中使用主题视图。有一个内容类型'Book',我需要列出5本书并以特殊方式(预览图像,标题和作者) 。如何在Drupal 7中正确地主题视图字段

当我覆盖views-view-field.tpl.php并打印原始SQL结果时,我看到所有字段都显示出来。此代码

echo "<pre>"; 
print_r($row); 
echo "</pre>"; 

[entity] => stdClass Object 
(
    [title] => ... 
    .... 
    [nid] => 34 
    ... 
    [body] => Array 
    ... 

但我不想从数据库到PHP端传递[正文],因为它可以是巨大的,会导致性能问题。我没有在视图设置中选择[body]。

有没有办法只将某些字段传递到views-view-field.tpl.php?

在此先感谢。

+0

你们是不是要主题一般一个特定的观点或看法? – chadpeppers 2012-03-29 00:52:03

+0

我需要主题操作一个内容类型的一个视图 – mechmsk 2012-03-30 15:38:07

回答

3

如果你想要做什么是主题某一个领域,你可以创建这样一个特定领域的模板:观点视场 -放置在您的主题文件夹现场nameofmyfield.tpl.php并重新扫描View配置的Theme:information部分中的模板。

为了达到这个目的,您必须将该字段添加到视图中的字段。

+0

谢谢,这个工程。但我仍然对性能感到担忧。 print_r($ row)输出给定内容类型的所有字段,即使这些字段在视图中未被选中。他们的结构非常庞大。我可以禁用它们中的大部分吗? – mechmsk 2012-03-30 15:35:59

+0

有趣的问题。不确定...我会尽力找出答案。 – lgomezma 2012-04-02 08:49:12

+0

请注意,您可以从高级>主题:信息下的视图编辑页面中获取可能的模板文件名称。 – jackocnr 2012-11-27 17:55:52

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; ?> 
4

可写在网站/所有/模块/视图/主题文件夹中的文件里面的文档中的变量。

通常情况下,你需要看看并在视图 - 视图 - fields.tpl.php模板修改变量$领域

我用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()); ?> 

确保您清除缓存您尝试查看瓦尔前。

0

如果你想改变的观点主题的再更改观点 - 视图 - 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>