it-swarm-es.tech

Asociación de etiqueta principal inesperada

Estoy usando 3.3.0 y comencé a jugar con las etiquetas. Me di cuenta de que todas las etiquetas creadas recientemente tienen la etiqueta de Joomla como padre. Cuando edito la etiqueta, el menú desplegable Principal se establece en Ninguno; sin embargo, si cancelo la publicación de la etiqueta de Joomla, entonces las etiquetas posteriores también quedan sin publicar (y no pueden publicarse hasta que publique la etiqueta de Joomla). ¿Es este comportamiento esperado?


Algunas capturas de pantalla

Componentes => Etiquetas

No publiqué la etiqueta Joomla, que también publica la mayoría de mis otras etiquetas (curiosamente, no la hornada, aunque esa se agregó en un momento diferente al de las otras, lo que me hace creer que algo ha cambiado mientras tanto). Si hago clic en el estado de SciLab, no cambiará. Si cambio el estado de Joomla, todos (salvo para hornear) hacen lo mismo.

enter image description here

Componentes => Etiquetas => SciLab

No se establece ningún padre. Aquí puedo publicar la etiqueta, y parece persistir hasta que active la etiqueta de Joomla; Joomla todavía se comporta como el padre.

enter image description here

Componentes => Etiquetas => Hornear

¿Por qué hornear no comparte el destino de todas mis otras etiquetas?.

enter image description here


En respuesta a la respuesta de @FFrewin

Aquí hay una captura de pantalla de mi tabla jos_tags. Parece que hay problemas con los valores lft/rgt. Además, la ruta muestra que Joomla es el padre de todas las etiquetas, aunque Baking no se comporta como si tuviera un padre.

enter image description here

3
bobthechemist

Si no hay ningún otro truco en el código que afecte las funciones de guardado del componente, entonces este problema me hace pensar que algo puede estar mal en el Modelo de conjunto anidado en la tabla jos_tags .

Deberá verificar sus etiquetas db_table con una herramienta como phpmyAdmin , para ver acerca de esos valores, y tal vez si necesita más consejos, publique aquí una captura de pantalla de columnas de la tabla de etiquetas para una mayor investigación.

Para obtener más información, consulte este artículo muy bueno que explica el concepto Modelo de conjunto anidado. Una buena lectura para todos.

El diagrama del modelo de conjunto anidado:

The Nested Set Model diagram


Tu tabla de etiquetas de Joomla

Pero en resumen, si todas sus etiquetas son las que veo en la captura de pantalla, debe esperar ver algo similar a la captura de pantalla que publico aquí.

Lo que debería importarle más de mi captura de pantalla es parent_id (por supuesto), lft, rgt, nivel y valores de ruta. right tags table for the question
Dado que desea que todas sus etiquetas sean hijos de la etiqueta raíz (es decir, que no tengan otras etiquetas como padre), entonces todas deben estar configuradas en level = 1 y parent_id = 1. Para los valores lft y rgt, entonces usted todas sus etiquetas deben tener números con una diferencia no mayor a 1, entre sus valores izquierdo/derecho, mientras que ROOT debe tener el valor lft establecido en 0 y el derecho establecido en el número más alto de este cálculo: "(número total de etiquetas * 2 ) -1 ".

En general, no hay una manera fácil de lidiar con esto para las com_tags. Si sucede que solo tiene unas pocas etiquetas, puede editar los valores de lft/rgt a mano (por supuesto, después de haberlos calculado). Si tiene un número extendido de etiquetas, entonces probablemente tenga que buscar escribir un script php, que calculará y establecerá esos valores correctamente.

Espero que esto ayude y no sea demasiado confuso.

Para ser más específico, siga estos pasos:

Establezca ROOT lft/rgt 0-13, Joomla lft/rgt en 1-2 para hornear 3-4 y continúe así hasta su último recorrido de etiqueta, que debería ser 11-12. También elimine de la ruta el joomla y la barra diagonal. Pero en cualquier caso, primero haga una copia de seguridad de su base de datos.

2
FFrewin