Code / Core system.xml dosyasını Magento'da Code / local'a Kopyalama


18

ben değişiklikler yaptık bu yüzden yönetici panelinde bazı özelleştirme istedim

   1) "app/code/core/../system.xml file its working fine. 

Ancak çekirdek klasör içindeki kodu değiştirmek istemiyorum. Sürüm değişikliğimden dolayı.

Bu dosyayı yerel klasöre taşımak istiyorum ama çalışmıyor

 2) "app/code/local/../system.xml" files is not working

Herkes bana system.xml dosyasını geçersiz kılmak için nasıl rehberlik edebilir?

Teşekkürler

Yanıtlar:


28

İçin system.xmlbu sınıf dosyaları için yaptığı gibi dosyaları çalışmıyor. system.xmlDosyalar Magento aktif modüllerden toplanır. localKlasördeki bir tanesinin kopyalanması bir modülün içinde olduğu anlamına gelmez, çünkü modül bildirim dosyası hala modülün corekod havuzuna ait olduğunu söyler.
Bir bölüme yeni alanlar eklemek veya kendi modülünüzü oluşturmanız gereken bazı alanları geçersiz kılmak istiyorsanız.
Bölümde Catalog->Frontendnasıl yeni bir alan ekleyebileceğinize ve aynı bölümde bir alanı nasıl geçersiz kılacağınıza dair bir örnek .
Diyelim ki modülünüz çağırıldı Easylife_Catalog.
Aşağıdaki dosyalara ihtiyacınız olacak:
app/etc/modules/Easylife_Catalog.xml- bildirim dosyası

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Catalog>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Catalog />
            </depends>
        </Easylife_Catalog>
    </modules>
</config>

app/code/local/Easylife/Catalog/etc/config.xml - yapılandırma dosyası

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Catalog>
            <version>0.0.1</version>
        </Easylife_Catalog>
    </modules>
</config>

app/etc/local/Easylife/Catalog/etc/system.xml- system-> yapılandırma dosyası
Diyelim ki List Modealanı yalnızca global düzeyde kullanılabilecek şekilde değiştirmek istiyorsunuz (web sitesi ve mağaza görüntüleme seviyesi yok). Ayar yolu catalog/frontend/list_mode. Sonra system.xmlböyle görünecek:

<?xml version="1.0"?>
<config>
    <sections>
        <catalog><!-- first part of the path -->
            <groups>
                <frontend><!-- second part of the path -->
                    <fields>
                        <list_mode><!-- third part of the path -->
                            <show_in_website>0</show_in_website><!-- this will override the core value -->
                            <show_in_store>0</show_in_store><!-- this will override the core value -->
                        </list_mode>
                    </fields>
                </frontend>
            </groups>
        </catalog>
    </sections>
</config>

Şimdi customaynı yapılandırma bölümünde adı verilen yeni bir alan eklemek istediğinizi varsayalım. Şimdi yukarıdaki xml

<?xml version="1.0"?>
<config>
    <sections>
        <catalog><!-- first part of the path -->
            <groups>
                <frontend><!-- second part of the path -->
                    <fields>
                        <list_mode><!-- third part of the path -->
                            <show_in_website>0</show_in_website><!-- this will override the core value -->
                            <show_in_store>0</show_in_store><!-- this will override the core value -->
                        </list_mode>
                        <custom translate="label"><!-- your new field -->
                            <label>Custom</label>
                            <frontend_type>text</frontend_type>
                            <sort_order>1000</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                        </custom>
                    </fields>
                </frontend>
            </groups>
        </catalog>
    </sections>
</config>

Bu yöntemi kullanarak yapılandırma bazı alan kaldırmak için bir yöntem olup olmadığını bilmiyorum. Aradım ama bir şey bulamadım.


Teşekkürler. Çok az notum var, yerel modüller her zaman çekirdek modüllerden sonra yüklendiğinden <depends> etiketi gerekli değil.
Jiří Chmiel

2
JiříChmiel @. Ehum ... hayır değiller. tüm modül bildirim dosyaları ( app/etc/modules) yüklenir, ardından tüm <depends> etiketler ayrıştırılır ve bir modül hiyerarşisi oluşturulur. sonra modüller bu sırayla yüklenir.
Marius

Harika cevap için teşekkürler. Benim için, app / etc / modules / Easylife_Catalog.xml içindeki <depends> eksik olduğum şey. Bu olmadan, bildirimleri değiştirmek için yerel system.xml dosyamdaki değişiklikler üzerinde çekirdek system.xml dosyasını destekliyordu.
PromInc
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.