0

フィールド コレクションを持つノード フォームを開く ctools モデルを作成しました。フォームを保存しようとしていますが、エラーが表示されます。

function bayerkol_callback($ajax) {
if ($ajax) {
  global $user;
ctools_include('ajax');
ctools_include('modal');

$form_state = array(
  'ajax' => TRUE,
  'title' => t('Add Event'),
);

$output = ctools_modal_form_wrapper('bayerkol_form', $form_state);

if (!empty($form_state['ajax_commands'])) {
  $output = $form_state['ajax_commands'];
}

print ajax_render($output);
drupal_exit();
}
else {
return drupal_get_form('event_calendar_node_form');
}
}   

function bayerkol_form($form, $form_state) {
$form = array();
ctools_form_include_file($form_state, drupal_get_path('module', 'node') . '/node.pages.inc');
$form = node_add('event_calendar');
return $form;
} 

私を助けてください。

4

1 に答える 1

0

次のコードを試してください。うまくいくことを願っています。

function bayerkol_callback($ajax) {
  if ($ajax) {
     global $user;

     ctools_include('node.pages', 'node', '');
     ctools_include('modal');
     ctools_include('ajax');

     $node = (object) array(
         'uid' => $user->uid,
         'name' => (isset($user->name) ? $user->name : ''),
         'type' => 'article',
         'language' => LANGUAGE_NONE,
     );

     $form_state = array(
         'ajax' => TRUE,
         'title' => t('Add Event'),
     );

     $form_state['build_info']['args'] = array($node);

     $output = ctools_modal_form_wrapper('bayerkol_form', $form_state);

     // This means the form has been exectued
     if (!empty($form_state['executed'])) {
         $output = array();
         // Close the modal
         $output[] = ctools_modal_command_dismiss();
     }

    print ajax_render($output);
    exit;
  }else {
         return drupal_get_form('event_calendar_node_form');
   }
  }

上記のコードでは、bayerkol_form 関数を呼び出す必要はありません。ノード フォームが正しいことを確認してください。例: 記事では {article_node_form} を使用します。

于 2015-06-16T09:29:48.717 に答える