From 52b8aadd740bbc8e5cade0fd04a30fa9d200bd98 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Fri, 8 May 2015 09:44:50 -0400 Subject: [PATCH] Refactor _setDisplayParts() due to excessive method length Signed-off-by: Marc Delisle --- libraries/DisplayResults.class.php | 101 +++++++++++++++++------------ 1 file changed, 59 insertions(+), 42 deletions(-) diff --git a/libraries/DisplayResults.class.php b/libraries/DisplayResults.class.php index 7ecec302f3..913da50c8e 100644 --- a/libraries/DisplayResults.class.php +++ b/libraries/DisplayResults.class.php @@ -509,6 +509,63 @@ class PMA_DisplayResults return $displayParts; } + /** + * Defines the parts to display for other statements (probably SELECT) + * + * @param array $displayParts the parts to display + * + * @return array $displayParts the modified display parts + * + * @access private + * + */ + private function _setDisplayPartsForSelect($displayParts) + { + // Other statements (ie "SELECT" ones) -> updates + // $displayParts['edit_lnk'], $displayParts['del_lnk'] and + // $displayParts['text_btn'] (keeps other default values) + + $fields_meta = $this->__get('fields_meta'); + $prev_table = ''; + $displayParts['text_btn'] = (string) '1'; + $number_of_columns = $this->__get('fields_cnt'); + + for ($i = 0; $i < $number_of_columns; $i++) { + + $is_link = ($displayParts['edit_lnk'] != self::NO_EDIT_OR_DELETE) + || ($displayParts['del_lnk'] != self::NO_EDIT_OR_DELETE) + || ($displayParts['sort_lnk'] != '0') + || ($displayParts['ins_row'] != '0'); + + // Displays edit/delete/sort/insert links? + if ($is_link + && $prev_table != '' + && $fields_meta[$i]->table != '' + && $fields_meta[$i]->table != $prev_table + ) { + // don't display links + $displayParts['edit_lnk'] = self::NO_EDIT_OR_DELETE; + $displayParts['del_lnk'] = self::NO_EDIT_OR_DELETE; + /** + * @todo May be problematic with same field names + * in two joined table. + */ + // $displayParts['sort_lnk'] = (string) '0'; + $displayParts['ins_row'] = (string) '0'; + if ($displayParts['text_btn'] == '1') { + break; + } + } // end if + + // Always display print view link + $displayParts['pview_lnk'] = (string) '1'; + if ($fields_meta[$i]->table != '') { + $prev_table = $fields_meta[$i]->table; + } + } // end for + return $displayParts; + } + /** * Defines the parts to display for the results of a SQL query * @@ -535,7 +592,6 @@ class PMA_DisplayResults $table = $this->__get('table'); $unlim_num_rows = $this->__get('unlim_num_rows'); $num_rows = $this->__get('num_rows'); - $fields_meta = $this->__get('fields_meta'); $printview = $this->__get('printview'); // 2. Updates the display parts @@ -551,47 +607,8 @@ class PMA_DisplayResults $displayParts = $this->_setDisplayPartsForShow($displayParts); } else { - // 2.3 Other statements (ie "SELECT" ones) -> updates - // $displayParts['edit_lnk'], $displayParts['del_lnk'] and - // $displayParts['text_btn'] (keeps other default values) - $prev_table = ''; - $displayParts['text_btn'] = (string) '1'; - - for ($i = 0; $i < $this->__get('fields_cnt'); $i++) { - - $is_link = ($displayParts['edit_lnk'] != self::NO_EDIT_OR_DELETE) - || ($displayParts['del_lnk'] != self::NO_EDIT_OR_DELETE) - || ($displayParts['sort_lnk'] != '0') - || ($displayParts['ins_row'] != '0'); - - // 2.3.2 Displays edit/delete/sort/insert links? - if ($is_link - && $prev_table != '' - && $fields_meta[$i]->table != '' - && $fields_meta[$i]->table != $prev_table - ) { - // don't display links - $displayParts['edit_lnk'] = self::NO_EDIT_OR_DELETE; - $displayParts['del_lnk'] = self::NO_EDIT_OR_DELETE; - /** - * @todo May be problematic with same field names - * in two joined table. - */ - // $displayParts['sort_lnk'] = (string) '0'; - $displayParts['ins_row'] = (string) '0'; - if ($displayParts['text_btn'] == '1') { - break; - } - } // end if (2.3.2) - - // 2.3.3 Always display print view link - $displayParts['pview_lnk'] = (string) '1'; - if ($fields_meta[$i]->table != '') { - $prev_table = $fields_meta[$i]->table; - } - - } // end for - } // end if..elseif...else (2.1 -> 2.3) + $displayParts = $this->_setDisplayPartsForSelect($displayParts); + } // end if..elseif...else // 3. Gets the total number of rows if it is unknown if (isset($unlim_num_rows) && $unlim_num_rows != '') {