Magento के टॉप-लिंक को संपादित करने का सबसे अच्छा तरीका


22

मान लें कि हम Magento के शीर्ष लिंक पर "माई कार्ट" लिंक से ठीक पहले एक शॉपिंग कार्ट आइकन जोड़ना चाहते हैं (नीचे दिए गए शीर्ष लिंक देखें)।

यहां छवि विवरण दर्ज करें

इसे करने का बेहतरीन तरीका क्या है?

  1. Toplinks.php के लिए कुछ करें?
  2. कुछ करने के लिए links.phtml?
  3. एक xml फ़ाइल?
  4. कोई अन्य विकल्प?

मैं समझता हूं कि यह सीएसएस के साथ किया जा सकता है, लेकिन जैसे-जैसे अनुकूलन की मेरी जरूरत बढ़ती है, मैं जानना चाहता हूं कि यह बिना सीएसएस के कैसे किया जा सकता है इसलिए मैं अधिक कठिन चीजों को अनुकूलित करने में सक्षम हूं।

जवाबों:


12

किसी भी स्थिति में टेम्प्लेट फ़ाइल को संपादित न करें ( links.phtml)। यह सभी लिंक सूचियों के लिए एक सामान्य टेम्पलेट के रूप में कार्य करता है। उदाहरण के लिए इसका उपयोग पाद लेख में लिंक के लिए भी किया जाता है।
साथ toplinks.phpआप आप जो कुछ भी चाहते हैं, क्योंकि सीई v1.4.0.1 के बाद से हटा दिया गया है कर सकते हैं।
मैं एक्सएमएल फ़ाइलों का उपयोग करने की सलाह देता हूं जो आपको आवश्यक प्राप्त करने के लिए शीर्ष कंटेनर से लिंक जोड़ते हैं। विधि है कि जब एक नया लिंक जोड़ने कहा जाता है कुछ मानकों है कि आप वर्गों और पर अन्य विशेषताओं को जोड़ने की अनुमति का समर्थन करता है और लिंक और लिंक से पहले और लिंक के बाद कुछ टेक्स्ट में टैग।
addLinklia

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

यदि आप मेरे खाता मेनू में एक आइकन जोड़ना चाहते हैं तो आप आइकन वर्ग पर कुछ शैलियों $beforeTextको सेट <span class="icon"></span>और जोड़ सकते हैं।
कार्ट और चेकआउट लिंक के लिए यह थोड़ा पेचीदा है क्योंकि उन्हें लेआउट फ़ाइल से सीधे ब्लॉक ऑब्जेक्ट के माध्यम से जोड़ा जाता है।
यदि आपको गाड़ी या चेकआउट के लिए कुछ अलग करने की आवश्यकता है, तो आपको जो कुछ करना है, वह विधियों को ओवरराइड करना है Mage_Checkout_Block_Links::addCartLink()या Mage_Checkout_Block_Links::addCheckoutLink()। ये 2 समान हैं addLink()और आप इसके लिए अलग-अलग पैरामीटर पास कर सकते हैं।


1
यह ठीक उसी तरह का स्पष्टीकरण है जिसकी मुझे तलाश थी। मेरे सामने निश्चित रूप से बहुत कुछ है, लेकिन अब मुझे इस पर विचार करना है कि कहां से शुरू करना है। मैं निम्नलिखित पाठ $ से पहले अपने आइकन (बूटस्ट्रैप से) को जोड़ने का प्रयास करने जा रहा हूं $ 'पहले <' i class = "आइकन-खरीदारी-कार्ट"> </ i> '- धन्यवाद!
राफेल राफतपनह

मैं इसके लिए किस XML फ़ाइल का उपयोग करूंगा?
राफेल राफतपनह

मैंने समझाया कि कार्ट और चेकआउट लिंक के लिए आप लेआउट फ़ाइल से ऐसा नहीं कर सकते। आपको विधि को ओवरराइड करने की आवश्यकता हैMage_Checkout_Block_Links::addCartLink()
Marius

1
ठीक है। मैं उस विधि को ओवरराइड करने के लिए मान रहा हूं जिसे मुझे अपने कस्टम थीम फ़ाइलों में एक फ़ाइल जोड़ने की आवश्यकता है और वहां विधि को कॉल करना चाहिए, जो पिछले उदाहरण को ओवरराइड करेगा। क्या आप मुझे सही दिशा में इशारा करते हैं, उदाहरण के लिए, किस फ़ाइल में Mage_Checkout_Block_Links विधि होगी। यह लिंक है।
राफेल राफतपनह

