Kode berikut berfungsi di Joomla 1.6, tetapi memunculkan kesalahan Standar Ketat di 3.x:
Standar Ketat: Hanya variabel yang harus ditetapkan oleh referensi
//Get the full URL for sharing purposes
$uri = & JFactory::getURI();
$absolute_url = $uri->toString();
<?php echo $absolute_url; ?>
Bagaimana saya bisa mendapatkan kode untuk bekerja tanpa kesalahan di Joomla 3.x?
JUri::current()
karena tidak akan mengembalikan parameter kueri. Cukup gunakan apa yang dijelaskan dalam jawaban yang diterima di bawah ini: joomla.stackexchange.com/a/4295/168Jawaban:
MEMPERBARUI
Jawaban untuk pertanyaan utama adalah: JFactory :: getUri () sudah usang, gunakan JUri langsung seperti ini:
The Standar Ketat kesalahan adalah karena
&
sebelumJFactory::getURI();
. Anda dapat menemukan informasi lebih lanjut tentang itu di bawah ini.JAWABAN ASLI
Hapus &
Dengan PHP5
new
operator secara otomatis mengembalikan referensi, sehingga tanda '&' tidak diperlukan lagi.Dari manual PHP resmi:
sumber: http://php.net/manual/en/language.operators.assignment.php
sumber
Menurut tutorial Joomla , Anda bisa mendapatkan URL saat ini dengan fungsi ini:
sumber
UPDATE:
JUri
sekarang juga sudah usang. Cara yang benar sekarang adalah sebagai berikut:Pesan lama yang sekarang juga sudah usang:
JFactory::getURI();
sudah ditinggalkan. Metode yang benar untuk mendapatkan URL saat ini adalah:sumber
Mengandalkan
toString
metode untuk mendapatkan URL saat ini salah. ThetoString
Metode ini tidak dimaksudkan untuk itu. Berikut ini adalah pendekatan bukti yang lebih baik, lebih bersih, dan akan datang untuk mengambil URL saat ini:Perhatikan bahwa
getFragment
metode ini harus mengembalikan bagian setelah tanda angka, tetapi tampaknya ada bug inti yang mencegahnya melakukan hal itu.sumber
index.php&option=com_foo&view=bar
. Seharusnya?
setelahindex.php