2012-06-22 19 views
9

In Magento sto cercando di ottenere il tema corrente o il nome del pacchetto ma non ho trovato nulla. Ho usato getSkinUrl (') ma il suo percorso di ritorno non è il pacchetto o il tema name.please aiutami come posso ottenere il tema o il nome del pacchetto.Come ottenere il nome del tema corrente in Magento

risposta

25

pacchetto attuale

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

Tema corrente (frontend)

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

Grazie funziona bene – shashank

+1

Come @ peter-a indica nella sua risposta, 'frontend' non è una delle possibili opzioni per 'getTheme()'. Utilizza 'locale', 'layout', 'template', 'default' o 'skin'. Altrimenti 'getTheme()' restituirà sempre 'default'. –

9

Da

Mage::getSingleton('core/design_package') 

è equivalente di

Mage::getDesign() 

esempi di Drew si può accorciare a:

Mage::getDesign()->getPackageName() 

e

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

qui l'altro modo:

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

Si prega di notare che la risposta di cui sopra da @Drew Hunter è non del tutto corretto. Mentre getTheme() è la chiamata alla funzione desiderata, la stringa "frontend" non è un parametro accettato per questo metodo. I valori solo consentiti per questo metodo sono:

  • locale
  • disposizione
  • modello
  • predefinita
  • pelle

Vale a dire, l'uso corretto di questa funzione è una delle seguenti righe:

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') 

Se non si utilizza il metodo in questo modo, sempre restituisce la stringa "predefinita".

risultati imprevisti

di utilizzo non corretto produrranno errori logici. Un esempio di questo è se hai una "Espressione abbinata" definita per indirizzare in modo mirato i dispositivi mobili.

Mage::getSingleton('core/design_package') 

riferimenti la seguente classe

Mage_Core_Model_Design_Package 

Osservando la 'getTheme()' metodo in questa classe si noterà possibili opzioni è possibile passare questo metodo, sono 'locale', 'il layout ',' modello ',' default 'e' skin '.

Pertanto, se un particolare negozio aveva 'Matched espressione' per 'template' come la seguente

iPhone|iPod|Mobile|mobile > mobile 

Possono accadere

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

voluto aggiungere questo come commento, ma si può scarica direttamente dal database con

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

Questo è probabilmente più utile per gli amministratori che in uso live, dovresti usare le funzioni di Magento se stai progettando un modello o una codifica all'interno di Magento.

Problemi correlati