¿Por qué hay un diseño / base / default / y un diseño / default / default?

10

¿Por qué hay un diseño / base / default / y un diseño / default / default? Esto parece confuso y redundante.

Tostada Coma
fuente

Respuestas:

7

En resumen, default/defaultes legado de <1.4CE donde era el paquete base original. Los temas principales de Magento todavía se envían en el paquete predeterminado, por lo que no necesariamente está en desuso sino que es heredado.

Debido a que default / default se puede sobrescribir durante las actualizaciones de CE, no es aconsejable que coloque los archivos aquí, pero los complementos que intentan ser compatibles con versiones anteriores de <1.3 pueden colocar archivos aquí intencionalmente en lugar de base / default.


Fuente: http://www.magentocommerce.com/knowledge-base/entry/magentos-theme-hierarchy#3.2

philwinkle
fuente
Entonces, ¿puedo borrar completamente el directorio / design / frontend / default y todo funcionará perfectamente? Quiero decir que solo tendría / base / default solamente. Eso está bien ¿verdad? Además, ¿por qué no hay / base / default inside / design / adminhtml o / design / install?
CommaToast
Ciertamente es posible. EE se envía sin el tema predeterminado / predeterminado.
philwinkle
1
default / * no se usan a menos que especifique que su paquete es el paquete que se va a usar. Puede eliminar el directorio de forma segura si lo desea, pero tenga en cuenta que puede restaurarse durante las actualizaciones / instalación.
philwinkle
1
Puede habilitar sugerencias de plantilla y ver si algún bloque usa / default / default si aún tiene dudas.
Amasty
1
Puedo recordar al menos un puñado de veces en las que poder cambiar el diseño / paquete defaultfue una herramienta de depuración muy útil.
pspahn
5

Encontré una respuesta aún mejor en el wiki oficial de Magento . (Es de 2012, por lo que no estoy seguro de si alguna de la información está desactualizada, pero parece ser aplicable a 1.8.1 por lo que puedo decir). Si bien recomiendo encarecidamente que la lea en su totalidad (haga clic en negrita enlace), permítanme resumirlo a continuación.

¿De qué se trata /basetodo esto?

/base/defaultse introdujo en CE 1.4 y EE 1.8 para consolidar toda la funcionalidad front-end de tipo lógica de aplicación en una única base de código que nunca debe editar. Tiene la misma estructura de directorio que un paquete de diseño con un tema predeterminado , pero le faltan algunos archivos CSS clave, por lo que no recomiendan que lo tenga como su único paquete y tema de diseño.

Una gran analogía sería decir que eso /basees /design/frontendlo que /corees /code. Se supone que no debes modificar los archivos que contiene /base. En su lugar, se supone que debe extender su funcionalidad en su propio paquete de diseño personalizado , que Magento examinará primero antes de que vuelva a funcionar /base/default: primero lo verá /design/frontend/{custompackagename}/{customthemename}, luego volverá a funcionar /design/frontend/{custompackagename}/default/y, por último, volverá a funcionar /design/frontend/base/default.

Realmente, solo debe considerarse como /base: el /defaultsubdirectorio solo está allí porque el sistema de respaldo de Magento completa su viaje a través de cada paquete de diseño en su /default tema . Para ser claros, un paquete de diseño es un subdirectorio dentro /design/frontendy el tema es un subdirectorio dentro de un paquete de diseño. Cuando Magento revisa un paquete de diseño, ya sea /baseo no /{custompackagename}, el /defaulttema siempre será el último lugar donde buscará Magento.

Por lo tanto, dado que el propósito principal de /basees servir como el punto final en el sistema de reserva, de acuerdo con ese propósito, nunca tendrá otro tema que no sea /base/default.

¿Por qué hay un /defaultentonces?

Entonces, ¿por qué todavía hay un /design/frontend/default/default? ¿Y por qué no hay un /design/adminhtml/base/default? Para ser sincero, no sé la respuesta a la segunda pregunta. Pero déjame intentar responder la primera.

Olvidando la compatibilidad heredada, etc., creo que sería mucho más fácil de entender si se llamara en /generic/defaultlugar de /default/default. Por lo tanto, a los fines de esta discusión, me referiré /app/design/frontend/default/y /app/skin/frontend/default/colectivamente al "paquete de diseño genérico". Me referiré a todo dentro de esos directorios como si se llamaran /app/design/frontend/genericy /app/skin/frontend/generic. Dado que (al menos en el caso de la interfaz de usuario) el sistema de reserva de Magento ya no recurre /app/design/frontend/default/, creo que seguir llamándolo "predeterminado" es confuso ya que esa palabra implica que algo es parte de la cadena de reserva , pero el paquete de diseño genérico ya no es parte de la cadena alternativa a partir de la introducción de/base. Por lo tanto, llamarlo el "paquete de diseño genérico" en lugar del "paquete de diseño predeterminado" alivia esta confusión al decirnos que sí, es solo el conjunto de temas genéricos que viene con Magento de forma gratuita, sin implicar que es parte de la cadena alternativa. :RE

Continuando a continuación: el paquete de diseño genérico tiene un tema predeterminado y varios temas no predeterminados en el interior: /blank, /iphone, y /modern. Si un tema no predeterminado está activo, sus archivos anularán cualquier cosa en el tema predeterminado, pero no importa qué tema no predeterminado esté activo, cualquier parte del tema predeterminado del paquete genérico que no haya sido anulada por el tema no predeterminado todavía se ejecutan, y además anularán cualquier cosa en /base/default. Finalmente, cualquier parte no anulada de /base/defaultget run.

Sin embargo, críticamente, ninguna parte del paquete de diseño genérico se ejecutará si está utilizando un paquete de diseño personalizado. El sistema de reserva va directamente desde {customdesignpackage}/{customthemename}a {customdesignpackage}/defaulta base/default. (A menos que no comprenda esto correctamente; corríjame si me equivoco).

Dicho esto, eliminar el paquete de diseño genérico completamente sin tener un paquete de diseño personalizado en su lugar sería imprudente ya que el paquete de diseño genérico tiene algunos elementos de máscara que aún son necesarios.

Tostada Coma
fuente