첫째, 나는 here했지만Magento 테마 디렉토리를 얻는 방법은 무엇입니까?
$this->getSkinUrl()
가 나는 그것이 URL을 반환하기 때문에 원하는 것을하지 않기 때문에 그 도움이되지 않습니다 경로
Mage::getBaseDir('skin');
피부의 기본 디렉토리를 반환하지 , 그들은 거기에 많은 테마가있을 수 있습니다 ..
나는 현재 테마 기본 디렉토리를 결정하고 싶습니다. 여기
첫째, 나는 here했지만Magento 테마 디렉토리를 얻는 방법은 무엇입니까?
$this->getSkinUrl()
가 나는 그것이 URL을 반환하기 때문에 원하는 것을하지 않기 때문에 그 도움이되지 않습니다 경로
Mage::getBaseDir('skin');
피부의 기본 디렉토리를 반환하지 , 그들은 거기에 많은 테마가있을 수 있습니다 ..
나는 현재 테마 기본 디렉토리를 결정하고 싶습니다. 여기
이 시도 :
Mage::getSingleton('core/design_package')->getSkinBaseDir()
는 현재에게 그 경로를 가져올 수
$_SERVER['DOCUMENT_ROOT'].parse_url($this->getSkinUrl(''),PHP_URL_PATH);
자세한 내용 parse_url에 대한 방법입니다
가 많은 테마가 될 수 있지만 사용자가 설정 한대로 사용되며이 모든 갈 것이다
당신이 디렉토리를 찾고 있다면 시스템> 구성에 사용되었을 수 있습니다 패키지/테마> 디자인,
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;
}
getSkinUrl은 경로가 아닌 URL을 반환합니다. – skafandri
내 대답이 업데이트되었습니다. –
아야하지 이상적인 솔루션 –
@sonia을 -이 답변이 승인 된 이유는 확실하지 않다. Magento와 같은 프레임 워크 내에서 가능하면이 코드를 사용하지 않으려 고 노력했습니다. –
동의합니다. 이것은 테마 fallback을 완전히 파괴하기 때문에 Magento 내부에서 매우 열악합니다. 편집 된 파일을 패키지/테마로 옮기고 다른 모든 항목에 대해 시스템을 기본/기본으로 폴백해야하기 때문입니다. –