यदि आप XML मार्ग पर जाते हैं (जो आपको निश्चित रूप से होना चाहिए) ध्यान दें, ताकि पहले के <span class="icon"></span>रूप में उपयोग करने के लिए आपको इसे इस तरह से घेरना पड़े <![CDATA[<span class="icon"></span>]]>। XML पार्सर नई लाइनों को भी उठाता है, इसलिए आपको इसे ओपनिंग टैग के ठीक बाद रखना होगा:<beforeText><![CDATA[<span class="icon"></span>]]></beforeText>
jmk

9

यदि आपको केवल शीर्ष लिंक के लिए कस्टम टेम्पलेट लागू करने की आवश्यकता है, तो आप इसे अपने विषय के local.xml में इस तरह कर सकते हैं:

<default>
    <reference name="top.links">

        <action method="setTemplate">
            <template>page/template/my_links.phtml</template>
        </action>

    </reference>
<default>

फिर पेज / टेम्पलेट / लिंक. phtml की प्रतिलिपि बनाएँ और इसे पृष्ठ / टेम्पलेट / my_links.phtml में बदल दें और उस नई टेम्प्लेट फ़ाइल के अंदर आपको जो भी आवश्यक हो वह करें।

स्थानीय लिंक के माध्यम से शीर्ष लिंक के लिए एक कस्टम लिंक जोड़ने के लिए:

<reference name="top.links">
    <action method="addLink" translate="label title">
        <label>My Link</label>
        <url>path/to/page</url>
        <title>My link tooltip</title>
        <prepare>true</prepare>
        <urlParams/>
        <position>150</position>
        <liParams>id="my-custom-id"</liParams>
    </action>
</reference>

इस पृष्ठ को भी देखें: http://www.classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way


इस पद्धति का उपयोग करते हुए, क्या मैं प्रत्येक लिंक के बीच html को जोड़ पाऊंगा?
राफेल रफतपनह

@RaphaelRafatpanah हाँ, में links.phtml वहाँ एक पाश है <?php foreach($_links as $_link): ?>। आप उस लूप के अंदर कोई भी HTML जोड़ सकते हैं।
ज़ीम्स

लेकिन फिर इसे प्रत्येक लिंक में जोड़ा जाएगा, हाँ? मैं प्रत्येक लिंक के बीच अनुकूलित HTML जोड़ना चाहता हूँ। इसके अलावा, मेरा मानना ​​है कि फ़ॉरेस्ट लूप का उपयोग फ़ूटर लिंक के साथ-साथ हेडर लिंक के लिए भी किया जाता है, इसलिए यदि मैं लिंक के बीच html जोड़ता हूं, तो वे फ़ूटर लिंक पर भी लागू होंगे।
राफेल राफतपनह

1
यही कारण है कि चाल है: के बाद आपके द्वारा बनाए गए पेज / टेम्पलेट / my_links.phtml (जो मूल की एक प्रति है links.phtml ) और आप कोड मैं अपने पर पोस्ट किए गए जोड़ने के बाद local.xml , कि टेम्पलेट का उपयोग किया जाएगा केवल शीर्ष लिंक प्रस्तुत करने के लिए। पाद लेख लिंक या कोई अन्य लिंक नहीं।
zitix


0

कृपया शीर्ष लिंक बदलने के लिए यह मार्ग खोजें:

/app/design/frontend/base/default/layout/customer.xml  

और खोज करें: लॉग इन (मेरे मामले में)।

अब अपने इच्छित पाठ के साथ शीर्षक और लेबल बदलें।


आपको कोर फ़ाइलों को संपादित नहीं करना चाहिए!
ब्लैक

-1

आपको निम्न 2 फ़ाइलों को संपादित करने की आवश्यकता है।

app/design/frontend/default/default/layout/checkout.xml

app/design/frontend/default/default/layout/customer.xml

इन फ़ाइलों में, लिंक जोड़े जाते हैं name="top.links"। बस उन्हें टिप्पणी करें।


2
Magento SE में आपका स्वागत है। जब यह उत्तर काम करता है, तो यह प्रश्न स्पष्ट रूप से सर्वोत्तम प्रथाओं के बारे में था और कोर फ़ाइलों को संपादित करना मैगेंटो में सबसे अच्छा अभ्यास है।
फेबियन शेंगलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.