$form['#action']

Главные вкладки

Аватар пользователя shamahn shamahn 31 марта 2011 в 15:16

Смотрю форму создания любой ноды
#action (String, 14 characters ) /node/add/node-type
на сколько я понимаю, это после сабмита по этому адресу запосченая форма будет провалидена и потом уже редирект на просмотр ноды.
Так вот вопрос Smile как мне просмотреть, а важнее поменять адрес на который редиректит после постинга формы (прошедшей валидацию)для определенного типа нодов?
надеюсь, ясно выразился Smile

Комментарии

Аватар пользователя shamahn shamahn 31 марта 2011 в 17:54

все. взрыв мозга уже Smile вообще ноль реакции

<?php
function faqopers_form_alter(&$form, &$form_state, $form_id) {
  if ( $form['#id'] == 'node-form' && $form['type']['#value'] == 'faq' && !$form['nid']['#value'] ) {
    $form['#submit'][] = 'faqopers_faq_form_submit';
    if ( !user_access('answer questions') ) {
      $form['#after_build'][] = 'faqopers_after_build';
      drupal_set_title( 'Задать вопрос/оставить заявку' );
    }
  }
}

function faqopers_after_build($form, &$form_state) {
  unset( $form['group_faq_answer']);
 
  return $form;
}

function faqopers_faq_form_submit( $form, &$form_state ) {
 
  $form_state['redirect'] = 'faq/' . '100' . '/posted';
 
}
?>

тут "100" попытка заставить перейти хоть куда-то Smile про то как вместо нее поставить ид ноды даже думать страшно Smile

Аватар пользователя shamahn shamahn 31 марта 2011 в 18:32

в общем, окончательный вариант

<?php
function faqopers_form_alter(&$form, &$form_state, $form_id) {
  switch ( $form_id ) {
    case 'faq_node_form':
      if ( !$form['nid']['#value'] ) {
        $form['buttons']['submit']['#submit'][] = 'faqopers_faq_form_submit';
        drupal_set_title( 'Задать вопрос/оставить заявку' );
        if ( !user_access('answer questions') ) {
          $form['#after_build'][] = 'faqopers_after_build';
        }
       
      }
      break;
  }
}

function faqopers_after_build($form, &$form_state) {
  unset( $form['group_faq_answer']);
 
  return $form;
}

function faqopers_faq_form_submit( $form, &$form_state ) {
 
  $form_state['redirect'] = 'faq/' . '100' . '/posted';
 
}

Но совершенно не понятно почему нужно обработчик прикручивать к кнопке. Как-то уж совсем не однозначное решение