foto
Alisson O Blog

Alisson O Blog

Magento e os idiomas que o computador fala…

URL e Caminhos Físicos do Magento (URL PATH e SERVER PATH)

23 de outubro de 2009

Aqui na Indexa temos desafios diários com a plataforma Magento. Uma das últimas empreitadas foi a montagem de uma loja-base que poderá ser instalada em várias subpastas, ou seja, todo o código tem de funcionar independente da localização do arquivo no servidor (e, no geral, sempre é bom se trabalhar com URLs relativas e não fixas).

O Magento tem algumas funções que te ajudam a se localizar em desafios deste tipo, a maioria criadas estaticamente dentro da classe Mage, estando assim disponíveis em qualquer arquivo dentro do Magento sem a necessidade de se instanciar um objeto para tal. Aqui vão algumas:

echo "<BR />".Mage::getBaseUrl();
// http://www.meusitemagento.com/ - O mesmo que passando URL_TYPE_LINK

echo "<BR />".Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
// http://www.meusitemagento.com/ - A url (porção com o nome do servidor) atualmente sendo utilizada para acessar o Magento (leva em conta se está usando https)

echo "<BR />".Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
// http://www.meusitemagento.com/ - A url base do Magento (não leva em conta se está usando https)

echo "<BR />".Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
// http://www.meusitemagento.com/media - A url da pasta "media"

echo "<BR />".Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
// http://www.meusitemagento.com/skin - A url da pasta "skin"

echo "<BR />".Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);
// http://www.meusitemagento.com/js - A url da pasta "js"

echo "<BR />".Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_DIRECT_LINK);
// http://www.meusitemagento.com/ - A url base do Magento sem levar em conta a Loja atual

echo "<BR />".Mage::getRoot();
// /home/domains/meusitemagento.com/public_html/app - O caminho físico da pasta "app" da instalação atual do Magento

Note que a função Mage::getBaseUrl() retorna por padrão o mesmo que retornaria se passássemos Mage_Core_Model_Store::URL_TYPE_LINK como parâmetro, que é a URL base http, independente se no momento o site estiver em modo seguro (https) ou inseguro (http).

 

Dicas:

  • Um jeito rápido de descobrir qual o seu diretório de trabalho no servidor (um nível acima da pasta app do seu magento):
echo "<BR />".substr(Mage::getRoot(),0,strlen(Mage::getRoot())-4);
// /home/domains/meusitemagento.com/public_html/
  • Para descobrir URLs e subdiretórios:
echo "<BR />".Mage::getUrl('');
// http://www.meusitemagento.com/ - A url do seu site

echo "<BR />".Mage::getUrl('customer/account');
// http://www.meusitemagento.com/customer/account/ - A url para o painel da conta do usuário

echo "<BR />".Mage::getUrl('', array('_secure'=>true));
// https://www.meusitemagentoseguro.com/ - Força a recuperação da URL configurada para ser utilizada quando em modo seguro (HTTPS)

A função Mage::getUrl() aceita um segundo parâmetro, que, como no último exemplo acima, é um array. Este array contém nas chaves uma ou mais das opções que desejarmos passar, e, em cada parâmetro, o valor pode ser false ou true. Sendo assim, além de “_secure” podemos ter:

  1. _current : A URL atual
  2. _use_rewrite : Força o uso de URL rewrite
  3. _nosid : URL sem o ID da sessão do PHP (o SID sempre é passado quando se muda da url insegura para a url segura e vice-versa, ou em qualquer mudança de url aonde a sessão seria perdida caso o SID não fosse passado)
  4. … Entre outros parâmteros encontrados em app/code/core/Mage/Core/Model/Url.php
  • Descobrir facilmente arquivos da pasta “skin”:
echo "<BR />".$this->getSkinUrl();
// http://www.meusitemagento.com/skin/frontend/MEU-PACKAGE/MEU-TEMA/

echo "<BR />".$this->getSkinUrl("images/icon_rss.gif");
// http://www.meusitemagento.com/skin/frontend/MEU-PACKAGE/MEU-TEMA/images/icon_rss.gif - O Magento tenta achar esta imagem dentro do tema configurado, caso ele não ache ele tenta dentro de http://www.meusitemagento.com/skin/frontend/default/default, nesta ordem.
  • Dentro do arquivo app/code/core/Mage/Core/Model/Url.php existe no cabeçalho um esquema (praticamente em ASCII-art, hehe) explicando a nomenclatura que o Magento usa para cada porção da estrutura de uma URL.

Abraço!

Tags: , , , , , ,

Um comentário para “URL e Caminhos Físicos do Magento (URL PATH e SERVER PATH)”

  1. Imóveis Express disse:

    valeu a dica !

Deixe um comentário



© 2012 - Indexa Ltda. Todos os direitos reservados.