it-swarm-tr.com

Gerçek URL yerine özel bir modülde nasıl SEF URL'si oluştururum?

Modülümde, bu kod sayfanın URL'sini oluşturmak için kullanılıyor:

JURI::base() . ContentHelperRoute::getArticleRoute(  $article->id,  $article->catid )

Bu, olması gerektiği gibi tam olarak çalışır ve aşağıdaki gibi bir URL üretir:

http://example.com/index.php?option=com_content&view=article&id=83&catid=26&Itemid=162

Ancak, modülün geçerli sayfa için SEF URL'sini oluşturmasını sağlamanın bir yolu olup olmadığını bilmek istiyorum. Gibi bir şey:

http://example.com/resources/blog/83-illustration
7
rleathers

Bunun için JRoute kullanın:

rtrim(JUri::base(), '/') . JRoute::_(ContentHelperRoute::getArticleRoute(  $article->id,  $article->catid ))

ancak farklı bir alan adına bağlanmak istemiyorsanız JUri :: base () gerekmez.

13
Harald Leithner

System: SEF adlı bir sistem eklentisi var. Etkinleştirildiğinde, bu eklenti son HTML çıktısını tarayıcıya gönderilmeden hemen önce tarar ve SEF dışı bağlantıları JRoute::_($url); üzerinden çalıştırarak SEF benzerleriyle değiştirir. Bu yalnızca index.php İle başlayan dahili bağlantılar için geçerlidir, bu nedenle bağlantı http:// İle başlıyorsa çalışmaz.

JUri::base() öğesini kaldırmayı (ve dolayısıyla http: // bağlantıdan kaldırmayı) deneyin; eklenti etkinse çalışmalıdır.

4
Don Gilbert

İşte sitenin doğru kök URL'sini almanın başka bir yolu. Bu, siteniz alt klasördeyse de ilgilenir

$rootURL = rtrim(JURI::base(),'/');
        $subpathURL = JURI::base(true);
        if(!empty($subpathURL) && ($subpathURL != '/')) {
            $rootURL = substr($rootURL, 0, -1 * strlen($subpathURL));
        }

Sonra yapabilirsin

$url = $rootURL.JRoute::_(ContentHelperRoute::getArticleRoute(  $article->id,  $article->catid ));
3
Ramesh Elamathi