2012-06-11 2 views
2

Во-первых, я был here, но это не помогает, потому чтоКак получить каталог тем Magento?

$this->getSkinUrl() 

Не то, что я хочу, так как она возвращает URL не путь

Mage::getBaseDir('skin'); 

возвращает базовый кожи реж, они может быть много тем там.

Я хочу определить текущий каталог темы.

ответ

12

Попробуйте это:

Mage::getSingleton('core/design_package')->getSkinBaseDir() 
-4

Вот как вы можете получить текущий им путь

$_SERVER['DOCUMENT_ROOT'].parse_url($this->getSkinUrl(''),PHP_URL_PATH); 

Подробнее о parse_url

+2

Ой, не является идеальным решением –

+1

@sonia - я не знаю, почему этот ответ был принят. Я бы постарался избежать кода, подобного этому, где это возможно, изнутри такой структуры, как Magento –

+0

Согласовано. Это очень плохой внутри Magento, так как он полностью уничтожит рельеф темы. Поскольку вы должны только перемещать редактируемые файлы в свой пакет/тему, а также позволять системе возвращаться в базу/по умолчанию для всего остального. –

-1

Там может быть много тем, но он будет использовать все, что вы настроили, и он будет идти все способ упаковки/темы, которые могли бы использоваться в системе> Config> Design

Если вы ищете директории,

Mage_Cor e_Model_Design_Package :: getSkinBaseDir()

public function getSkinBaseDir(array $params=array()) 
{ 
    $params['_type'] = 'skin'; 
    $this->updateParamDefaults($params); 
    $baseDir = (empty($params['_relative']) ? Mage::getBaseDir('skin').DS : ''). 
     $params['_area'].DS.$params['_package'].DS.$params['_theme']; 
    return $baseDir; 
} 

public function updateParamDefaults(array &$params) 
{ 
    if ($this->getStore()) { 
     $params['_store'] = $this->getStore(); 
    } 
    if (empty($params['_area'])) { 
     $params['_area'] = $this->getArea(); 
    } 
    if (empty($params['_package'])) { 
     $params['_package'] = $this->getPackageName(); 
    } 
    if (empty($params['_theme'])) { 
     $params['_theme'] = $this->getTheme((isset($params['_type'])) ? $params['_type'] : ''); 
    } 
    if (empty($params['_default'])) { 
     $params['_default'] = false; 
    } 
    return $this; 
} 
+0

getSkinUrl возвращает URL-адрес, а не путь. – skafandri

+0

Обновлен мой ответ. –

Смежные вопросы