it-swarm-ko.tech

노드 추가 / 편집 후 사용자 리디렉션

노드를 만들거나 편집 한 후 사용자를 사용자 정의 페이지로 리디렉션하고 싶습니다.

13
ousneo

당신이 사용할 수있는 hook_form_alter 경로 재 지정 경로를 설정할 수있는 사용자 정의 제출 핸들러를 추가하십시오.

양식 리디렉션에 대한 자세한 내용은 FAPI 를 참조하십시오.

6
googletorp

특정 컨텐츠 유형을 작성하거나 편집 할 때 사용자를 임의의 페이지로 경로 재지 정하는 규칙을 작성할 수 있습니다. 규칙을 추가 할 때 "새 컨텐츠 작성 후"를 선택하고 "컨텐츠 유형"조건도 추가하십시오. 할 일 섹션에서 사용자를 원하는 페이지로 리디렉션 할 수있는 옵션을 제공합니다.

노드를 편집 한 후 리디렉션하려면 새 규칙을 만들고 첫 번째 옵션으로 "기존 컨텐츠를 업데이트 한 후"를 선택하십시오.

4
user2014

이 작업을 수행 할 때 기존 노드를 편집하기 위해 편집 버튼을 클릭 할 때 일반적으로 URL에 추가되는 가능한 기존 대상을 설정 해제해야합니다.

articleMYMODULE_form_article_node_form_alter를 콘텐츠 유형의 컴퓨터 이름과 함께 사용하십시오.

/**
 * Implements hook_form_BASE_FORM_ID_alter().
 */
function MYMODULE_form_article_node_form_alter(&$form, &$form_state, $form_id) {

  $form['actions']['submit']['#submit'][] = '_MYMODULE_node_form_redirect';
}

/**
 * Submit callback.
 */
function _MYMODULE_node_form_redirect($form, &$form_state) {

  // Unset destination first.
  unset($_GET['destination']);
  unset($_REQUEST['edit']['destination']);

  $form_state['redirect'] = 'FOO/BAR';
}
2
leymannx

설명서는 명확하지 않지만 $_GET['destination'] 또는 $_REQUEST가 아닌 $form_state['redirect'] 변수를 수정해야합니다.

1
Dmitry Vyal

Drupal 7)에서 노드 편집 양식을 변경하여 자신의 제출 기능을 '첨부'할 수 있으며, 여기서 '삭제'매개 변수를 포함하도록 노드 삭제 확인 양식의 form_state를 변경할 수 있습니다. 방금 '7'관리 테마의 하위 테마로 개발 한 사용자 정의 테마 에서이 작업을 수행했습니다 ...

hook_form_FORM_ID_alter 에 대한 설명서

이 후크를 모듈뿐만 아니라 템플릿/테마에도 추가 할 수 있습니다.

테마에서 template.php,이 양식 alter hook을 추가하십시오 :

function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
    $form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}

그리고 짜잔. 노드가 삭제 된 후 더 이상 홈페이지로 리디렉션되지 않습니다.

1
kris

여기에서 해결책 http://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#comment-18139

<?php
  function FORM_NAME_form_submit($form, &$form_state) {
    $form_state['redirect'] = array(
      // $path
      'path/to/redirect/to',
      // $options
      array('query' => array('key' => 'value')),
      // $http_response_code
      302,
    );
  }  
?>
0
Eugene Fidelin