Каков наилучший способ получить URL-адрес текущей директории темы оболочки администратора.
Я в курсе
Mage::getModel('core/design_package')->getSkinUrl();
Который будет возвращать URL-адрес каталога темы обложки. Есть ли эквивалент Adminhtml?
Большое спасибо
Для административного URL кожи вы можете использовать:
<?php echo Mage::getDesign()->getSkinBaseUrl(array('_area'=>'adminhtml')) ?>
Этот метод можно найти в app/code/core/Mage/Core/Model/Design/Package.php
,
Вы также можете передавать другие параметры через массив, как _package
а также _theme
если вы хотите URL определенного пакета / темы.
Это лучший способ получить безопасный URL-адрес обложки:
$this->getSkinUrl('images/imagename.gif', array('_secure'=>true));
Чтобы получить небезопасный URL-адрес обложки:
$this->getSkinUrl('images/imagename.jpg');
Core Magento использует это в основном коде:
Mage::getDesign()->getSkinUrl('images/image.gif');
Какие звонки:
public static function getDesign()
{
return self::getSingleton('core/design_package');
}
Они оба эквивалентны, за исключением того, что $this
может не работать во всех контекстах / случаях, поэтому я бы рекомендовал использовать Mage::getDesign()
чтобы избежать проблем.
PHP 5.3 имеет некоторые проблемы с использованием $this
в некоторых контекстах.
Вы должны быть в состоянии использовать Mage::getSingleton('core/design_package');
также хорошо.
Magento определяет, из какой «области» вы вызываете getDesign, так что …
Вызвать adminhtml или же внешний интерфейс районы и получаемые ими скилы кожи используют:
$oDesign = Mage::getDesign()->setArea( 'adminhtml' );
$oDesign = Mage::getDesign()->setArea( 'frontend' );
var_dump( $oDesign );
$sUrl = $oDesign->getSkinUrl('images/image.gif');
var_dump( $sUrl );