Set condition add item action Magento
Trong Magento, để thêm một file css hay js vào một handle nào đó chúng ta cỏ thể gọi trong XML layout bằng cách.
Đối với file css:
<action method=”addItem”><type>skin_css</type><name>css/abc/file.css</name></action>
Hoặc: <action method=”addCss”><stylesheet>css/file.css</stylesheet></action>
Đối với file js:
<action method=”addItem”><type>skin_js</type><name>js/file.js</name><params/></action>
Hoặc: (file js đặt trong thư mục root/js)
<action method=”addJs”><script>file.js</script></action>
Để thêm điều kiện khi load file chúng ta làm theo cách sau:
Cách 1: Sử dụng ifconfig
<reference name="head"> <action method="addItem" ifconfig="module/general/enable"><type>skin_js</type><name>js/file.js</name><params/></action> <action method="addItem" ifconfig="module/general/enable"><type>skin_css</type><name>css/abc/file.css</name></action> </reference>
- Ifconfig ở đây là giá trị true hoặc false của option trong admin. Giá trị này được lưu trong table core_config_data. Và action sẽ thực hiện nếu ifconfig là true.
Trong ví dụ trên: Nếu module/general/enable là enable thì file js và css sẽ được load.
Cách 2: Sử dụng helper
Trong cách này ta sẽ viết function gọi file trong helper và thực hiện hàm đó trong XML layout.
1. Trong helper/data.php:
class Company_Module_Helper_Data extends Mage_Core_Helper_Abstract { public function loadCss() { if (Mage::getStoreConfig('module/general/enable') ) { Mage::app()->getLayout()->getBlock('head')->addItem('skin_css','css/file.css'); } } }
Trong ví dụ trên Mage::getStoreConfig(‘module/general/enable’) sẽ kiểm tra nếu option ‘module/general/enable’ bằng true sẽ thực hiện lệnh bên dưới.
2. Trong XML layout:
<reference name="head"> <action method="addCss"><stylesheet helper="module/data/loadCss" /></action> </reference>
như vậy file css sẽ được load khi module/general enable là enable.
Ta có thể sử dụng tương tự cách này với js và action setTemplate.
Và cuối cùng chúc các bạn code vui vẻ !.
la phrase Remarquable
jachaiOi