2012-06-22 25 views
9

En magento estoy tratando de obtener el tema o nombre del paquete actual pero no encontré nada. Utilicé getSkinUrl (') pero es la ruta de retorno de la piel, no el paquete o el nombre del tema. Por favor, ayúdame a obtener el tema o el nombre del paquete.Cómo obtener el nombre del tema actual en Magento

Respuesta

25

paquete actual

Mage::getSingleton('core/design_package')->getPackageName() 

tema actual (frontend)

Mage::getSingleton('core/design_package')->getTheme('frontend') 
+0

Gracias funciona bien – shashank

+1

Como @ peter-a señala en su respuesta, 'frontend' no es una de las opciones posibles para 'getTheme()'. Use 'configuración regional', 'diseño', 'plantilla', 'predeterminado' o 'máscara'. De lo contrario, 'getTheme()' siempre devolverá 'default'. –

9

Desde

Mage::getSingleton('core/design_package') 

es equivalente a

Mage::getDesign() 

ejemplos de Drew se puede acortar a:

Mage::getDesign()->getPackageName() 

y

Mage::getDesign()->getTheme('frontend') 
1

aquí la otra manera:

$package = Mage::getStoreConfig('design/package/name'); 
$skin_name = Mage::getStoreConfig('design/theme/skin'); 
12

Tenga en cuenta que la respuesta anterior por @Drew Hunter es no del todo correcto. Mientras que getTheme() es la llamada de función deseada, la cadena 'frontend' no es un parámetro aceptado para este método. Los únicos valores permitidos para este método son:

  • local
  • diseño
  • plantilla
  • predeterminado
  • piel

Es decir, el uso correcto de esta función es una de las siguientes líneas:

Mage::getSingleton('core/design_package')->getTheme() 
Mage::getSingleton('core/design_package')->getTheme('locale') 
Mage::getSingleton('core/design_package')->getTheme('layout') 
Mage::getSingleton('core/design_package')->getTheme('template') 
Mage::getSingleton('core/design_package')->getTheme('default') 
Mage::getSingleton('core/design_package')->getTheme('skin') 

Si no se utiliza el método de esta manera, siempre devolverá la cadena 'predeterminada'.

resultados inesperados

uso incorrecta producirán errores lógicos. Un ejemplo de esto es si tiene una "Expresión coincidente" definida para dirigirse específicamente a dispositivos móviles.

Mage::getSingleton('core/design_package') 

referencias la siguiente clase

Mage_Core_Model_Design_Package 

Al observar el método de esta clase 'getTheme()' se dará cuenta de posibles opciones que puede pasar este método, que son 'locale', 'diseño ',' plantilla ',' predeterminado 'y' máscara '.

Por lo tanto, si una tienda en particular había 'Matched Expresión' para 'plantilla' como la siguiente

iPhone|iPod|Mobile|mobile > mobile 

Lo siguiente puede ocurrir

Mage::getSingleton('core/design_package')->getTheme('frontend') RETURNS 'default' 
Mage::getSingleton('core/design_package')->getTheme('template') RETURNS 'mobile' 
0

quería añadir esto como comentario, pero se puede también obtener directamente de la base de datos con

SELECT * FROM core_config_data WHERE path="design/theme/skin"; 
SELECT * FROM core_config_data WHERE path="design/package/name"; 

Eso es probablemente más útil para los administradores que en uso en vivo, debe usar las funciones de magento si está diseñando una plantilla o codificación dentro de magento.

Cuestiones relacionadas