2010-12-06 37 views
3

我有一個抓取4個字段的簡單視圖,基本上它抓取了特定內容類型的字段。字段說明如下:
CSS類(明文)
圖片(圖片)
標題
身體Drupal Views 2:使用自定義標記的輸出

很簡單的東西。我已經創建了視圖,但我需要以專門的方式輸出內容,而且我無法確定這些內容如何與我的構建中的自定義標記一起分解。我需要將每行包裝在一個容器中,並將每行分解到它自己的容器中,查看下面的代碼。

<div id="homepage-folio-portlets"> 
    <div class="homepage-folio-portlet [CSS class]"> 
    <div class="homepage-folio-portlet-image"><img src="[Image]" width="450" height="330" alt="" class="[CSS class]-image" /></div> 
    <div class="homepage-folio-portlet-text"> 
     <strong>[Title]</strong> 
     <p>[Body]</p> 
    </div> 
    </div> <!-- /homepage-folio-portlet --> 
    </div> <!-- /homepage-folio-portlets --> 

所以我有一個容器,主頁對開的Portlet,和那裏面我想遍歷意見創建一個新的容器使用類主頁對開的portlet每一行返回包含行中的CSS類。

我最大的障礙是搞清楚如何在template.php中構建我的.tpl文件或我的主題函數。我瞭解命名約定,但一旦進入,我不知道該怎麼做。我有一種感覺,我需要在template.php中做一點魔法,以確保我的行輸出能夠從內容中知道CSS類,但是誰知道。任何幫助和方向表示讚賞。

回答

3

在看了前面提到的video之後,它變得更加清楚瞭如何完成我設定的工作。最大的「ah-ha」是由於foreach循環,「Row style output」模板的默認代碼讓我感到困惑。我沒有意識到我可以以任何我認爲合適的方式在沒有循環的情況下輸出每個字段。該視頻展示瞭如何你可以用下面的速記$域[「ID的場」]單獨引用您的領域 - >內容。要獲得'ID字段',就像在特定視圖的「Theming information」選項窗格中滾動顯示「Display output」,「Style output」和「Row style output」鏈接。

我用我的視圖的編輯屏幕中的「主題信息」來確定「Row style output」的最具體的.tpl來創建並創建它,在這種情況下view-view-fields - my-視圖名稱 - default.tpl.php。

視圖 - 視圖 - 場 - 我 - 視圖 - 名字 - default.tpl.php - 行輸出.tpl文件,因爲不是循環​​的田野
(不再利用默認的foreach我知道我要的領域,我可以簡單地將他們輸出反正我認爲合適)

<div id="homepage-folio-portlets"> 
    <div class="homepage-folio-portlet <?php print $fields['CSS_class']->content ?>"> 
    <div class="homepage-folio-portlet-image"><img src="<?php print $fields['Image']->content ?>" width="450" height="330" alt="" class="<?php print $fields['CSS_class']->content ?>-image" /></div> 
    <div class="homepage-folio-portlet-text"> 
     <strong><?php print $fields['Title']->content ?></strong> 
     <p><?php print $fields['Body']->content ?></p> 
    </div> 
    </div> <!-- /homepage-folio-portlet --> 
    </div> <!-- /homepage-folio-portlets --> 

在那之後,我做了一點遞歸進入「樣式輸出」和「顯示輸出」 .tpl文件擺脫所有額外的標記Drupal補充說。請注意,我真正關心的是在樣式.tpl和顯示tpl中打印$ row(使用foreach循環)。它正在輸出我想要的東西,我不能更快樂。最後,這是有道理的。希望這可以幫助其他一羣人。

僅供參考...

觀點 - 視圖 - 格式化 - 我 - 視圖 - 名字 - default.tpl.php - 風格.tpl文件
(要保留的foreach循環在這裏,所以每一行被輸出)

<?php foreach ($rows as $id => $row): ?> 
<?php print $row; ?> 
<?php endforeach; ?> 

觀點視角 - 我 - 視圖 - 名字 - default.tpl.php - 顯示.tpl文件

<?php print $rows; ?> 

通過刪除所有額外的標記,我失去了重要的東西特定於像管理鏈接等這樣的意見,但爲我的目的,這很好。

0

您是否嘗試過使用行模板文件?你應該在視圖模塊(在管理員)中看到它。在創建視圖時,通過單擊左側下方框中的「信息」。你將需要刷新模板緩存(你會看到一個按鈕來做到這一點)。

1

在您的視圖的編輯選項卡上,在基本設置下,查找「主題:」並單擊「信息」鏈接。然後在「默認:主題信息」部分中,粗體文件名是當前用於主題該視圖的特定子部分的文件名。其他名稱是可以用來覆蓋默認值的「建議」,並且它們是從最不具體的到最具體的。

你的情況,來啓動,這聽起來像你想覆蓋「行樣式輸出」:

  1. 單擊「行樣式輸出」鏈接,複製默認模板代碼。
  2. 根據是否要將此樣式用於所有視圖,此視圖,此視圖的特定顯示等,請選擇用於行樣式的建議文件名之一。
  3. 將複製的代碼粘貼到第1步到第2步
  4. 根據需要編輯代碼選擇的文件名,添加特定的類
  5. 單擊「重新掃描模板文件」重建模板緩存
  6. 重複步驟1-5您想要自定義的任何其他子模板。
+0

我明白這些步驟,但它是「編輯必要的代碼」步驟,這是奇怪的,也就是說,直到我發現這個視頻:http://mustardseedmedia.com/podcast/episode30 – creativetim 2010-12-06 22:04:55