আমি গ্রাহক অ্যাকাউন্টের ড্যাশবোর্ডের বাম প্যানেলে নিম্নলিখিত লিঙ্কগুলি সরাতে চাই?
- আমার অ্যাপ্লিকেশন
- উপহার রেজিস্ট্রি
- পুরস্কার পয়েন্ট
- উপহার কার্ডের লিঙ্ক
আমি ম্যাজেন্টো 1.7 সম্প্রদায় সংস্করণে কাজ করছি। যে কোন ধরণের সাহায্য গ্রহন করা হবে.
আমি গ্রাহক অ্যাকাউন্টের ড্যাশবোর্ডের বাম প্যানেলে নিম্নলিখিত লিঙ্কগুলি সরাতে চাই?
আমি ম্যাজেন্টো 1.7 সম্প্রদায় সংস্করণে কাজ করছি। যে কোন ধরণের সাহায্য গ্রহন করা হবে.
উত্তর:
পদক্ষেপ 1: এ যান (আপনার প্যাকেজ / আপনারটিম্পলেট / গ্রাহক / অ্যাকাউন্ট / নেভিগেশন। পিএফটিএমএল)
পদক্ষেপ 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- সরান- ড্যাশবোর্ড- লিংক
If you can't
??
আমি এখানে 2 টি বিকল্প দেখতে পাচ্ছি।
প্রথম এবং সহজতম: কেবল এই মেনু আইটেমগুলিকে যুক্ত করে এমন লেআউট ফাইলগুলি সন্ধান করুন এবং তাদের জন্য কোডটিতে মন্তব্য করুন।
উদাহরণস্বরূপ এক্সএমএলের এই পিসের মাধ্যমে 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% নিশ্চিত না যে এটি কাজ করবে তা হ'ল 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 এক্সটেনশান রয়েছে যা দূরবর্তী অ্যাকাউন্টের লিঙ্কগুলিতে ব্যাকএন্ড বিকল্প যুক্ত করে adds
একটি দ্বিতীয় মডিউল রয়েছে (এছাড়াও এফওএসএস) যা 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 এর উত্তর না, কিন্তু বিন্যাস ফাইল থেকে ব্যবহারযোগ্য নয়। আরও একটি traditionalতিহ্যবাহী শ্রেণীর পুনর্লিখনও কাজ করবে তবে সম্ভাব্যভাবে একটি প্লাগইন নিয়ে দ্বন্দ্ব সৃষ্টি করতে পারে।
সতর্কবাণী! অপরীক্ষিত!
আরও জটিল সমাধান হ'ল আপনার নিজস্ব মডিউলটি লিখুন Block
যা Mage_Customer_Block_Account_Navigation
কোনও removeLinkByName
পদ্ধতিতে প্রসারিত এবং এতে অন্তর্ভুক্ত রয়েছে । এটি কাজ করার জন্য, আপনাকে customer_account_navigation
ব্লকটি সরিয়ে / আনসেট করতে হবে এবং আপনার নতুন মডিউলের জন্য এটির সাথে প্রতিস্থাপন করতে হবে। তারপরে, যে কোনও সময় customer_account_navigation
বিন্যাসে উল্লেখ করা হয়, আপনি এর সাথে একটি উদাহরণ পাবেন removeLinkByName
।
বিলিং চুক্তি, পুনরাবৃত্ত প্রোফাইল, আমার অ্যাপ্লিকেশন এবং আমার ডাউনলোডযোগ্য পণ্য সহ আমার আদেশের নীচে আমার সমস্ত অ্যাকাউন্টের তালিকা আইটেমগুলি সরাতে একটি দ্রুত সমাধান solution ম্যাজেন্টো ১.৯-এ পরীক্ষিত সাইট জুড়ে আমার ইচ্ছা তালিকা এবং আমার নিউজলেটার লিঙ্কগুলিও সরিয়ে দেবে:
অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / ডিফল্ট / আপনার নিজের / লেআউট / ইচ্ছা তালিকা.এক্সএমএল থেকে 31 - 66 লাইন মন্তব্য করুন (যদি তা অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / আরডাব্লু / ডিফল্ট / লেআউট / ইচ্ছা তালিকা.এক্সএমএল থেকে অনুলিপি করেন)
<!--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-->
অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / ডিফল্ট / আপনার / লেআউট / নিউজলেটার.এক্সএমএল থেকে 47 - 65 লাইন মন্তব্য করুন (যদি তা অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / আরডাব্লু / ডিফল্ট / লেআউট / নিউজলেটার.এক্সএমএল থেকে অনুলিপি করেন)
নিউজলেটার </ name> নিউজলেটার / পরিচালনা / </path> নিউজলেটার সাবস্ক্রিপশন </ li >>
<!--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;
}
লিঙ্কগুলি অপসারণ এড়াতে, আমি ind _index ভেরিয়েবলের উপর ভিত্তি করে আইডি মান নির্ধারণের পরামর্শ দিচ্ছি, যাতে আপনি লিঙ্কগুলি সিএসএসের মাধ্যমে আড়াল করতে পারেন।
আমি যা করেছি তা এখানে:
আপনার প্যাকেজ / আপনারপড়তা / গ্রাহক / অ্যাকাউন্ট / নেভিগেশন.ফিটএমএল থেকে From
<?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>
ম্যাগ_কাস্টমার_ব্লক_ অ্যাকাউন্ট_নিভিগেশনে অ্যাডলিঙ্ক ওভাররাইড করুন:
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://mamabase.com/magento-tutorials/5- ব্যবহারযোগ্য- কৌশল - আপনার-
আমরা স্ট্যান্ডার্ড ম্যাজেন্টো লেআউটের প্রায় সমস্ত লেআউট দিক পরিবর্তন করতে পারি তবে কিছু কিছু পরিস্থিতি যখন এই পদ্ধতির ব্যর্থ হয়। উল্লেখযোগ্যভাবে, আপনি টপ.লিংকস ব্লকটি সংশোধন করতে চান এমন মুহুর্তটি এটি নিজেই প্রকাশ করে। এই ব্লকের আইটেমগুলি অ্যাডলিংক অ্যাকশন পদ্ধতি ব্যবহার করে যুক্ত করা হয়েছে যাতে আপনি যদি ভাবছেন যে কীভাবে ডিফল্ট সেট থেকে কিছু লিঙ্ক সরিয়ে ফেলা যায়, উত্তরটি হ'ল আপনি পারবেন না! দুর্ভাগ্যক্রমে, পৃষ্ঠা / টেমপ্লেট_লিংকগুলি ব্লক শ্রেণি 'রিমলিংক' অ্যাকশন পদ্ধতিটি কার্যকর করে না তাই রিসোর্টটি আনসেটচিল্ড পদ্ধতির ব্যবহার করে পুরো ব্লকটি সরিয়ে ফেলা এবং স্থানীয়.এক্সএমএলে এতে যুক্ত হওয়া আমাদের নিজস্ব লিঙ্কগুলির সাথে লিংকগুলি ব্লক ব্যাক যোগ করতে হবে।
আমি আপনাকে প্রথমে বলতে চাই যে আপনার সমস্যাগুলি সমাধান করার বিভিন্ন উপায় রয়েছে।
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>
তবে আপনি জানেন যে আমাদের বেস ফাইলটি পরিবর্তন করা উচিত নয়, সুতরাং পরবর্তী একটি সহজ পদ্ধতি যা সম্পাদন করা যেতে পারে
আপনার টেম্পলেট ফাইলটিতে লিঙ্কটি আনসেট করা হচ্ছে that এর জন্য আপনার navigation.phtml
ফাইলটি আপনার থিমটিতে অনুলিপি করুন (দ্রষ্টব্য: ফোল্ডারের কাঠামোটি একই হওয়া উচিত) থেকে base\default\template\customer\account\navigation.phtml
। যা উপরের উত্তরে দেখানো হয়েছে।
অ্যাকাউন্ট ড্যাশবোর্ড বৈশিষ্ট্যগুলি মুছে ফেলার সম্পূর্ণ সমাধানটিতে ক্লায়েন্ট-সাইড এবং একটি সার্ভার-সাইড পরিবর্তন উভয়ই অন্তর্ভুক্ত। যদি কেবল ক্লায়েন্টের পক্ষ সরিয়ে ফেলা হয় এবং / অথবা লুকানো থাকে তবে প্রযুক্তিবিদরা তাদের ব্রাউজারের রুটগুলিতে হাতের কারুকাজ করে বা আরও পরিশীলিত সিআরএল "আক্রমণ" ব্যবহার করে (যা সঠিকভাবে অন্তর্ভুক্ত করতে পারে) ব্যবহার করে বৈশিষ্ট্যগুলি অ্যাক্সেস করা থেকে বিরত থাকার কিছুই নেই সিএসআরএফ টোকেন এবং সরাসরি স্লিপ)।
ইতিমধ্যে দেওয়া উত্তরগুলির আধিক্য দ্বারা নির্দেশিত হিসাবে ক্লায়েন্ট-সাইডটি সহজেই এক্সএমএল আপডেটের মাধ্যমে অর্জন করা যায়।
সার্ভার-সাইডটি কিছুটা জটিল এবং সরিয়ে ফেলা হচ্ছে এমন কার্যকারিতা সম্পর্কে বোঝার প্রয়োজন।
ব্যক্তিগতভাবে, আমি বৈশিষ্ট্যের অপসারণের প্রতিটি রুটে শর্তাধীন নিষিদ্ধ HTTP স্থিতি কোডগুলি ফিরিয়ে আনতে পর্যবেক্ষকদের ব্যবহারের পথে যাব go কোন রুটগুলি পর্যবেক্ষণ করতে হবে তা অনুসন্ধানের জন্য, সম্পর্কিত কন্ট্রোলার ফাইলটি খুলুন এবং ফ্রন্ট-এন্ড ক্রিয়াগুলির প্রতিটি সন্ধান করুন যা আর উপলভ্য নয়। এরপরে, এমন একটি মডিউল তৈরি করুন যা নরম-অক্ষম করার বৈশিষ্ট্যটির জন্য সিস্টেম কনফিগারেশন ক্ষেত্রগুলি সংজ্ঞায়িত করে। এই সিস্টেম কনফিগারেশন ক্ষেত্রগুলি ব্যবহার করে, শর্তসাপেক্ষে সীমান্তের বিন্যাসটি এক্সএমএল আপডেট করুন এবং একইভাবে প্রতিটি পর্যবেক্ষণকৃত রুটের জন্য যথাযথ HTTP প্রতিক্রিয়া কোডগুলি ফিরিয়ে দিন।
উপরের প্রতিটি পদক্ষেপের জন্য কোড উদাহরণগুলি আপনার প্রিয় অনুসন্ধান ইঞ্জিনের মাধ্যমে পাওয়া যাবে।
একটি কোড.এইএমএমএল ফাইলটিতে এই কোড যুক্ত করুন
<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 এ পরীক্ষিত