En un principio el código de mod_etapas.php se reducía a buscar los recorridos que había diseñados en la tabla cca_etapas desde el día de hoy hasta el próximo domingo, es decir los recorridos del próximo fin de semana. Normalmente uno o dos recorridos.
Pensé que sería más útil cambiar la forma en la que aparecía la fecha de cada recorrido cambiándolo por un combo_box (lista desplegable) que permitiera elegir la fecha de otro recorrido y al cambiar de fecha; que apareciese ese recorrido acompañado de botones para poder volver a los recorridos del fin de semana. Es decir ver, además de los recorridos del fin de semana la etapas que queramos y con vuelta al fin de semana.
En la presentación de cada recorrido en pantalla, una función se encargaba de presentar el <select> siguiente.
echo «<select name=’cborecorrido’ id=’cborecorrido’ size=’1′ onChange=’javascript:cambia_recorrido(«.$num_form.»)’>»;
y cuando se producía un cambio de fecha la función cambia_recorrido() se encargaba de elegir el recorrido seleccionado y presentarlo en pantalla.
function cambia_recorrido(num_form)
{nuevorecorrido=document.forms[num_form].cborecorrido.value; location.href=»recorridos-por-fechas?id_recorrido=» + nuevorecorrido;
}
Hasta que llegué a esta solución tuve muchos problemas. El primero era que lo lógico hubiera sido utilizar:
location.href=»localhost/modules/mod_etapas.php?id_recorrido» + nuevo recorrido;
Pero WordPress tiene su miga para sacar en pantalla un código php ordinario. Había que recurrir a los shortcodes.
Gracias a Code Snippets construí el siguiente fragmento de código
function insertaetapas($atts){include(‘modules/mod_etapas/mod_etapas.php’);}
add_shortcode(‘etapas’,’insertaetapas’);
que sirve para que en una, de las que WordPress llama páginas, incluyendo (tal y como está con corchetes) bajo el título de la misma, cuando se llama para verla, incluye todo el código que pone en el include y digamos se ejecuta el código php en el espacio para mostrar las páginas o los post ordinarios. ¡Ojo invento!
Por si fuera poco hay otro invento WordPress llamado slug que viene a construirse automáticamente con el titulo de la página, por ejemplo si el título de la página era Recorridos por fechas el slug sería ‘recorridos-por-fecha’ que no es otra cosa que lo que normalmente se llama url amigable.
La función cambia recorrido no echó a andar hasta que descubrí que hay que escribir el slug en lugar de la path de toda la vida en cualquier código de programación.
A parte de los inventos de WordPress sigo con mis problemas de programación. Mientra sólo había un recorrido que sacar en pantalla todo iba bien, pero cuando salían dos, el segundo combo_box es como si no existiera, cambiabas la fecha solo se acordaba de lo que ponía en el primero. Force la tabla para que salieran tres recorridos por fin de semana y solo el primero respondía; el segundo y el tercero como si no existieran.
El problema estaba en que aunque construía dos (o tres)<select name=’cborecorrido’> sólo tenía uno: el primero que se llamara cborecorrido. Se me ocurrió construir un <form> para cada recorrido y así mediante el array forms tendría tantos <select> como formularios y me podía referír a ellos con forms[num_form].cborecorrido. como se ve en el código.
Una vez conseguido que la página cambiase al cambiar en los <select> ocurría que no es lo mismo llamar a la página desde inicio de wordpress que desde una opción de menú. Desde el inicio se llama localhost/ccalcazares y desde el menú aparece con como localhost/ccalcazares/recorridos-por-fecha (el slug).
Los includes de mod_etapas.php buscando la ubicación de mis_cca_css.css fueron un episodio. Desesperado llegué a incluir el código css como un <style>……</style>. Así, entrase por donde entrase recorridos-por-fecha tenia que leer el css y funcionar. Al final me decidí por cambiar la hoja de estilos al raíz y llamarlo así:
<LINK REL=StyleSheet HREF=»http://cca.vordonez.es/mis_cca_css.css» TYPE=»text/css» MEDIA=screen>
a consta de que cuando lo cuelgue en el servidor remoto me acuerde y cambie el local.
¡Vaya con WordPress!
Solo quiero ver que pasa con ella. Pues que pasa, que la llames como la llames sale detrás de la de inicio. He tenido que copiarla, pegarla en word, abrir una nueva y pegar el texto. Se empeñaba que era de código.
¡Vaya con WordPress!