【问题标题】:Drupal 6 page and form custom moduleDrupal 6 页面和表单自定义模块
【发布时间】:2013-02-20 21:03:11
【问题描述】:

我想制作一个带有表单的 drupal 页面。类似于以下内容,但不会呈现:

function score_table_menu() {

  $items['table'] = array(
    'title' => t('name'),
    'page arguments' => array('table_page'),
    'page arguments' => array('table_form'),
    'description' => t('score table'),
    'type' => MENU_CALLBACK,

  );
  return $items;
}

function table_page(){
$output .= t('Complicated Hello');
$header = stuff;
$rows = stuff;
$output .= theme_table($header, $rows);
return $output;
}

function table_form(){

$stuff_array = array (values);
$form['choice']= array(
    '#type' => 'select',
    '#title' => t('Select Stuff'),
    '#options' => $stuff_array,
  );


  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Submit',
  );
    return $form;

}

function table_form_validate(){}

function table_form_submit(){
drupal_set_message(t('Submitted'));
}

是否可以让一半模块呈现页面而另一半呈现表单?我写了两个页面参数。我看不出页面参数和回调之间有什么区别。还可能需要使用 drupal_get_form() 在页面上呈现表单。

【问题讨论】:

    标签: php drupal drupal-6


    【解决方案1】:
    page callback
    

    是您希望此 URI 触发的功能。

    page arguments
    

    是您希望在调用回调时发送给该函数的任何参数。

    您的菜单项应如下所示:

    $items['table'] = array(
      'title' => t('name'),
      'page callback' => 'table_page',
      'description' => t('score table'),
      'type' => MENU_CALLBACK,
    );
    

    或者这个:

    $items['table'] = array(
      'title' => t('name'),
      'page callback' => 'drupal_get_form',
      'page arguments' => array('table_form'),
      'description' => t('score table'),
      'type' => MENU_CALLBACK,
    );
    

    在你的table_form中,你可以使用其他的表单类型来显示标记,

    $form['table'] = array(
      '#type' => 'markup',
      '#markup' => theme_table($header, $rows),
    );
    

    查看 API 以更好地理解 hook_menu:http://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/hook_menu/6

    【讨论】:

    • '#type' => 'markup', '#markup' => theme_table($header, $rows) 是否适用于 drupal 6?您的答案是否涉及如何有半页半表格?
    • 好的简单编辑,#markup 实际上应该是 drupal 6 中的#value
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多