drupal_goto 경로에 해시 (#)를 어떻게 포함합니까?


12

drupal_goto에 #을 포함시킬 방법이 있습니까?

나는 이런 것을 원한다

function MYMODULE_preprocess_node(&$variables) {
  $node = $variables['node'];
  switch ($node->type) {
    case 'product':      
      drupal_goto("products#".$node->nid);
  }
}

답변:


18

드루팔 6의 경우

세 번째 매개 변수 여야합니다

drupal_goto($path = '', $query = NULL, $fragment = NULL, $http_response_code = 302)

drupal_goto("products", NULL, $node->nid);

드루팔 7

drupal_goto($path = '', array $options = array(), $http_response_code = 302)
drupal_goto("products", array('fragment' => $node->nid));

D7 예제의 경우 URL 매개 변수와 같이 url () 함수가 지원하는 모든 매개 변수를 사용할 수 있습니다.
AyeshK

7

Drupal 6에서 drupal_goto는 세 번째 매개 변수를 조각화에 사용합니다. products # 345와 같이 URL을 만들려면 drupal_goto 함수의 세 번째 인수로 해당 조각을 전달해야합니다.

drupal_goto("products", NULL, $node->nid); // where $node->nid is the fragment.

Drupal 7에서는 drupal_goto 함수의 두 번째 매개 변수에서 조각을 배열의 키 값 쌍으로 전달해야합니다.

drupal_goto('products', array('fragment' => $node->nid)) ; // where $node->nid is the fragment.

위의 두 제품은 products # 123과 같은 URL을 생성합니다. 여기서 123은 $ node-> nid 변수의 값입니다.


2

이것은 또한 Drupal 7에서 나를 위해 일했습니다.

 drupal_goto( '/products/' . 'section', array( 'fragment' =>  'subsection', 'alias' => TRUE ) );

0

? destination = foobar # zzz가있는 경우 drupal_goto는 #zzz를 잃습니다. $ _SERVER에 의해 반환되지 않으므로이 줄을 제거하십시오.

//$options['fragment'] = $destination['fragment'];  // removed
is the same as 
$options['fragment']='';
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.