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.
fonte
2010-07-26 01:50:20
Grazie Alan, risposta completa e informativa come sempre. Immagino che continuerò a usare il blocco per la logica condizionale. JD –
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. –