如何在drupal 7中的提交按钮后放置标记?

时间:2012-03-28 16:21:19

标签: drupal drupal-7 drupal-modules

目标:我想使用hook_form_alter在提交按钮后面放置一个文本。

下面是我的代码但是如果我在数组中使用权重键,那么它的位置确实在表单中移动但不在提交/保存按钮下面。我可以在保存按钮下面做些什么呢?

$xdmp_twoshow="text";

$form['previewxdmp'] = array(
'#type'=>'markup',
'#markup'=>$xdmp_toshow,
'#weight' => 35,
 );    

3 个答案:

答案 0 :(得分:12)

每个元素都可以有#prefix#suffix属性,它会在渲染输出后立即放置text / HTML。考虑到这一点,您只需将后缀附加到现有的提交按钮,如下所示:

$form['submit']['#suffix'] = '<p>Some text to place after the submit button</p>';

显然,$form数组中提交按钮的位置可能会略有不同,具体取决于您要更改的格式。

答案 1 :(得分:1)

我这样做了:

/**
 * Implements hook_form_FROM_ID_alter()
 */
function mymodule_form_mycontenttype_node_form_alter(&$form, &$form_state, $form_id) {
  $form['actions']['submit']['#suffix'] = '<p>' . t('Some text to place after the submit button.') . '</p>';
}

答案 2 :(得分:0)

提交按钮通常放在$form['actions']中,其默认权重为100.您可以根据需要设置$form['actions']的权重,也可以将其他元素的权重设置为大于100他们提交按钮之后。

示例1:

#weight大于34 的所有元素将放置在提交按钮(以及任何其他操作按钮)之后。

$form['actions']['#weight'] = 34;

示例2:

在提交按钮之后只会放置给定元素

$form['previewxdmp'] = array(
  '#type' => 'markup',
  '#markup' => $xdmp_toshow,
  '#weight' => 101,
 );