2011-10-17 4 views
0

をリンクし、私はいくつかのマークアップの一部として出力へのリンクをしようとしている:私は単純な文字列との両方の使用を試みたDrupalの変化は、私は私のモジュールでのDrupalのフォームAPIを使用してい

//$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

これは非常に奇妙です、別のモジュールがそれを変更しているように思えます...万が一翻訳/文字列置換モジュールがインストールされていますか?

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

attributeshtmlが必要な鍵であること:これは、平均時間でそれのまわりでそれを得るのを助ける必要があります

、あなたは出力にこのようなリンクをレンダリングする配列とtheme_linkを使用することができます。

+0

あなたの答えはありがたいですが、これを試してみましたが、同じ結果が得られ、要素の上の赤いボックスにエラーメッセージが表示されます:*注意:未定義のインデックス:drupal_pre_render_link()の#href /var/www/mysitename/includes/common.inc)の行5332. –

+0

申し訳ありませんが、##キーは#hrefです。私は上記の答えを更新しました。他の場所で 'l() 'を使っても問題がないなら、あなたのモジュールの問題であるか、またはあなたが使っている特定のパスと関係していなければなりません。' document/1234'? – Clive

+0

明らかに私はどこかで私のモジュールに何かかかってしまいました。私はl()のさまざまなオプションで遊んでみましたが、私はまだどこにもいませんでした。最終的に私が行ったすべての変更を取り消し、最初から修正しました。あなたの助けをありがとう! –

関連する問題