Foros del Web » Programando para Internet » PHP »

obtener fecha para mostrar en la página desde la ruta de la página

Estas en el tema de obtener fecha para mostrar en la página desde la ruta de la página en el foro de PHP en Foros del Web. Hola chic@s: Tengo una página web en la que he introducido el código de un calendario en JavaScript que permite, al pinchar en sus recuadros ...
  #1 (permalink)  
Antiguo 18/12/2007, 05:49
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 1
obtener fecha para mostrar en la página desde la ruta de la página

Hola chic@s:

Tengo una página web en la que he introducido el código de un calendario en JavaScript que permite, al pinchar en sus recuadros del día de cada mes redirecciona a una página "index.php" almacenada en una ruta tipo:

YYYY/MM/DD (Año/mes/día)

De este modo se mostrarían los eventos que me interesa que se muestren ocurridos en una fecha concreta, cuando alguien pinche en mi calendario.

Como peculiaridad os digo que los meses están comprendidos del 0 al 11, y no del 1 al 12 como sería lo normal. No se a qué se debe, pero así es. Imagino que es debido a JavaScript específicamente, porque el código se nota que ha sido hecho por alguien que sabía. Funciona muy bien.

Eso si, me gustaría poder ordenar los meses del 1 al 12 y que el código se encargue de realizar el trabajo. Es que se que en algún momento meteré la pata buscando el index.php de la fecha 13 de febrero en la carpeta 2, en vez de la 1 como debería ser y cambiaré entonces el 13 de marzo, etc., etc., etc.

Necesitaría que en dicha página "index.php", para ordenar un poco la información, y para confirmar que se muestra la información de la fecha elegida, se mostrara mediante un código, al principio de la página, la fecha del evento. Algo así como:

«Sucesos ocurridos el día DD de MM de YYYY»

Para no tener que escribirlo en cada index.php que elabore (365 por cada año de cobertura de la información... 366 si el año es bisiesto..., que flipe).

Imagino que se puede hacer con php, pero no tengo ni idea. A lo mejor no es este el lugar para plantear esta pregunta, así que por favor, si lo consideráis, moved este tema de aquí.

Gracias de antemano.

camposanto
  #2 (permalink)  
Antiguo 18/12/2007, 06:05
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: obtener fecha para mostrar en la página desde la ruta de la página

Primero: Puedes modificar la función de javascript y sumarle uno al mes, así te quedaría de 1 a 12.

Por lo demás, yo te recomendaría replantearte la aplicación.
En vez de tener una ruta del tipo /año/mes/día/index.php puedes tener un único index.php que reciba la fecha como parámetro (index.php?fecha=20071128)

Luego, recoges el valor de esa variable ($_GET['fecha']), y ya puedes trabajar con la fecha.

Sin saber quá va a hacer la aplicación no te puedo aconsejar, pero una idea básica de PHP es automatizar al máximo la elaboración dinámica de páginas.
  #3 (permalink)  
Antiguo 20/12/2007, 06:13
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: obtener fecha para mostrar en la página desde la ruta de la página

Gracias Keysher:

La verdad es que no me entero de nada porque no tengo ni idea de php, pero si entiendo el concepto que apuntas.

En cuanto saque un ratito expongo aquí la función de calendario que estoy utilizando y a ver qué se puede hacer, vale?

Muchas gracias por tu respuesta de todos modos. Le daré vueltas y a ver si me voy enterando de algo más.

Un saludo

camposanto
  #4 (permalink)  
Antiguo 20/12/2007, 06:27
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: obtener fecha para mostrar en la página desde la ruta de la página

Por cierto Keysher:

Podrías exponer código de esa página index. php de la que hablas para estudiarlo y ver qué hace a ver si haciendo una chapucilla puedo dar con algo?

Ya te digo que mi calendario apunta a un fichero concreto en una ruta...

Bueno, quizás sea mejor que ponga aquí el código del calendario:


<!-- calendar stylesheet -->
<link rel="stylesheet" type="text/css" media="all" href="./jscalendar/calendar-win2k-cold-3.css" title="win2k-cold-1" />
<!-- main calendar program -->
<script type="text/javascript" src="./jscalendar/calendar.js"></script>
<!-- language for the calendar -->
<script type="text/javascript" src="./jscalendar/lang/calendar-es.js"></script>
<!-- the following script defines the Calendar.setup helper function, which makes
adding a calendar a matter of 1 or 2 lines of code. -->
<script type="text/javascript" src="./jscalendar/calendar-setup_stripped.js"></script>
<!-- end calendar stylesheet -->


<script type="text/javascript">
function dateChanged(calendar) {
// Beware that this function is called even if the end-user only
// changed the month/year. In order to determine if a date was
// clicked you can use the dateClicked property of the calendar:
if (calendar.dateClicked) {
// OK, a date was clicked, redirect to /yyyy/mm/dd/index.php
var y = calendar.date.getFullYear();
var m = calendar.date.getMonth(); // integer, 0..11
var d = calendar.date.getDate(); // integer, 1..31
// redirect...
window.open("/" + y + "/" + m + "/" + d + "/index.php");
}
};

