ВопросКак получить NID с тизера

в тизере есть кнопка submit на форму. Мне надо передать на форму nid ноды. arg() не получится так как нод не открыт полностью

Комментарии

Аватар пользователя sergeybelya
sergeybelya написал:

Как вы форму в тизер добавляли? Если через шаблон ноды, тогда $node->nid.

16.10.2012 22:38
Аватар пользователя Serik Yeleussizov
Serik Yeleussizov написал:

в тизер через шаблон drupal_get_form. Форма в popup еще открывается, чет $node->nid не перехватывает

17.10.2012 08:39
Аватар пользователя sergeybelya
sergeybelya написал:

Форма где у вас создается? Если вы пишите свой конструктор в модуле или в файле template.php, то необходимо передавать в функцию-конструктор формы дополнительный аргумент, например, объект ноды (если вызываете drupal_get_form в шаблоне node.tpl.php). Примеры здесь:
http://api.drupal.org/api/drupal/includes!form.inc/group/form_api/7
Если решение не подходит, опишите задачу подробнее.

17.10.2012 11:03
Аватар пользователя Serik Yeleussizov
Serik Yeleussizov написал:

Я в node.tpl.php в функцию

drupal_get_form('form_id', $nid)

- где $nid = $node->nid.
конструктор он в модуле, в этой формуе только два элемента:

  1. Это кнопка SUBMIT (где ajax_callback-ом открывается еще форма в ui.dialog)
  2. второй элемент: #type=>value, #value=>$nid - который передался с node.tpl.php

Вот и сам колбэк:

function blabla_form_ajax_callback($form, $form_state) {
  $nid = strip_tags($form_state['values']['id']);
  $form = drupal_get_form('popup_order_more_form',$nid);
 
  $commands = array();
 
  $commands[] = ajax_command_append('body', '<div id="popup"></div>');
  $commands[] = ajax_command_html('#popup', render($form));
  $commands[] = ajax_command_invoke('#popup', 'dialog',array(array(
										'modal' => TRUE,
										'show'=> "fade", 
																'width'=>'530', 
										'resizable'=> false,
										'zIndex'=> 100000)));
  $commands[] = ajax_command_invoke('popup_order[name="action"]', 'click');
 
  return array('#type' => 'ajax', '#commands' => $commands);
 
 }

И в конструкторе:

function БЛАБЛА_form($form, &$form_state, $nid) {
 
 
}
20.10.2012 16:04
Аватар пользователя Serik Yeleussizov
Serik Yeleussizov написал:

И вроде все работает, НО есть одна проблема
мои другие аяк колбэки перестали работать, и не сабмитится...
в ЛОГЕ такая запись:

1) Notice: Undefined index: form_build_id в функции ajax_get_form() (строка 320 в файле /var/www/*****/data/www/*****/includes/ajax.inc).

2) Некорректные POST-данные формы.

20.10.2012 16:08

Комментировать