Magento'nun mizanpaj XML'sinde koşullu olarak bir blok (yönetici panelindeki yapılandırmaya bağlı olarak) nasıl eklenir?
Config işlemlerinde doğru olup olmadığını kontrol edebiliriz. Aşağıdaki örnekte sample/config/show_toplinks
, yönetici panelinden config (Sistem-> Yapılandırma'da) true ise , şablon dosyası links.phtml
En İyi Bağlantıları oluşturmak için kullanılır. Eğer sample/config/show_toplinks
bir yanlış , o zaman varsayılan şablon kullanılacaktır.
<reference name="top.links">
<action method="setTemplate" ifconfig="sample/config/show_toplinks">
<template>page/template/links.phtml</template>
</action>
</reference>
Bu geçici çözümü web'de bir yerde buldum. Üst Bağlantılar için boş bir şablonu varsayılan şablon olarak ayarlayabiliriz, şunun gibi:
<reference name="top.links">
<action method="setTemplate" ifconfig="sample/config/show_toplinks">
<template>page/template/links.phtml</template>
</action>
<!-- OR set completely empty template -->
<action method="setTemplate">
<template>page/template/empty_template_for_links.phtml</template>
</action>
</reference>
Bu durumda, sample/config/show_toplinks
bir gerçek , daha sonra şablon links.phtml
kullanılan olacak ve Üst Linkler görüntülenecektir. ama eğer sample/config/show_toplinks
bir yanlış , o zaman empty_template_for_links.phtml
şablon kullanılacak ve herhangi bir HTML dönmez ve Üst Linkler görünmez böylece şablon, tamamen boştur.
- Yönetici panelindeki yapılandırmaya bağlı olarak blokları koşullu olarak göstermenin veya gizlemenin başka bir yolu var mı?
- Bu geçici çözüm güvenli midir?
- Bu beklenmedik hatalara neden olabilir mi?
DÜZENLE:
Tüm cevaplara dayanarak, Rick Kuipers'in çözümünün benim davam için en uygun göründüğünü düşünüyorum. Ancak başka bir sorum daha var:
<block type="core/template" name="my_block" template="my/block.phtml" />
<!-- ...add more blocks here -->
<reference name="footer">
<action method="append" ifconfig="sample/config/show_toplinks">
<block>my_block</block>
</action>
<!-- ...append more blocks here -->
</reference>
Bu gibi eklemek için birçok blok varsa ( append
ve yöntemini kullanarak ifconfig
), diyelim ki 50,
performansı etkiler mi? Sadece bazı bloklar gerçekten gösterilecektir (bu, kullanıcının Sistem -> Konfigürasyondaki ayarlarına bağlıdır), fakat şartlı olarak eklemelerini eklemeden önce tüm bu blokları eklemem gerekiyor <reference name="footer">...</reference>
.
Magento, bunun gibi eklenen tüm blokları anında işler mi?
<block type="core/template" name="my_block" template="my/block.phtml" />
Veya bloklar yalnızca şablonda nihayet gösterilmeleri gerekiyorsa işlenir? Öyleyse Magento'nun 50 bloğumun tamamını işlemesi gerekecek, ancak bu blokların yalnızca bir kısmının gösterilmesi gerekebilir mi?