Calendar.setup(
{
flat : "calendar-container", // ID of the parent element
flatCallback : dateChanged // our callback function
}
);
</script>

los ficheros se pueden obtener de aquí:

http://www.ccooaytomajadahonda.es/jscalendar/calendar-win2k-cold-3.css
http://www.ccooaytomajadahonda.es/jscalendar/calendar.js
http://www.ccooaytomajadahonda.es/jscalendar/lang/calendar-es.js
http://www.ccooaytomajadahonda.es/jscalendar/calendar-setup_stripped.js

Lo siento, pero no me dejan publicar url's de momento

Muchas gracias de antemano por tu ayuda.

Un saludo

camposanto
  #5 (permalink)  
Antiguo 09/01/2008, 13:33
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: obtener fecha para mostrar en la página desde la ruta de la página

Bueno,

En cuanto al Javascript puedes sumarle 1 al valor del mes:

var m = calendar.date.getMonth(); // integer, 0..11
m= m+1;

Por lo demás, yo, en PHP lo haría más o menos así:

- Comprobar la variable fecha pasada por GET
- Mostrar los eventos que correspondan


Pero vamos, no das muchos datos sobre esas páginas, con la fecha, qué vas a hacer? qué va a contener la página entera?
  #6 (permalink)  
Antiguo 16/01/2008, 04:25
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: obtener fecha para mostrar en la página desde la ruta de la página

Cita:
Iniciado por Keysher Ver Mensaje
Bueno,

En cuanto al Javascript puedes sumarle 1 al valor del mes:

var m = calendar.date.getMonth(); // integer, 0..11
m= m+1;

Por lo demás, yo, en PHP lo haría más o menos así:

- Comprobar la variable fecha pasada por GET
- Mostrar los eventos que correspondan


Pero vamos, no das muchos datos sobre esas páginas, con la fecha, qué vas a hacer? qué va a contener la página entera?
Hola Keysher:

Te contesto. Lo que quiero que haga el código cuando la gente pinche en una determinada fecha del calendario es que se muestre la información referente a esa fecha que yo tenga preprogramada.

