【发布时间】:2012-06-11 16:22:10
【问题描述】:
首先,我是here,但这并没有帮助,因为
$this->getSkinUrl()
不是我想要的,因为它返回 URL 而不是 path
Mage::getBaseDir('skin');
返回皮肤基础目录,那里可能有很多主题..
我想确定当前的主题基础目录。
【问题讨论】:
标签: magento magento-1.6
首先,我是here,但这并没有帮助,因为
$this->getSkinUrl()
不是我想要的,因为它返回 URL 而不是 path
Mage::getBaseDir('skin');
返回皮肤基础目录,那里可能有很多主题..
我想确定当前的主题基础目录。
【问题讨论】:
标签: magento magento-1.6
试试这个:
Mage::getSingleton('core/design_package')->getSkinBaseDir()
【讨论】:
可能有很多主题,但它会使用您配置的任何内容,并且会一直用到可能在 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;
}
【讨论】:
这是获取当前路径的方法
$_SERVER['DOCUMENT_ROOT'].parse_url($this->getSkinUrl(''),PHP_URL_PATH);
更多关于parse_url的详情
【讨论】: