123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * Code for displaying server selection
- *
- * @package PhpMyAdmin
- */
- namespace PhpMyAdmin\Server;
- use PhpMyAdmin\Url;
- use PhpMyAdmin\Util;
- /**
- * PhpMyAdmin\Server\Select class
- *
- * @package PhpMyAdmin
- */
- class Select
- {
- /**
- * Renders the server selection in list or selectbox form, or option tags only
- *
- * @param boolean $not_only_options whether to include form tags or not
- * @param boolean $omit_fieldset whether to omit fieldset tag or not
- *
- * @return string
- */
- public static function render($not_only_options, $omit_fieldset)
- {
- $retval = '';
- // Show as list?
- if ($not_only_options) {
- $list = $GLOBALS['cfg']['DisplayServersList'];
- $not_only_options =! $list;
- } else {
- $list = false;
- }
- if ($not_only_options) {
- $retval .= '<form method="post" action="'
- . Util::getScriptNameForOption(
- $GLOBALS['cfg']['DefaultTabServer'], 'server'
- )
- . '" class="disableAjax">';
- if (! $omit_fieldset) {
- $retval .= '<fieldset>';
- }
- $retval .= Url::getHiddenFields(array());
- $retval .= '<label for="select_server">'
- . __('Current server:') . '</label> ';
- $retval .= '<select name="server" id="select_server" class="autosubmit">';
- $retval .= '<option value="">(' . __('Servers') . ') ...</option>' . "\n";
- } elseif ($list) {
- $retval .= __('Current server:') . '<br />';
- $retval .= '<ul id="list_server">';
- }
- foreach ($GLOBALS['cfg']['Servers'] as $key => $server) {
- if (empty($server['host'])) {
- continue;
- }
- if (!empty($GLOBALS['server']) && (int) $GLOBALS['server'] === (int) $key) {
- $selected = 1;
- } else {
- $selected = 0;
- }
- if (!empty($server['verbose'])) {
- $label = $server['verbose'];
- } else {
- $label = $server['host'];
- if (!empty($server['port'])) {
- $label .= ':' . $server['port'];
- }
- }
- if (! empty($server['only_db'])) {
- if (! is_array($server['only_db'])) {
- $label .= ' - ' . $server['only_db'];
- // try to avoid displaying a too wide selector
- } elseif (count($server['only_db']) < 4) {
- $label .= ' - ' . implode(', ', $server['only_db']);
- }
- }
- if (!empty($server['user']) && $server['auth_type'] == 'config') {
- $label .= ' (' . $server['user'] . ')';
- }
- if ($list) {
- $retval .= '<li>';
- if ($selected) {
- $retval .= '<strong>' . htmlspecialchars($label) . '</strong>';
- } else {
- $retval .= '<a class="disableAjax item" href="'
- . Util::getScriptNameForOption(
- $GLOBALS['cfg']['DefaultTabServer'], 'server'
- )
- . Url::getCommon(array('server' => $key))
- . '" >' . htmlspecialchars($label) . '</a>';
- }
- $retval .= '</li>';
- } else {
- $retval .= '<option value="' . $key . '" '
- . ($selected ? ' selected="selected"' : '') . '>'
- . htmlspecialchars($label) . '</option>' . "\n";
- }
- } // end while
- if ($not_only_options) {
- $retval .= '</select>';
- if (! $omit_fieldset) {
- $retval .= '</fieldset>';
- }
- $retval .= '</form>';
- } elseif ($list) {
- $retval .= '</ul>';
- }
- return $retval;
- }
- }
|