2009-11-09 16 views
18

मैं, उत्पादन इसDrupal: लंगर बनाने में केवल कुछ एल के साथ लिंक()

<a href='#namedanchor'>link</a> 

एल() फ़ंक्शन का उपयोग करना चाहते हैं जिससे वे सभी बस वर्तमान पृष्ठ पर एक लंगर के लिए कूदता है।

मैं इस

l('link', '', array('fragment' => 'namedanchor')); 

काम करने के लिए, लेकिन यह www.example.com/currentpage#namedanchor

उत्तर

41

तुम सिर्फ टुकड़ा के साथ एक लिंक बनाना चाहते हैं, तो आप "चाल" Url समारोह थोड़ा की जरूरत है। चूंकि यह बेसपैथ को सभी आंतरिक यूआरएल में जोड़ देगा, ''http://example.com बन जाएगा।

आप क्या करने की जरूरत को सही पर बाहरी विकल्प सेट करने के लिए है:

l('link', '', array('fragment' => 'namedanchor', 'external' => TRUE)); 

यह वांछित

<a href='#namedanchor'>link</a> 

वैकल्पिक जेरेमी पता चलता है की तरह आप पूर्ण यूआरएल दे सकता है दे देंगे।

+1

सही, धन्यवाद! – ack

+0

शायद 'l()' में पहले तर्क के आसपास 't()' फ़ंक्शन जोड़ना चाहिए, है ना? – cdmo

2

यहाँ के बजाय www.example.com/#namedanchor के लिये परम लिंक बनाता है ऐसा लगता है कि यह द्वारा होगा देखने के dosn't के लिए l

प्रलेखन है उम्मीद जब कोई पथ परिभाषित नहीं किया जाता है तो डिफ़ॉल्ट पृष्ठ का डिफ़ॉल्ट उपयोग करें। तो अगर आप इसे इस तरह बुलाना चाहिए:

l('link', 'currentpage', array('fragment' => 'namedanchor')); 
3

एल() का उपयोग कर एक लंगर बनाने के लिए:

$path = isset($_GET['q']) ? $_GET['q'] : '<front>'; 
l(t('link text'), $path, array('attributes' => array('name' => 'name-of-anchor'))); 

हो जाएगा ताकि उत्पादन:

$path = isset($_GET['q']) ? $_GET['q'] : '<front>'; 
l(t('link to anchor'), $path, array('fragment' => 'name-of-anchor')); 

यह:

<a href="/path/to/currentpage" name="name-of-anchor">link text</a> 

फिर, इस एल का उपयोग कर() से जोड़ने के लिए आउटपुट होगा:

<a href="/path/to/currentpage#name-of-anchor">link to anchor</a> 
संबंधित मुद्दे