2012-03-28 87 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>