Por ejemplo, si alguien pincha sobre el 19 de marzo de 2008 que les aparezca "Fiesta por ser San José". Y si para ese día tuviésemos programado algún evento tipo "Asamblea sindical de los trabajadores de jardinería a las 10:00" que apareciera también. El código del calendario aparece en todas las páginas de nuestro sitio web www.ccooaytomajadahonda.es (lo siento, aún no puedo publicar url's en el foro)

Lo que no entiendo todavía es cómo puedo ordenar la información en la página esa que llamaste "index.php". Imagino que es una página en la que aparecen todas las fechas ordenadas tipo registros con su correspondiente información. De tal modo que con un sólo archivo tengo toda la información por dar a la gente, pero no se qué formato darle a esa página. Ya te digo que no tengo ni idea de php, ni de javascript. Eso si, una vez visto el código me apaño bien, pues me entero de para qué sirven las funciones, etc., etc., etc. Soy aplicado

Muchas gracias de antemano por tu ayuda

Un saludo

camposanto
  #7 (permalink)  
Antiguo 16/01/2008, 07:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: obtener fecha para mostrar en la página desde la ruta de la página

¿Dónde tienes guardados los datos de cada día?
¿Cómo quieres que se muestren? ¿Al pinchar en un día va a una página nueva?
  #8 (permalink)  
Antiguo 22/01/2008, 05:24
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: obtener fecha para mostrar en la página desde la ruta de la página

Cita:
Iniciado por Keysher Ver Mensaje
¿Dónde tienes guardados los datos de cada día?
¿Cómo quieres que se muestren? ¿Al pinchar en un día va a una página nueva?
Hola de nuevo, Keysher:

Ante todo te agradezco el interés que estás poniendo en el problemilla que he planteado.

Bueno, respondiendo a tus preguntas.

Dónde guardar los datos de cada día?. Me da un poco igual. Cuanto más sencillo sea mejor. Primero tenía la idea de que debido al código de mi calendario había que guardar un archivo "index.php" por cada fecha que quisiéramos rellenar con eventos. Pero en tus primeras sugerencias en este hilo, me hablaste de un único archivo. Entonces había pensado en un único documento en el que se guardara toda la información, pero que fuera posible extraer de él únicamente lo relativo a la fecha correspondiente al click en el calendario. Sería genial. Además, quizás sería posible guardar la información de manera desordenada, incluyendo un marcador que si que fuera exacto para la fecha en concreto, y en caso de no encontrar dicho marcador (por no haber eventos programados, por ejemplo, o por un error), se mostrara un mensaje de "No hay eventos programados para esa fecha". Qué te parece así?, no se..., como me has pedido, ya sabes..., yo por pedir

Cómo quiero que se muestren?. Al pinchar en la fecha del calendario, me gustaría que se abriera una ventana nueva (simple, nada de estéticas bonitas, ni nada por el estilo. funcional, mostrando la información y punto) del navegador mostrando los eventos que tenemos registrados para ese día del mes y en ese año, en una lista en la que se muestre la hora a la que se se realizará dicho evento a la izquierda del todo, por ejemplo: 10:00 Asamblea General de trabajadores en el Salón de Plenos (si es que está programada una hora concreta) y nada en caso de que el evento dure todo el día, como por ejemplo una onomástica... Hoy es San Pito Pato, etc. Incluso, si se guardara todo en un único archivo, pero que cuando se llame a la función únicamente extrajera la iinformación determinada por la fecha, se iría guardando un historial, lo cual no sólo no me disgusta, sino que sería la bomba para nosotros, como documento de consulta, por ejemplo.

Al pinchar en un día va a una página nueva?. Efectivamente, así es como me gustaría que hiciera, aunque a esto ya te he respondido en la pregunta anterior, pero bueno, así guardo un orden.

Ya te digo que no se si lo que pido es imposible, o chungo, o lo que sea, o no se qué... Aunque si que sería un puntazo que se pudiera hacer, porque prestaríamos un servicio importante a nuestros compañeros de trabajo desde nuestra Sección Sindical.

Agradeciéndote de nuevo tu inestimable interés, recibe un abrazo fuerte y afectuoso:

camposanto

Última edición por camposanto; 22/01/2008 a las 05:52 Razón: faltaron datos en el post
  #9 (permalink)  
Antiguo 23/01/2008, 14:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: obtener fecha para mostrar en la página desde la ruta de la página

Puedes hacerlo de varias forma, depende de las ganas que tengas de meterte con código PHP.

También tienes formas de hacerlo sin PHP, sólo con HTML, pero eso te obligaría a crearte un HTML por cada día.

Una de las formas más elegantes sería con los eventos en una BDD. Pero no creo que te quieras complicar tanto.

La sugerencia sería la siguiente:

Creas un sólo PHP con la estructura de los eventos, es decir, la cabecera, si tiene algún menú, píe, etc... Y dónde iría el cuerpo, lees los datos del día actual desde un fichero.

Es sólo una forma de hacerlo, habría muchas más.

Si te interesa sería en esencia lo siguiente:

- Modificas el javascript, algo así:

var y = calendar.date.getFullYear();
var m = calendar.date.getMonth(); // integer, 0..11
m = m +1;
var d = calendar.date.getDate(); // integer, 1..31
// redirect...
window.open("/eventos/index.php?fecha=" + y + m+ d);

Ahora, al pinchar en el calendario te debería llevar al index.php que hay dentro del directorio "eventos". A éste PHP le pasaría como parámetro el día, en formato aaaammdd.

Ese index.php tendría algo así:

- El trozo de código que se va a encargar de evaluar la fecha recibida, comprobar si existen eventos para ese día, etc.
- cabeceras HTML
- cabecera de la página (título o lo que sea). Incluso el título puede contener la fecha, que has validado previamente.
- Otros elementos en la página que te puede interesar mostrar
- El código que se encargue de mostrar los eventos.
- Más información si quieres.
- Píe de página.

De esta forma tienes el esquema en el que se van a mostrar los eventos.

El primer trozo de código se encargará de validar que la fecha (variable $_GET['fecha']) existe, es correcta y además hay eventos disponibles. Los eventos pueden estar guardados en ficheros de texto con la fecha: 20080123.txt

El segundo trozo de código lee el fichero, lo carga en una variable le aplica los saltos de línea o párrafos pertinentes y lo muestra...


Esta sería sólo una forma de hacerlo, algo básica, pero efectiva. No es la mejor, tampoco es la más simple, pero puede servir. El resto ya depende de tus conocimientos de PHP, en principio es algo sencillito (validar variables, comprobar que un fichero existe, leerlo, etc...)

Así que tú dirás, te podemos echar una mano y, al ser código no muy largo y sencillo, puede que alguien se anime, si te interesa y yo tengo un rato puedo mirarlo pero no sé si tendré tiempo.
  #10 (permalink)  
Antiguo 24/01/2008, 06:46
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: obtener fecha para mostrar en la página desde la ruta de la página

Gracias Keysher.

Voy a probar según el guión que me has indicado (que estoy seguro que me va a ser de gran utilidad) y te digo en cuanto haya logrado resultados satisfactorios (o no, ).

En cuanto lo consiga, lo publicaré aquí, por si a alguien le pudiese interesar este código para hacer algo parecido en su respectivo sitio.

Un afectuoso saludo y muchas gracias (creo que tardaré, porque me tengo que empollar por encima php para conseguir el objetivo)

camposanto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:23.