2012-05-26 13 views
5

मैं <aParams>class="class-name"</aParams>
उदाहरण के लिए का उपयोग करके शीर्ष लिंक करने के लिए वर्ग जोड़ने की कोशिश की:शीर्ष लिंक में कक्षा कैसे जोड़ें?

<reference name="top.links"> 
    <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><aParams>class="top-link-myaccount"</aParams><position>10</position></action> 
</reference> 

चाल से ऊपर कम से कम 1.7.0.0 संस्करण के लिए मेरे लिए काम नहीं किया।
कोई विचार?

संपादित करें:
मुझे लगता है कि मैं <li/><a>class="top-links-register"</a> का उपयोग कर इसे तय:

<reference name="top.links"> 
     <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><aParams/><position>10</position><li/><a>class="top-link-myaccount"</a></action> 
    </reference> 

ध्यान दें कि आप पहले जोड़ें चाहिए <li/>

उत्तर

12

आप की खोज की है के रूप में, addLink हस्ताक्षर विधि है:

public function addLink($label, $url='', $title='', $prepare=false, $urlParams=array(), $position=null, $liParams=null, $aParams=null, $beforeText='', $afterText='') 

तो अल का उपयोग करके एक लेआउट में उचित कॉल एल मापदंडों होगा:

<action method="addLink"> 
    <label/> 
    <url/> 
    <title/> 
    <prepare/> 
    <urlParams/> 
    <position/> 
    <liParams/> 
    <aParams/> 
    <beforeText/> 
    <afterText/> 
</action> 

दुर्भाग्य Magento प्रतिबिंब का उपयोग नहीं कर रहा है विधि का नाम वाले पैरामीटर के लिए कार्रवाई तत्व बच्चों मैप करने के लिए और बदले में स्थिति पर निर्भर करता है।

एक अतिरिक्त नोट, लीपैरम्स और एपैम या तो एक स्ट्रिंग या कुंजी/मूल्य जोड़े का प्रतिनिधित्व करने वाले बाल तत्वों की श्रृंखला हो सकते हैं।

14

एक उदाहरण के साथ ली की जवाब पूरा करने के लिए, एक वर्ग शीर्ष लिंक करने के लिए <liParams> इस तरह के नीचे (<li> तत्व में ही) आप एक नया नोड के माध्यम से यह कर सकते हैं (या एक स्ट्रिंग) जोड़ने के लिए:

<action method="addLink"> 
    <label/> 
    <url/> 
    <title/> 
    <prepare/> 
    <urlParams/> 
    <position/> 
    <liParams> 
     <class>myclassname</class> 
    </liParams> 
    <aParams/> 
    <beforeText/> 
    <afterText/> 
</action> 

लेकिन जैसा ली ली बताता है, आपको इन बच्चों के तत्वों के क्रम को संरक्षित करने की आवश्यकता है।

आप सूची भीतर <a>पर वर्ग डाल करने के लिए चाहते हैं, तो वाक्य रचना इसी तरह की है, तो आप सिर्फ नोड को लक्ष्य:

<action method="addLink"> 
    <label/> 
    <url/> 
    <title/> 
    <prepare/> 
    <urlParams/> 
    <position/> 
    <liParams/> 
    <aParams> 
     <class>myclassname</class> 
    </aParams> 
    <beforeText/> 
    <afterText/> 
</action> 

आप लिंक टेक्स्ट पर अधिक लचीलापन की जरूरत है और स्वरूपण, एक वैकल्पिक विधि एक ब्लॉक में लिंक उत्पन्न करना है और फिर "addLink" नोड का उपयोग करने के बजाय उस ब्लॉक को जोड़ना है।

इस प्रकार एक्सएमएल में लिंक जोड़ने के बजाय कार्ट और चेकआउट लिंक जोड़े गए हैं, वे सीधे लिंक के भीतर से ऐडलिंक विधि को कॉल करते हैं, इस तरह वे प्रत्येक ग्राहक के लिए उपयुक्त टेक्स्ट की गणना कर सकते हैं ।

इस उदाहरण के लिए base\default\layout\checkout.xml के साथ संयोजन में Mage_Checkout_Block_Links कक्षा देखें।

संबंधित मुद्दे