5

チェックボックスのラベル/タイトルに簡単な html リンクを追加することは可能ですか? 次のコードを試しました:

<?php
$form['legal']['#type'] = 'checkbox';
$form['legal']['#required'] = TRUE;
$form['legal']['#title'] = t(
  'You must accept our @tos and @legals',
  array(
    '@tos'    => l(t('terms of service'), 'node/6'),
    '@legals' => l(t('legals'), 'node/7')
  )
);
?>

ただし、次のラベルが生成されます (html マークアップは「翻訳」されません)。

"当社の < a href="/node/6">利用規約</a> と < a href="/node/7">法律</a> に同意する必要があります *"

(開き括弧の後にスペースを追加したので、必要なリンクに変換されません)

そのようなことはできませんか?私は drupal が初めてです。おそらく誰かが私を助けることができます.ありがとう!

4

2 に答える 2

6

これは、テキストを強制的にプレーン テキストとして印刷する前に発生します。

<?php
$form['legal']['#type'] = 'checkbox';
$form['legal']['#required'] = TRUE;
$form['legal']['#title'] = t(
  'You must accept our !tos and !legals',
  array(
    '!tos'    => l(t('terms of service'), 'node/6'),
    '!legals' => l(t('legals'), 'node/7')
  )
);
?>

置換のプレフィックスに対して異なる動作をするt()関数を使用していることに注意してください。を配置@tosすると、check_plain() を介して実行されるため、HTML エンティティをエンコードするため、ブラウザーによって HTML が処理されることはありません。

!toscheck_plain()'dされないため、HTML マークアップを許可します。

于 2012-11-01T21:53:34.017 に答える
1

代わりに、 を使用してみてください#prefix

$form['legal']['#prefix'] = t(
  'You must accept our @tos and @legals',
  array(
    '@tos'    => l(t('terms of service'), 'node/6'),
    '@legals' => l(t('legals'), 'node/7')
  )
);

これがうまくいくことを願っています...ムハンマド。

于 2012-11-01T19:33:10.123 に答える