magento中的getBaseUrl函数

(转)本文地址:http://www.popo4j.com/magento/mage_getbaseurl.html

在magento中如果要获取JS,media,skin目录,我们可以使用magento的

1 Mage::getBaseUrl()
这个函数..假设我们的网站根目录是:http://192.168.1.10/magento/

如果我要获取js目录

1 <?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);//http://192.168.1.10/magento/js/ ?>
同理我们获取media和skin目录可以使用

1 <?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);//http://192.168.1.10/magento/media/?>
2 <?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);//http://192.168.1.10/magento/skin/?>
如果我们要在magento系统的其他地方获取网站根目录我们可以使用

1 <?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);//http://192.168.1.10/magento/index.php/?>
如果不需要index.php可以使用:

1 Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);//http://192.168.1.10/magento/
但上面的代码除了在代码重构方面有优势,我反正是记不住这些又臭又长的常量,我们来看下

1 class Mage_Core_Model_Store extends Mage_Core_Model_Abstract
中定义了这几个常量

1 const URL_TYPE_LINK = 'link';
2 const URL_TYPE_DIRECT_LINK = 'direct_link';
3 const URL_TYPE_WEB = 'web';
4 const URL_TYPE_SKIN = 'skin';
5 const URL_TYPE_JS = 'js';
6 const URL_TYPE_MEDIA = 'media';
这意味着我们可以直接这样

1 <?php echo Mage::getBaseUrl('media'); ?>
2 <?php echo Mage::getBaseUrl('js'); ?>
也可以使用getHomeUrl

1 <?php echo Mage::helper('core/url')->getHomeUrl(); ?>
我们看下Mage_Core_Helper_Url 这个类中getHomeUrl是如何实现的

1 public function getHomeUrl()
2 {
3 return Mage::getBaseUrl();
4 }
默认就是调用上面我们说的Mage::getBaseUrl()方法,而getBaseUrl方法默认调用的是

1 Mage_Core_Model_Store::URL_TYPE_LINK
如果我们要获取当前页面的路径我们可以使用mage的帮助类"core/url"

1 <?php echo Mage::helper('core/url')->getCurrentUrl();?>
这个方法永远返回当前页面的路径,也就是显示在浏览器地址栏上的路径,如果我们要显示登录界面的路径可以使用:

1 <?php echo $this->getUrl('customer/account/login') ; ?>

posted @ 2017-01-13 09:55  ec04  阅读(177)  评论(0编辑  收藏  举报