मैं ग्राहक खाता डैशबोर्ड बाएं पैनल के निम्नलिखित लिंक निकालना चाहता हूं?
- मेरे अनुप्रयोग
- उपहार रजिस्ट्री
- इनामी अंक
- गिफ्ट कार्ड लिंक
मैं Magento 1.7 सामुदायिक संस्करण में काम कर रहा हूँ। किसी भी तरह की सहायता को आभार समझेंगे।
मैं ग्राहक खाता डैशबोर्ड बाएं पैनल के निम्नलिखित लिंक निकालना चाहता हूं?
मैं Magento 1.7 सामुदायिक संस्करण में काम कर रहा हूँ। किसी भी तरह की सहायता को आभार समझेंगे।
जवाबों:
चरण 1: (yourPackage / YourTemplate / ग्राहक / खाता / नेविगेशन.phtml) पर जाएं
चरण 2: नीचे की पंक्ति बदलें
<?php $count = count($links); ?>
**With**
<?php $_count = count($_links); /* Add or Remove Account Left Navigation Links Here -*/ unset($_links['account']); /* Account Info */ unset($_links['account_edit']); /* Account Info */ unset($_links['tags']); /* My Tags */ unset($_links['invitations']); /* My Invitations */ unset($_links['reviews']); /* Reviews */ unset($_links['wishlist']); /* Wishlist */ unset($_links['newsletter']); /* Newsletter */ unset($_links['orders']); /* My Orders */ unset($_links['address_book']); /* Address */ unset($_links['enterprise_customerbalance']); /* Store Credit */ unset($_links['OAuth Customer Tokens']); /* My Applications */ unset($_links['enterprise_reward']); /* Reward Points */ unset($_links['giftregistry']); /* Gift Registry */ unset($_links['downloadable_products']); /* My Downloadable Products */ unset($_links['recurring_profiles']); /* Recurring Profiles */ unset($_links['billing_agreements']); /* Billing Agreements */ unset($_links['enterprise_giftcardaccount']); /* Gift Card Link */ ?>
उपरोक्त कोड स्निपेट में सभी नेविगेशन लिंक को हटाने का तरीका है। आशा है कि यह सब मदद करेगा।
संदर्भ लिंक: https://github.com/Aproducktion/Magento-Remove-Dashboard-Links
If you can't
??
मुझे यहाँ 2 विकल्प दिखाई दे रहे हैं।
पहला और सबसे आसान: बस उन लेआउट आइटम को जोड़ने वाली लेआउट फाइलें ढूंढें और उनके लिए कोड टिप्पणी करें।
उदाहरण के लिए एक्सएमएल के इस Peice के माध्यम से My applications
जोड़ा app/design/frontend/{interface}/{theme}/layout/oauth.xml
जाता है
<customer_account>
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="oauth">
<name>OAuth Customer Tokens</name>
<path>oauth/customer_token</path>
<label>My Applications</label>
</action>
</reference>
</customer_account>
दूसरा तरीका, कि मुझे 100% यकीन नहीं है कि यह काम करेगा इस xml local.xml
को अपने विषय के लेआउट फ़ाइल के अंदर जोड़ना है :
<customer_account>
<reference name="customer_account_navigation">
<action method="removeLinkByUrl"><url>oauth/customer_token</url></action>
</reference>
</customer_account>
आपको <action>
प्रत्येक लिंक के लिए एक टैग जोड़ना होगा जिसे आप हटाना चाहते हैं।
तीसरा विकल्प भी है, यदि आप मॉड्यूल का उपयोग नहीं कर रहे हैं, तो उन्हें अक्षम करें। यह भी प्रदर्शन को बढ़ावा दे सकता है।
इसके लिए यह फाइल बनाएं: app/etc/modules/Zzzz.xml
इस सामग्री के साथ:
<config>
<modules>
<Mage_Oauth>
<active>false</active>
</Mage_Oauth>
</modules>
</config>
आपको कुछ परेशानी हो सकती है यहां कुछ अन्य मॉड्यूल हैं जिन्हें आप उपयोग करना चाहते हैं, उन लोगों पर निर्भर करें जिन्हें आप अक्षम करना चाहते हैं।
Mage_Customer_Block_Account_Navigation
विरासत में नहीं मिला है Mage_Page_Block_Template_Links
।
एक FOSS एक्सटेंशन है जो बैकएंड विकल्प को रिमोट अकाउंट लिंक से जोड़ता है।
एक दूसरा मॉड्यूल है (भी FOSS) जो removeLink
विधि जोड़ता है ताकि आप अपने में निम्नलिखित का उपयोग कर सकेंlocal.xml
अस्वीकरण: मैं दूसरे एक्सटेंशन का डेवलपर हूं।
<customer_account>
<reference name="customer_account_navigation">
<action method="removeLink"><name>OAuth Customer Tokens</name></action>
<action method="removeLink"><name>billing_agreements</name></action>
<action method="removeLink"><name>recurring_profiles</name></action>
</reference>
</customer_account>
सरल समाधान (कार्यान्वयन और उपयोग) मैंने पाया बदलने के लिए है Mage_Customer_Block_Account_Navigation
में app/code/local
और एक को जोड़ने removeLinkByName
विधि है, जो के रूप में ही होता है Oshan का जवाब है, लेकिन लेआउट फाइलों से प्रयोग करने योग्य है। एक अधिक परंपरागत वर्ग पुनर्लेखन भी काम करेगा, लेकिन संभावित रूप से एक प्लगइन के साथ टकराव का कारण बन सकता है।
चेतावनी! Untested!
एक अधिक जटिल समाधान अपने स्वयं के मॉड्यूल को लिखना होगा Block
जिसके साथ एक विस्तार होता है Mage_Customer_Block_Account_Navigation
और एक removeLinkByName
विधि शामिल होती है। इस कार्य के लिए, आपको customer_account_navigation
ब्लॉक को हटाना / हटाना होगा और इसे अपने नए मॉड्यूल के साथ बदलना होगा। तब से, किसी भी समय customer_account_navigation
लेआउट में संदर्भित किया जाता है, आपको एक उदाहरण मिलेगा removeLinkByName
।
एक त्वरित समाधान, बिलिंग आदेशों, आवर्ती प्रोफाइल, मेरे अनुप्रयोगों और मेरे डाउनलोड करने योग्य उत्पादों सहित मेरे आदेशों के नीचे मेरे सभी खाता सूची आइटम निकालने के लिए। Magento 1.9 पर परीक्षण की गई साइट पर, मेरी विशलिस्ट और मेरे न्यूज़लेटर लिंक को भी हटा देंगे:
एप्लिकेशन / डिज़ाइन / फ़्रंट / डिफ़ॉल्ट / ORTHEME / लेआउट / विशलिस्ट / xml से लाइन्स 31 - 66 पर टिप्पणी करें (यदि ऐप / डिज़ाइन / फ्रंटेंड / आरडब्ल्यूडी / डिफॉल्ट / लेआउट / विशलिस्ट / xml से इसे कॉपी न करें)
<!--default>
<reference name="top.links">
<block type="wishlist/links" name="wishlist_link" />
<action method="addLinkBlock"><blockName>wishlist_link</blockName></action>
</reference>
<!-- Mage_Wishlist -->
<!--reference name="right">
<block type="wishlist/customer_sidebar" name="wishlist_sidebar" as="wishlist" after="cart_sidebar" template="wishlist/sidebar.phtml" />
</reference>
</default-->
<!--customer_account>
<!-- Mage_Wishlist -->
<!--reference name="customer_account_navigation">
<action method="addLink" translate="label" module="wishlist" ifconfig="wishlist/general/active"><name>wishlist</name><path>wishlist/</path><label>My Wishlist</label></action>
</reference-->
<!--/customer_account-->
<!--customer_account_index>
<reference name="right">
<action method="unsetChild"><name>wishlist</name></action>
</reference>
</customer_account_index-->
एप्लिकेशन / डिज़ाइन / फ्रंटएंड / डिफ़ॉल्ट / ORTHEME / लेआउट / न्यूज़लेटर.xml से 47 - 65 की टिप्पणी करें (यदि एप्लिकेशन / डिज़ाइन / फ्रंट / rwd / डिफ़ॉल्ट / न्यूज़लेटर / xxml से इसे कॉपी न करें)
न्यूज़लेटर </ name> न्यूज़लेटर / प्रबंधन / </ path> न्यूज़लेटर सदस्यता </ लेबल> </ कार्रवाई> </ संदर्भ> </ customer_account ->
<!--newsletter_manage_index translate="label">
<label>Customer My Account Newsletter Subscriptions</label>
<update handle="customer_account"/>
<reference name="my.account.wrapper">
<block type="customer/newsletter" name="customer_newsletter">
<block type="page/html_wrapper" name="customer.newsletter.form.before" as="form_before" translate="label">
<label>Newsletter Subscription Form Before</label>
</block>
</block>
</reference>
</newsletter_manage_index!-->
सीएसएस (अपनी आवश्यकताओं के अनुसार समायोजित करें)
.block-account .block-content ul li:nth-last-child(1), .block-account .block-content ul li:nth-last-child(2), .block-account .block-content ul li:nth-last-child(3), .block-account .block-content ul li:nth-last-child(4) {
display: none;
}
.cart-table .cart-links > li:last-child {
display:none;
}
लिंक हटाने से बचने के लिए, मैं $ _index चर के आधार पर आईडी मान निर्दिष्ट करने की सलाह दूंगा, ताकि आप सीएसएस के माध्यम से लिंक छिपा सकें।
यहाँ मैंने क्या किया है:
YourPackage / YourTemplate / ग्राहक / खाते / नेविगेशन.phtml से
<?php foreach ($_links as $_link): ?>
<?php $_last = ($_index++ >= $_count); ?>
<?php if ($this->isActive($_link)): ?>
<li class="current<?php echo ($_last ? ' last' : '') ?>" id="account-link-<?php echo $_index;?>"><strong><?php echo $_link->getLabel() ?></strong></li>
<?php else: ?>
<li<?php echo ($_last ? ' class="last"' : '') ?> id="account-link-<?php echo $_index;?>"><a href="<?php echo $_link->getUrl() ?>"><?php echo $_link->getLabel() ?></a></li>
<?php endif; ?>
<?php endforeach; ?>
तो जाहिर है तब आप जा सकते हैं
#account-link-1 {
display:none;
}
बिल्ली की खाल उतारने का कोई एक तरीका नहीं है, लेकिन यह वास्तव में किसी भी कार्यक्षमता से समझौता किए बिना एक त्वरित और आसान विकल्प है।
मैंने सोचा कि ब्लॉक को फिर से लिखने के लिए एक बेहतर समाधान होगा। यह ऊपर उल्लेख किया गया था लेकिन कोई उदाहरण नहीं था:
वैश्विक खंड में अपने config.xml में फिर से लिखें
<blocks>
<customer>
<rewrite>
<account_navigation>Your_Module_Block_Customer_Account_Navigation</account_navigation>
</rewrite>
</customer>
</blocks>
Mage_Customer_Block_Account_Navigation में ओवरलिंक जोड़ें:
class Your_Module_Block_Customer_Account_Navigation extends Mage_Customer_Block_Account_Navigation
{
private $exclude_links = null;
public function addLink($name, $path, $label, $urlParams=array())
{
if (!$this->exclude_links) {
$this->exclude_links = array(
'OAuth Customer Tokens', /* My Applications */
'downloadable_products', /* My Downloadable Products */
'recurring_profiles', /* Recurring Profiles */
'billing_agreements' /* Billing Agreements */
);
}
if (!in_array($name, $this->exclude_links)) {
return parent::addLink($name, $path, $label, $urlParams);
}
}
}
यदि आप बहिष्कृत लिंक को हार्ड-कोड नहीं करना चाहते हैं, तो बहिष्करण_लिंक सरणी एक विन्यास सेटिंग से खींच सकती है ।
इसके बारे में मैंने जाना है: http://magebase.com/magento-tutorials/5-useful-tricks-for-your-magento-local-xml/
हम मानक Magento लेआउट के लगभग सभी लेआउट पहलुओं को बदल सकते हैं, हालांकि कुछ स्थितियां हैं जब यह दृष्टिकोण विफल हो जाता है। विशेष रूप से, यह उस मिनट को स्वयं प्रकट करता है जिसे आप शीर्ष को संशोधित करना चाहते हैं। इस ब्लॉक में आइटम addLink एक्शन पद्धति का उपयोग करके जोड़े जाते हैं, इसलिए यदि आप सोच रहे हैं कि डिफ़ॉल्ट सेट से कुछ लिंक कैसे निकालें, तो उत्तर है, आप नहीं कर सकते हैं! दुर्भाग्य से, पृष्ठ / टेम्पलेट_लिंक ब्लॉक वर्ग एक 'रिमूवल' एक्शन पद्धति को लागू नहीं करता है, इसलिए रिज़ॉर्ट को पूरा ब्लॉक हटाने के लिए अनसेटसिल्ड एप्रोच का उपयोग करना होता है और लिंक ब्लॉक को हमारे अपने लिंक के साथ जोड़ना होता है, जो कि local.xml में जोड़ा जाता है।
मैं आपको सबसे पहले यह बताना चाहूंगा कि आपकी समस्याओं को हल करने के विभिन्न तरीके हैं।
यह सबसे आसान तरीका है जो layout.xml
फ़ाइल को आधार के अंदर फ़ाइल में पाया जाता है जिसे आप उदाहरण के लिए हटाना चाहते हैं: अगर मैं "मेरे टैग" को हटाना चाहता हूं तो बस भाग पर टिप्पणी करें।
<customer_account>
<!-- Mage_Tag -->
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="tag"><name>tags</name><path>tag/customer/</path><label>My Tags</label></action>
</reference>
</customer_account>
लेकिन आप जानते हैं कि हमें आधार फ़ाइल को संशोधित नहीं करना चाहिए, इसलिए एक और अगली सरल विधि जिसे निष्पादित किया जा सकता है
अपने टेम्पलेट navigation.phtml
फ़ाइल में लिंक को खोलना। अपनी फ़ाइल को अपने विषय में कॉपी करें (नोट: फ़ोल्डर संरचना समान होनी चाहिए) base\default\template\customer\account\navigation.phtml
। जो उपरोक्त उत्तर में दिखाया गया है।
एक और थकाऊ काम अपने मुख्य मॉड्यूल को फिर से लिखना और एक विधि "RemoveLinkByName" बनाना है।
खाता डैशबोर्ड सुविधाओं को हटाने के लिए एक पूर्ण समाधान में क्लाइंट-साइड और सर्वर-साइड संशोधन दोनों शामिल हैं। यदि केवल क्लाइंट-साइड को हटा दिया जाता है और / या छिपा दिया जाता है, तो अभी भी तकनीक के जानकार उपयोगकर्ताओं को अपने ब्राउज़र में मार्गों को हस्त-मैथुन करके या अधिक परिष्कृत CURL "हमले" का उपयोग करके सुविधाओं को एक्सेस करने से रोकना नहीं है (जिसमें उचित शामिल हो सकते हैं) CSRF टोकन और सही के माध्यम से पर्ची)।
क्लाइंट-पक्ष आसानी से XML अपडेट के माध्यम से प्राप्त किया जाता है जैसा कि पहले से दिए गए उत्तरों के ढेरों द्वारा इंगित किया गया है।
सर्वर-साइड थोड़ा अधिक जटिल है और इसे हटाए जाने वाले कार्यक्षमता की समझ की आवश्यकता है।
व्यक्तिगत रूप से, मैं पर्यवेक्षकों द्वारा सशर्त रूप से मना किए गए HTTP स्टेटस कोड को हटाए गए फीचर के प्रत्येक रूट पर उपयोग करने के मार्ग पर जाऊंगा। यह पता लगाने के लिए कि कौन से मार्गों का निरीक्षण करना है, संबंधित नियंत्रक फ़ाइल को खोलें और सामने के प्रत्येक कार्य को ढूंढें, जो अब उपलब्ध नहीं होना चाहिए। इसके बाद, एक मॉड्यूल बनाएं जो सॉफ्ट-डिसेबिल्डिंग फ़ीचर के लिए सिस्टम कॉन्फ़िगरेशन फ़ील्ड को परिभाषित करता है। इन सिस्टम कॉन्फ़िगरेशन फ़ील्ड्स का उपयोग करके, सशर्त रूप से फ्रंटएंड लेआउट XML को अपडेट करें और इसी तरह सशर्त रूप से प्रत्येक देखे गए मार्ग के लिए उचित HTTP प्रतिक्रिया कोड लौटाएं।
उपरोक्त चरणों में से प्रत्येक के लिए कोड उदाहरण आपके पसंदीदा खोज इंजन के माध्यम से मिल सकते हैं।
एक स्थानीय। Xml फ़ाइल में यह कोड जोड़ें
<customer_account>
<reference name="customer_account_navigation">
<action method="addLink"><name>tags</name></action>
<action method="addLink"><name>recurring_profiles</name></action>
<action method="addLink"><name>newsletter</name></action>
<action method="addLink"><name>billing_agreements</name></action>
<action method="addLink"><name>OAuth Customer Tokens</name></action>
<action method="addLink"><name>downloadable_products</name></action>
</reference>
</customer_account>
मैगेंटो 1.7.0.2 में परीक्षण किया गया