Seomenu + DSLocalizator = problemillas
Si has tenido que desarrollar portales multi-idioma es posible que hallas tenido que usar el módulo DSLocalizator de Locopon
(http://dnn.tiendaboliviana.com/web/Home/tabid/52/Locale/es-BO/Default.aspx) . La verdad es que es un módulo muy completo que te permite entre otras cosas:
- Realizar reemplazos localizados
- Módulos multi-idiomas
- Páginas multiidiomas
Del...
Si has tenido que desarrollar portales multi-idioma es posible que hallas tenido que usar el módulo DSLocalizator de Locopon
(http://dnn.tiendaboliviana.com/web/Home/tabid/52/Locale/es-BO/Default.aspx) . La verdad es que es un módulo muy completo que te permite entre otras cosas:
- Realizar reemplazos localizados
- Módulos multi-idiomas
- Páginas multiidiomas
Del mismo modo, si has tenido que pegarte un poco con temas de accesibilidad, habrás comprobado que el menú que viene por defecto con DNN, es de todo menos accesible. Es por ello, que tienes que barajar alternativas tales como el skin object Seomenu (http://www.dnnseo.net).
Pues bien, cuando unes ambos mundos, puede suceder, como es nuestro caso, que te encuentres con sorpresillas. Lo cual por otro lado no deja de ser lógico ya que tanto el módulo como el susodicho skin object usan sus propias tablas de modo independiente.
Este es el problema con el que actualmente nos encontramos. Trabajamos en una Web multi-idioma que debe además ser accesible (Nivel doble A). Para ello hemos instalado el DSLocalizator y el Seomenú. Lo curioso, es que en principio parece que funcionan perfectamente. Sin tocar ni una sola línea de código podemos modificar los nombres de las páginas y de los módulos en función del idioma..
¿Dónde está entonces el problema?. El problema residía a la hora de ocultar una página en relación al idioma. Es decir, cuando desde el DSLocalizator indicamos que la página X esté oculta para el idioma Y (propiedad hidden a TRUE ).
Claro, una vez lo razonas, ves que estos fallos son totalmente lógicos, ya que cada uno debe de usar sus propias tablas. Así que, casi con toda seguridad lo que ocurre es:
1.- Desde el DSLocalizator ponemos una página como oculta para un idioma. Esto quedará reflejado en las tablas del DSLocalizator.
2.- El Seomenú, y aquí viene el problema, mira en las tablas generales del DNN (Tabs,..) para saber que páginas debe renderizar.
3.- Ambos módulos actúan de forma independiente.
4.- El Seomenú ignora al DSLocalizator
Solución: la solución pasa por modificar el código fuente del Seomenu, para que tire de las tablas del DSLocalizator en lugar de las genericas. Puede parecer complicado, sin embargo, no tardamos más de una hora en realizar los cambios precisos.
Duda: una vez visto todo esto, la duda que atormenta mi mente es: ¿por qué el cambio de nombre de las páginas en relación del idioma funciona correctamente, sin tocar ni una línea de código? Tengo mis teorías al respecto, pero al carecer del código fuente del DSLocalizator, creo que se van a quedar en eso, en meras teorías.