Предупреждение: отсутствует аргумент 2 для customvishal_form () в Drupal 7: - PullRequest
1 голос
/ 27 декабря 2011

Я создал пользовательский модуль, и он прекрасно работает, пока я не начну работать над своей пользовательской темой.

Как только я перехожу к своей пользовательской теме, я получаю эту ошибку

Предупреждение: отсутствует аргумент 2 для customvishal_form (), вызываемого в /home/vishal/Dropbox/sites/new/includes/theme.inc в строке 1029 и определено в customvishal_form () (строка 441 из /home/vishal/Dropbox/sites/new/sites/all/modules/customvishal/customvishal.module).

Вы можете увидеть ошибку по адресу: http://www.iamvishal.com/dev/about-us

Я не думаю, что с моим кодом что-то не так:

/**
* A simple form.
*/
function customvishal_form($form, &$form_submit) {
$form['customvishalactivate'] = array(
'#title' => t('Activate Preference'),
'#type' => 'radios',
'#options' => array('1' => t('Yes'), '0' => t('No')),
'#required' => TRUE,
);
return $form; 
}

Его называют с

function customvishal_pref($arg1)
{
 // Here we willl make the form and save the data so when cron
 // runs we will check the users preference
 $build = array(
'header_text' => array(
  '#type' => 'markup',
  '#markup' => '<p>' . t('This page is where you add your preferences. Based on your      
  entered choices we will send you alerts ') . '</p>',
 ),
 'example_form' => drupal_get_form('customvishal_form'),
 );
 return $build;

 }

Что может быть причиной этой проблемы?

Ура, Вишал

Ответы [ 3 ]

3 голосов
/ 17 декабря 2012

У меня была такая же проблема

Я назвал hook_form так:

/**
 * Implements of hook_menu().
 */
function skupina_menu() {
  $items = array();
  $items['admin/config/people/skupina'] = array(
    'title' => 'Skupiny odborníkov',
    'description' => 'Prehľady návštev odborníkov',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('skupina_statistics'),
    'access arguments' => array('view statistics'),
    'file' => 'admin.inc',
    'file path' => drupal_get_path('module', 'skupina'), 
    'weight' => 1,
  );      
  return $items;
}

, а затем

/**
 * Prehlad navstev odbornikov - page
 */
function skupina_statistics($form, &$form_state) {

  $form = array();
  $form['skupina_obdobie'] = array(
      '#type' => 'select', 
      '#title' => t('Zmeniť zobrazenie'), 
      '#options' => skupina_get_zobrazenia(),
      '#description' => t('Zmení filtrovanie dát podľa zvolenej možnosti.'),
      '#required' => FALSE, 
  );  
  return $form;

}

Моя проблема заключалась в том, что функция не имела «_form» в своем имени, поэтому она выдает эти предупреждения.

Так что функция должна вызываться "skupina_statistics_form в моем случае

2 голосов
/ 02 марта 2012

когда вызывается функция формы, единственный параметр, который отправляется ей - это переменная формы. Поскольку ваш второй параметр функции не имеет значения по умолчанию, он, очевидно, выдает предупреждение.

Если вы никогда не используете его в коде функции, вы можете удалить его или указать значение по умолчанию.

например:.

function customvishal_form($form, &$form_submit = NULL)

или вы можете рассмотреть возможность передачи дополнительного параметра. Вы можете сделать это так:

drupal_get_form('customvishal_form', $some_your_parameter);
1 голос
/ 02 апреля 2012

Я думаю, что знаю ответ.У меня была точно такая же проблема.

Назван ли ваш модуль точно как ваша пользовательская тема?Мой был, и я изменил название своей темы, и ошибка исчезла

...