在Magento获取皮肤路径?

dat*_*.io 44 templates magento

我有一些我存储在myfunc.php中的Magento商店的自定义PHP函数,我需要从几个不同的.phtml文件中获取它.我怎么做?

我的意思是我可以使用绝对路径,但这会很脏并且在迁移到另一台服务器时可能会出现问题.

现在我坚持:

require('/home/myuser/public_html/app/design/frontend/default/mytheme/myfunc.php');
Run Code Online (Sandbox Code Playgroud)

如何以编程方式引用皮肤路径(/ home/myuser/public_html/app/design/frontend/default/mytheme /)?

phi*_*kle 105

Magento主题处理实际url的方式是这样的(在视图partials - phtml文件中):

echo $this->getSkinUrl('images/logo.png');

如果需要将磁盘上的实际基本路径用于映像目录,请使用:

echo Mage::getBaseDir('skin');

这篇精彩的博文中提供了一些更基本的目录类型:

http://alanstorm.com/magento_base_directories


Deu*_*777 18

首先要注意的是

Mage::getBaseDir('skin')
Run Code Online (Sandbox Code Playgroud)

返回Magento安装的皮肤目录的路径(/ your/magento/dir/skin).

您可以使用以下方法访问当前使用的skin目录的绝对路径

Mage::getDesign()->getSkinBaseDir()
Run Code Online (Sandbox Code Playgroud)

此方法接受关联数组作为可选参数来修改结果.

以下键被识别:

  • _area 前端(默认)或adminhtml
  • _打包你的包裹
  • _theme你的主题
  • _relative当设置(作为键)相对于Mage :: getBaseDir('skin')的路径被返回.

所以在你的情况下,正确答案是:

require(Mage::getDesign()->getSkinBaseDir().DS.'myfunc.php');
Run Code Online (Sandbox Code Playgroud)


Nik*_*K_R 13

要在phtml中使用它:

echo $this->getSkinUrl('your_image_folder_under_skin/image_name.png');
Run Code Online (Sandbox Code Playgroud)

要在cms页面中使用皮肤路径:

<img style="width: 715px; height: 266px;" src="{{skin url=images/banner1.jpg}}" alt="title" />
Run Code Online (Sandbox Code Playgroud)

这部分====> {{skin url = images/banner1.jpg}}

我希望这能帮到您.


小智 8

要获取当前皮肤 URL,请使用此选项Mage::getDesign()->getSkinUrl()

  • 您可以将路径作为参数传递"Mage :: getDesign() - > getSkinUrl('image/example.png')` (3认同)