Buenos días y saludos a todos.
Veréis, estoy haciendo una web que tiene que mostrar una tabla con los meses como cabecera y los días del mes en la primera columna (del día 1 al 31) para confeccionar la lista de precios de un grupo en función del día que se le contrate.
He conseguido que me muestre la tabla sin problemas, mediante este script
Código PHP:
<?php
include ("assets/php/seguridad.php");
include ("assets/php/conn.php");
include ("assets/php/classes/class.ezpdf.php");
function cambiaf_a_mysql ($fecha)
{
ereg ("([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fecha, $mifecha);
$lafecha = $mifecha[3] . "/" . $mifecha[2] . "/" . $mifecha[1];
return $lafecha;
}
function cambiaf_a_normal($fecha)
{
ereg ("([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $fecha, $mifecha);
$lafecha = $mifecha[3] . "/" . $mifecha[2] . "/" . $mifecha[1];
return $lafecha;
}
$fecha1 = cambiaf_a_mysql ($_GET["startdate1"]);
$fecha2 = cambiaf_a_mysql ($_GET["startdate2"]);
$pdf =& new Cezpdf('a4');
$sel_1 = "SELECT nombre FROM productos WHERE id_producto='" . $_GET["id_producto"] . "'";
$que_1 = mysql_query ($sel_aux_1, $dbh) or die ('I cannot execute the query because: ' . mysql_error () . '<br />And the query is: ' . $sel_1 . '<br />');
$arr_1 = mysql_fetch_array ($que_1);
$pdf->selectFont('assets/php/classes/fonts/Courier.afm');
$datacreator = array (
'Title' => 'Estadillo de ' . $arr_1["nombre"],
'Author' => 'Vicente Producciones',
'Subject' => 'PDF con Tablas',
'Creator' => '[email protected]',
'Producer' => 'http://www.vicenteproducciones.com'
);
$pdf->addInfo($datacreator);
$data = array ();
for ($i = 0; $i < 31; $i++)
{
for ($j = 0; $j < 13; $j++)
{
if ($j == 0)
$data[$i]['mes0'] = $i + 1;
else
{
$mts = mktime (0,0,0,$j,$i+1,date("Y"));
$act_aux_day = getdate ($mts);
$ctrl_var = $act_aux_day["weekday"];
$sel_2 = "SELECT " . $i . "_" . ($j - 1) . " AS campo FROM estadillo WHERE id_producto='" . $_GET["id_producto"] . "'";
$que_2 = mysql_query ($sel_2, $dbh) or die ('I cannot execute the query because: ' . mysql_error . '<br />And the query is: ' . $sel_2 . '<br />');
$arr_2 = mysql_fetch_array ($que_2);
if ($arr_2["campo"] == "Ocupado")
{
if ($ctrl_var == "Sunday")
$data[$i]['mes' . $j] = "<b>O</b>";
else
$data[$i]['mes' . $j] = "O";
}
else if ($arr_2["campo"] == "Reservado")
{
if ($ctrl_var == "Sunday")
$data[$i]['mes' . $j] = "<b>R</b>";
else
$data[$i]['mes' . $j] = "R";
}
else
{
if ($ctrl_var == "Sunday")
$data[$i]['mes' . $j] = "<b>" . $arr_2["campo"] . "</b>";
else
$data[$i]['mes' . $j] = $arr_2["campo"];
}
}
}
}
$titles = array(
'mes0' => '<b>D\M</b>',
'mes1' => '<b>Ene.</b>',
'mes2' => '<b>Feb.</b>',
'mes3' => '<b>Mar.</b>',
'mes4' => '<b>Abr.</b>',
'mes5' => '<b>May.</b>',
'mes6' => '<b>Jun.</b>',
'mes7' => '<b>Jul.</b>',
'mes8' => '<b>Ago.</b>',
'mes9' => '<b>Sep.</b>',
'mes10' => '<b>Oct.</b>',
'mes11' => '<b>Nov.</b>',
'mes12' => '<b>Dic.</b>'
);
$pdf->ezText("<b>Tarifas de " . $arr_1["nombre"] . "</b>\n",16);
$pdf->ezTable($data,$titles,'',array('xPos'=>'center','width'=>530,'cols'=>array('num'=>array('justification'=>'center'))));
$pdf->ezText("\n\n\n",10);
$sel_3 = "SELECT productos.componentes, lectura_escenario.nombre FROM productos, lectura_escenario WHERE id_producto='" . $_GET["id_producto"] . "' AND productos.id_lectura_escenario = lectura_escenario.id_lectura_escenario";
$que_3 = mysql_query ($sel_3, $dbh) or die ('I cannot execute the query because: ' . mysql_error () . '<br />And the query is: ' . $sel_3 . '<br />');
$arr_3 = mysql_fetch_array ($que_3);
$pdf->ezText("<b>Componentes:</b> " . $arr_3["componentes"], 10);
$pdf->ezText("<b>Escenario:</b> " . $arr_3["nombre"] . "\n\n", 10);
$pdf->ezText("\n",10);
$pdf->ezText("<b>O:</b> Ocupado", 10);
$pdf->ezText("<b>R:</b> Reservado\n\n", 10);
$pdf->ezStream();
El problema lo tengo en estas líneas específicas, ya que con fpdf se como dibujar una determinada línea en un color que le de, pero lo que busco es sustituir las negritas en los domingos por texto en color rojo.
En otras palabras, lo que busco es sustituir estas líneas:
Código PHP:
$mts = mktime (0,0,0,$j,$i+1,date("Y"));
$act_aux_day = getdate ($mts);
$ctrl_var = $act_aux_day["weekday"];
$sel_2 = "SELECT " . $i . "_" . ($j - 1) . " AS campo FROM estadillo WHERE id_producto='" . $_GET["id_producto"] . "'";
$que_2 = mysql_query ($sel_2, $dbh) or die ('I cannot execute the query because: ' . mysql_error . '<br />And the query is: ' . $sel_2 . '<br />');
$arr_2 = mysql_fetch_array ($que_2);
if ($arr_2["campo"] == "Ocupado")
{
if ($ctrl_var == "Sunday")
//Quiero cambiar esta negrita por color rojo
$data[$i]['mes' . $j] = "<b>O</b>";
else
$data[$i]['mes' . $j] = "O";
}
else if ($arr_2["campo"] == "Reservado")
{
if ($ctrl_var == "Sunday")
//Quiero cambiar esta negrita por color rojo
$data[$i]['mes' . $j] = "<b>R</b>";
else
$data[$i]['mes' . $j] = "R";
}
else
{
if ($ctrl_var == "Sunday")
//Quiero cambiar esta negrita por color rojo
$data[$i]['mes' . $j] = "<b>" . $arr_2["campo"] . "</b>";
else
$data[$i]['mes' . $j] = $arr_2["campo"];
}
El problema que encuentro es que ezPDF no soporta código html (sólo los tags <b>, <i> y <u>) y que para hacer la tabla vuelca el array $data (que es el que contiene los datos) directamente en la función que crea la tabla, de esta forma...
Código PHP:
$pdf->ezTable($data,$titles,'',array('xPos'=>'center','width'=>530,'cols'=>array('num'=>array('justification'=>'center'))));
Por lo que sigo sin saber cómo podría darle color específicamente a esas celdas...
¿Alguien sabría echarme una mano?
Muchas gracias a todos y un saludo.