2011-10-07 11 views
2

私はサイト管理者を直接的に決して閲覧されないので、更新のコンテンツからリダイレクトしようとしています。代わりに私はリダイレクトが発生している間に、ホームページの特定のセクションにリンクしようとしていますが、フラグメントオプションは無視されています。Drupalでフラグメントを使用する7フォームリダイレクト

function _content_redirect_to(&$form_state, $hash) { 
    $destination = drupal_get_destination(); 
    if ($destination['destination'] != 'admin/content') { 
     $form_state['redirect'] = array(
      '<front>', 
      array(
       'query' => array(), 
       'fragment' => 'whatever', 
       'absolute' => TRUE, 
      ), 
     ); 
    } 
} 

function _content_redirect_location($form, &$form_state) { 
    _content_redirect_to($form_state, 'locations'); 
} 

function content_redirect_form_alter(&$form, &$form_state, $form_id) { 
    $link = l('test link', '<front>', array(
     'fragment' => 'locations' 
    )); 
    drupal_set_message($link); // Works just fine. 
    switch ($form_id) { 
     case 'location_node_form': 
      $form['actions']['submit']['#submit'][] = '_content_redirect_location'; 
      break; 
    } 
} 

私はdrupal_gotoを更新時に直接呼び出すと同じことが起こります。

function content_redirect_node_update($node) { 
    if ($node->type == 'location') { 
     drupal_goto(
      '<front>', array(
       'fragment' => 'locations' 
      ) 
     ); 
    } 
} 

ここでは他の情報を見つけることができませんでした。

答えて

0

私はそれが完璧なソリューションではありません知っているが、この試してみてください。これを行うには正しい方法がある

$form['#action'] = url($_GET['q'], array('query' => array('destination' => 'DESIRED_LOCATION'))); 
0

を:

$form_state['redirect'] = array('<front>', array('fragment' => 'location')); 
関連する問題