2010-07-26 6 views
5

Хотите узнать, использовал ли кто-либо инструкции или в макете Magento XML для пользовательского модуля? Я понимаю, что я могу проверить значения в контроллере модуля или сам блок, но это похоже на логическое место для жизни логики.с использованием условий в макетовом макете xml

Mage_Core использует их в catalog.xml для проверки на javascript. <!--<params/><if/><condition>can_load_calendar_js</condition>-->

Спасибо, JD

ответ

8

Я бы уклоняться от использования тех. Вы заметите, что они закомментированы в распространенном распространенном издании по умолчанию, что, вероятно, означает, что основная команда перестает их использовать.

Если вас интересует, что они делают, они являются параметрами, которые являются частью метода page/head блока addItem.

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

Метод добавить элемент сохраняет эти условия, а затем они используются позже в методе getCssJsHtml пропустить добавление элемента.

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

Я думаю, они были первой попыткой добавить мета-программирование шаблонную систему, которая в конечном итоге будет над головой его предполагаемых пользователей.

+2

Спасибо Алан, всеобъемлющий и информационный ответ, как всегда. Думаю, я буду придерживаться использования блока для условной логики. JD –

+0

С тех пор я углубился в это, и теперь верю, что если/cond paramaters предназначены для добавления отдельных таблиц стилей Internet Explorer через условные комментарии. –

Смежные вопросы