Müşteri hesabı kontrol panelinin sol panelindeki aşağıdaki bağlantıları kaldırmak istiyorum?
- Uygulamalarım
- Hediye kaydı
- Ödül Puanları
- Hediye Kartı Bağlantısı
Magento 1.7 Topluluk Sürümü’nde çalışıyorum. Herhangi bir yardım takdir edilecektir.
Müşteri hesabı kontrol panelinin sol panelindeki aşağıdaki bağlantıları kaldırmak istiyorum?
Magento 1.7 Topluluk Sürümü’nde çalışıyorum. Herhangi bir yardım takdir edilecektir.
Yanıtlar:
Adım 1: Git (yourPackage / YourTemplate / customer / account / navigation.phtml)
Adım 2: Aşağıdaki satırı değiştirin
<?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 */ ?>
Yukarıdaki kod parçacığı, tüm gezinme bağlantılarını kaldırmanın yolunu içerir. Umarım bu herkese yardımcı olur.
Referans Bağlantı: https://github.com/Aproducktion/Magento-Remove-Dashboard-Links
If you can't
??
Burada 2 seçenek görüyorum.
İlk ve en kolay: Sadece bu menü öğelerini ekleyen düzen dosyalarını bulun ve kodunu yorumlayın.
Örneğin My applications
, app/design/frontend/{interface}/{theme}/layout/oauth.xml
bu XML grubu üzerinden eklenir
<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>
İkinci yöntem, işe yarayacağından% 100 emin değilim, bu xml'yi local.xml
temanızın düzen dosyasına eklemek :
<customer_account>
<reference name="customer_account_navigation">
<action method="removeLinkByUrl"><url>oauth/customer_token</url></action>
</reference>
</customer_account>
<action>
Kaldırmak istediğiniz her bağlantı için bir etiket eklemeniz gerekir .
Ayrıca 3. seçeneği de mevcut, eğer modülleri hiç kullanmıyorsanız, sadece devre dışı bırakın. Bu aynı zamanda performansı da artırabilir.
Bunun için bu dosyayı oluşturun: app/etc/modules/Zzzz.xml
bu içerikle:
<config>
<modules>
<Mage_Oauth>
<active>false</active>
</Mage_Oauth>
</modules>
</config>
Burada bazı sıkıntılarınız olabilir, kullanmak istediğiniz bazı modüller, devre dışı bırakmak istediğinize bağlı olarak değişebilir.
Mage_Customer_Block_Account_Navigation
devralınmaz Mage_Page_Block_Template_Links
.
Uzak hesap bağlantılarına arka uç seçeneğini ekleyen bir FOSS uzantısı var.
Bir yoktur İkinci modül ekler (ayrıca FOSS) removeLink
Eğer aşağıdaki kullanabilmeniz için yöntem sizinlocal.xml
Feragatname: İkinci uzantının geliştiricisiyim.
<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>
Bulduğum basit çözüm (uygulama ve kullanım) değiştirmektir Mage_Customer_Block_Account_Navigation
içinde app/code/local
bir ve eklemek removeLinkByName
neyi aynı yapar yöntemi, Oshan cevabı yok, ama düzen dosyalarından kullanılabilir. Daha geleneksel bir sınıf yeniden yazma da işe yarayabilir, ancak potansiyel olarak bir eklentiyle çakışmalara neden olabilir.
Uyarı! Test edilmemiş!
Daha karmaşık bir çözüm, kendi modülünüzü Block
genişleten Mage_Customer_Block_Account_Navigation
ve bir removeLinkByName
yöntem içeren yazmaktır . Bunun çalışması için customer_account_navigation
bloğu kaldırmanız / ayırmanız ve yeni modülünüzünki ile değiştirmeniz gerekir. O andan itibaren, herhangi bir zamanda customer_account_navigation
mizanpaja başvurulursa, bir örneğini alırsınız removeLinkByName
.
Fatura Anlaşmaları, Düzenli Profiller, Uygulamalarım ve İndirilebilir Ürünlerim dahil olmak üzere Siparişlerim altındaki tüm Hesabım listesi öğelerini kaldırmak için hızlı bir çözüm. Ayrıca, Magento 1.9'da test edilen, site genelinde, İstek Listem & Bültenim bağlantısını kaldıracak
App / design / frontend / default / YOURTHEME / layout / wishlist.xml adresinden 31 - 66 numaralı satırlara yorum yapın (yoksa / app / design / frontend / rwd / default / layout / wishlist.xml dosyasından kopyalayın)
<!--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-->
App / design / frontend / default / YOURTHEME / layout / newsletter.xml adresinden 47 - 65 numaralı satırlara yorum yapın (yoksa uygulama / design / frontend / rwd / default / layout / newsletter.xml dosyasından kopyalayın)
bülten </name> bülten / yönet / </path> Bülten Abonelikleri </label> </action> </reference> </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!-->
CSS (gereksinimlerinize göre ayarlayın)
.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;
}
Bağlantıları kaldırmaktan kaçınmak için $ _index değişkenine göre kimlik değerleri atamanızı öneririm, böylece bağlantıları CSS ile gizleyebilirsiniz.
İşte yaptığım şey:
Paketinizden / YourTemplate / customer / account / navigation.phtml sayfanızdan
<?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; ?>
Açıkçası o zaman gidebilirsin
#account-link-1 {
display:none;
}
Bir kediyi cildin tek yolu yoktur, ancak bu gerçekten herhangi bir işlevsellikten ödün vermeden hızlı ve kolay bir seçenektir.
Bloğu yeniden yazmak için daha iyi bir çözüm olacağını düşündüm. Bu yukarıda bahsedildi, ancak hiç bir örnek yoktu:
Yeniden yazmayı global bölümdeki config.xml dosyasına ekleyin:
<blocks>
<customer>
<rewrite>
<account_navigation>Your_Module_Block_Customer_Account_Navigation</account_navigation>
</rewrite>
</customer>
</blocks>
Mage_Customer_Block_Account_Navigation içindeki addLink'i geçersiz kıl:
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);
}
}
}
Dışlanan bağlantıları kodlamak istemiyorsanız, exclude_links dizisi bir yapılandırma ayarından çekilebilir .
Bu konuda googled budur: http://magebase.com/magento-tutorials/5-useful-tricks-for-your-magento-local-xml/
Standart Magento düzeninin neredeyse tüm yerleşim özelliklerini değiştirebiliriz, ancak bu yaklaşımın başarısız olduğu durumlar olabilir. Özellikle, bu top.links bloğunu değiştirmek istediğiniz dakikayı gösterir. Bu bloktaki öğeler, addLink eylem yöntemi kullanılarak eklenir, bu nedenle bazı bağlantıları varsayılan kümeden nasıl kaldıracağınızı merak ediyorsanız, cevabı veremezsiniz! Ne yazık ki, page / template_links blok sınıfı bir 'removeLink' eylem yöntemini uygulamamaktadır, bu nedenle tesis, unsetChild yaklaşımını kullanarak tüm bloğu kaldırmak ve link bloğunu local.xml içine eklenen kendi linklerimizle geri eklemek içindir.
Öncelikle problemlerinizi çözmenin farklı yolları olduğunu söylemenizi istiyorum.
layout.xml
Örneğin, "etiketlerim" i kaldırmak istersem, sadece bölümü yorumlamak için tabanın içindeki dosyadaki kodu bulmanın en kolay yoludur .
<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>
Ancak, temel dosyayı değiştirmememiz gerektiğini biliyorsunuz, bu yüzden gerçekleştirilebilecek bir sonraki basit yöntem
Şablon dosyanızdaki bağlantıyı kaldırma. Dosyanızı temanıza kopyalamak için navigation.phtml
(Not: klasör yapısı aynı olmalıdır) base\default\template\customer\account\navigation.phtml
. Yukarıdaki cevapta gösterilmiştir.
Hesap panosu özelliklerini kaldırmak için tam bir çözüm hem müşteri tarafı hem de sunucu tarafı değişikliği içerir. Yalnızca müşteri tarafı kaldırılır ve / veya gizlenirse, teknolojiyi kullananların rotalarını tarayıcılarında el ile oluşturarak veya daha karmaşık bir CURL "saldırısı" (uygun olanı da içerebilen) kullanarak elden çıkarmaya çalıştıran, merak uyandıran hiçbir şey yoktur. CSRF belirteci ve doğrudan kayma).
Müşteri tarafı, daha önce verilen cevapların bolluğu ile belirtilen XML güncellemeleriyle kolayca elde edilir.
Sunucu tarafı biraz daha karmaşıktır ve kaldırılmakta olan işlevlerin anlaşılmasını gerektirir.
Şahsen, kaldırılmakta olan özelliğin her yolunda koşullu olarak yasaklı HTTP durum kodlarını döndürmek için gözlemcileri kullanma yoluna giderdim. Hangi yolların gözleneceğini bulmak için, ilgili denetleyici dosyasını açın ve artık bulunmaması gereken ön uç işlemlerin her birini bulun. Ardından, söz konusu özelliğin devre dışı bırakılması için sistem yapılandırma alanlarını tanımlayan bir modül oluşturun. Bu sistem konfigürasyon alanlarını kullanarak, ön düzen mizanpajını koşullu olarak güncelleyin ve benzer şekilde, gözlemlenen her rota için uygun HTTP yanıt kodlarını döndürün.
Yukarıdaki adımların her biri için kod örnekleri, favori arama motorunuzdan bulunabilir.
Bir local.xml dosyasına bu kodu ekleyin
<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>
Magento'da Test Edildi 1.7.0.2