क्या ड्रुपल मेनू के तहत मेनू में एक हैशेड लिंक जोड़ने का एक तरीका है जो केवल एक मेनू आइटम बनाता है जो पेज पर एक एंकर या आईडी से नीचे कूदता है?
क्या ड्रुपल मेनू के तहत मेनू में एक हैशेड लिंक जोड़ने का एक तरीका है जो केवल एक मेनू आइटम बनाता है जो पेज पर एक एंकर या आईडी से नीचे कूदता है?
जवाबों:
दुर्भाग्य से जहां तक मुझे जानकारी है, Drupal इस बॉक्स से बाहर नहीं कर सकता। हालांकि, आप एक नया मेनू आइटम बनाने के लिए विशेष मेनू आइटम मॉड्यूल का उपयोग कर सकते हैं , और पथ सेटिंग्स में "नॉलिंक" रख सकते हैं।
l('linktext', '', array('fragment' => ' ', 'external' => TRUE));
@ सेबेस्टियन की प्रतिक्रिया के अनुसार उपयोग करें ।
<span title="" class="nolink">...</span>
। समस्या कुछ और नहीं बल्कि CSS की कमी है। बस ul.menu a{}
CSS को कॉपी करें और उनके लिए पेस्ट करें ul.menu li span.nolink{}
। यह मेरे लिए ठीक काम कर रहा है। लेकिन इसके द्वारा सक्षम ड्रॉप-डाउन एरो को निष्क्रिय कर दिया li.expanded
। :(
jQuery("span.nolink").wrap("<a href='#'></a>");
प्रलेखन के लिए एक टिप्पणीl()
में बताई गई बातों का पालन करें ।
नामित एंकर (उदाहरण के लिए "# nameanchor") का लिंक बनाने के लिए, आपको एक छोटे से काम का उपयोग करने की आवश्यकता होगी।
l('linktext', '', array('fragment' => 'namedanchor', 'external' => TRUE));
एक हैश-केवल लिंक ("#") बनाने के लिए, आपको इसे अनुकूलित करना होगा:
l('linktext', '', array('fragment' => ' ', 'external' => TRUE));
(ध्यान दें कि टुकड़े में एक स्थान होता है।)
Drupal 7 में, "HTML" को सेट करें TRUE
, फिर हैश वर्ण को जोड़ें।
http://drupal.org/node/123103#comment-4955236
नोड / 16 # gohere
ऑटो यूआरएल इसे बदलने के लिए की तरह होगा
के बारे में-हमें # gohere
<front>#gohere
। अच्छा! :)
मॉड्यूल शून्य मेनू का उपयोग करने का प्रयास करें :
शून्य मेनू आपको Drupal 7 मेनू सिस्टम में उपयोग के लिए विशेष मानों को टैग में कॉन्फ़िगर करने की अनुमति देता है। आप अपनी इच्छानुसार किसी भी मूल्य के साथ 10 अलग-अलग शून्य टैग को अनुकूलित कर सकते हैं और उन्हें ड्रुपल मेनू सिस्टम के अंदर स्वतंत्र रूप से उपयोग कर सकते हैं।
...
एक अतिरिक्त बोनस के रूप में, और इस मॉड्यूल की कार्यक्षमता के कारण, आप वास्तविक एंकरों को मेनू आइटम के रूप में उपयोग करने में सक्षम हैं जो प्लेसहोल्डर्स की तुलना में कोई अन्य उद्देश्य नहीं रखते हैं। यह एक शून्य टैग के साथ पूरा किया गया है जो जावास्क्रिप्ट पर सेट है: शून्य (0); या यहां तक कि एक साधारण हैश टैग #। इसके लिए special_menu_items पर इस मॉड्यूल का उपयोग करने का लाभ यह है कि आपके मेनू में special_menu_items द्वारा उपयोग किए गए अतिरिक्त अवधि टैग के लिए किसी भी अतिरिक्त स्टाइल की आवश्यकता नहीं होगी, और W3C मान्य होगा क्योंकि प्रत्येक एंकर के पास एक href विशेषता होनी चाहिए।
यह एक बहुत अच्छा समाधान है!
बस उसी समस्या का सामना करना पड़ा। मुझे हैश-लिंक के साथ मेनू-आइटम को प्रोग्रामेटिक रूप से जोड़ने की आवश्यकता थी। मेरा कोड:
// the URL with hash in it is in the form 'normal_part_of_url'#'hash_part_of_url'
$item = array(
'link_path' => %normal_part_of_url%,
'link_title' => %your_link_title%,
'menu_name' => %menu_where_to_add_links%,
'options' => array('fragment'=>%hash_part_of_url%)
);
menu_link_save($item);
बस मेरे लिए यह करने के external
लिए सेटिंग TRUE
। Druapl 7.32 में परीक्षण किया गया।
l('Some Name', '#', array('external' => TRUE));
Drupals का उपयोग अनुवाद कार्य भी करता है।
/**
* Implements hook_menu().
*
* Defines a valid link to use when creating menu items.
*/
function greenacorn_menu() {
$items['<main-content>'] = array(
'page callback' => 'drupal_not_found',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Implements hook_menu_link_alter().
*
* Flags the link to be altered at runtime.
*
* Note: Changes here would be saved back to the database.
*/
function greenacorn_menu_link_alter(&$item, $menu) {
if ($item['link_path'] == '<main-content>') {
$item['options']['alter'] = TRUE;
}
}
/**
* Implements hook_translated_menu_link_alter().
*
* Refactors the link to go to the fragment #main-content.
*/
function greenacorn_translated_menu_link_alter(&$item, $map) {
if ($item['link_path'] == '<main-content>') {
$item['href'] = '';
$item['localized_options']['fragment'] = 'main-content';
}
}
function test_menu() {
$items = array();
$items['sample'] = array(
'title' => t('Sample page'),
'type' => MENU_NORMAL_ITEM,
'menu_name' => 'main-menu',
'page callback' => 'samplepage',
'access callback' => TRUE,
'options' => array('fragment' => 'sampleHash'),
);
return $items;
}
आप उपरोक्त कोड का उपयोग करके मेनू में हैश लिंक जोड़ सकते हैं।
/**
* Implements hook_module_implements_alter().
*/
function MODULE_module_implements_alter(&$implementations, $hook) {
if ($hook == 'url_outbound_alter') {
$stored = $implementations['MODULE'];
unset($implementations['MODULE']);
$implementations['MODULE'] = $stored;
}
}
/**
* Implements hook_url_outbound_alter().
*/
function MODULE_url_outbound_alter(&$path, &$options, $original_path) {
if (strpos($path, '#') !== FALSE) {
$fragment = substr($path, strpos($path, "#") + 1);
$path = str_replace('#' . $fragment, '', $path);
$options['fragment'] = $fragment;
}
}
पदानुक्रमित मेनू के लिए विशेष मेनू आइटम और DHTML मेनू स्थापित करें:
<void>
इसे लक्ष्य में पेस्ट करेंअब अपने होम पेज पर वापस आएँगे और आप देखेंगे कि मेनू आइटम जिसे हमने क्लिक में संशोधित किया है, वे कहीं नहीं जाते हैं