我在我的模块中使用Drupal的Forms API,我试图输出一个链接作为一些标记的一部分:
//$output = l('Result', 'document/1234');
$output = '<a href="document/1234">Result</a>';
$form['results'] = array(
'#type' => 'markup',
'#markup' => $output,
)
我尝试过使用简单的字符串和l()函数,在这两种情况下,当呈现页面时,链接都不起作用,当我检查元素时,它会被修改如下: / p>
<a href=" 1234"="" document="">
并且缺少结束标记。
据我所知,在呈现之前,我没有对标记进行任何类型的后处理。
在我模块的其他地方,我创建了这样的链接,它们正常输出。
有什么想法吗?
答案 0 :(得分: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,
),
);
请注意html
中的attributes
是必填项。