2013-04-24 18 views
10

ana url sonra url alın, ancak aşağıdaki yanıt bulamıyor: Biz ana url sonra .phtml içinde Magento yer almak istiyorumMagento Ben internet üzerinden tüm baktım

eğer öyleyse:

domain.com/shoes.html biz almak istiyorum sadece shoes.html

biz .nl ve .be bir Multishop var ve biz hreflang'ı kullanmak istiyorum çünkü bu önemlidir. Her iki mağazada da hem mağazalardan hem de .be ve .nl'den sonra alt kategori veya ürün URL'si ile vermemiz gerekiyor. Geçerli URL ile alabilirsiniz .phtml yılında

: yardımcı ('çekirdek/url') -> getCurrentUrl(); bu kodu ile>

Eğer domain.com/shoes böylece toplam url alacak .html ve biz sadece bir bölümü shoes.html istiyorum

birisi Sen w birçok vardır

$url = Mage::helper('core/url')->getCurrentUrl(); //http://domain.com/shoes.html 
echo basename($url); //outputs shoes.html 
+1

Bilginize, Magento artık kendi Stack Exchange sitesi var: http://magento.stackexchange.com –

cevap

8

bilir olsaydı çok iyi olurdu Ne istediğini almak için ay, sadece tam olarak ne istediğine bağlı. Geçerli URL'yi yaptığınız gibi alabilir ve str_replace ile temel URL'yi (Mage::getBaseUrl()) kaldırabilirsiniz.

Veya, $_SERVER['REQUEST_URI']

+0

Ben bu seçeneği denedim ama işe alamadım. Yapmak istediğim şey, ana url'den sonraki bölümü almaktır, bu nedenle shoes.html iki URL'nin arkasına ve yalnızca kodlara sığdırmak için. Biz bir hreflang arkasına almak istiyoruz: biz bir hollandalı ve belçika sitemiz var .nl ve .be başlıklarında biz ur.nl ve .be sahip olmasını istiyoruz. Bu yüzden arkasındaki uzantıyla: .be/shoes.html ve .nl/shoes.html. Bu nasıl çalışır, biz href = "domain.nl/ helper ('core/url') -> getCurrentUrl();?> 'Yi denedik ama sonra domain.nl/domain.nl ve domain.nl/shoes.html mi almak istiyoruz? – Coen

1

PHP'nin basename yöntemini kullanarak bu dosya adını alabilirsiniz cevabı

+0

Sevgili Nachito, ne yapmaya çalıştığımızın bir açıklamasını yerleştiriyorum, eğer bu işi nasıl yapmamız gerektiğini biliyorsan bir bakabilir misin? Teşekkürler – Coen

25

Bunu yapabilirsiniz kullanabilirsiniz:

$urlString = Mage::helper('core/url')->getCurrentUrl(); 
$url = Mage::getSingleton('core/url')->parseUrl($urlString); 
$path = $url->getPath(); 

$ yol alan adı hariç URL içerecektir. beklendiği gibi

+2

İşleri!Bunu, "$ url-> getHost()" – Justin

+1

ile "mysite.com" almak için de kullandım. Bu çok saçma. – JamesHalsall

+0

@JamesHalsall, Bu 'ile, sanırım Magento demek istediniz. Buraya geldim çünkü [EQP] (https://github.com/magento/marketplace-eqp) basename() 'yi kullanmamı istemiyor. Bah – aross

1
$currentUrl = Mage::helper('core/url')->getCurrentUrl() 

veya kod yukarıdaki

$currentUrl = Mage::getUrl('*/*/*', array('_current' => true)); 

her zaman çalışmayabilir. Geçerli url bulmak için daha iyi bir yolu aşağıdaki kodu kullanmaktır: Burada önerilerden bazıları ile iki sorunlar vardı

if (!in_array(Mage::app()->getFrontController()->getAction()->getFullActionName(), array('cms_index_noRoute', 'cms_index_defaultNoRoute'))) { 
    $currentUrl = Mage::helper('core/url')->getCurrentUrl(); 
} 
+0

neden şu url çalışmıyor? ** $ currentUrl = Mage :: helper ('çekirdek/url') -> getCurrentUrl() ** veya ** $ currentUrl = Mage :: getUrl ('*/*/*', dizi ('_ current' => true)); ** – Supravat

4

öncelikle getBaseUrl() port numarasını dahil, ikincisi benim temel URL bir mağaza dizin içerir , Örneğin www.example.com/store (getBaseUrl() ve RightThing'de bulunur). Cevap, getCurrentUrl() koduna bakmak ve bağlantı noktasını saklamayan kendi mevcut URL'mi oluşturmaktı.

Aşağıdaki kod

benim için çalıştı:

<?php 
$request = Mage::app()->getRequest(); 
$port = ':' . $request->getServer('SERVER_PORT'); 

$currentUrl = $request->getScheme() . '://' . $request->getHttpHost() . $port . $request->getServer('REQUEST_URI'); 

$relUrl = str_replace(Mage::getBaseUrl(), '', $currentUrl); 
    echo '<p>Base: ' . Mage::getBaseUrl() . '</p>'; 
    echo '<p>This: ' . $currentUrl . '</p>'; 
    echo '<p>Repl: ' . $relUrl . '</p>'; 
?> 
+0

İyi çalışıyor ... – VijayS91