我有一些我存储在myfunc.php中的Magento商店的自定义PHP函数,我需要在几个不同的.phtml文件中要求它。我该怎么做?
我的意思是我可以使用绝对路径,但这会很脏并且在迁移到另一台服务器时可能会出现问题。
现在我坚持:
require('/home/myuser/public_html/app/design/frontend/default/mytheme/myfunc.php');
如何以编程方式引用皮肤路径(/ home / myuser / public_html / app / design / frontend / default / mytheme /)?
答案 0 :(得分:105)
Magento主题处理实际网址的方式是这样的(在视图中显示部分 - phtml文件):
echo $this->getSkinUrl('images/logo.png');
如果您需要磁盘上的实际基本路径使用:
echo Mage::getBaseDir('skin');
这篇精彩的博文中提供了更多基本目录类型:
答案 1 :(得分:18)
首先请注意
Mage::getBaseDir('skin')
返回Magento安装的skin目录的唯一路径( / your / magento / dir / skin )。
您可以使用以下方式访问当前使用的皮肤目录的绝对路径:
Mage::getDesign()->getSkinBaseDir()
此方法接受关联数组作为可选参数来修改结果。
识别以下键:
所以在你的情况下,正确答案是:
require(Mage::getDesign()->getSkinBaseDir().DS.'myfunc.php');
答案 2 :(得分:13)
要在phtml中使用它:
echo $this->getSkinUrl('your_image_folder_under_skin/image_name.png');
在cms页面中使用皮肤路径:
<img style="width: 715px; height: 266px;" src="{{skin url=images/banner1.jpg}}" alt="title" />
这部分====&gt; {{skin url = images / banner1.jpg}}
我希望这会对你有帮助。
答案 3 :(得分:8)
要获取当前皮肤网址,请使用此Mage::getDesign()->getSkinUrl()
答案 4 :(得分:1)
首先,不建议在设计文件夹中包含带有功能的php文件。 您应该创建一个新模块或扩展(从核心复制到本地帮助程序并将函数添加到该类)并且不要从app / code / core更改文件。
要回答您的问题,您可以使用:
require(Mage::getBaseDir('design').'/frontend/default/mytheme/myfunc.php');
最佳实践(作为开始)将在/app/code/local/Mage/Core/Helper/Extra.php中创建一个php文件:
<?php
class Mage_Core_Helper_Extra extends Mage_Core_Helper_Abstract
{
public function getSomething()
{
return 'Someting';
}
}
要在phtml文件中使用它:
$this->helper('core/extra')->getSomething();
或者在所有地方:
Mage::helper('core/extra')->getSomething();
答案 5 :(得分:-1)
要获取该文件,请使用以下代码。
include(Mage::getBaseDir('skin').'myfunc.php');
但这不是一个正确的方法。要添加自定义函数,您可以使用以下文件。
app/code/core/Mage/core/functions.php
请避免在皮肤目录下使用PHP函数。