Hola a todos,
Pertenezco a una pequeña emisora local en la que hemos creado un pequeño script en PHP para que en nuestra página Web se muestre información acerca de los programas de nuestra emisora.
Estubimos mirando el programa de apoyo para estos casos, ZaraRadioWebRDS, pero no nos acabó de gustar la manera de funcionar, asà que creé esta clase, todavÃa muy simple, pero realmente útil para casos como el nuestro, que supongo que serán muchos.
He decido compartirlo con la comunidad ZaraRadio para que me den su opinión, puedan implementarlo y entre todos ir mejorándolo. Espero que les sea útil:
¿Qué hace esta clase?Básicamente esta clase lo que hace es cargar una base de datos con toda la programación y programas de la emisora y ofrecernos información del tipo:
- Información sobre lo que se está emitiendo actualmente en la emisora: programas, música…
- Información sobre lo que se emitirá en X horas
- Organización y envÃo a pantalla de toda la programación de la semana de la emisora
- Extracción de información de un determinado programa almacenado en la base de datos
Entre otras cosillas.
Cómo implementar esta clase1 Servidor/Alojamiento. Deberemos tener un alojamiento con soporte de PHP+MySQL.
2 Instalación: clase. Descargamos la clase y la guardamos en un directorio de nuestro servidor.
3 Instalación: base de datos. Creamos las siguientes tablas dentro de una base de datos MySQL de nuestro servidor y recordamos que nombre les dimos.
Programación: Contiene toda la programación de la emisora. Tan solo tenemos que introducir la hora de comienzo y el dÃa de la semana de cada programa, la clase automáticamente calcula su duración y actúa en consecuencia. En la columna
program tenemos que introducir el ID del programa al que queremos hacer referencia (leer siguiente tabla).
CREATE TABLE `programacion` (
`time` time NOT NULL default '00:00:00',
`date` date default NULL,
`weekday` enum('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday') NOT NULL,
`program` int(2) default NULL,
PRIMARY KEY (`time`,`weekday`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Programas: Tabla con información acerca del programa. A cada programa se le asigna un ID único.
CREATE TABLE `programas` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`type` enum('prog','music','ads') NOT NULL,
`color` varchar(7) NOT NULL default '#FFFFFF',
`description` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
4 Llamar a la clase. Llamamos a la clase radioOnWeb de la siguiente manera:
<?php
include_once('onair.php');
$tablas=array(0=>'programacion',1=>'programas');
$radio=new radioOnWeb('ZARARADIO CURRENTSONG FILE','SERVER MYSQL','USER','PASS','DATE BASE',$tablas);
$radio->connectMySQL();
?>
5 Fin. Una vez llamada la clase ya podemos podemos comenzar a utilizar la clase donde queramos.
Principales funcionesLa clase está provista de otros métodos, pero las principales son las siguientes:
getFutureProgramming(horas a avanzar, lÃmite de resultados): Obtención de un array con la programación futura.
setWeekProgramming(opciones elemento TABLE) y getWeekProgramming(): Para generar y almacenar en una variable la programación de toda la semana (set) y luego recuperarla (get).
getCurrentProgramming(): para obtener que programa se está emitiendo. Si resulta ser músical conectará con ZaraRadio para obtener la música que está emitiendo. Lo devuelve en forma de array.
Cosas a tener en cuentaAntes de obtener la canción que está sonando actualmente (getCurrentSong) tenemos que guardar el valor en una variable mediante setCurrentSong.
(en redacción)... espero explicarlo mejor pronto...
Atención se trata de una clase, que de momento recomiendo no implementar, todavÃa no ha sido testada lo suficiente y contiene algunos errores. Dejo la clase por lo tanto para desarrolladores que quieran echar una mano. De momento desaconsejo su uso habitual por periodo de pruebas.Descarga radioOnWebSaludos