Drupal 7:带有链接的复选框标签

mAt*_*AtZ 5 drupal drupal-7 drupal-fapi drupal-forms

是否可以在复选框的标签/标题中添加简单的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')
  )
);
?>
Run Code Online (Sandbox Code Playgroud)

但是这会产生以下标签(html标记不是"翻译"):

"你必须接受我们的<a href ="/ node/6">服务条款</ a>和<a href ="/ node/7"> legals </ a>*"

(我在开口括号后添加了空格,以便它不会转换为我想要的链接)

这样的事情不可能吗?我是drupal的新手.也许有人可以帮助我...谢谢!

Aye*_*h K 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')
  )
);
?>
Run Code Online (Sandbox Code Playgroud)

请注意,您正在使用t()函数,该函数对替换的前缀采取不同的行为.如果放置@tos,它将通过check_plain()运行,因此浏览器在编码HTML实体时将永远不会处理HTML.

!tos允许HTML标记,因为它不会是check_plain()'d.