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
Il Magento core Codebase
Qualsiasi noti/Estensioni di spicco
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.
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? –
@ Jonathan: No, il DB entra solo aggiungere ulteriori istruzioni di handle. Le maniglie non si sovrappongono mai, vengono semplicemente applicate in ordine. –