2012-05-02 52 views
1

第一次在這裏發佈海報,我是一個設計師,並不熟悉PHP,我有一個小問題,我似乎無法解決。我正在使用禪宗上的一個子主題在drupal 7中創建一個網站。 順便說一句,這是一個很棒的CMS,儘管人們說它更像是一個開發者CMS。我毫不費力地用視圖,規則,展示套件等來做我需要的東西。所以非常感謝所有開發人員使這個如此好的CMS。但對於這個顯然很簡單的問題...沒有模塊會幫助我(我認爲),我有點卡住了。如何使用Zen子主題將自定義字段添加到template.php

所以這裏是:我想在我的所有頁面的標題旁添加一個字幕。

因此,我所做的是將一個自定義字段添加到內容類型基本頁面(機器名稱:field_sub_title),這是一個簡單的文本字段。

我註釋掉在我的template.php以下行

function mytheme_preprocess_page(&$variables, $hook) { $variables['sub_title'] = t('field_sub_title'); }

現在的問題是如何加載我的自定義字段的內容放到這個變量? 我知道我需要改變第二部分,但我沒有線索,因爲我需要改變這一點。

在page.tpl.php中顯示變量是我知道的,所以我只需要幫助第一部分。

{編輯} 好吧,我發現如何做到這一點:)

我一直在尋找在錯誤的地方的解決方案。我不需要更改template.php文件中的任何內容。

只需要這段代碼添加到我的page.tpl.php中:

<?php 
print $node->field_sub_title['und'][0]['value']; 
?> 

所以我在這裏張貼這對其他Drupal的新手與此掙扎....

回答

0

你解決方案現在可以工作,但可能會有更多的Drupal-y方式來處理這樣的問題。如果你還沒有發現任何問題,你可能會發現以下一個或多個問題:

  • 有人不知道PHP或Drupal主題可能需要改變它的工作方式。
  • 如果你和我一樣,你可能會忘記它在代碼中究竟是在哪裏實現的。
  • 您可能會在節點(內容)上看到沒有此子標題字段的多餘標記和/或錯誤(例如,基本頁面和新聞文章所做的事件內容沒有子標題字段)。

將字段添加到內容類型時,會自動隨時顯示該內容類型中的任何時間內容。您應該可以爲您的頁面,事件或其他任何您需要的內容添加子標題字段,並使其自動顯示在標記中。

Manage display of a content type

可以「管理顯示」內容類型的拖放的順序領域出現。您可以通過使用像Display Suite這樣的模塊來進一步添加格式或佈局每個內容類型。


如果你覺得這還不夠好,字幕的標記必須在同一水平作爲網頁的標題(這是罕見的),至少添加一個if語句使你的代碼檢查在嘗試打印之前查看該變量是否存在。我還會爲代碼可讀性添加一個新變量和註釋。

<?php 
    $subtitle = $node->field_sub_title['und'][0]['value']; 
    if($subtitle){ 
    print $subtitle; 
    } 
?> 
相關問題