2010-07-26 24 views
5

Herkesin ya da ifadelerin özel bir modül için magento düzeninde XML kullanıp kullanmadığını merak ediyor musunuz? Modül denetleyicisindeki değerleri kontrol edebildiğimi ya da kendini bloklayabileceğimin farkındayım, fakat mantığın yaşaması için mantıklı bir yer gibi görünüyor.magento düzenindeki koşullar kullanılarak xml

Mage_Core, javascript'i sınamak için bunları catalog.xml numaralı sayfada kullanır. <!--<params/><if/><condition>can_load_calendar_js</condition>-->

sayesinde JD

cevap

8

uzakta olanlar kullanmaktan utangaç olur. Varsayılan dağıtılmış topluluk sürümünde yorumlandıklarını fark edeceksiniz, ki bu muhtemelen çekirdek ekibin bunları kullanmaktan uzaklaştığı anlamına gelir.

Ne yaptıklarıyla ilgileniyorsanız, bunlar kesinlikle page/head bloğunun addItem yönteminin bir parçası olan paramatörlerdir.

File: code/core/Mage/Page/Block/Html/Head.php 
public function addItem($type, $name, $params=null, $if=null, $cond=null) 
{ 
    if ($type==='skin_css' && empty($params)) { 
     $params = 'media="all"'; 
    } 
    $this->_data['items'][$type.'/'.$name] = array(
     'type' => $type, 
     'name' => $name, 
     'params' => $params, 
     'if'  => $if, 
     'cond' => $cond, 
    ); 
    return $this; 
} 

eklenti öğesi yöntemi bu koşulları saklar ve daha sonra bir öğe eklemeyi atlamak için daha sonra getCssJsHtml yönteminde kullanılan ediyoruz.

public function getCssJsHtml() 
{ 
    // separate items by types 
    $lines = array(); 
    foreach ($this->_data['items'] as $item) { 
     if (!is_null($item['cond']) && !$this->getData($item['cond']) || !isset($item['name'])) { 
      continue; 
     } 

Benim tahminim amaçlanan kullanıcıların başının üzerine gidiş sona erdi şablon sistemine meta programlamayı eklemek için erken bir girişim vardı olduğunu.

+2

Teşekkürler Alan, her zaman olduğu gibi kapsamlı ve bilgi cevap. Sanırım koşullu mantık için Bloğu kullanmaya devam edeceğim. JD –

+0

Bundan sonra biraz daha derine kazdım ve şimdi eğer/cond parametrelerinin şartlı yorumlar yoluyla Internet Explorer'a özgü stil sayfalarını eklediğine inanıyoruz. –