it-swarm.dev

Associazione tag padre imprevista

Sto usando 3.3.0 e ho iniziato a giocare con i tag. Ho notato che tutti i tag creati di recente hanno il tag Joomla come genitore. Quando modifico il tag, il menu a discesa Genitore è impostato su Nessuno; tuttavia se annulla la pubblicazione del tag Joomla, anche i tag successivi non vengono pubblicati (e non possono essere pubblicati fino a quando non pubblicherò il tag Joomla). Questo comportamento è previsto?


Alcune schermate

Componenti => Tag

Ho pubblicato il tag Joomla che non pubblica anche la maggior parte dei miei altri tag (stranamente, non il Baking, anche se uno è stato aggiunto in un momento diverso rispetto agli altri, portandomi a credere che qualcosa sia cambiato nel frattempo). Se faccio clic sullo stato di SciLab, non cambierà. Se commuto lo stato di Joomla, tutti (tranne Baking) seguono l'esempio.

enter image description here

Componenti => Tag => SciLab

Nessun genitore è impostato. Qui posso pubblicare il tag, e sembra persistere fino a quando non commuto il tag Joomla; Joomla si sta ancora comportando come il genitore.

enter image description here

Componenti => Tag => Cottura

Perché la cottura non sta condividendo il destino di tutti i miei altri tag è al di là di me.

enter image description here


In risposta alla risposta di @FFrewin

Ecco uno screenshot della mia tabella jos_tags. Sembra che ci siano problemi con i valori lft/rgt. Inoltre, il Path mostra che Joomla è il genitore di tutti i tag, anche se Baking non si comporta come se avesse un genitore.

enter image description here

3
bobthechemist

Se non ci sono altri hack sul codice che influenzano le funzioni di salvataggio del componente, allora questo problema mi fa pensare che qualcosa possa essere incasinato nel Nested Set Model nella tabella jos_tags .

Dovrai controllare i tuoi tag db_table con uno strumento come phpmyAdmin , per vedere quei valori, e forse se hai bisogno di ulteriori consigli, pubblica qui uno screenshot delle colonne della tabella dei tag per ulteriori approfondimenti.

Per ulteriori informazioni, consulta questo ottimo articolo che espone il concetto Modello di set nidificato. Una buona lettura per tutti.

Il diagramma del modello di set nidificato:

The Nested Set Model diagram


La tabella dei tag Joomla

Ma in breve, se tutti i tuoi tag sono quelli che vedo nello screenshot, dovresti aspettarti di vedere qualcosa di simile allo screenshot che inserisco qui.

Quello che ti dovrebbe interessare di più dal mio screenshot sono i valori parent_id (ovviamente), lft, rgt, level e path. right tags table for the question
Poiché vuoi che tutti i tuoi tag siano figli del tag root (nel senso che non hanno altri tag come parent), allora dovrebbero essere tutti impostati su level = 1 e parent_id = 1. Per i valori lft e rgt, allora tu tutti i tuoi tag dovrebbero avere numeri con una differenza non maggiore di 1, tra i loro valori sinistra/destra, mentre ROOT dovrebbe avere il valore lft impostato su 0 e il diritto impostato sul numero più alto di questo calcolo: "(numero totale di tag * 2 ) -1 ".

Generalmente non esiste un modo semplice di gestirlo per i com_tags. Se succede che hai solo pochi tag, allora puoi modificare i valori lft/rgt a mano (ovviamente dopo averli calcolati). Se hai un numero esteso di tag, probabilmente dovresti cercare di scrivere uno script php, che calcolerà e imposterà quei valori correttamente.

Spero che questo aiuti e non sarà troppo confuso.

Per essere più specifici, segui questi passaggi:

Impostare ROOT lft/rgt 0-13, Joomla lft/rgt su 1-2 cottura 3-4 e continuare così fino all'ultima corsa del tag che dovrebbe essere 11-12. Rimuovi anche dal percorso il joomla e la parte della barra. Ma in ogni caso - prima fai un backup del tuo db.

2
FFrewin