Magento 1.x Лучший способ получить URL-адрес обложки администратора из веб-интерфейса

Каков наилучший способ получить URL-адрес текущей директории темы оболочки администратора.

Я в курсе

Mage::getModel('core/design_package')->getSkinUrl();

Который будет возвращать URL-адрес каталога темы обложки. Есть ли эквивалент Adminhtml?

Большое спасибо

0

Решение

Для административного URL кожи вы можете использовать:

<?php echo Mage::getDesign()->getSkinBaseUrl(array('_area'=>'adminhtml')) ?>

Этот метод можно найти в app/code/core/Mage/Core/Model/Design/Package.php,

Вы также можете передавать другие параметры через массив, как _package а также _theme если вы хотите URL определенного пакета / темы.

3

Другие решения

Это лучший способ получить безопасный URL-адрес обложки:

$this->getSkinUrl('images/imagename.gif', array('_secure'=>true));

Чтобы получить небезопасный URL-адрес обложки:

$this->getSkinUrl('images/imagename.jpg');
2

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 );
2