Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/06/2010, 06:20
Avatar de Flow89
Flow89
 
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años
Puntos: 1
Respuesta: Adaptar Calendario a PHP+MySQL.

Calendario: PARTE2
Código Javascript:
Ver original
  1. function formatoFecha(fecha){
  2.     if(fecha.toString().length == 8){
  3.         var an = fecha.toString().substring(0,4)
  4.         var me = fecha.toString().substring(4,6)
  5.         var di = fecha.toString().substring(6,8)
  6.     }
  7.     else{
  8.         if(fecha.toString().length == 6){
  9.             var an = fecha.toString().substring(0,4)
  10.             var me = fecha.toString().substring(4,6);
  11.             var di = ''
  12.         }
  13.         else{
  14.             var an = ''
  15.             var me = fecha.toString().substring(0,2)
  16.             var di = fecha.toString().substring(2,4)
  17.         }
  18.     }
  19.     me = eval(me)
  20.     me = meses[me-1]
  21.     return di + " " + me + " " + an
  22. }
  23.  
  24. function cambiarMes(val){
  25.     var _anio = document.getElementById('tunAnio').value
  26.     var _dia = 1;
  27.     if(val){
  28.         var _mes = document.getElementById('tunMes').options[document.getElementById('tunMes').selectedIndex].value
  29.         eval('_mes' + val + val)
  30.         _mes = _mes < 0 && val == '-' ? 11 : _mes
  31.         _mes = _mes > 11 && val == '+' ? 0 : _mes
  32.         if(eval(_mes) == 0 && val == '+') _anio++
  33.         if(eval(_mes) == 11 && val == '-') _anio--
  34.         document.getElementById('tunMes').options[_mes].selected = true
  35.         document.getElementById('tunAnio').value = _anio
  36.     }
  37.     else{
  38.         var _mes = mes
  39.     }
  40.     mes = _mes
  41.     anio = _anio
  42.     borra();
  43.     gHoy = 0;
  44.     tunCalendario()
  45.     escribeFecha(_anio.toString() + formatoDiaMes(_mes + 1)); enlaceListarMes()
  46. }
  47. function escribirEventosMes(){
  48.     escribeFecha(anio.toString() + formatoDiaMes((mes + 1).toString()))
  49.     escribeEvento2(eval(meses[mes].toLowerCase()), true)
  50. }
  51.  
  52. function escribeControles(){
  53.     var obj = document.getElementById(idContenedor)
  54.     var sp = document.createElement('span')
  55.     sp.className = "cambiaMes"
  56.     sp.onclick = function() {cambiarMes('-')}
  57.     sp.appendChild(document.createTextNode('«'))
  58.     obj.appendChild(sp)
  59.     var sel = document.createElement('select')
  60.     sel.className = 'selectores'
  61.     sel.id = 'tunMes'
  62.     sel.onchange = function(){
  63.         mes = this.selectedIndex;
  64.         cambiarMes(false)
  65.        
  66.     }
  67.     for(var p in meses){
  68.         opt = document.createElement('option')
  69.         opt.value = p
  70.         opt.appendChild(document.createTextNode(meses[p]))
  71.         sel.appendChild(opt)
  72.     }
  73.     obj.appendChild(sel)
  74.     var campo = document.createElement('input')
  75.     campo.type = 'text'
  76.     campo.id = 'tunAnio'
  77.     campo.className = "selectores"
  78.     campo.maxlength = "4"
  79.     campo.size = 4
  80.     campo.onblur = function(){
  81.         if(!isNaN(this.value)){anio=this.value;borra();tunCalendario()}
  82.     }
  83.     obj.appendChild(campo)
  84.     var sp = document.createElement('span')
  85.     sp.className = "cambiaMes"
  86.     sp.onclick = function() {cambiarMes('+')}
  87.     sp.appendChild(document.createTextNode('»'))
  88.     obj.appendChild(sp)
  89.     carga = true
  90. }

Config:
Código Javascript:
Ver original
  1. /** Configuración general **/
  2. var idContenedor = "miCalendario" //id del contenedor donde se insertará el calendario
  3. var calendarioCursor = 'pointer'
  4. var calendarioPaddingCelda = 3; //Corrige la posición del cuadro que marca el día seleccionado en caso de haberse aplicado un padding a las celdas
  5. var tagTitulos = 'h2' //Tag a usar en los títulos de eventos y efemérides
  6. var textoVerTodos = 'Listar todo el mes'
  7. /** fin configuración general **/
  8.  
  9.  
  10. /** Configuración general **/
  11. var idContenedor = "miCalendario" //id del contenedor donde se insertará el calendario
  12. var calendarioCursor = 'pointer'
  13. var calendarioPaddingCelda = 3; //Corrige la posición del cuadro que marca el día seleccionado en caso de haberse aplicado un padding a las celdas
  14. var tagTitulos = 'h2' //Tag a usar en los títulos de eventos y efemérides
  15. var textoVerTodos = 'Listar todo el mes'
  16. /** fin configuración general **/
  17.  
  18.  
  19. function evento(fecha, titulo, texto, enlace){
  20.     this.fecha = fecha;
  21.     this.titulo = titulo;
  22.     this.texto = texto;
  23.     this.enlace = false;
  24.     if(enlace) this.enlace = enlace
  25. }
  26.  
  27. /** agregamos los listados de efemérides y eventos por meses:
  28. var nombreDelMes = new Array();
  29. nombreDelMes.push(new evento('fecha en formato aaaammdd o mmdd', 'Título', 'Texto','Link [opcional]'));
  30. **/
  31.  
  32. var enero = new Array();
  33.  
  34. var febrero = new Array();
  35.  
  36. var abril = new Array();
  37.  
  38. var mayo = new Array();
  39.  
  40. var junio = new Array();
  41.  
  42. var agosto = new Array();
  43.  
  44. var septiembre = new Array();
  45.  
  46. var diciembre = new Array();

Como veis en el archivo de configuracion se añaden los eventos a los arrays, y el otro es la configuracion del calendario.

¿Que podría hacer para que en vez de tenerlos que añadir a mano, pudiese obtenerlos de la Base de Datos, a la cual se los he introducido mediante un formulario?


Un saludo y Gracias de antemano.

PD: Creación: Tunait - Modificación: Flow89
PD2: Tambien consta de un archivo .CSS el cual no adjunto ya que no es necesario, si alguien lo quiere, que busquen en la página de Tunait o que me lo pidan a mi.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.