Jul 31

El código de torneo nuevo

Voy a empezar la modificación de la web ajedrez8x8.com con el añadido de dos campos nuevos y su consecuencia en la vista muestra_torneo.

Para ello hago un duplicado de la tabla original de ajedrezenmadrid.com sobre ajedrez8x8.com

  • Paso 1 –  creo el campo pre_torneo y lo relleno con «20» que refleja los dos primeros dígitos del año del torneo.
  • Paso 2 – creo el campo formato_torneo, que nos dirá si el torneo se genera con tablas (valor 1) o con fichero de texto incrustado (como se hace ahora mismo) (valor predeterminado 0).
  •  

Cambios en la programación

Cambiar en applications/views/muestra_torneo:

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

por

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

 

Si todo funciona correctamente me puedo plantear aplicar estos cambios a la web de ajedrezenmadrid.com, incluyendo los referidos a MySql.

Esto sería un paso muy importante porque me dejaría solucionado el problema de no quedarme obsoleto por la sentencia MySql, y por otro lado estaría iniciado el camino para las mejoras en cuanto a torneos y noticias, siendo todo ello transparente para los usuarios.

Jul 27

Cambiar MySql por MySqli

Aunque tengo ya preparado el cambio del tamaño del código de torneo, mi atención se ha desviado ahora al cambio de la conexión a las bases de datos ¿porqué?

Pues porque la conexión MySql está obsoleta, y en cualquier momento me puedo quedar con la web colgada. Así que mi objetivo prioritario ahora es solucionar este problema.

 

