it-swarm-tr.com

Beklenmeyen üst etiket ilişkilendirmesi

3.3.0 kullanıyorum ve etiketleri ile oynamaya başladım. Son zamanlarda oluşturulan tüm etiketlerin ebeveynleri olarak Joomla etiketine sahip olduğunu fark ettim. Etiketi düzenlediğimde, Ana açılır menü Yok olarak ayarlanır; ancak Joomla etiketini Yayından kaldırırsam, sonraki etiketler de yayınlanmaz (ve Joomla etiketini yayınlayana kadar yayınlanamaz). Bu beklenen davranış mı?


Bazı ekran görüntüleri

Bileşenler => Etiketler

Diğer etiketlerimin çoğunu da yayından geçiren Joomla etiketini yayından kaldırdım (garip bir şekilde, Pişirme değil, bir tanesi diğerlerinden farklı bir zamanda eklendi, ancak bu arada bir şeylerin değiştiğine inanmamı sağladı). SciLab'ın durumunu tıklarsam değişmez. Joomla'nın statüsünü değiştirirsem, hepsi (Pişirme için kaydet) takımını takip eder.

enter image description here

Bileşenler => Etiketler => SciLab

Hiçbir ebeveyn ayarlanmadı. Burada etiketi yayınlayabilirim ve Joomla etiketini değiştirene kadar devam ediyor gibi görünüyor; Joomla hala ebeveyn gibi davranıyor.

enter image description here

Bileşenler => Etiketler => Pişirme

Pişirme neden diğer tüm etiketlerimin kaderini paylaşmıyor?.

enter image description here


@FFrewin tarafından cevap olarak

İşte jos_tags tablomun bir ekran görüntüsü. Lft/rgt değerleriyle ilgili sorunlar varmış gibi görünüyor. Ayrıca Yol, Joomla'nın, Baking'in bir üst öğesi varmış gibi davranmasa bile etiketlerin tümünün üst öğesi olduğunu gösterir.

enter image description here

3
bobthechemist

Kodda, bileşenin kaydetme işlevlerini etkileyen başka bir saldırı yoksa, bu sorun bana bir şeylerin İç İçe Ayarlanan Modelde dağıtılabileceğini düşündürüyor jos_tags tablosu .

Bu değerleri görmek için etiketlerinizi db_table phpmyAdmin gibi bir araçla kontrol etmeniz ve belki daha fazla tavsiyeye ihtiyacınız varsa, burada daha fazla bilgi için etiketler tablosu sütunlarının ekran görüntüsünü gönderin araştırma.

Daha fazla bilgi için, İç İçe Set Modeli kavramını açıklayan bu çok iyi makaleyi kontrol edin. Herkes için iyi bir okuma.

İç İçe Set Modeli diyagramı:

The Nested Set Model diagram


Joomla Etiketleri tablonuz

Ancak kısaca, tüm etiketleriniz ekran görüntüsünde gördüğüm etiketlerse, burada gönderdiğim ekran görüntüsüne benzer bir şey görmeyi beklemelisiniz.

Ekran görüntümden daha fazla dikkat etmeniz gereken şey parent_id (tabii ki), lft, rgt, level ve path değerleridir. right tags table for the question
Tüm etiketlerinizin kök etiketin alt öğeleri olmasını istediğinizden (üst öğe olarak başka bir etiketin olmaması anlamına gelir), bunların tümü düzey = 1 ve parent_id = 1 olarak ayarlanmalıdır. Lft ve rgt değerleri için, tüm etiketlerinizde sol/sağ değerleri arasında 1'den büyük fark bulunmayan sayılar bulunmalı, ROOT ise lft değerinin 0 ve sağda bu hesaplamanın daha yüksek sayısına ayarlanmalıdır: "(toplam etiket sayısı * 2 ) -1 ".

Genellikle com_tags için bununla başa çıkmak için kolay bir yol yoktur. Sadece birkaç etiketiniz varsa, lft/rgt değerlerini elle düzenleyebilirsiniz (elbette bunları hesapladıktan sonra). Çok sayıda etiketiniz varsa, muhtemelen bu değerleri doğru bir şekilde hesaplayacak ve ayarlayacak bir php betiği yazmanız gerekir.

Umarım bu yardımcı olur ve çok kafa karıştırıcı olmayacaktır.

Daha spesifik olmak gerekirse şu adımları izleyin:

KÖK lft/rgt 0-13, Joomla lft/rgt'yi 1-2 pişirme 3-4 olarak ayarlayın ve 11-12 olması gereken son etiket seyahatinize kadar bu şekilde devam edin. Ayrıca joomla ve eğik çizgi parçasını yoldan kaldırın. Ancak her durumda - önce db'nizin bir yedeğini alın.

2
FFrewin