Refactor _setDisplayParts() due to excessive method length
Signed-off-by: Marc Delisle <marc@infomarc.info>
This commit is contained in:
parent
cfe8a00b1b
commit
52b8aadd74
@ -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 != '') {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user