Jul 25

Primera prueba general

Voy a realizar el cambio masivo de los códigos de torneo en las dos tablas (torneos y noticias). Para ello, de nuevo, voy a volver a cargar las tablas originales, cambiar los tamaños de campos y comenzar a realizar las sentencias sql para realizar el cambio de los datos.

Paso 1 – Duplicado de tablas originales.

  • tabla_torneos -> tabla_torneos_8x8
  • tabla_noticias -> tabla_noticias_8x8

Paso 2 – Estructura – Cambio de tamaño de campos de código de torneo de 8 a 10 posiciones.

  • tabla_torneos_8x8
    • cdgo_torneo VARCHAR 10
    • anterior_torneo VARCHAR 10
    • siguiente_torneo VARCHAR 10
    • historial_torneo VARCHAR 10
    • certamen_torneo VARCHAR 10
  • tabla_noticias_8x8
    • torneo_noticia VARCHAR 10

Paso 3 – Copias de seguridad – Con las tablas modificadas genero unas nuevas copias de seguridad a partir de éstas.

  • tabla_torneos_8x8 -> tabla_torneos_8x8_copia
  • tabla_noticias_8x8 -> tabla_noticias_8x8_copia

Paso 4 – Cambiar códigos de torneo en tabla_torneos_8x8.

  • UPDATE tabla_torneos_8x8 SET cdgo_torneo = CONCAT(’20’, cdgo_torneo); -> 11.532
  • UPDATE tabla_torneos_8x8 SET anterior_torneo = CONCAT(’20’, anterior_torneo) WHERE anterior_torneo NOT LIKE »; -> 6.183
  • UPDATE tabla_torneos_8x8 SET siguiente_torneo = CONCAT(’20’, siguiente_torneo) WHERE siguiente_torneo NOT LIKE »; -> 6.183
  • UPDATE tabla_torneos_8x8 SET historial_torneo = CONCAT(’20’, historial_torneo) WHERE historial_torneo NOT LIKE »; ->  5.094
  • UPDATE tabla_torneos_8x8 SET certamen_torneo = CONCAT(’20’, certamen_torneo) WHERE certamen_torneo NOT LIKE »; -> 2.083

Paso 5 – Cambiar código de torneo en tabla_noticias_8x8.

  • UPDATE tabla_noticias_8x8 SET torneo_noticia = CONCAT(’20’, torneo_noticia) WHERE torneo_noticia NOT LIKE »; -> 12.409

Paso 6 – En el visor de partidas también hay que hacer cambios.

Hay que cambiar en el fichero application/views/visor_partidas.php las siguientes líneas referidas a la creación de la ruta para la localización del fichero pgn.

  • <a class=»linkItem» href=»<?php echo base_url(‘visor/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘partidas_torneo’] . ‘.pgn’)?>»><div class=»downloadlogo»></div></a>
  • <?php $urlpartidas = ‘visor/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘partidas_torneo’] . ‘.pgn’;?>

 

  • SetPgnUrl(«<?php echo base_url(‘visor/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2)) . ‘/’ . $rs_tor[‘partidas_torneo’] . ‘.pgn’?>»);
  • SetPgnUrl(«<?php echo base_url(‘visor/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4)) . ‘/’ . $rs_tor[‘partidas_torneo’] . ‘.pgn’?>»);

Paso 7 – Descarga de partidas

En el fichero application/views/plantillas/torneo_lado_izq.php cambiar las siguientes líneas referidas a la creación de la ruta para la localización de las descargas cbv y zip de partidas.

  • echo ‘<a href=»‘ . base_url(‘partidas/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘pgn_torneo’]) . ‘» class=»list-group-item»><span class=»glyphicon glyphicon-save»></span> PGN</a>’;
  • echo ‘<a href=»‘ . base_url(‘partidas/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘pgn_torneo’]) . ‘» class=»list-group-item»><span class=»glyphicon glyphicon-save»></span> PGN</a>’;

 

  • echo ‘<a href=»‘ . base_url(‘partidas/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘cbv_torneo’]) . ‘» class=»list-group-item»><span class=»glyphicon glyphicon-save»></span> CBV</a>’;
  • echo ‘<a href=»‘ . base_url(‘partidas/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘cbv_torneo’]) . ‘» class=»list-group-item»><span class=»glyphicon glyphicon-save»></span> CBV</a>’;

 


Proceso concluido

Los cambios se han realizado sin errores.

He comprobado los torneos, la navegación entre ediciones, el historial y el certamen cuando lo hay y el visor y descarga de partidas, y todo funciona aparentemente bien.

Si todo está correcto, con estos cambios ya estaría cambiado el código de torneo para la web Ajedrez en Madrid

Jul 25

Pensamiento adelantado

Ya sé que no he solucionado todavía el cambio de tamaño del código de torneo, aunque creo que voy por el buen camino.

Sin embargo se me amontonan en la cabeza los cambios que quiero hacer en el tema de generar los torneos de otra manera (con tablas de rondas y clasificaciones por separado) y que las noticias salgan automáticamente a partir de esas tablas.

Lo primero que se me ocurre es que las tablas de resultados y clasificaciones han de tener una clave común, que será el código de torneo al que pertenecen.

Además deben tener una fecha de referencia para la generación automática de noticias.

