2010-07-26 15 views
5

Chiedersi se qualcuno ha utilizzato le istruzioni o nell'array XML di Magento per un modulo personalizzato? Mi rendo conto che potrei controllare i valori nel controller del modulo o bloccare se stesso, ma sembra un posto logico per la logica di vivere.utilizzo delle condizioni nel layout di Magento xml

Mage_Core li utilizza in catalog.xml per eseguire il test per javascript. <!--<params/><if/><condition>can_load_calendar_js</condition>-->

Grazie, JD

risposta

8

avrei rifuggire da utilizzando quelli. Noterai che sono commentati nella community community distribuita predefinita, il che probabilmente significa che il core team si sta allontanando dal loro utilizzo.

Se sei interessato a quello che fanno, sono parametri che fanno rigorosamente parte del metodo addItem del blocco page/head.

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

il metodo Item add memorizza queste condizioni, e quindi sono utilizzati in seguito nel metodo getCssJsHtml di saltare l'aggiunta di un elemento.

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

La mia ipotesi è che erano un primo tentativo di aggiungere meta-programmazione per il sistema di template, che ha finito per andare sopra la testa dei suoi utenti previsti.

+2

Grazie Alan, risposta completa e informativa come sempre. Immagino che continuerò a usare il blocco per la logica condizionale. JD –

+0

Da allora ho scavato un po 'più a fondo in questo, e ora credo che i parametri if/cond siano per aggiungere fogli di stile specifici di Internet Explorer tramite commenti condizionali. –

Problemi correlati