Version: 0.99
Type: Full Script
Category: HTML
License: GNU Library Public License
Description: Alternate Row colors in a table (2 colors, ulimited colors, gradient, shade) don t look further if u need to put some colors in your tables or any where else this code can help you, Any comment or opinion email me
// NOTES:
// for color reference check this this URL: http://home.i1.net/~dwolfe/hexmixer/000000.shtml;
//
//
// ------------------------------------------------------------------------
// alternate_2colors
// ------------------------------------------------------------------------
// Alternating colours with two colours
// * example 1
// <table cellpadding=0 cellspacing=0 border=0 width=100%>
/* <?php
// include('html.php'); html.php contains our function
// $t = 0;
// while($t < 10)
// {
// echo '<TR BGCOLOR="' . $cl = alternate_2colors('#EEEEEE', '#FFFFFF', $t++). '"><td>'. $t . "</td></tr>\n";
// }
// ?>
// <table>
*/
// * example 2
// $nb += 1;
// $couleur = alternate_2colors('#EEEEEE', '#FFFFFF', $nb);
// echo'<TD BGCOLOR="'.$couleur.'"align=middle vAlign=center width=30%><SPAN class=small>'. $Ttl . '</SPAN></TD>';
// echo'<TD BGCOLOR="'.$couleur.'"align=middle vAlign=center width=30%><SPAN class=small>'. $Alb . '</SPAN></TD>';
// echo'<TD BGCOLOR="'.$couleur.'"align=middle vAlign=center width=30%><SPAN class=small>'. $Art . '</SPAN></TD>';
// echo'<TD BGCOLOR="'.$couleur.'"align=middle vAlign=center width=9%><SPAN class=small>'. $Time . '</SPAN></TD>';
//
function alternate_2colors($color_1, $color_2, $cpt)
{
$couleur = ($cpt % 2) ? $color_1 : $color_2;
return $couleur;
}
// ------------------------------------------------------------------------
// alternate_xcolors
// ------------------------------------------------------------------------
// Alternating colors with unlimited colors
// * $colors Has to be an array
// * $t is an incremented interger
// * $z iz the maximum value that $t can take
//
// * example
// <table cellpadding=0 cellspacing=0 border=0 width=100%>
/* <? php
// include('html.php'); html.php contains our function
// $colors = array();
// $colors[] = "#EDEDED";
// $colors[] = "#CCCCCC";
// $colors[] = "#FFFFFF";
// $colors[] = "#FFFFDF";
//
// $t = 0;
// while($t < 10)
// {
// echo '<TR BGCOLOR="' . $cl = alternate_Xcolors($colors,$t++,$t). '"><td>'. $t . "</td></tr>\n";
// }
// ?>
// <table>
*/
function alternate_Xcolors($colors, $t, $z)
{
$zb = floor($z/sizeof($colors));
$y = $z -($zb * sizeof($colors));
while ( $x < $zb )
{
foreach($colors as $col)
{
$colr[] = $col;
}
$x++;
}
for ($i = 0; $i <= $y-1; $i++)
{
$colr[] = $colors[$i];
}
return $colr[$t];
}
// ------------------------------------------------------------------------
// Gradient
// ------------------------------------------------------------------------
// create a gradient of colors from two colors
// * $coldeb is the first color of the gradient in hex.
// * $colfin is the last color of the gradient in hex,
// this color will be ajasted for mathmatical reasons.
// * $n is the size of the array returned by our function,
// for example number of rows in a table.
//
// * example
/* <? php
// include('html.php'); html.php contains our function
// $coldeb = '99FF99';
// $colfin = 'CCFFFF';
// $n = 79;
// echo '<table cellpadding=0 cellspacing=0 border=0 width=100%>';
// foreach (Gradient($coldeb, $colfin, $n) as $gr)
// {
// echo '<tr bgcolor="#' . $gr . '"><td>col</td><td>col2</td></tr>';
// }
// echo '</table>';
// ?>
*/
// calculate the RBG in decimal for an hex color
function SeparateRBG($col)
{
$Color[R]= hexdec(substr($col, 0, 2 ));
$Color[B] = hexdec(substr($col, 2, 2));
$Color[G] = hexdec(substr($col, -2));
return $Color ;
}
// return $GradientColor an array that contien the final gradient
function Gradient($coldeb, $colfin, $n)
{
$Color[deb] = SeparateRBG($coldeb);
$Color[fin] = SeparateRBG($colfin);
$rbg = array('R', 'B', 'G');
// calculate the red, the bleu, and the green gradient
foreach ($rbg as $RBG)
{
$Color[enc][$RBG] = floor( (($Color[fin][$RBG]) - ($Color[deb][$RBG])) / $n );
for ($x = 0 ; $x < $n ; $x++)
{
$Color[gradient][$RBG][$x] = dechex($Color[deb][$RBG] + ($Color[enc][$RBG] * $x));
if (strlen(strval($Color[gradient][$RBG][$x])) < 2)
{
$Color[gradient][$RBG][$x] = '0' . $Color[gradient][$RBG][$x];
}
}
}
// build the final gradient array
for ($i = 0 ; $i < $n ; $i++)
{
$GradientColor[] = $Color[gradient][R][$i] . $Color[gradient][B][$i] . $Color[gradient][G][$i];
}
return $GradientColor;
}
// ------------------------------------------------------------------------
// Shade
// ------------------------------------------------------------------------
// create a shade of colors from two colors
// * $coldeb is the first color of the gradient in hex.
// * $colfin is the last color of the gradient in hex,
// this color will be ajasted for mathmatical reasons.
// * $N is the size of the array returned by our function,
// for example number of rows in a table.
//
// * example
/* <? php
// include('html.php'); html.php contains our function, it has to contien SeparateRBG($col) also
// $coldeb = '99FF99';
// $colfin = 'CCFFFF';
// $n = 79;
// echo '<table cellpadding=0 cellspacing=0 border=0 width=100%>';
// foreach (Shade($coldeb, $colfin, $n) as $gr)
// {
// echo '<tr bgcolor="#' . $gr . '"><td>col</td><td>col2</td></tr>';
// }
// echo '</table>';
// ?>
*/
function Shade($coldeb, $colfin, $N)
{
$n = floor($N/2);
$Color[deb] = SeparateRBG($coldeb);
$Color[fin] = SeparateRBG($colfin);
$rbg = array('R', 'B', 'G');
// calculate the red, the bleu, and the green gradient
foreach ($rbg as $RBG)
{
$Color[enc][$RBG] = floor( (($Color[fin][$RBG]) - ($Color[deb][$RBG])) / $n );
for ($x = 0 ; $x <= $n ; $x++)
{
$Shade[$RBG][$x] = dechex($Color[deb][$RBG] + ($Color[enc][$RBG] * $x));
if (strlen(strval($Shade[$RBG][$x])) < 2)
{
$Shade[$RBG][$x] = '0' . $Shade[$RBG][$x];
}
}
}
// build the final gradient array
for ($i = 0 ; $i <= $n ; $i++)
{
// $ShadeColor is the array that contien the final garadient
$ShadeColor[] = $Shade[R][$i] . $Shade[B][$i] . $Shade[G][$i];
}
$ShadeColorRev = Array_reverse($ShadeColor);
array_pop ($ShadeColor);
$shade = Array_merge($ShadeColor ,$ShadeColorRev );
unset($ShadeColorRev);
unset($ShadeColor);
return $shade;
}
?>