2016-05-30 79 views
0

如何提取特定字段以在分類頁面中顯​​示?Drupal 7:如何提取分類頁面中的特定字段

我有一個名爲「電影」的自定義內容類型,每部電影都有一個名爲「投射」的術語引用字段。正如我所料,我可以點擊一個「鑄造」(標籤),它爲我帶來了一個頁面,所有電影都列在這個標籤的任何地方。例如,如果我從電影「泰坦尼克號」中點擊「凱特溫斯萊特」,我會登錄頁面http://localhost/mysite/tags/kate-winslet,其中列出了凱特溫斯萊特的其他電影。到目前爲止,一切都很好。

我不想Drupal的拉進來,並顯示默認的領域,如剛剛標題身體在自己的顯示格式。而是我想要它,以便我可以顯示每張電影的照片,發行年份,當然還有標題和修剪過的版本。我只想定製此頁面的內容,以便我可以控制顯示內容和顯示位置特定的字段值。

這是我的嘗試:

我克隆我的主題的模板文件夾放page.tpl.php。將它重命名爲page--vocabulary--tags.tpl.php。然後我從我的page--vocabulary--tags.tpl.php中拿出下面這行代碼(<?php print render($page['content']);?>)。目的是檢查重寫的模板是否實際上被Drupal訪問。它確實!

但我無法從$page['content]中提取field_photofield_release_date等字段。爲了得到關於定義的變量以及它們如何放置的想法,我使用了以下代碼行: <pre><?php /*print var_export(get_defined_vars(), TRUE);*/ ?></pre>。但即使從那裏我也無法提取像我上面提到的特定領域。這些字段看起來在$page['content']['system_main']['nodes']之內,但我不知道如何直接到達特定字段。

我還創建了一個template.php用下面的預處理鉤子函數:

<?php 
 
function introduction_preprocess_page(&$vars) { 
 
    if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) { 
 
    $term = taxonomy_term_load(arg(2)); 
 
    $vars['theme_hook_suggestions'][] = 'page__vocabulary__' . $term->vocabulary_machine_name; 
 
    $vars['content'] = $vars['page']['content']['system_main']['nodes']; 
 
    } 
 
} 
 
?>

兩個<?php print render($content) ?><?php print render($page['content']) ?>打印相同的結果,但我想是<?php render($content['photo_field'])?>這我沒能。

我對此抱歉太久。我剛剛進入Drupal。所以我想確保我正在試圖解釋的內容完全符合我想要完成的內容。

回答

1

您可能正在嘗試漫長的道路。 您可以使用Views模塊。它允許創建查詢數據庫的定製列表,但也可以覆蓋現有的列表,例如分類術語頁面列表的情況。

一旦安裝了模塊(如果尚未安裝),尤其是Views UI模塊,請轉至/admin/structure/views並滾動到底部,其中禁用視圖(灰色行)。您會發現一個名爲的分類術語,描述爲'模仿Drupal核心處理分類/術語的視圖。「enter image description here

點擊在它的右側啓用,然後轉至啓用鏈接不一樣的地方,點擊箭頭展開,並選擇編輯。 進入視圖編輯頁面後,您可以方便地操作列表,添加/刪除字段或任何您想要在特定情況下執行的操作。如果您對視圖不熟悉,我建議您瞭解它,網絡上有許多相關內容,它對於Drupal開發非常重要。

此外,如果您想在頁面中添加更多定製,您可以使用與Panels模塊相同的方法,該模塊允許覆蓋系統頁面(而不僅僅是視圖)。

+0

完美!分類術語效果不錯:)現在去看看面板模塊。希望這可以讓我自定義頁面,就像我想要的一樣!非常感謝。 –

+0

面板模塊真的很棒。但你的建議顯示了我的路徑:)。我通過啓用Taxonomy Term創建了一個視圖,然後用'views-view-fields - taxonomy-term.tpl.php'覆蓋了'views-view-fields.tpl.php'。然後,我創建了自己的HTML佈局,其中包含我想要顯示的字段('<?php print $ fields [「field_photo」] - > content'),最後創建了CSS類來定製頁面的外觀。非常感謝你的幫助:) –

相關問題