databases * @uses $GLOBALS['server'] * @uses $GLOBALS['db'] * @uses $GLOBALS['table'] * @uses $GLOBALS['available_languages'] * @uses $GLOBALS['lang'] * @uses $GLOBALS['text_dir'] * @uses $GLOBALS['charset'] * @uses $GLOBALS['pmaThemeImage'] * @uses $GLOBALS['cfg']['LeftFrameLight'] * @uses $GLOBALS['cfg']['ShowTooltip'] * @uses $GLOBALS['cfg']['ShowTooltipAliasDB'] * @uses $GLOBALS['cfg']['DefaultTabDatabase'] * @uses $GLOBALS['cfgRelation']['commwork']) { * @uses PMA_List_Database::getSingleItem() * @uses PMA_List_Database::getHtmlSelectGrouped() * @uses PMA_List_Database::getGroupedDetails() * @uses PMA_generate_common_url() * @uses PMA_generate_common_hidden_inputs() * @uses PMA_getDbComment(); * @uses PMA_getTableCount() * @uses PMA_getTableList() * @uses PMA_getRelationsParam() * @uses PMA_outBufferPre() * @uses strlen() * @uses session_write_close() * @uses is_array() * @uses implode() * @uses htmlspecialchars() */ /** * Gets a core script and starts output buffering work */ require_once './libraries/common.inc.php'; /** * finish and cleanup navigation.php script execution, only to be used in navigation.php * * @uses $GLOBALS['controllink'] to close it * @uses $GLOBALS['userlink'] to close it * @access private */ function PMA_exitNavigationFrame() { echo ''; exit; } // keep the offset of the db list in session before closing it if (! isset($_SESSION['tmp_user_values']['navi_limit_offset'])) { $_SESSION['tmp_user_values']['navi_limit_offset'] = 0; } if (! isset($_SESSION['tmp_user_values']['table_limit_offset']) || $_SESSION['tmp_user_values']['table_limit_offset_db'] != $db) { $_SESSION['tmp_user_values']['table_limit_offset'] = 0; $_SESSION['tmp_user_values']['table_limit_offset_db'] = $db; } if (isset($_REQUEST['pos'])) { if (isset($_REQUEST['tpos'])) { $_SESSION['tmp_user_values']['table_limit_offset'] = (int) $_REQUEST['pos']; } else { $_SESSION['tmp_user_values']['navi_limit_offset'] = (int) $_REQUEST['pos']; } } $pos = $_SESSION['tmp_user_values']['navi_limit_offset']; $tpos = $_SESSION['tmp_user_values']['table_limit_offset']; // free the session file, for the other frames to be loaded // but only if debugging is not enabled if (empty($_SESSION['debug'])) { session_write_close(); } /** * the output compression library */ require_once './libraries/ob.lib.php'; PMA_outBufferPre(); /* * selects the database if there is only one on current server */ if ($GLOBALS['server'] && ! strlen($GLOBALS['db'])) { $GLOBALS['db'] = $GLOBALS['pma']->databases->getSingleItem(); } $db_start = $GLOBALS['db']; /** * the relation settings */ $cfgRelation = PMA_getRelationsParam(); /** * For re-usability, moved http-headers to a seperate file. * It can now be included by libraries/header.inc.php, querywindow.php. */ require_once './libraries/header_http.inc.php'; /* * Displays the frame */ // xml declaration moves IE into quirks mode, making much trouble with CSS /* echo ''; */ ?> phpMyAdmin databases)) { // no database available, so we break here echo '

' . __('No databases') . '

'; PMA_exitNavigationFrame(); } elseif ($GLOBALS['cfg']['LeftFrameLight'] && count($GLOBALS['pma']->databases) > 1) { ?>
databases->getHtmlListGrouped(true, $_SESSION['tmp_user_values']['navi_limit_offset'], $GLOBALS['cfg']['MaxDbList']) . "\n"; $_url_params = array('pos' => $pos); PMA_listNavigator(count($GLOBALS['pma']->databases), $pos, $_url_params, 'navigation.php', 'frame_navigation', $GLOBALS['cfg']['MaxDbList']); } ?>
'; $img_minus = '-'; $href_left = ''; $element_counter = 0; if ($GLOBALS['cfg']['LeftFrameLight'] && strlen($GLOBALS['db'])) { $table_list = PMA_getTableList($GLOBALS['db'], null, $tpos, $cfg['MaxTableList']); $table_count = PMA_getTableCount($GLOBALS['db']); // show selected databasename as link to DefaultTabDatabase-page // with table count in () $common_url_query = PMA_generate_common_url($GLOBALS['db']); $db_tooltip = ''; if ($GLOBALS['cfg']['ShowTooltip'] && $GLOBALS['cfgRelation']['commwork']) { $_db_tooltip = PMA_getDbComment($GLOBALS['db']); if ($_db_tooltip) { $db_tooltip = $_db_tooltip; } } $disp_name = $GLOBALS['db']; if ($db_tooltip && $GLOBALS['cfg']['ShowTooltipAliasDB']) { $disp_name = $db_tooltip; $disp_name_cut = $db_tooltip; $db_tooltip = $GLOBALS['db']; } if ($table_count >= $GLOBALS['cfg']['LeftDisplayTableFilterMinimum']) { ?> X $GLOBALS['cfg']['MaxTableList']) { $_url_params = array( 'tpos' => 'true', 'pos' => $tpos, 'db' => $GLOBALS['db'] ); PMA_listNavigator($table_count, $tpos, $_url_params, 'navigation.php', 'frame_navigation', $GLOBALS['cfg']['MaxTableList']); } PMA_displayTableList($table_list, true, '', $GLOBALS['db']); // lower table list paginator if (count($table_list) <= $GLOBALS['cfg']['MaxTableList'] && $table_count > $GLOBALS['cfg']['MaxTableList']) { PMA_listNavigator($table_count, $tpos, $_url_params, 'navigation.php', 'frame_navigation', $GLOBALS['cfg']['MaxTableList']); } } else { echo __('No tables found in database.'); } unset($table_list); } elseif ($GLOBALS['cfg']['LeftFrameLight']) { /* No need to tell user to select database if we're showing complete list */ if (!$list) { echo '

' . __('Please select a database') . '

'; } } else { echo '
' . "\n"; $_url_params = array('pos' => $pos); PMA_listNavigator(count($GLOBALS['pma']->databases), $pos, $_url_params, 'navigation.php', 'frame_navigation', $GLOBALS['cfg']['MaxDbList']); echo '
' . "\n"; $common_url_query = PMA_generate_common_url(); PMA_displayDbList($GLOBALS['pma']->databases->getGroupedDetails($_SESSION['tmp_user_values']['navi_limit_offset'],$GLOBALS['cfg']['MaxDbList']), $_SESSION['tmp_user_values']['navi_limit_offset'],$GLOBALS['cfg']['MaxDbList']); } /** * displays collapsable db list * * @uses $_REQUEST['dbgroup'] * @uses $GLOBALS['cfg']['DefaultTabDatabase'] * @uses strpos() * @uses urlencode() * @uses printf() * @uses htmlspecialchars() * @uses PMA_generate_common_url() * @uses PMA_getTableList() * @uses PMA_displayTableList() * @global integer $element_counter * @global string $img_minus * @global string $img_plus * @global string $href_left * @global string $db_start * @global string $common_url_query * @param array $ext_dblist extended db list * @param integer $offset * @param integer $count */ function PMA_displayDbList($ext_dblist, $offset, $count) { global $element_counter, $img_minus, $img_plus, $href_left, $db_start, $common_url_query; // get table list, for all databases // doing this in one step takes advantage of a single query with information_schema! $tables_full = PMA_DBI_get_tables_full($GLOBALS['pma']->databases->getLimitedItems($offset, $count)); $url_dbgroup = ''; echo '
    '; $close_db_group = false; foreach ($ext_dblist as $group => $db_group) { if (count($GLOBALS['pma']->databases) > 1) { if ($close_db_group) { $url_dbgroup = ''; echo '
'; echo ''; $close_db_group = false; } if (count($db_group) > 1) { $close_db_group = true; $url_dbgroup = '&dbgroup=' . urlencode($group); $common_url_query = PMA_generate_common_url() . $url_dbgroup; $element_counter++; echo '
  • '; if ((! empty($_REQUEST['dbgroup']) && $_REQUEST['dbgroup'] == $group) || $db_start == $group || strpos($db_start, $group) === 0) { // display + only if this db(group) is not preselected printf($href_left, $element_counter, PMA_generate_common_url()); printf($img_minus, $element_counter); } else { printf($href_left, $element_counter, $common_url_query); printf($img_plus, $element_counter); } echo ' ' . $group . "\n"; if ((! empty($_REQUEST['dbgroup']) && $_REQUEST['dbgroup'] == $group) || $db_start == $group || strpos($db_start, $group) === 0) { echo '' . "\n"; } /** * display unordered list of tables * calls itself recursively if table in given list * is a list itself * * @uses is_array() * @uses count() * @uses urlencode() * @uses strpos() * @uses printf() * @uses htmlspecialchars() * @uses strlen() * @uses is_array() * @uses PMA_displayTableList() * @uses $_REQUEST['tbl_group'] * @uses $GLOBALS['common_url_query'] * @uses $GLOBALS['table'] * @uses $GLOBALS['pmaThemeImage'] * @uses $GLOBALS['cfg']['LeftFrameTableSeparator'] * @uses $GLOBALS['cfg']['DefaultTabDatabase'] * @uses $GLOBALS['cfg']['DefaultTabTable'] * @global integer the element counter * @global string html code for '-' image * @global string html code for '+' image * @global string html code for self link * @param array $tables array of tables/tablegroups * @param boolean $visible whether the list is visible or not * @param string $tab_group_full full tab group name * @param string $table_db db of this table */ function PMA_displayTableList($tables, $visible = false, $tab_group_full = '', $table_db = '') { if (! is_array($tables) || count($tables) === 0) { return; } global $element_counter, $img_minus, $img_plus, $href_left; $sep = $GLOBALS['cfg']['LeftFrameTableSeparator']; if ($visible) { echo '
      '; } else { echo ''; } echo '
  • ' . "\n"; PMA_exitNavigationFrame(); ?>