2011-01-07 9 views
5

in profondità nel sistema Magento Layout, c'è il seguente codice che viene utilizzato per trasformare i file XML di layout pacchetto nel XML specifiche necessarie per creare i blocchi, e quindi creare le pagineGli aggiornamenti del layout del database sono ancora utilizzati in Magento?

public function merge($handle) 
{ 
    $packageUpdatesStatus = $this->fetchPackageLayoutUpdates($handle); 
    if (Mage::app()->isInstalled()) { 
     $this->fetchDbLayoutUpdates($handle); 
    } 
} 

Il secondo metodo non fetchDbLayoutUpdates tentativi per caricare aggiornamenti XML aggiuntivi dal database con query SQL qualcosa di simile

SELECT `update`.`xml` FROM `core_layout_update` AS `update` 
INNER JOIN `core_layout_link` AS `link` 
    ON link.layout_update_id=update.layout_update_id 
WHERE (link.store_id IN (0, '1')) 
    AND (link.area='frontend') 
    AND (link.package='default') 
    AND (link.theme='default') 
    AND (update.handle = 'default') 
ORDER BY `update`.`sort_order` ASC' 

Sia i core_layout_update e core_layout_link tavoli sono vuoti in un'installazione di default.

Quindi, ho sempre pensato che questa sia una funzione legacy che precede il mio tempo con Magento. Qualcuno sa se questa funzione viene utilizzato ovunque da

  1. Il Magento core Codebase

  2. Qualsiasi noti/Estensioni di spicco

  3. You!

posso capire perché la funzione è stato lasciato al suo posto (preoccupazioni legacy e non quello), ma sono curioso di sapere se si tratta di qualcosa che è stato ufficialmente-ish abbandonata, o se è solo di gran lunga sotto utilizzato.

+0

discussione interessante, tutte le idee perché potrebbe essere utile, piuttosto che file XML? Significa che le voci di layout del DB prevalgono su quelle basate su file? –

+0

@ Jonathan: No, il DB entra solo aggiungere ulteriori istruzioni di handle. Le maniglie non si sovrappongono mai, vengono semplicemente applicate in ordine. –

risposta

5

Ho alcune voci per cms_index_index che aggiunge un blocco enterprise_banner. Quindi è usato almeno dalla versione Enterprise.

+0

Ah ah, capito. Sembra che siano presenti anche a supporto del sistema CMS in Community Edition. –

+0

Qualche possibilità di pubblicare le voci che hai lì? Essere interessato a vedere –

+1

La colonna handle è 'cms_index_index' e la colonna xml è un aggiornamento del layout assolutamente insignificante proprio come si userebbe per dichiarare un blocco in qualsiasi altra pagina. In questo caso il blocco è di tipo 'enterprise_banner/widget_banner' che è utile solo se si dispone di un'edizione aziendale e, se lo si è, si avranno anche le voci del database. – clockworkgeek

4

core_layout_update è in relazione con widget di esempio, sembra core_layout_update ha riga per ogni widget di esempio che ha aggiunto da CMS-> Widget

Problemi correlati