2011-10-17 53 views
0

我使用Drupal的形式API我的模塊中,而我試圖輸出鏈接的一些標記的一部分:Drupal的變化鏈接

//$output = l('Result', 'document/1234'); 
$output = '<a href="document/1234">Result</a>'; 

$form['results'] = array(
    '#type' => 'markup', 
    '#markup' => $output, 
) 

我試圖同時使用一個簡單的字符串和l()功能,在這兩種情況下,當呈現頁面時,鏈接無法正常工作,當我檢查的元素,它是錯位這樣的:

<a href=" 1234"="" document=""> 

和結束標記丟失。

到目前爲止,我可以看到我不這樣做的標記任何種類的任何後期處理它之前被渲染。

在我的模塊在其他地方我創建像這樣的鏈接,他們是正常輸出。

任何想法?

回答

2

這是很奇怪的,聽起來像另一個模塊必須改變它...你有任何機會安裝翻譯/字符串替換模塊?

這會幫助你得到它在它周圍的平均時間,你可以使用渲染陣列和theme_link輸出像這樣的鏈接:

$form['results'] = array(
    '#theme' => 'link', 
    '#text' => 'Result', 
    '#href' => 'document/1234', 
    '#options' => array(
    'attributes' => array('class' => array('cool-class'), 'id' => 'cool-id'), 
     //REQUIRED: 
     'html' => FALSE, 
), 
); 

注意htmlattributes是必需的關鍵。

+0

謝謝您的回答,我想這個試驗,但所有我能得到的是同樣的結果,在該元素之上的一個紅色方塊中的其他錯誤消息:*注:未定義指數:在drupal_pre_render_link #href()( /var/www/mysitename/includes/common.inc).* –

+0

對不起線5332的'#path'關鍵應該是'#href',我已經更新了上述問題的答案。如果你在其他地方使用'l()'沒有問題,那麼它在你的模塊中必須是一個問題,或者與你使用的特定路徑有關......如果你嘗試一個完全不同於'document/1234'? – Clive

+0

很明顯,我在某個地方弄到了模組裏的東西。我試着玩弄各種選項L(),我仍然毫無進展,所以最後我退出了我所做的所有更改,並從頭開始重做它,和它的所有工作這段時間。儘管謝謝您的幫助! –