Как получить каталог тем Magento?

Во-первых, я был здесь, но это не помогает, потому что

$this->getSkinUrl()

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

Mage::getBaseDir('skin');

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

Я хочу определить текущую базовую директорию темы.


person ilyes kooli    schedule 11.06.2012    source источник


Ответы (3)


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

Mage::getSingleton('core/design_package')->getSkinBaseDir()
person Drew Hunter    schedule 11.06.2012

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

Если вы ищете реж.

Mage_Core_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;
}
person Vern Burton    schedule 11.06.2012

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

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

Подробнее о parse_url

person ilyes kooli    schedule 11.06.2012
comment
@sonia - я не уверен, почему этот ответ был принят. Я бы постарался избегать такого кода, где это возможно, из таких фреймворков, как Magento. - person Drew Hunter; 12.06.2012
comment
Согласованный. Это очень плохо внутри Magento, так как это полностью уничтожит запасной вариант темы. Поскольку вы должны только переместить отредактированные файлы в свой пакет / тему и позволить системе вернуться к базовому / стандартному для всего остального. - person Vern Burton; 12.06.2012