Magento'nun En İyi Bağlantılarını Düzenlemenin En İyi Yöntemleri


22

Diyelim ki Magento'nun en üst bağlantılarındaki "Sepetim" bağlantısından hemen önce bir alışveriş sepeti simgesi eklemek istiyoruz (aşağıdaki üst bağlantılara bakın).

görüntü tanımını buraya girin

Bunu yapmanın en iyi yolu nedir?

  1. Toplinks.php'ye bir şey mi yapıyorsun?
  2. Links.phtml'ye bir şey mi yaptınız?
  3. Bir xml dosyası?
  4. Başka seçenek var mı?

Bunun CSS ile yapılabileceğini biliyorum, ancak özelleştirme gereksinimlerim arttıkça, bunun CSS olmadan nasıl yapılabileceğini bilmek istiyorum, bu yüzden daha zor şeyleri özelleştirebiliyorum.

Yanıtlar:


12

Her durumda, şablon dosyasını ( links.phtml) düzenlemeyin . Bu, tüm bağlantı listeleri için genel bir şablon görevi görür. Örneğin, altbilgideki bağlantılar için de kullanılır.
İle toplinks.phpEğer CE v1.4.0.1 beri kullanım dışı kalmıştır çünkü ne istersen yapabilirsin.
İhtiyacınız olanı elde etmek için en üstteki kaba bağlantı ekleyen xml dosyalarını kullanmanızı öneririm. Yeni bir bağlantı ekleyerek çağrılan yöntemi sınıflar ve diğer özellikler eklemek için izin bazı parametreler destekler ve bağlantıları ve bağlantı öncesi ve bağlantı sonrası bazı metinlerde etiket.
addLinklia

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

Eğer hesabım menüsüne bir simge eklemek isterseniz ayarlayabilirsiniz $beforeTextiçin <span class="icon"></span>ve simge sınıf bazı stilleri ekleyin.
Alışveriş sepeti ve ödeme bağlantıları için biraz aldatıcıdır, çünkü bunlar doğrudan mizanpaj dosyasından değil bir blok nesnesiyle eklenir.
Eğer sepeti veya çıkış Lins için farklı bir şey gerekiyorsa yapmanız gereken tüm yöntemleri geçersiz olduğunu Mage_Checkout_Block_Links::addCartLink()veya Mage_Checkout_Block_Links::addCheckoutLink(). Bu 2 aynı çağırır addLink()ve farklı parametreleri iletebilirsiniz.


1
Bu tam olarak aradığım bir açıklama. Önümde kesinlikle çok şey öğreniyorum ama şimdi nereden başlayacağım konusunda bir fikrim var. Simgesini (bootstrap'dan) şu metinle eklemeye çalışacağım $ $ beforeText = '<i class = "icon-shopping-cart"> </i>' - Teşekkür ederim!
Raphael Rafatpanah,

Bunun için hangi XML dosyasını kullanırdım?
Raphael Rafatpanah,

Sepetiniz ve ödeme linkleriniz için bunu düzen dosyasından yapamayacağınızı açıkladım. Yöntemi geçersiz kılmanız gerekiyorMage_Checkout_Block_Links::addCartLink()
Marius

1
Tamam. Özel tema dosyalarıma bir dosya eklemem gereken yöntemi geçersiz kıldığımı ve buradaki yöntemi çağırdığımı ve bunun önceki örneğini geçersiz kılacağını varsayıyorum. Beni doğru yöne işaret eder misiniz, örneğin, hangi dosya Mage_Checkout_Block_Links yöntemini içerir. Links.php mı?
Raphael Rafatpanah,

XML yoluna giderseniz (kesinlikle yapmanız gerekir) not alın, <span class="icon"></span>eğer önceden Metin olarak kullanabilmek için onu böyle içine almalısınız <![CDATA[<span class="icon"></span>]]>. XML ayrıştırıcısı da yeni satırlar alır, bu nedenle açılış etiketinin hemen arkasına koymak zorundasınız:<beforeText><![CDATA[<span class="icon"></span>]]></beforeText>
jmk

9

Özel şablonu yalnızca Üst Bağlantılar için uygulamanız gerektiğinde, temanızı local.xml dosyasında şöyle yapabilirsiniz:

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

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

    </reference>
<default>

Sonra kopya / şablon / links.phtml sayfasını ve bunu adlandırmak sayfa / şablon / my_links.phtml ve her ne İçlerindeki yeni şablon dosyası gerekiyor.

Local.xml üzerinden En Çok Okunan Bağlantılara özel bağlantı eklemek için:

<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>

Ayrıca bu sayfaya bakınız: http://www.classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way


Bu yöntemi kullanarak, her link arasına html ekleyebilir miyim?
Raphael Rafatpanah

@RaphaelRafatpanah Evet, links.phtml dosyasında bir döngü var <?php foreach($_links as $_link): ?>. Bu döngünün içine herhangi bir HTML ekleyebilirsiniz.
zitix

Ama sonra her bağlantıya eklenecek, evet? Her bağlantı arasına özelleştirilmiş html eklemek istiyorum. Ayrıca, foreach döngüsünün altbilgi bağlantıları ve üstbilgi bağlantıları için kullanıldığına inanıyorum, böylece bağlantılar arasına html eklersem, altbilgi bağlantılarına da uygulanacaklarını düşünüyorum.
Raphael Rafatpanah,

1
İşin püf noktası : sayfa / şablon / my_links.phtml (orijinal links.phtml dosyasının bir kopyasıdır ) oluşturduktan ve local.xml'inize yazdığım kodu ekledikten sonra , bu şablon yalnızca En İyi Bağlantılar oluşturmak için kullanılacaktır . Altbilgi bağlantıları veya diğer bağlantılar değil.
zitix


0

Lütfen en iyi bağlantıları değiştirmek için bu yolu bulun:

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

ve ara: Giriş Yap (Benim durumumda).

Şimdi istediğiniz metni içeren başlığı ve etiketi değiştirin.


Çekirdek dosyaları düzenlememelisiniz!
Kara,

-1

Aşağıdaki 2 dosyayı düzenlemeniz gerekir.

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

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

Bu dosyalara, bağlantılar içine eklenir name="top.links". Sadece onlara yorum yapın.


2
Magento SE'ye hoş geldiniz. Bu cevap işe yararken, soru açıkça en iyi uygulamalar hakkındaydı ve çekirdek dosyaları düzenlemek Magento'daki en iyi uygulamadan başka bir şey değil.
Fabian Schmengler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.