2

私は自分のモジュールを持っていてhook_menu、既存のWebフォームページに1つのメニュー項目リダイレクト(メニューはアクティブのままである必要があります)を実装しました。このページは?q = node / add/webformです。

$items['adminQuestion/create'] = array(
      'title' => t('Crear Cuestionarios'),
      'page callback' => "What i put here?",
      'page arguments' => array('form_questionnaires'),
      'access arguments' => array('access questionnaires'),
      'type' => MENU_NORMAL_ITEM,
  );
4

5 に答える 5

3

drupal_gotoパラメータとしてリダイレクトするパスとともに使用します。

$items['adminQuestion/create'] = array(
  'title' => t('Crear Cuestionarios'),
  'page callback' => 'drupal_goto',
  'page arguments' => array('node/add/webform'),
  'access arguments' => array('access questionnaires'),
  'type' => MENU_NORMAL_ITEM,
);

また、$ items ['adminQuestions']は不適切な方法であることに注意してください。URLとパスでは大文字と小文字を区別しないでください。実際、DrupalCamelCaseではどのコードでもお勧めできません。

于 2011-03-30T13:34:40.157 に答える
1

リダイレクトによるHTTPリダイレクトを意味する場合は、単純に使用drupal_goto('path/to/webform')できますが、Webフォームパスを直接使用できるため、意味がありません。必要なIMOはWebform用の-のdrupal_get_form()ようなAPIであるため、Webformはnode_load()メニューパスにロードされます。

// Assuming webform node with nid: 237
$items['adminQuestion/create'] = array(
  'title' => t('Create Cuestionarios'),
  'page callback' => 'node_load'
  'page arguments' => array(237),
  'access arguments' => array('access questionnaires'),
  'type' => MENU_NORMAL_ITEM,
);

のWebform実装はhook_theme()、形成するノードのテーマを処理します。または、可能であればWebフォームのパスを変更することもできます。

于 2011-03-30T13:48:33.737 に答える
1

答えは次のとおりです。

$items['adminquestion/create'] = array(
  'title' => 'Crear Cuestionarios',
  'page callback' => 'questionnaires_page',
  'access callback' => TRUE,
  'type' => MENU_NORMAL_ITEM,
);


function questionnaires_page() {
    module_load_include('inc', 'node', 'node.pages');
    $output = node_add('webform');
    return $output;
}

ここで、webformはnode / add/webformのエイリアスです。ありがとう

于 2011-04-07T13:42:01.320 に答える
0

コメントを読むと、/ node / add/webformへのパスエイリアスを作成したいように思えます。hook_menuを実装する必要はありません。

/ admin / build / path / addでエイリアスを作成します(パスモジュールが有効になっていることを確認してください)。

于 2011-03-31T03:36:41.170 に答える
0

これが、「ノードページの追加」をタブグループの一部にするために行ったことです。

$items['mynode/new'] = array(
    'title' => 'New Node',
    'page callback' => 'node_add',
    'page arguments' => array('my_node_type'),
    'access arguments' => array('create my_node_type content'),
    'file' => 'node.pages.inc',
    'file path' => drupal_get_path('module', 'node'),
    'type' => MENU_LOCAL_TASK,
    'weight' => 0,
);
于 2012-10-16T17:41:44.137 に答える