From fe9b9a96b4aacc54765190c1c3fc01271d361c36 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sun, 25 Dec 2011 16:11:01 +0200 Subject: Improve the Table library --- system/libraries/Table.php | 109 +++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 63 deletions(-) (limited to 'system/libraries/Table.php') diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 8d0e11a43..fb410e9fd 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -1,13 +1,13 @@ -heading = $this->_prep_args($args); @@ -103,9 +103,9 @@ class CI_Table { * @param int * @return void */ - function make_columns($array = array(), $col_limit = 0) + public function make_columns($array = array(), $col_limit = 0) { - if ( ! is_array($array) OR count($array) == 0) + if ( ! is_array($array) OR count($array) === 0) { return FALSE; } @@ -120,7 +120,7 @@ class CI_Table { } $new = array(); - while (count($array) > 0) + do { $temp = array_splice($array, 0, $col_limit); @@ -134,6 +134,7 @@ class CI_Table { $new[] = $temp; } + while (count($array) > 0); return $new; } @@ -149,7 +150,7 @@ class CI_Table { * @param mixed * @return void */ - function set_empty($value) + public function set_empty($value) { $this->empty_cells = $value; } @@ -165,7 +166,7 @@ class CI_Table { * @param mixed * @return void */ - function add_row() + public function add_row() { $args = func_get_args(); $this->rows[] = $this->_prep_args($args); @@ -178,16 +179,16 @@ class CI_Table { * * Ensures a standard associative array format for all cell data * - * @access public + * @access private * @param type * @return type */ - function _prep_args($args) + private function _prep_args($args) { // If there is no $args[0], skip this and treat as an associative array // This can happen if there is only a single key, for example this is passed to table->generate // array(array('foo'=>'bar')) - if (isset($args[0]) AND (count($args) == 1 && is_array($args[0]))) + if (isset($args[0]) AND (count($args) === 1 && is_array($args[0]))) { // args sent as indexed array if ( ! isset($args[0]['data'])) @@ -228,7 +229,7 @@ class CI_Table { * @param string * @return void */ - function set_caption($caption) + public function set_caption($caption) { $this->caption = $caption; } @@ -242,7 +243,7 @@ class CI_Table { * @param mixed * @return string */ - function generate($table_data = NULL) + public function generate($table_data = NULL) { // The table data can optionally be passed to this function // either as a database result object or an array @@ -254,13 +255,13 @@ class CI_Table { } elseif (is_array($table_data)) { - $set_heading = (count($this->heading) == 0 AND $this->auto_heading == FALSE) ? FALSE : TRUE; + $set_heading = (count($this->heading) === 0 AND $this->auto_heading == FALSE) ? FALSE : TRUE; $this->_set_from_array($table_data, $set_heading); } } // Is there anything to display? No? Smite them! - if (count($this->heading) == 0 AND count($this->rows) == 0) + if (count($this->heading) === 0 AND count($this->rows) === 0) { return 'Undefined table data'; } @@ -273,24 +274,18 @@ class CI_Table { // Build the table! - $out = $this->template['table_open']; - $out .= $this->newline; + $out = $this->template['table_open'].$this->newline; // Add any caption here if ($this->caption) { - $out .= $this->newline; - $out .= '' . $this->caption . ''; - $out .= $this->newline; + $out .= $this->newline.''.$this->caption.''.$this->newline; } // Is there a table heading to display? if (count($this->heading) > 0) { - $out .= $this->template['thead_open']; - $out .= $this->newline; - $out .= $this->template['heading_row_start']; - $out .= $this->newline; + $out .= $this->template['thead_open'].$this->newline.$this->template['heading_row_start'].$this->newline; foreach ($this->heading as $heading) { @@ -304,22 +299,16 @@ class CI_Table { } } - $out .= $temp; - $out .= isset($heading['data']) ? $heading['data'] : ''; - $out .= $this->template['heading_cell_end']; + $out .= $temp.(isset($heading['data']) ? $heading['data'] : '').$this->template['heading_cell_end']; } - $out .= $this->template['heading_row_end']; - $out .= $this->newline; - $out .= $this->template['thead_close']; - $out .= $this->newline; + $out .= $this->template['heading_row_end'].$this->newline.$this->template['thead_close'].$this->newline; } // Build the table rows if (count($this->rows) > 0) { - $out .= $this->template['tbody_open']; - $out .= $this->newline; + $out .= $this->template['tbody_open'].$this->newline; $i = 1; foreach ($this->rows as $row) @@ -332,8 +321,7 @@ class CI_Table { // We use modulus to alternate the row colors $name = (fmod($i++, 2)) ? '' : 'alt_'; - $out .= $this->template['row_'.$name.'start']; - $out .= $this->newline; + $out .= $this->template['row_'.$name.'start'].$this->newline; foreach ($row as $cell) { @@ -341,7 +329,7 @@ class CI_Table { foreach ($cell as $key => $val) { - if ($key != 'data') + if ($key !== 'data') { $temp = str_replace('template['cell_'.$name.'end']; } - $out .= $this->template['row_'.$name.'end']; - $out .= $this->newline; + $out .= $this->template['row_'.$name.'end'].$this->newline; } - $out .= $this->template['tbody_close']; - $out .= $this->newline; + $out .= $this->template['tbody_close'].$this->newline; } $out .= $this->template['table_close']; @@ -393,7 +379,7 @@ class CI_Table { * @access public * @return void */ - function clear() + public function clear() { $this->rows = array(); $this->heading = array(); @@ -405,11 +391,11 @@ class CI_Table { /** * Set table data from a database result object * - * @access public + * @access private * @param object * @return void */ - function _set_from_object($query) + private function _set_from_object($query) { if ( ! is_object($query)) { @@ -417,7 +403,7 @@ class CI_Table { } // First generate the headings from the table column names - if (count($this->heading) == 0) + if (count($this->heading) === 0) { if ( ! method_exists($query, 'list_fields')) { @@ -443,13 +429,13 @@ class CI_Table { /** * Set table data from an array * - * @access public + * @access private * @param array * @return void */ - function _set_from_array($data, $set_heading = TRUE) + private function _set_from_array($data, $set_heading = TRUE) { - if ( ! is_array($data) OR count($data) == 0) + if ( ! is_array($data) OR count($data) === 0) { return FALSE; } @@ -458,7 +444,7 @@ class CI_Table { foreach ($data as $row) { // If a heading hasn't already been set we'll use the first row of the array as the heading - if ($i == 0 AND count($data) > 1 AND count($this->heading) == 0 AND $set_heading == TRUE) + if ($i++ === 0 AND count($data) > 1 AND count($this->heading) === 0 AND $set_heading == TRUE) { $this->heading = $this->_prep_args($row); } @@ -466,8 +452,6 @@ class CI_Table { { $this->rows[] = $this->_prep_args($row); } - - $i++; } } @@ -479,7 +463,7 @@ class CI_Table { * @access private * @return void */ - function _compile_template() + private function _compile_template() { if ($this->template == NULL) { @@ -505,7 +489,7 @@ class CI_Table { * @access private * @return void */ - function _default_template() + private function _default_template() { return array ( 'table_open' => '', @@ -538,6 +522,5 @@ class CI_Table { } - /* End of file Table.php */ /* Location: ./system/libraries/Table.php */ -- cgit v1.2.3-24-g4f1b From 49ddaa3a65e4fcfd362bc8eb57e7fc5f9dbfa42e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 26 Dec 2011 16:54:10 +0200 Subject: Replace private with protected, so the class can be easily extended --- system/libraries/Table.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'system/libraries/Table.php') diff --git a/system/libraries/Table.php b/system/libraries/Table.php index fb410e9fd..9aa467b1a 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -179,11 +179,11 @@ class CI_Table { * * Ensures a standard associative array format for all cell data * - * @access private + * @access protected * @param type * @return type */ - private function _prep_args($args) + protected function _prep_args($args) { // If there is no $args[0], skip this and treat as an associative array // This can happen if there is only a single key, for example this is passed to table->generate @@ -391,11 +391,11 @@ class CI_Table { /** * Set table data from a database result object * - * @access private + * @access protected * @param object * @return void */ - private function _set_from_object($query) + protected function _set_from_object($query) { if ( ! is_object($query)) { @@ -429,11 +429,11 @@ class CI_Table { /** * Set table data from an array * - * @access private + * @access protected * @param array * @return void */ - private function _set_from_array($data, $set_heading = TRUE) + protected function _set_from_array($data, $set_heading = TRUE) { if ( ! is_array($data) OR count($data) === 0) { @@ -460,10 +460,10 @@ class CI_Table { /** * Compile Template * - * @access private + * @access protected * @return void */ - private function _compile_template() + protected function _compile_template() { if ($this->template == NULL) { @@ -486,10 +486,10 @@ class CI_Table { /** * Default Template * - * @access private + * @access protected * @return void */ - private function _default_template() + protected function _default_template() { return array ( 'table_open' => '
', -- cgit v1.2.3-24-g4f1b From 0c82cf5fa2555a28c05d0b64a15f27933a4ab382 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 27 Dec 2011 02:45:56 +0200 Subject: Remove access lines from method descriptions --- system/libraries/Table.php | 13 ------------- 1 file changed, 13 deletions(-) (limited to 'system/libraries/Table.php') diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 9aa467b1a..1851bf3bc 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -59,7 +59,6 @@ class CI_Table { /** * Set the template * - * @access public * @param array * @return void */ @@ -80,7 +79,6 @@ class CI_Table { * * Can be passed as an array or discreet params * - * @access public * @param mixed * @return void */ @@ -98,7 +96,6 @@ class CI_Table { * columns. This allows a single array with many elements to be * displayed in a table that has a fixed column count. * - * @access public * @param array * @param int * @return void @@ -146,7 +143,6 @@ class CI_Table { * * Can be passed as an array or discreet params * - * @access public * @param mixed * @return void */ @@ -162,7 +158,6 @@ class CI_Table { * * Can be passed as an array or discreet params * - * @access public * @param mixed * @return void */ @@ -179,7 +174,6 @@ class CI_Table { * * Ensures a standard associative array format for all cell data * - * @access protected * @param type * @return type */ @@ -225,7 +219,6 @@ class CI_Table { /** * Add a table caption * - * @access public * @param string * @return void */ @@ -239,7 +232,6 @@ class CI_Table { /** * Generate the table * - * @access public * @param mixed * @return string */ @@ -376,7 +368,6 @@ class CI_Table { /** * Clears the table arrays. Useful if multiple tables are being generated * - * @access public * @return void */ public function clear() @@ -391,7 +382,6 @@ class CI_Table { /** * Set table data from a database result object * - * @access protected * @param object * @return void */ @@ -429,7 +419,6 @@ class CI_Table { /** * Set table data from an array * - * @access protected * @param array * @return void */ @@ -460,7 +449,6 @@ class CI_Table { /** * Compile Template * - * @access protected * @return void */ protected function _compile_template() @@ -486,7 +474,6 @@ class CI_Table { /** * Default Template * - * @access protected * @return void */ protected function _default_template() -- cgit v1.2.3-24-g4f1b From 0defe5d33ee2633f377a109519ca818becc60f64 Mon Sep 17 00:00:00 2001 From: Greg Aker Date: Sun, 1 Jan 2012 18:46:41 -0600 Subject: Updating copyright date to 2012 --- system/libraries/Table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'system/libraries/Table.php') diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 1851bf3bc..fb154e50f 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -18,7 +18,7 @@ * * @package CodeIgniter * @author EllisLab Dev Team - * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. (http://ellislab.com/) + * @copyright Copyright (c) 2008 - 2012, EllisLab, Inc. (http://ellislab.com/) * @license http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * @link http://codeigniter.com * @since Version 1.3.1 -- cgit v1.2.3-24-g4f1b