Upgrade ke J3 memberi JHtmlBehavior :: mootools tidak ditemukan

9

Saya mendapatkan 500 kesalahan dengan JHtmlBehavior::mootools not found. Saya tahu ini telah dihapus di J3 tetapi masalah saya mencoba mencari tahu di mana masalah ini.

Saya kira ini semacam ekstensi tapi saya pikir saya sudah memperbarui semuanya. Tentu saja tidak. Saya tidak melihat apa pun di log php atau konsol alat pengembang untuk menunjukkan di mana masalahnya. Saya bahkan memahami JHtmlBehavior dan tidak menghasilkan apa-apa.

Adakah tips tentang bagaimana saya dapat men-debug ini?

Tom
sumber

Jawaban:

9

Menemukan masalah dalam komponen khusus saya sendiri ... ugh. Saya tidak dapat menemukan kode yang menyinggung karena saya mencari JHtmlBehavior::mootools.

Tetapi kode yang melanggar adalah ini:

JHTML::_('behavior.mootools');

Mengubahnya ke ini memperbaiki masalah:

JHtml::_('behavior.framework');
Tom
sumber
3

Meskipun MooTools tidak digunakan lagi di Joomla 3, MooTools masih tersedia (tetapi mungkin akan dihapus di versi yang akan datang).

Anda dapat memuat kerangka kerja dengan menambahkan

JHtml::_('behavior.framework');

(atau jika Anda membutuhkan perpustakaan Core dan More):

JHtml::_('behavior.framework', true);

ke index.phpfile template Anda .

Setidaknya ini akan menjadi perbaikan sementara, sampai Anda menemukan file / ekstensi menggunakan kode Mootools. Menemukan pelakunya mungkin sulit, tetapi saya sarankan Anda mulai dengan Alat Pengembang peramban Anda ( F12di sebagian besar peramban) dan mencari kesalahan JavaScript, itu mungkin memberi Anda petunjuk.

johanpw
sumber
Terima kasih tetapi saya mencoba keduanya dan masih mendapatkan kesalahan yang sama. Alat Pengembang (atau Firebug) memberi tahu saya tidak lain dari 500 kesalahan server internal. Ada ide lain?
Tom
Anda yakin telah menambahkan kode dengan benar JOOMLAROOT/templates/YOURTEMPLATE/index.php? Anda dapat menambahkannya langsung setelahnya defined('_JEXEC') or die;. Periksa apakah MooTools telah dimuat dengan mengetik window.MooToolsFirebug, itu harus kembali Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }atau serupa.
johanpw
Menambahkan JHtml::panggilan - panggilan itu tidak akan menghentikan kesalahan, yang merupakan hasil dari panggilan yang tidak valid dalam PHP di situs di suatu tempat.
Craig
2

Ini adalah kesalahan PHP yang mengakibatkan Joomla melempar kesalahan, jadi, bukan kesalahan Javascript dan bukan sesuatu yang harus diperbaiki dengan menambahkan lebih banyak PHP. Seperti yang Anda duga, Anda perlu menemukan sumber panggilan PHP yang salah.

Hal pertama yang harus dilakukan adalah mengubah pelaporan kesalahan Anda ke "Pengembangan" dan melihat bahwa memberi Anda informasi baru, jika tidak ada informasi baru yang membantu Anda melacak sumber kesalahan maka itu menjadi pendekatan irisan dan dadu manual.

Cobalah bertukar ke templat bawaan secara singkat dan lihat apakah masalahnya hilang - jika templat atau modul yang tidak lagi dipanggil karena posisi yang ditetapkan tidak ada dalam templat default yang Anda gunakan. Jika bukan template, Anda dapat melacak modul dengan cukup cepat.

Akhirnya, jika itu tidak membantu, gunakan metode 50% untuk mempersempit dengan cepat kelompok komponen, modul atau plugin mana yang menjadi sumber masalahnya.

Craig
sumber
2

Berikut adalah beberapa langkah untuk menemukan dari mana kode itu berasal:

  1. Cara terbaik adalah dengan mengunduh salinan lengkap situs web, dan melakukan pencarian sistem OS di dalam direktori untuk JHTML :: _ ('behavior.mootools'); . Biasanya komputer Anda akan mengembalikan daftar dengan semua file yang berisi string khusus ini.

  2. Jika langkah pertama tidak memungkinkan, atau Anda tidak bisa mendapatkan hasil apa pun karena alasan apa pun, maka Anda harus mulai menonaktifkan ekstensi.

    Sebuah. Pertama-tama, ganti templat - ke templat protostar Joomla 3 inti. Jika masalah hilang kemungkinan besar, templat Anda yang berisi kode yang tidak digunakan lagi.

    b. Kemudian Anda dapat mulai mematikan modul dan plugin.

    c. Terakhir, lihat apakah masalahnya hanya muncul pada halaman tertentu dari komponen pihak ke-3.

Temukan informasi lebih lanjut tentang cara memuat Kerangka Javascript di Joomla pada Dokumentasi Joomla

FFrewin
sumber