351 Zeilen
8,9 KiB
PHP
351 Zeilen
8,9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Project:
|
|
* Contenido Content Management System
|
|
*
|
|
* Description:
|
|
* Generic table builder
|
|
*
|
|
* Requirements:
|
|
* @con_php_req 5.0
|
|
*
|
|
*
|
|
* @package Contenido Backend classes
|
|
* @version 1.0.2
|
|
* @author Timo A. Hummel
|
|
* @copyright four for business AG <www.4fb.de>
|
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
|
* @link http://www.4fb.de
|
|
* @link http://www.contenido.org
|
|
* @since file available since contenido release <= 4.6
|
|
*
|
|
* {@internal
|
|
* created unknown
|
|
* modified 2008-06-30, Frederic Schneider, add security fix
|
|
* modified 2008-07-03, Timo.Trautmann, added linebreaks for readable source code
|
|
*
|
|
* $Id$:
|
|
* }}
|
|
*
|
|
*/
|
|
if (!defined('CON_FRAMEWORK')) {
|
|
die('Illegal call');
|
|
}
|
|
|
|
class Table {
|
|
|
|
/**
|
|
* Table border color
|
|
* @var string
|
|
*/
|
|
var $border_color = '';
|
|
|
|
/**
|
|
* Table border style
|
|
* @var string
|
|
*/
|
|
var $border_style = '';
|
|
|
|
/**
|
|
* Table cell spacing
|
|
* @var string
|
|
*/
|
|
var $cell_spacing = '';
|
|
|
|
/**
|
|
* Table cell padding
|
|
* @var string
|
|
*/
|
|
var $cell_padding = '';
|
|
|
|
/**
|
|
* Table header color
|
|
* @var string
|
|
*/
|
|
var $header_color = '';
|
|
|
|
/**
|
|
* Table light row color
|
|
* @var string
|
|
*/
|
|
var $light_color = '';
|
|
|
|
/**
|
|
* Table dark row color
|
|
* @var string
|
|
*/
|
|
var $dark_color = '';
|
|
|
|
/**
|
|
* Internal dark/light row counter
|
|
* @var bool
|
|
*/
|
|
var $dark_row = 0;
|
|
|
|
/**
|
|
* Internal table width counter
|
|
* @var int
|
|
*/
|
|
var $table_cols = 0;
|
|
|
|
/**
|
|
* Internal first cell checker
|
|
* @var bool
|
|
*/
|
|
var $first_cell = 0;
|
|
|
|
/**
|
|
* Internal full border checker
|
|
* @var bool
|
|
*/
|
|
var $fullborder = false;
|
|
|
|
/**
|
|
* Directly output table if true
|
|
*
|
|
*/
|
|
var $directoutput = true;
|
|
|
|
/**
|
|
* Constructor
|
|
*/
|
|
function __construct($m_bordercolor = "#EEEEEE", $m_borderstyle = "solid", $m_cellspacing = "0", $m_cellpadding = "2", $m_header_color = "#222222", $m_light_color = "#AAAAAA", $m_dark_color = "#777777", $m_fullborder = false, $m_directoutput = true) {
|
|
$this->border_color = $m_bordercolor;
|
|
$this->border_style = $m_borderstyle;
|
|
$this->cellspacing = $m_cellspacing;
|
|
$this->cellpadding = $m_cellpadding;
|
|
$this->header_color = $m_header_color;
|
|
$this->dark_color = $m_dark_color;
|
|
$this->light_color = $m_light_color;
|
|
$this->fullborder = $m_fullborder;
|
|
$this->directoutput = $m_directoutput;
|
|
}
|
|
|
|
# end function
|
|
|
|
/**
|
|
* Begins the new table
|
|
* @param none
|
|
* @return void
|
|
*/
|
|
function start_table() {
|
|
|
|
if (!$this->fullborder) {
|
|
$starttable = '<table style="border: 0px; border-left:1px; border-bottom: 1px; border-color: ' . $this->border_color . '; border-style: ' . $this->border_style . '" cellspacing="' . $this->cellspacing . '" cellpadding="' . $this->cellpadding . '">';
|
|
} else {
|
|
$starttable = '<table style="border: 1px; border-color: ' . $this->border_color . '; border-style: ' . $this->border_style . '" cellspacing="' . $this->cellspacing . '" cellpadding="' . $this->cellpadding . '">';
|
|
}
|
|
|
|
if ($this->directoutput) {
|
|
echo $starttable . "\n";
|
|
} else {
|
|
return $starttable . "\n";
|
|
}
|
|
}
|
|
|
|
# end function
|
|
|
|
/**
|
|
* Outputs a header row
|
|
* @param none
|
|
* @return void
|
|
*/
|
|
function header_row($additional = "") {
|
|
|
|
$headerrow = '<tr class="textw_medium" style="background-color: ' . $this->header_color . '" ' . $additional . '>';
|
|
|
|
if ($this->directoutput) {
|
|
echo $headerrow . "\n";
|
|
} else {
|
|
return $headerrow . "\n";
|
|
}
|
|
}
|
|
|
|
# end function
|
|
|
|
/**
|
|
* Outputs a regular row
|
|
* @param none
|
|
* @return void
|
|
*/
|
|
function row($id = '') {
|
|
if ($this->dark_row) {
|
|
$bgColor = $this->light_color;
|
|
} else {
|
|
$bgColor = $this->dark_color;
|
|
}
|
|
|
|
$this->dark_row = !$this->dark_row;
|
|
|
|
$row = '<tr class="text_medium" style="background-color: ' . $bgColor . '" ' . $id . '>';
|
|
|
|
if ($this->directoutput) {
|
|
echo $row . "\n";
|
|
} else {
|
|
return $row . "\n";
|
|
}
|
|
}
|
|
|
|
# end function
|
|
|
|
/**
|
|
* Outputs a header cell
|
|
* @param $content The content which will fill the cell
|
|
* @param $align The horizontal alignment of the cell, default "center"
|
|
* @param $valign The vertical alignment of the cell, default "top"
|
|
* @return void
|
|
*/
|
|
function header_cell($content, $align = "center", $valign = "top", $additional = "", $borderTop = 1) {
|
|
|
|
$header_cell = '<th class="textg_medium" valign="' . $valign . '" style="border: 0px; border-top:' . $borderTop . 'px; border-right:1px; border-color: ' . $this->border_color . '; border-style: ' . $this->border_style . '" align="' . $align . '"' . $additional . '>' . $content . '</th>';
|
|
|
|
if ($this->first_cell) {
|
|
$this->table_cols = 0;
|
|
$this->first_cell = false;
|
|
}
|
|
|
|
$this->table_cols++;
|
|
|
|
if ($this->directoutput) {
|
|
echo $header_cell . "\n";
|
|
} else {
|
|
return $header_cell . "\n";
|
|
}
|
|
}
|
|
|
|
# end function
|
|
|
|
/**
|
|
* Outputs a regular cell
|
|
* @param $content The content which will fill the cell
|
|
* @param $align The horizontal alignment of the cell, default "center"
|
|
* @param $valign The vertical alignment of the cell, default "top"
|
|
* @param $additional Additional flags for the table
|
|
*/
|
|
function cell($content, $align = "center", $valign = "top", $additional = "", $bSetStyle = true) {
|
|
|
|
if (strlen($content) == 0) {
|
|
$content = " ";
|
|
}
|
|
$cell = '<td ' . $additional;
|
|
|
|
if ($valign != '') {
|
|
$cell .= ' valign="' . $valign . '"';
|
|
}
|
|
|
|
if ($bSetStyle) {
|
|
$cell .= ' style="border: 0px; border-bottom:1px; border-top:0px; border-right:1px; border-color: ' . $this->border_color . '; border-style: ' . $this->border_style . '"';
|
|
}
|
|
|
|
if ($align != '') {
|
|
$cell .= ' align="' . $align . '"';
|
|
}
|
|
|
|
$cell .= '>' . $content . '</td>';
|
|
|
|
if ($this->first_cell) {
|
|
$this->table_cols = 0;
|
|
$this->first_cell = false;
|
|
}
|
|
|
|
$this->table_cols++;
|
|
|
|
if ($this->directoutput) {
|
|
echo $cell . "\n";
|
|
} else {
|
|
return $cell . "\n";
|
|
}
|
|
}
|
|
|
|
# end function
|
|
|
|
/**
|
|
* Outputs a borderless cell
|
|
* @param $content The content which will fill the cell
|
|
* @param $align The horizontal alignment of the cell, default "center"
|
|
* @param $valign The vertical alignment of the cell, default "top"
|
|
* @param $additional Additional flags for the table
|
|
*/
|
|
function borderless_cell($content, $align = "center", $valign = "top", $additional = "") {
|
|
|
|
if (strlen($content) == 0) {
|
|
$content = " ";
|
|
}
|
|
$borderless_cell = '<td ' . $additional . ' valign="' . $valign . '" align="' . $align . '">' . $content . '</td>';
|
|
|
|
if ($this->first_cell) {
|
|
$this->table_cols = 0;
|
|
$this->first_cell = false;
|
|
}
|
|
|
|
$this->table_cols++;
|
|
|
|
if ($this->directoutput) {
|
|
echo $borderless_cell . "\n";
|
|
} else {
|
|
return $borderless_cell . "\n";
|
|
}
|
|
}
|
|
|
|
# end function
|
|
|
|
/**
|
|
* Outputs a sum cell
|
|
* @param $content The content which will fill the cell
|
|
* @param $align The horizontal alignment of the cell, default "center"
|
|
* @param $valign The vertical alignment of the cell, default "top"
|
|
*/
|
|
function sumcell($content, $align = "center", $valign = "top") {
|
|
|
|
if (strlen($content) == 0) {
|
|
$content = " ";
|
|
}
|
|
$sumcell = '<td colspan="' . $this->table_cols . '" valign="' . $valign . '" style="border: 0px; border-top:0px; border-right:1px; border-color: ' . $this->border_color . '; border-style: ' . $this->border_style . '" align="' . $align . '">' . $content . '</td>';
|
|
|
|
if ($this->directoutput) {
|
|
echo $sumcell . "\n";
|
|
} else {
|
|
return $sumcell . "\n";
|
|
}
|
|
}
|
|
|
|
# end function
|
|
|
|
/**
|
|
* Ends a row
|
|
* @param none
|
|
* @return void
|
|
*/
|
|
function end_row() {
|
|
$end_row = '</tr>';
|
|
|
|
$this->first_cell = true;
|
|
|
|
if ($this->directoutput) {
|
|
echo $end_row . "\n";
|
|
} else {
|
|
return $end_row . "\n";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Ends a table
|
|
* @param none
|
|
* @return void
|
|
*/
|
|
function end_table() {
|
|
$end_table = '</table>';
|
|
|
|
if ($this->directoutput) {
|
|
echo $end_table . "\n";
|
|
} else {
|
|
return $end_table . "\n";
|
|
}
|
|
}
|
|
|
|
# end function
|
|
}
|
|
|
|
# end class Table
|
|
?>
|