it-swarm-id.com

Asosiasi tag induk tak terduga

Saya menggunakan 3.3.0 dan mulai bermain dengan tag. Saya perhatikan bahwa semua tag yang baru dibuat memiliki tag Joomla sebagai induknya. Ketika saya mengedit tag, menu tarik ke bawah Induk diatur ke Tidak ada; namun jika saya membatalkan publikasi tag Joomla, maka tag selanjutnya juga tidak diterbitkan (dan tidak dapat dipublikasikan sampai saya menerbitkan tag Joomla). Apakah ini perilaku yang diharapkan?


Beberapa tangkapan layar

Komponen => Tag

Saya telah membatalkan publikasi tag Joomla yang juga tidak mempublish sebagian besar tag saya yang lain (anehnya, bukan memanggang, meskipun yang ditambahkan pada waktu yang berbeda dari yang lain, membuat saya percaya bahwa ada sesuatu yang telah berubah untuk sementara). Jika saya mengklik status SciLab, itu tidak akan berubah. Jika saya mengaktifkan status Joomla, semua (simpan untuk memanggang) mengikutinya.

enter image description here

Komponen => Tag => SciLab

Tidak ada orang tua yang ditetapkan. Di sini saya dapat menerbitkan tag, dan tampaknya bertahan sampai saya mengaktifkan tag Joomla; Joomla masih berperilaku seperti orang tua.

enter image description here

Komponen => Tag => Memanggang

Mengapa memanggang tidak membagikan nasib semua tag saya yang lain berada di luar jangkauan saya.

enter image description here


Menanggapi jawaban oleh @ FRrewin

Ini adalah screenshot dari tabel jos_tags saya. Sepertinya ada masalah dengan nilai lft/rgt. Selain itu, Path menunjukkan bahwa Joomla adalah induk dari semua tag, meskipun Baking tidak berperilaku seolah-olah memiliki orangtua.

enter image description here

3
bobthechemist

Jika tidak ada peretasan lain pada kode yang memengaruhi fungsi simpan komponen, maka masalah ini membuat saya berpikir bahwa ada sesuatu yang dapat dikacaukan dalam Nested Set Model di tabel jos_tags .

Anda perlu memeriksa tag Anda db_table dengan alat seperti phpmyAdmin , untuk melihat tentang nilai-nilai itu, dan mungkin jika Anda perlu saran lebih lanjut, posting di sini screenshot kolom tabel tag untuk penyelidikan lebih lanjut.

Untuk info lebih lanjut, periksa artikel yang sangat bagus ini yang menjelaskan konsep Nested Set Model. Bacaan yang bagus untuk semua orang.

Diagram Nested Set Model:

The Nested Set Model diagram


Tabel Tag Joomla Anda

Tetapi secara singkat, jika semua tag Anda adalah yang saya lihat di tangkapan layar, Anda akan melihat sesuatu yang mirip dengan tangkapan layar yang saya posting di sini.

Apa yang Anda harus lebih peduli dari tangkapan layar saya adalah parent_id (tentu saja), nilai lft, rgt, level, dan path. right tags table for the question
Karena Anda ingin semua tag Anda adalah anak-anak dari tag root (artinya tidak memiliki tag lain sebagai orang tua), maka mereka semua harus diatur ke level = 1 dan parent_id = 1. Untuk nilai lft dan rgt, maka Anda semua tag Anda harus memiliki angka tanpa perbedaan lebih besar dari 1, di antara nilai kiri/kanannya, sementara ROOT harus memiliki nilai lft yang diatur ke 0 dan hak ditetapkan ke angka yang lebih tinggi dari perhitungan ini: "(jumlah total tag * 2 ) -1 ".

Secara umum tidak ada cara mudah untuk menangani ini untuk com_tags. Jika kebetulan Anda hanya memiliki beberapa tag, maka Anda dapat mengedit nilai lft/rgt dengan tangan (tentu saja setelah menghitungnya). Jika Anda memiliki jumlah tag yang diperluas, maka Anda mungkin harus melihat untuk menulis skrip php, yang akan menghitung dan mengatur nilai-nilai itu dengan benar.

Semoga ini bisa membantu dan tidak akan terlalu membingungkan.

Untuk lebih spesifik - ikuti langkah-langkah ini:

Atur ROOT lft/rgt 0-13, Joomla lft/rgt ke 1-2 baking 3-4 dan lanjutkan seperti ini sampai tag terakhir Anda bepergian yang seharusnya 11-12. Hapus juga dari jalur joomla dan bagian slash. Tetapi bagaimanapun juga - pertama-tama ambil cadangan db Anda.

2
FFrewin