2011-11-09 68 views
0

我有幾個自定義內容類型,並且在一個特定的內容類型中,我需要提供兩個字段,一個用於鏈接的href,另一個用於鏈接文本,這樣我可以用最少的用戶參與HTML/CSS來構建和設計它。我也有這個內容類型的自定義node.tpl。我的問題是,drupal在我創建的每個字段周圍都會拋出div,而這些字段不在此模板文件中,因此無法將此內容類型(node-custom.tpl)放在裏面,並且我不能將href與div裏面的鏈接放在一起<a href="<div id="something">google.co.uk</div>"></a>請參閱我的問題。也許我這樣做是錯誤的,所以任何其他想法都是值得歡迎的。在自定義內容類型中創建鏈接字段

請注意我試圖用最少的HTML/CSS訪問權限爲用戶創建此網站。我知道我可以在該領域手工編碼鏈接。

回答

1

這樣做會在你的template.php文件中使用預處理功能和手動構建鏈接起來的最簡單的方法:

function mytheme_preprocess_node(&$vars) { 
    $node = $vars['node']; 
    if ($node->type = 'my_type') { 
    $uri = $node->field_name_of_link_field[LANGUAGE_NONE][0]['value']; 
    $text = $node->field_name_of_display_text_field[LANGUAGE_NONE][0]['value']; 
    $vars['my_link'] = l($text, $uri); // Using Drupal's l() function to render a link 
    } 
} 

然後在你的節點模板文件,將有機會獲得變量$my_link,您可以在任何地方輸出,並將包含鏈接的正確HTML。最後,進入您的內容類型的「管理顯示」頁面,並將不再需要輸出的兩個字段的顯示設置爲「隱藏」。

還有其他的方法,所以如果這是沒有好讓我知道

編輯

我想補充,我覺得這樣做最簡單的方法實際上是安裝Link module和使用提供字段類型而不是您當前使用的其他兩個字段。

+0

太好了,謝謝你的回覆。這一切似乎都相當直截了當,如此生病,明天就要給它提前。只是爲了澄清,這是一個圖形按鈕,出現在網站的幾個網頁的右下角。鏈接內的內容也會發生變化。我認爲這樣做會使'內容編輯器'很容易維護,這是一個好主意,或者你會建議走不同的路線嗎?乾杯非常感謝。 – HomeBrew

+0

實際上,第二個想法是你可以安裝[鏈接模塊](http://drupal.org/project/link),它提供了一個字段類型,你可以附加到只接受鏈接的節點上。這將解決你遇到的問題,並給你的鏈接驗證的額外好處:) – Clive

+0

真棒,歡呼聲。我可能會嘗試你的第一個建議,只是爲了學習,因爲我沒有用任何drupal函數玩過很多。儘管如此,最有可能的是最終使用鏈接模塊。 Muchos Gracias! – HomeBrew

相關問題