如何提取特定字段以在分類頁面中顯示?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_photo
或field_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。所以我想確保我正在試圖解釋的內容完全符合我想要完成的內容。
完美!分類術語效果不錯:)現在去看看面板模塊。希望這可以讓我自定義頁面,就像我想要的一樣!非常感謝。 –
面板模塊真的很棒。但你的建議顯示了我的路徑:)。我通過啓用Taxonomy Term創建了一個視圖,然後用'views-view-fields - taxonomy-term.tpl.php'覆蓋了'views-view-fields.tpl.php'。然後,我創建了自己的HTML佈局,其中包含我想要顯示的字段('<?php print $ fields [「field_photo」] - > content'),最後創建了CSS類來定製頁面的外觀。非常感謝你的幫助:) –