2011-01-07 15 views
5

profundo en el sistema Magento diseño, está el siguiente código que se utiliza para convertir sus archivos xml presentación de embalaje en el XML específica que se necesita para crear sus bloques, y por lo tanto crear sus páginas¿Las actualizaciones de diseño de bases de datos aún se usan en Magento?

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

El segundo método no fetchDbLayoutUpdates intentos Actualizaciones para cargar XML adicionales de la base de datos con consultas SQL algo como esto

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' 

Tanto los core_layout_update y core_layout_link mesas están vacías en una instalación predeterminada.

Por lo tanto, siempre he supuesto que esta es una característica heredada que es anterior a mi tiempo con Magento. ¿Alguien sabe si esta función se utiliza en cualquier lugar por

  1. El Magento Core Codebase

  2. Cualquier conocidos/extensiones prominentes

  3. usted!

puedo ver por qué la función ha sido dejado en su lugar (preocupaciones de legado y lo que no), pero tengo curiosidad si es algo que ha sido abandonado oficialmente-ish, o si es sólo muy poco aprovechada.

+0

interesante hilo, cualquier idea por qué podría ser útil en lugar de archivos XML? ¿Eso significa que las entradas de diseño de base de datos anulan las basadas en archivos? –

+0

@Jonathan: No, la base de datos solo agrega instrucciones de manejo adicionales. Los mangos nunca anulan, solo se aplican en orden. –

Respuesta

5

Tengo algunas entradas para cms_index_index que agrega un bloque enterprise_banner. Por lo tanto, es utilizado por Enterprise Edition al menos.

+0

Ah, ja, lo tengo. Parece que están allí en apoyo del sistema CMS en Community Edition también. –

+0

¿Hay alguna posibilidad de que pueda publicar qué entradas tiene allí? Estar interesado en ver. –

+1

La columna de identificador es 'cms_index_index' y la columna xml es una actualización de diseño totalmente anónima, como la que usaría para declarar un bloque en cualquier otra página. En este caso, el bloque es del tipo 'enterprise_banner/widget_banner' que solo es útil si tiene Enterprise Edition, y si lo hiciera, también tendría las entradas de la base de datos. – clockworkgeek

4

core_layout_update está relacionada con el widget de ejemplo, que parezca core_layout_update ha fila para cada instancia de widget que añadir desde CMS-> Reproductores

Cuestiones relacionadas