web-gelistirme-sc.com

$ This-> baseurl joomla'da nerede tanımlanır?

Önce bu soruyu stackoverflow.com'da sordum (soru burada ). Yorumlarda, bu soruyu burada sormamın daha iyi olacağını okuyabilirsiniz.

Joomla web sitemde echo $this->baseurl; Kullanıyorum ancak "/index.php" içeren URL'yi döndürüyor. Baseurl "/index.php" kaldırmak için bunu değiştirmek istiyorum. Ancak $this->baseurl; Tanım satırını bulamıyorum.

Bu iş parçacığı buldum ama bu soru sahibinin şablonu dayanmaktadır ve benim şablonda böyle bir şey yok.

Öneriler çok takdir :)

14
Therk

$this->baseurl; Temelde JUri::base() kısayoludur. configuration.php dosyanızda live_site Değişkeni olarak belirttiğiniz URL'yi alır. Bunun değeri yoksa, birkaç değişkene dayalı olarak PHP büyü) kullanır.

Şimdi birkaç test yapalım. Lütfen sonuçları geri bildirin:

Test 1:

<?php
  echo 'Rule 1: ' . JUri::base() . '\n';
  echo 'Rule 2: ' . $_SERVER['PHP_SELF'] . '\n';
  echo 'Rule 3: ' . $_SERVER['REQUEST_URI'] . '\n';
  echo 'Rule 4: ' . $_SERVER['SCRIPT_NAME'] . '\n';
?>

Test 2:

<?php
    echo JUri::base();
    echo JUri::base(true);
?>

Test 3:

Genel Yapılandırma'da (Joomla arka ucu), URL yeniden yazmayı olarak ayarlamayı deneyin (= = --- ==) Evet . Bu işe yaramazsa Adımlar 1 , 2 ve 5 bu sayfadaki Apache bölümü ve tekrar deneyin.


Test 4:

Şablonunuzun index.php dosyasının en üstüne aşağıdakileri ekleyin

<?php
    $this->baseurl = JUri::base();
?>
14
Lodder

_$this->baseurl;_, JURI sınıfının JURI:base(); yöntemini çağırmak yerine bir şablonun içinden kullanılacak bir kısayoldur. Çekirdeğin bir parçasıdır ve /libraries/joomla/environment/uri.php (~line 218). adresinde bulabilirsiniz.

Yönteme bakarsanız, _$live_url_ değişkeninin tanımlanıp tanımlanmadığını görmek için yapılandırma dosyasında kontrol edildiğini görürsünüz. Evetse bu URL'yi döndürür, aksi takdirde bir dizi başka kontrolden geçer ve gerçek taban URI'nızı döndürür.

Büyük olasılıkla live_url_configuration.php_ = _index.php_ sonunda. Oraya bakın ...

Başka bir olasılık, geçerli şablon/şablon sisteminizin bir yerde _$this->baseurl_ özelliğini tanımlamış olmasıdır. Şablonunuzun içindeki _$this->baseurl_ öğesini, şablonunuzun _index.php_ dosyasının üstünde yeniden tanımlayarak kolayca geçersiz kılabilirsiniz, örneğin: $this->baseurl = JURI::base();

* Güncelleme:

  • Yöntemi nerede bulacağınızdan bahsettim, ancak bu oraya gidip çekirdekte herhangi bir değişiklik yapmanız gerektiği anlamına gelmez. Bu sadece bilgilendirme amaçlıydı.

Güncelleme 2 - gelecekteki referanslar için

Bu yayında verilen bilgileri tamamlamak için, JURI::base($pathonly boolean) bir bağımsız değişken alır, _$pathonly_; bu bir boole veri türü - false varsayılan.

_$pathonly = true_ ile yalnızca sitenin yolunu döndürür.

Örnekler:

_<?php echo JURI::base(); ?> Would echo something like: http:://localhost/joomla25/
<?php echo JURI::base(true); ?> Would echo: /joomla25
_

$ pathonly = true olduğunda, URI yolunun sonundaki sondaki eğik çizginin devre dışı olduğunu unutmayın.

8
FFrewin