También habrá que distinguir la publicación de torneos de modo nuevo y antiguo, es decir, no creo que pueda cambiar los miles de torneos que tengo ya en la tabla al nuevo formato, ya que eso hay que hacerlo de uno en uno. Por lo tanto habrá que tener un campo que indique a la web si el visionado de ese torneo se va a hacer por el método antiguo o el nuevo.

De esta manera podré ir «modernizando» los datos de torneos tranquilamente.

Tal vez el problema surja con las noticias de torneos antiguos y la nueva forma de presentar las noticias, que se basará en la fecha del sistema y la fecha adjudicada a cada entrada de ronda y clasificación en las  correspondientes tablas.

 

Jul 25

Primeros pasos

Una vez he cambiado los códigos de torneo en los tres registros de prueba (cto.Madrid semifinal 18/19 – 2019050650, Alpedrete 2019 – 2019060200, Benasque 2019 – 2019070400) encuentro los primeros errores.

Da error en:

  • el include torneos/2020/19_benasque.txt.
  • views/muestra_torneo.php – línea 38

Sustituir la línea:

<?php include ‘torneos/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘info_torneo’]?>

 

 

por

<?php include ‘torneos/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘info_torneo’]?>

 

 

Se trata de acceder al directorio torneos/2019, que en la versión actual da por hecho el 20 en la cadena de caracteres, y en la nueva versión, al venir ya el año incluido en el código, se coge el año completo. De esta manera podremos tener subdirectorios de torneos anteriores al año 2000.

Ahora la búsqueda de torneos anteriores y siguientes da errores porque esos torneos no tienen el nuevo formato. Para poder probar que la navegación es correcta voy a cambiar los torneos de Alpedrete 60+30 incluyendo en todos los dos dígitos del año delante del código, para comprobar la navegación entre torneos.

También hay que cambiar los códigos de anterior_torneo, siguiente_torneo, historial_torneo y certamen_torneo. Cambiando los campos de 8 a 10 posiciones, y luego modificando los datos incluyendo el 20 delante de cada código correspondiente.

El siguiente punto que no funciona es el enlace a Noticias publicadas. Esto se debe a que en la tabla de noticias el código de torneo con el 20 delante no existe.

Actualizo el dato de la noticia del torneo y funciona correctamente. Ahora está el tema de si hay que cambiar también el código de la noticia con el 20 delante, ya que esto puede afectar a la primera página que es donde se reflejan las noticias ???

Pensamiento

El objeto de esta reforma es poder publicar información de torneos anteriores al año 2000. Pero me pregunto si además de la información del torneo son necesarias noticias. Creo que no, así que, de momento, el código de noticia se queda en 8 posiciones.

Para modificar masivamente el campo torneo_noticia de la tabla noticias he utilizado la siguiente sentencia sql, haciendo referencia al torneo de Benasque de 2019.

UPDATE `tabla_noticias_8x8` SET `torneo_noticia`= CONCAT(’20’, torneo_noticia) WHERE torneo_noticia LIKE ‘19070400’

 

 

Esto podría servir para cambiar todos los campos en los que hay que añadir el 20 a los códigos de torneo en toda la tabla.

 

Llegados a este punto estoy pensando en volver a cargar las tablas originales y hacer un reemplazo masivo de todos los códigos de torneo, tanto en la tabla torneos como en la de noticias, incluyendo el 20 al inicio del campo.

Y a partir de ahí empezar a arreglar los problemas que puedan surgir. que supongo que harán referencia a las noticias de la primera página. Va a ser interesante este paso.

Jul 25

Preparativos previos 1

Para tener datos más actuales vuelvo al punto de origen de las tablas y realizo los primeros cambios pertinentes.

Cargo las tablas: tabla_torneos_8x8 y tabla_noticias_8x8, para actualizar la información de alguno de estos torneos.

Cambio las claves cdgo_torneo (tabla_torneos_8x8) y torneo_noticia (tabla_noticias_8x8) a 10 caracteres para empezar a realizar cambios.

Continúo trabajando con tres torneos típicos para ir solventando los problemas que van surgiendo en los cambios de código de torneo (¿y código de noticia?)

  • 19060200Alpedrete (Noticia única de clasificación final).
  • 19050650Final Madrid 2018/2019 (Noticias de rondas y clasificación de tamaño normal).
  • 19070400Benasque (Noticias de rondas y clasificación final de tamaño grande).
Jul 25

Posibilidades para incluir los dos primeros dígitos del año en la clave

Ante la situación de cambiar la clave para incluir los dos primeros dígitos del año, me surgen algunas dudas entre las posibilidades que se me ocurren. Paso a ampliar la información.

  • Opción 1 – Ampliar la clave a diez posiciones incluyendo al principio ó al final de la cadena los dos primeros dígitos del año.

Consecuencias: Todos los enlaces anteriores no funcionarán, por lo que si alguien tiene un enlace directo a un torneo desde su web éste no fuucionará.

  • Opción 2 – – Añadir un campo nuevo de dos posiciones externo a la clave para mantener la clave actual tal como está.

 


Creo que voy a optar por la primera opción, a fin de cuentas la web es mía y si alguien tiene enlaces directos a mis páginas interiores no me está contando visitas y de alguna manera se salta lo que a mi me interesa: el paso por primera página.

Y ya puestos pienso que lo más sencillo es incluir los dos dígitos al principio del código.