Refactor _setDisplayParts() due to excessive method length

Signed-off-by: Marc Delisle <marc@infomarc.info>
This commit is contained in:
Marc Delisle 2015-05-08 09:44:50 -04:00
parent cfe8a00b1b
commit 52b8aadd74

View File

@ -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 != '') {