Array * ( * [id] => 1 * [fname] => John * [lname] => Doe * ) * * [1] => Array * ( * [id] => 2 * [fname] => Jane * [lname] => Doe * ) * ) * @var Array Associative array of column data * @access Public */ public $columns = array(); /** * The number of columns in the dataset * * @var Integer Column count * @access Public */ public $colCount = 0; /** * The tables cell spacing * * @var String Cell spacing * @access Public */ public $cellSpacing = ''; /** * The tables cell padding * * @var String Cell padding * @access Public */ public $cellPadding = ''; /** * The tables CSS class name * * @var String Table CSS class name * @access Public */ public $tableClassName = ''; /** * The TD CSS class name * * @var String TD CSS class name * @access Public */ public $tdClassName = ''; /** * The TR CSS class name * * @var String TR CSS class name * @access Public */ public $trClassName = ''; /** * The tables width * * @var Integer The tables width * @access Public */ public $tableWidth = 0; /** * The tables height * * @var Integer The tables height * @access Public */ public $tableHeight = 0; /** * The tables border * * @var Integer The tables border * @access Public */ public $tableBorder = 0; /** * The tables background color * * @var String The tables background color * @access Public */ public $tableBGColor = ''; /** * The TD background color * * @var String The TD background color * @access Public */ public $tdBGColor = ''; /** * The TR width * * @var String The TR width * @access Public */ public $trWidth = ''; /** * The TD height * * @var String The TD height * @access Public */ public $tdHeight = ''; /** * The TR height * * @var String The TR height * @access Public */ public $trHeight = ''; /**************************************************************** * Private Variables ****************************************************************/ /** * The number of rows in the dataset * We get this information from $columns * * @var Integer Row count * @access Private */ private $rowCount = 0; /** * The table * * @var String The table * @access Private */ private $_table = ''; /** * The table head tag * * @var String The table head tag * @access Private */ private $_tableHead = ''; /** * The table foot tag * * @var String The table foot tag * @access Private */ private $_tableFoot = ''; /** * The table row head tag * * @var String The table row head tag * @access Private */ private $_trHead = ''; /** * The table row foot tag * * @var String The table row foot tag * @access Private */ private $_trFoot = ''; /** * The measurement type * ie: percentage (%) or pixels (px) * * @var String The type of measure * @access Private */ private $_measureType = ''; /** * The table data * We do alternating colors for rows * and also print the column headers in bold * * @var String The table data (TD) * @access Private */ private $_columnData = ''; /** * The TD width * This var is private because it * is determined by the width of * the column data * * @var String The TD width * @access Private */ private $_tdWidth = ''; /** * Class Constructor * * Sets default table element settings * * @param Array Column data */ public function __construct($columns) { $this->setColumns($columns); $this->setColCount(count($columns[0])); $this->setRowCount(count($columns)); $this->setCellSpacing(0); $this->setCellPadding(40); $this->setTableClass('dpTable'); $this->setTrClass('borderTable'); $this->setTDClass(''); $this->setTableWidth(100); $this->setTableHeight(2); $this->setTableBGColor('#000000'); $this->setTableBorder(1); $this->setMeasureType('%'); } /**************************************************************** * Accessors ****************************************************************/ /** * setColumns() * * Sets the column data array * * @param Array Column data */ public function setColumns($val) { $this->columns = $val; } public function setCellSpacing($val) { $this->cellSpacing = $val; } public function setCellPadding($val) { $this->cellPadding = $val; } public function setTDClass($val) { $this->trClassName = $val; } public function setTableClass($val) { $this->tableClassName = $val; } public function setTRClass($val) { $this->tdClassName = $val; } private function _setTDWidth($val) { $this->_tdWidth = $val; } public function setTDHeight($val) { $this->height = $val; } public function setTableWidth($val) { $this->width = $val; } public function setTableHeight($val) { $this->height = $val; } public function setColCount($val) { $this->colCount = $val; } public function setRowCount($val) { $this->rowCount = $val; } public function setTRBGColor($val) { $this->trBgColor = $val; } public function setTDBGColor($val) { $this->bgColor = $val; } public function setTableBGColor($val) { $this->tableBGColor = $val; } public function setTableBorder($val) { $this->tableBorder = $val; } public function setMeasureType($val) { $this->_measureType = $val; } /**************************************************************** * Modifiers ****************************************************************/ public function getColumns() { return $this->columns; } public function getRowCount() { return $this->rowCount; } public function getCellSpacing() { return $this->cellSpacing; } public function getCellPadding() { return $this->cellPadding; } public function getTableClass() { return $this->tableClassName; } public function getTDClass() { return $this->tdClassName; } public function getTRClass() { return $this->trClassName; } public function getTableWidth($type='') { return $this->width.$type; } public function getTableHeight($type='') { return $this->height.$type; } public function getTDWidth($type='') { return $this->_tdWidth.$type; } public function getTDHeight($type='') { return $this->tdHeight.$type; } public function getColCount() { return $this->colCount; } public function getTDBGColor() { return $this->bgColor; } public function getTableBorder() { return $this->border; } public function getTRBGColor() { return $this->trBgColor; } /**************************************************************** * Public Methods ****************************************************************/ /** * Build the god damned table for christs sake */ public function buildTable() { $this->_table .= $this->_createTableHead(); $this->_table .= $this->_createColumns(); $this->_table .= $this->_getTableFoot(); return $this->_table; } /**************************************************************** * Private Methods ****************************************************************/ /** * Create the table head */ private function _createTableHead() { $this->_tableHead = "\r\n"; return $this->_tableHead; } /** * Create the TR head */ private function _getTRHead() { $this->_trHead = "\r\n"; return $this->_trHead; } /** * Create the TR foot */ private function _getTRFoot() { $this->_trFoot = "\r\n"; return $this->_trFoot; } /** * Create the TD data set * @todo create setters and getters for alternating row colors * */ private function _createColumns() { $tmp = $this->getColumns(); $x = 0; foreach($tmp as $key=>$val){ if ($this->getTRBGColor() == '#BDEDFF') { $this->setTRBGColor('#ffffff'); }else{ $this->setTRBGColor('#BDEDFF'); } if($x < count($val)) { $this->_columnData .= $this->_getTRHead(); foreach($val as $key2=>$val2){ $this->_setTDWidth(strlen($val2)); $this->_columnData .= "\r\n"; $x++; } $this->_columnData .= $this->_getTRFoot(); } $this->_columnData .= $this->_getTRHead(); foreach($val as $key2=>$val2){ if(empty($val2)){ $val2 = ' '; } $this->_setTDWidth(strlen($val2)); $this->_columnData .= "\r\n"; } $this->_columnData .= $this->_getTRFoot(); } return $this->_columnData; } /** * Create the table foot */ private function _getTableFoot() { $this->_tableFoot = "
".ucfirst($key2)."".$val2."
\r\n"; return $this->_tableFoot; } /** * Gets the measure type * for heights and widths ( % or px ) */ private function _getMeasureType() { return $this->_measureType; } } ?>