Dokeos Móvil

Julio 3, 2009

En los ultimos 2 años la web movil ha experimentado un fuerte crecimiento, tanto en términos de número de usuarios web con acceso desde un teléfono móvil, y el número de sitios web en linea accesibles.

Es claramente un momento emocionante para la web móvil y de Internet para móviles en general.

Dokeos en su versión corporativa ofrece funcionalidades a través de este medio, haciendo uso de tres poderosas herramientas muy populares para el desarrollo de una aplicación web movil que son:

WURFL (Wireless Universal Resource File) :  Es una base de datos de dispositivos móviles que registra las especificaciones y capacidades de cada uno de ellos.

Tera-WURFL :  Es una libreria para PHP que utiliza MySQL y un mecanismo de cache para alcanzar excelente performance y reducir el tiempo que se toma para hacer consultas a una base de datos WURLF.

HAWHAW (HTML and WML Hybrid Adapted Webserver) :  Es una libreria para PHP hecho disponible gratuitamente a traves de un solo archivo hawhaw.inc. HAWHAW trabaja con Tera-WURLF para hacer uso de la base de datos WURFL y asi generar el WML(Wireless Markup language) que es usado para crear paginas que pueden ser mostrados en un browser WAP (browser de un movil).

Con todo esto y atraves de los servicios web, dokeos corporativo ofrece funcionalidades que pueden ser consultadas desde un celular

Aca les muestro un pequeño demo sobre una cosulta a los eventos de la agenda de un curso determinado desde un nokia 6670:

celu1

En esta primera imagen el usuario selecciona el curso, el mes y el año de los eventos de dicho curso

celu2

Se muestra un calendario resaltando los dias donde existen eventos para dicho mes y año, al seleccionar un dia resaltado, se muestra
la lista de eventos para ese dia.

Esto es sólo el comienzo, más adelante les mostraré más cosas de las funcionalidades que dokeos ofrece atraves de un móvil.


Usando ezPDF + pChart

Enero 21, 2009

Bueno, anteriormente publiqué como generar reportes PDF usando ezPDF, ahora vamos a seguir con esa inspiración y vamos a crear un gráfico estadístico y a combinarlo con nuestro documento.

Primero lo que vamos hacer es generar el gráfico (para este ejemplo usaré uno circular), con la librería pChart:

// Incluimos las clases a nuestra aplicación, puedes usar include o require_once como lo hice con el ezPDF

include(“pChart/pData.class”);
include(“pChart/pChart.class”);

// Ahora vamos a definir los datos

$DataSet = new pData; // Inicializamos el objeto de la clase

$valores = array(10,2,3,5,3);
// Los valores siempre deben estar dentro de un array (mmmmmm, esto se ve muy sencillo, para hacerlo interesante los datos vamos a recogerlos de Base de Datos …

/*
$sql = “select s.name,s.total from tabla_1 t inner join tabla_2 s on t.site_id = s.id where t.id = $variable;
$rs = mysql_query($sql)or die(”Could not able table1”);

// Vamos a suponer que la consulta nos devuelve 10 registros, es por eso que hacemos previamente un while()

while($Rows = mysql_fetch_object($rs)){
$data [] = $Rows -> name; // a las variables les colocamos “[]“ para pasarlas como arrays
$name [] = $Rows -> total;
}

// Ahora entoces la variable quedaría así:

$valores = $data;

*/

// A la variable texto vamos a pasarle los nombres que hemos recogido de las columnas para que sirvan como leyenda del gráfico

$texto = $name;

$DataSet->AddPoint($valores,”Serie1″);
$DataSet->AddPoint($texto,”Serie2″);
$DataSet->AddAllSeries();
$DataSet->SetAbsciseLabelSerie(“Serie2″);

// Inicializamos el gráfico

$Test = new pChart(390,200); // los parámetros son ancho y alto – ojo : se miden en pixeles

// Finalmente dibujamos el gráfico

$Test->setGraphArea(50,30,585,200);

$Test->setFontProperties(“Fonts/tahoma.ttf”,10); // incluimos las fuentes
$Test->drawTitle(10,10,”Titulo del grafico”,28,117,34,380);
$Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),150,90,110,PIE_PERCENTAGE,TRUE,50,20,0);
$Test->drawPieLegend(310,25,$DataSet->GetData(),$DataSet->GetDataDescription(),242,242,242);
$Test->Render(“imagen.png”); // generamos la imagen y la guardamos temporalmente

Hasta aquí hemos creado satisfactoriamente nuestro grafico ahora lo insertaremos a nuestro PDF usando ezPDF

$pdf= new Cezpdf(‘A4′);
$pdf->selectFont(‘fonts/Helvetica.afm’);
$pdf->ezSetMargins(30, 30, 50, 30);
$pdf->ezSetY(810);
$pdf->ezText(‘Titulo del PDF‘,14,array(‘justification’=>’left’));
$img_graph = ImageCreatefrompng(‘imagen.png’); // aqui llamamos a la imagen generada por pChart
$pdf->addImage($img_graph,75,500,450,300);
$pdf->ezStream();

Y listo como resultado obtenemos nuestro documento PDF + un pequeño gráfico generado por pChart.

Nota: Algo que descubrí usando pchart fue que cuando generamos gráficos cuyos datos sobrepasan los 8, nos genera error offset o sea problema con un array, pero no se preocupen no son los datos de su arrya sino es un problema con el archivo pChart.class, lo solucionamos así:

Generalmente tenemos esto en la línea 35:

var $Palette = array(“0″=>array(“R”=>188,”G”=>224,”B”=>46),

“1″=>array(“R”=>224,”G”=>100,”B”=>46),

“2″=>array(“R”=>224,”G”=>214,”B”=>46),

“3″=>array(“R”=>46,”G”=>151,”B”=>224),

“4″=>array(“R”=>176,”G”=>46,”B”=>224),

“5″=>array(“R”=>224,”G”=>46,”B”=>117),

“6″=>array(“R”=>92,”G”=>224,”B”=>46),

“7″=>array(“R”=>224,”G”=>176,”B”=>46));

lo reemplazamos por:

// la función genera aleatoriamente codigos de colores y listo solucionado el problema.

function colores(){
$this->colores=(array(“r”=>rand(0,255),”g”=>rand(0,255),”b”=>rand(0,255)));
return $this->colores;
}

Obviamnte van a tener que reemplazar todo lo que tiene $this->Palette[$ID]["R"] , por :
$colores = $this->colores(); // llamamos a la funcion
$Palette[$ID]["R"] // ya no usamos “$this”

Espero que este post les haya sido de ayuda, y que viva Dokeos , el software libre y toda su comunidad ….
No se pierdan mi siguiente artículo sobre el uso de phplot.