<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[Magextend Blog]]></title>
    <link>http://www.magextend.com/blog/</link>
    <description><![CDATA[Magextend Blog]]></description>
    <pubDate>Sat, 19 May 2012 14:49:12 +0000</pubDate>
    <generator>Zend_Feed</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Magento URLs & Paths]]></title>
      <link>http://www.magextend.com/blog/paths/</link>
      <description><![CDATA[<style type="text/css">
#getbasedir
{
font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
width:100%;
border-collapse:collapse;
}
#getbasedir td, #getbasedir th 
{
border:1px solid #98bf21;
padding:3px 7px 2px 7px;
}
#getbasedir th 
{
text-align:left;
background-color:#A7C942;
color:#fff;
}
#getbasedir tr.alt td 
{
color:#000;
background-color:#EAF2D3;
}
.blog-post-code{
        border : 1px solid grey;
        background-color: #EBEBEB;
        font-family:"Courier New", Times, serif;
}
</style>

You sometimes need to retrieve Magento url or paths like the website base URL or the edia directory path on the server. Magento brings us 2 functions allowing to do that easily.<br /><br />

For web adresses you need to use Mage::getBaseUrl() with the link type in parameter. The types are described in the model Mage_Core_Model_Store :<br /><br />

<div class="blog-post-code">
const URL_TYPE_LINK                 = 'link';<br />

const URL_TYPE_DIRECT_LINK          = 'direct_link';<br />

const URL_TYPE_WEB                  = 'web';<br />

const URL_TYPE_SKIN                 = 'skin';<br />

const URL_TYPE_JS                   = 'js';<br />

const URL_TYPE_MEDIA                = 'media';
</div>
<br /><br />

So we have :
<div class="blog-post-code">Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK)</div>
<strong>http://www.domain.com/index.php/</strong><br /><br />
<div class="blog-post-code">Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)</div>
<strong>http://www.domain.com/</strong><br /><br />
<div class="blog-post-code">Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN)</div>
<strong>http://www.domain.com/skin/</strong><br /><br />
<div class="blog-post-code">Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS )</div>
<strong>http://www.domain.com/js/</strong><br /><br />
<div class="blog-post-code">Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA)</div>
<strong>http://www.domain.com/media/</strong><br /><br />

To get a directory path you need to use Mage:::getBaseDir() with the directory code in parameter. The following table show all the available codes:
<table id="getbasedir">
    <tr>
        <th>Code</th>
        <th>Call</th>
        <th>Value</th>
    </tr>
    <tr>
        <td>base
        </td>
        <td>Mage::getBaseDir()<br />Mage::getBaseDir('base')
        </td>
        <td>/var/www/magento/
        </td>
    </tr>
    <tr class="alt">
        <td>app
        </td>
        <td>Mage::getBaseDir('app')
        </td>
        <td>/var/www/magento/app/
        </td>
    </tr>
    <tr>
        <td>code
        </td>
        <td>Mage::getBaseDir('code')
        </td>
        <td>/var/www/magento/app/code
        </td>
    </tr>
    <tr class="alt">
        <td>design
        </td>
        <td>Mage::getBaseDir('design')
        </td>
        <td>/var/www/magento/app/design/
        </td>
    </tr>
    <tr>
        <td>etc
        </td>
        <td>Mage::getBaseDir('etc')
        </td>
        <td>/var/www/magento/app/etc
        </td>
    </tr>
    <tr class="alt">
        <td>lib
        </td>
        <td>Mage::getBaseDir('lib')
        </td>
        <td>/var/www/magento/lib
        </td>
    </tr>
    <tr>
        <td>locale
        </td>
        <td>Mage::getBaseDir('locale')
        </td>
        <td>/var/www/magento/app/locale
        </td>
    </tr>
    <tr class="alt">
        <td>media
        </td>
        <td>Mage::getBaseDir('media')
        </td>
        <td>/var/www/magento/media/
        </td>
    </tr>
    <tr>
        <td>skin
        </td>
        <td>Mage::getBaseDir('skin')
        </td>
        <td>/var/www/magento/skin/
        </td>
    </tr>
    <tr class="alt">
        <td>var
        </td>
        <td>Mage::getBaseDir('var')
        </td>
        <td>/var/www/magento/var/
        </td>
    </tr>
    <tr>
        <td>tmp
        </td>
        <td>Mage::getBaseDir('tmp')
        </td>
        <td>/var/www/magento/var/tmp
        </td>
    </tr>
    <tr class="alt">
        <td>cache
        </td>
        <td>Mage::getBaseDir('cache')
        </td>
        <td>/var/www/magento/var/cache
        </td>
    </tr>
    <tr>
        <td>log
        </td>
        <td>Mage::getBaseDir('log')
        </td>
        <td>/var/www/magento/var/log
        </td>
    </tr>
    <tr class="alt">
        <td>session
        </td>
        <td>Mage::getBaseDir('session')
        </td>
        <td>/var/www/magento/var/session
        </td>
    </tr>
    <tr>
        <td>upload
        </td>
        <td>Mage::getBaseDir('upload')
        </td>
        <td>/var/www/magento/media/upload
        </td>
    </tr>
    <tr class="alt">
        <td>export
        </td>
        <td>Mage::getBaseDir('export')
        </td>
        <td>/var/www/magento/var/export
        </td>
    </tr>
</table>]]></description>
      <pubDate>Mon, 20 Sep 2010 11:41:44 +0000</pubDate>
    </item>
  </channel>
</rss>

