Drupal_goto पथ में हैश (#) कैसे शामिल है?


12

क्या drupal_goto में # शामिल करने का कोई तरीका है?

मुझे ऐसा कुछ चाहिए

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

जवाबों:


18

Drupal 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 params।
आयुष

7

Drupal 6 में drupal_goto विखंडन के लिए अपने तीसरे पैरामीटर का उपयोग करता है। यदि आप उत्पादों # 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.

उपरोक्त दोनों # १२ above उत्पादों की तरह एक यूआरएल का उत्पादन करेंगे, जहां १२३ $ नोड-> एनआईडी चर का मूल्य है।


2

इसने ड्रुपल 7 में भी काम किया

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

0

drupal_goto #zzz खो देता है अगर कोई है; गंतव्य = foobar # zzz, क्योंकि यह $ _SERVER द्वारा कभी नहीं लौटाया जाता है, इस लाइन को हटा दें क्योंकि सामान तोड़ने के अलावा कुछ भी नहीं है:

//$options['fragment'] = $destination['fragment'];  // removed
is the same as 
$options['fragment']='';
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.