在drupal的hook菜单中调用多个函数

时间:2014-03-14 13:57:21

标签: php drupal-7

我尝试在单个hook_menu功能中调用多个函数。但是我没有在页面回调中获得多个功能。请帮助我解决这个问题..我是我的代码,我尝试访问getvalue_my_form和在pagecallback中获取getvalue_show ..

     <?php
  global $ema;
  $ema=$_POST['email'];

   drupal_set_message('email:'.$ema);

   function getvalue_menu() {
   $items = array();
    $items['formtest1'] = array(
    'title' => 'valuegetting',
   'page callback' => 'drupal_get_form',
  'page arguments' => array('getvalue_my_form'),
   'access arguments' => array('access content'),
    'type' => MENU_NORMAL_ITEM,
     );

    return $items;
   }
   function getvalue_my_form($form, &$form_state) {

    $form['image_file'] = array(
   '#title' => t('upload Banner:'),
   '#type' => 'file',
    );
   return $form; 
   }
  function getvalue_show()
    {
   $em="hi welcome";
    return $em;

    }

1 个答案:

答案 0 :(得分:2)

drupal挂钩系统不会与一般的php页面编码混合在一起。实施例

你不写全球$ ema;等钩外功能。如果你想调用两个函数,假设你的模块名是getvalue,你可能想要这样做。

function getvalue_menu() {
    $items = array();
    $items['formtest1'] = array(
        'title' => 'valuegetting',
        'page callback' => 'getvalue_two_functions',
        'page arguments' => array(),
        'access arguments' => array('access content'),
        'type' => MENU_NORMAL_ITEM,
     );

    return $items;
}

function getvalue_two_functions() {
    // call first function
    $two_values['first'] = 1;

    // call second function
    $two_values['second'] = 2;

    return $two_values;
}

在URL中键入formtest1时,它会到达getvalue_two_functions()。表单功能只是另一个drupal调用,你可以调用

drupal_get_form('getvalue_my_form'); 
getvalue_two_functions()。