diff --git a/libraries/browse_foreigners.lib.php b/libraries/browse_foreigners.lib.php index c47ca23bbd..9a384c0013 100644 --- a/libraries/browse_foreigners.lib.php +++ b/libraries/browse_foreigners.lib.php @@ -9,20 +9,104 @@ if (! defined('PHPMYADMIN')) { exit; } +/** + * Function to get html for one relational key + * + * @param integer $horizontal_count the current horizontal count + * @param string $header table header + * @param boolean $odd_row for the row background color + * @param array $keys all the keys + * @param integer $indexByKeyname index by keyname + * @param array $descriptions descriptions + * @param integer $indexByDescription index by description + * @param string $current_value current value on the edit form + * + * @return string $html the generated html + */ +function PMA_getHtmlForOneKey($horizontal_count, $header, $odd_row, $keys, + $indexByKeyname, $descriptions, $indexByDescription, $current_value +) { + $horizontal_count++; + $output = ''; + + if ($GLOBALS['cfg']['RepeatCells'] > 0 + && $horizontal_count > $GLOBALS['cfg']['RepeatCells'] + ) { + $output .= $header; + $horizontal_count = 0; + $odd_row = true; + } + + // key names and descriptions for the left section, + // sorted by key names + $leftKeyname = $keys[$indexByKeyname]; + list( + $leftDescription, + $leftDescriptionTitle + ) = PMA_getDescriptionAndTitle($descriptions[$indexByKeyname]); + + // key names and descriptions for the right section, + // sorted by descriptions + $rightKeyname = $keys[$indexByDescription]; + list( + $rightDescription, + $rightDescriptionTitle + ) = PMA_getDescriptionAndTitle($descriptions[$indexByDescription]); + + $indexByDescription++; + + if (! empty($current_value)) { + $rightKeynameIsSelected = $rightKeyname == $current_value; + $leftKeynameIsSelected = $leftKeyname == $current_value; + } + + $output .= ''; + $odd_row = ! $odd_row; + + $output .= PMA_getHtmlForColumnElement( + 'class="nowrap"', $leftKeynameIsSelected, + $leftKeyname, $leftDescription, + $leftDescriptionTitle + ); + + $output .= PMA_getHtmlForColumnElement( + '', $leftKeynameIsSelected, $leftKeyname, + $leftDescription, $leftDescriptionTitle + ); + + $output .= '' + . ''; + + $output .= PMA_getHtmlForColumnElement( + '', $rightKeynameIsSelected, $rightKeyname, + $rightDescription, $rightDescriptionTitle + ); + + $output .= PMA_getHtmlForColumnElement( + 'class="nowrap"', $rightKeynameIsSelected, + $rightKeyname, $rightDescription, + $rightDescriptionTitle + ); + $output .= ''; + + return array($output, $horizontal_count, $odd_row, $indexByDescription); +} + /** * Function to get html for relational field selection * - * @param string $db current database - * @param string $table current table - * @param string $field field - * @param array $foreignData foreign column data - * @param string $fieldkey field key - * @param array $data data + * @param string $db current database + * @param string $table current table + * @param string $field field + * @param array $foreignData foreign column data + * @param string $fieldkey field key + * @param array $current_value current columns's value * * @return string */ function PMA_getHtmlForRelationalFieldSelection($db, $table, $field, $foreignData, - $fieldkey, $data + $fieldkey, $current_value ) { $gotopage = PMA_getHtmlForGotoPage($foreignData); $showall = PMA_getHtmlForShowAll($foreignData); @@ -93,7 +177,7 @@ function PMA_getHtmlForRelationalFieldSelection($db, $table, $field, $foreignDat asort($keys); - $hcount = 0; + $horizontal_count = 0; $odd_row = true; $indexByDescription = 0; @@ -102,69 +186,18 @@ function PMA_getHtmlForRelationalFieldSelection($db, $table, $field, $foreignDat $leftKeynameIsSelected = false; foreach ($keys as $indexByKeyname => $value) { - $hcount++; - - if ($GLOBALS['cfg']['RepeatCells'] > 0 - && $hcount > $GLOBALS['cfg']['RepeatCells'] - ) { - $output .= $header; - $hcount = 0; - $odd_row = true; - } - - // key names and descriptions for the left section, - // sorted by key names - $leftKeyname = $keys[$indexByKeyname]; list( - $leftDescription, - $leftDescriptionTitle - ) = PMA_getDescriptionAndTitle($descriptions[$indexByKeyname]); - - // key names and descriptions for the right section, - // sorted by descriptions - $rightKeyname = $keys[$indexByDescription]; - list( - $rightDescription, - $rightDescriptionTitle - ) = PMA_getDescriptionAndTitle($descriptions[$indexByDescription]); - - $indexByDescription++; - - if (! empty($data)) { - $rightKeynameIsSelected = $rightKeyname == $data; - $leftKeynameIsSelected = $leftKeyname == $data; - } - - $output .= ''; - $odd_row = ! $odd_row; - - $output .= PMA_getHtmlForColumnElement( - 'class="nowrap"', $leftKeynameIsSelected, - $leftKeyname, $leftDescription, - $leftDescriptionTitle + $html, + $horizontal_count, + $odd_row, + $indexByDescription + ) = PMA_getHtmlForOneKey( + $horizontal_count, $header, $odd_row, $keys, $indexByKeyname, + $descriptions, $indexByDescription, $current_value ); + $output .= $html; + } - $output .= PMA_getHtmlForColumnElement( - '', $leftKeynameIsSelected, $leftKeyname, - $leftDescription, $leftDescriptionTitle - ); - - $output .= '' - . ''; - - $output .= PMA_getHtmlForColumnElement( - '', $rightKeynameIsSelected, $rightKeyname, - $rightDescription, $rightDescriptionTitle - ); - - $output .= PMA_getHtmlForColumnElement( - 'class="nowrap"', $rightKeynameIsSelected, - $rightKeyname, $rightDescription, - $rightDescriptionTitle - ); - $output .= ''; - } // end while $output .= '' . '';