Empezando cambios

  • application/config/database.php -> $db[‘default’][‘dbdriver’] = ‘mysqli’;
  • application/controllers/noticia.php -> $filanoticia = mysqli_fetch_array($ssqldatos_noticia);
  • application/models/torneos_model.php -> reemplazar mysql_query por mysqli_query
  • system/database/DB_driver.php -> var $dbdriver = ‘mysqli’;
  • application/views/plantillas/inicio_titulares_noticias.php -> if (mysqli_num_rows($rs_hoytitulares)!=0){
    while ($fila = mysqli_fetch_array($rs_hoytitulares)) {
  • En todas las funciones que contengan return mysql_query, incluir la línea que define el $link, la línea que define el encoding UTF8 y añadir ese parámetro a la instrucción mysqli_query
    • $link = mysqli_connect(«localhost», «luismase_admin», «Rioja/17»,
    • if (!$link->set_charset(«utf8»)); «Esto es muy importante para evitar que salgan ñakas en lugar de acentos y ñ» Más información
    • return mysqli_query($link, $ssqlultorpub);
  • En todas las vistas(inicio_noticias.php, inicio_partidas_en_directo.php, inicio_partidas_actualidad.php, inicio_fotos_actualidad.php) que contengan if (mysql_num_rows($rs_hoynoticias)!=0) o if (mysql_num_rows($rs_hoytorneos)!=0) sustituirlos respectivamente por:
    • if(!empty($rs_hoynoticias) AND mysqli_num_rows($rs_hoynoticias) > 0)
    • if(!empty($rs_hoytorneos) AND mysqli_num_rows($rs_hoytorneos) > 0)
  • application\views\plantillas\inicio_partidas_en_directo.php sustituir:
    • $contaTordir = mysqli_num_rows($rs_tordir);
    • $contaDir = mysqli_num_rows($rs_dir);
  • application\views\plantillas\inicio_partidas_actualidad.php sustituir:
    • $contaToract = mysql_num_rows($rs_toract); -> $contaToract = mysqli_num_rows($rs_toract);
  • application\views\plantillas\inicio_fotos_actualidad.php sustituir:
    • $contaFotos = mysql_num_rows($rs_fotos); -> $contaFotos = mysqli_num_rows($rs_fotos);
  • application\views\plantillas\inicio_proximos_torneos.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_protorneos20) AND mysqli_num_rows($rs_protorneos20) > 0) {
    • while ($fila = mysql_fetch_array($rs_protorneos20)) { -> while ($fila = mysqli_fetch_array($rs_protorneos20)) {
    • Añadir un } tras el cierre del while.
  • application\views\plantillas\inicio_torneos_finalizados.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_fintorneos20) AND mysqli_num_rows($rs_fintorneos20) > 0) {
    • while ($fila = mysql_fetch_array($rs_fintorneos20)) { -> while ($fila = mysqli_fetch_array($rs_fintorneos20)) {
    • Añadir un } tras el cierre del while.
  • application\views\plantillas\lista_torneos_julio.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_torneos07) AND mysqli_num_rows($rs_torneos07) > 0) {
    • while ($fila = mysql_fetch_array($rs_torneos07)) { -> while ($fila = mysqli_fetch_array($rs_torneos07)) {
    • $conta_jul += 1;
    • $c_pgn_jul += $fila[‘numpartidas_torneo’];
    • Añadir un } tras el cierre del while.
  • Realizar la operación anterior en las siguientes plantillas cambiando los datos relativos a cada mes: $rs_torneosxx y $conta_xxx 
    • application\views\plantillas\
      • lista_torneos_enero.php
      • lista_torneos_febreroo.php
      • lista_torneos_marzoo.php
      • lista_torneos_abril.php
      • lista_torneos_mayo.php
      • lista_torneos_junio.php
      • lista_torneos_agosto.php
      • lista_torneos_septiembre.php
      • lista_torneos_octubre.php
      • lista_torneos_noviembre.php
      • lista_torneos_diciembre.php
  • application\views\plantillas\lista_torneos_anual.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_torneos01) AND mysqli_num_rows($rs_torneos01) > 0) {
    • while ($fila = mysql_fetch_array($rs_torneos01)) { -> while ($fila = mysqli_fetch_array($rs_torneos01)) {
  • application\views\plantillas\lista_torneos_menu_anyodejuego.php añadir líneas de 2019 y 1999 (Esto de momento es manual, pero habrá que automatizarlo).

 

 

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

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.

Jul 22

Pruebas de torneos

Voy a trabajar 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).

De nuevo he cargado las tablas: tabla_torneos_8x8 y tabla_noticias_8x8, para actualizar la información de alguno de estos torneos.

Al igual que hice anteriormente cambio las claves cdgo_torneo (tabla_torneos_8x8) y torneo_noticia (tabla_noticias_8x8) a 10 caracteres para empezar a realizar cambios.

Jul 22

Probando con el cambio de tamaño de código de torneo

Empiezo por realizar unas pruebas sobre ajedrez8x8.com para cambiar la clave de torneo de 8 a 10 caracteres.

En primer lugar he cambiado la longitud del campo de 8 a 10 caracteres mediante phpMyAdmin, y aparentemente todo funciona. Supongo que al tratarse de una cadena alfanumérica le da igual el tamaño.

Otra cosa será en alguna parte de la programación donde trate el código para obtener una fecha, ya que ahí si habrá problemas.

De momento estoy  tratando de hacer pruebas con un registro en concreto, pero me he encontrado con la sorpresa de que hay registros del fichero de noticias que no tienen código de torneo. Algo que desconocía, así que otra tarea más la de asignar esos códigos a las noticias que no los tienen.

Jul 21

Ajedrezenmadrid 4.0 – Trabajos en marcha

  • He creado una copia de ajedrezenmadrid.com en ajedrez8x8 (a día 22 de julio de 2019).
  • 21.07.2019 – Creo dos tablas en luismase_aem: tabla_torneos_8x8 y tabla_noticias_8x8 que son las tablas con las que voy a trabajar para incorporar las futuras mejoras.
  • 21.07.2019 – Cambio la cadena ajedrezenmadrid.com por ajedrez8x8.com en todos ficheros de la web. Para ello localizo la cadena ajedrezenmadrid.com con el programa grepWin:
    • .htaccess
    • application/config.php
    • application/views/calculadoraelo.php
    • application/views/calen_torneos.php
    • application/views/inicio.php
    • application/views/inicio2.php
    • application/views/modelo_aem.php
    • application/views/modelo_aem1.php
    • application/views/plantillas/cabecera.php
    • application/views/plantillas/cabecera_aem_gibraltar_benidorm.php
    • application/views/plantillas/cabecera_benidorm_aem_chessrecipes.php
    • application/views/plantillas/cabecera_benidorm_aem_gibraltar.php
    • application/views/plantillas/inicio_GigraltarJunior.php
    • application/views/plantillas/inicio_noticias.php
    • application/views/plantillas/lista_torneos_menu_lugardejuego.php
  • 21.07.2019 – Cambio los nobres de las tablas de ajedrezenmadrid.com a los de las tablas de ajedrez8x8.com
    • tabla_torneos -> tabla_torneos_8x8
      • application/models/noticia_model.php
      • application/models/torneos_model.php
    • tabla_noticias -> tabla_noticias_8x8
      • application/models/noticia_model.php
      • application/models/torneos_model.php
      • application/models/colaboraciones_model.php
  • 21.07.2019 – Ahora parece que tengo una versión que funciona igual que la original y sobre la que empezaré a trabajar los cambios previstos.