Merge branch 'master' of github.com:phpmyadmin/phpmyadmin
This commit is contained in:
commit
04658827ec
@ -1916,6 +1916,7 @@ Languages
|
||||
recode)
|
||||
* iconv - use iconv or libiconv functions
|
||||
* recode - use recode\_string function
|
||||
* mb - use mbstring extension
|
||||
* none - disable encoding conversion
|
||||
|
||||
Enabled charset conversion activates a pull-down menu in the Export
|
||||
|
||||
@ -324,7 +324,7 @@ function PMA_exportOutputHandler($line)
|
||||
) {
|
||||
$dump_buffer = bzcompress($dump_buffer);
|
||||
} elseif ($GLOBALS['compression'] == 'gzip'
|
||||
&& PMA_gzencodeNeeded()
|
||||
&& PMA_gzencodeNeeded()
|
||||
) {
|
||||
// as a gzipped file
|
||||
// without the optional parameter level because it bugs
|
||||
|
||||
@ -575,7 +575,7 @@ if (file_exists('libraries/language_stats.inc.php')) {
|
||||
&& $GLOBALS['language_stats'][$lang] < $cfg['TranslationWarningThreshold']
|
||||
) {
|
||||
trigger_error(
|
||||
'You are using an incomplete translation, please help to make it better by <a href="http://www.phpmyadmin.net/home_page/improve.php#translate" target="_blank">contributing</a>.',
|
||||
'You are using an incomplete translation, please help to make it better by [a@http://www.phpmyadmin.net/home_page/improve.php#translate@_blank]contributing[/a].',
|
||||
E_USER_NOTICE
|
||||
);
|
||||
}
|
||||
|
||||
@ -39,8 +39,8 @@ class Advisor
|
||||
$this->variables = array_merge(
|
||||
$this->variables,
|
||||
$GLOBALS['dbi']->fetchResult(
|
||||
"SELECT concat('Com_', variable_name), variable_value "
|
||||
. "FROM data_dictionary.GLOBAL_STATEMENTS", 0, 1
|
||||
"SELECT concat('Com_', variable_name), variable_value "
|
||||
. "FROM data_dictionary.GLOBAL_STATEMENTS", 0, 1
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -257,43 +257,7 @@ class PMA_DatabaseInterface
|
||||
$encoding = 'CP1252';
|
||||
}
|
||||
|
||||
if (function_exists('iconv')) {
|
||||
if ((@stristr(PHP_OS, 'AIX'))
|
||||
&& (@strcasecmp(ICONV_IMPL, 'unknown') == 0)
|
||||
&& (@strcasecmp(ICONV_VERSION, 'unknown') == 0)
|
||||
) {
|
||||
include_once './libraries/iconv_wrapper.lib.php';
|
||||
$message = PMA_aix_iconv_wrapper(
|
||||
$encoding,
|
||||
'utf-8' . $GLOBALS['cfg']['IconvExtraParams'],
|
||||
$message
|
||||
);
|
||||
} else {
|
||||
$message = iconv(
|
||||
$encoding,
|
||||
'utf-8' . $GLOBALS['cfg']['IconvExtraParams'],
|
||||
$message
|
||||
);
|
||||
}
|
||||
} elseif (function_exists('recode_string')) {
|
||||
$message = recode_string(
|
||||
$encoding . '..' . 'utf-8',
|
||||
$message
|
||||
);
|
||||
} elseif (function_exists('libiconv')) {
|
||||
$message = libiconv($encoding, 'utf-8', $message);
|
||||
} elseif (function_exists('mb_convert_encoding')) {
|
||||
// do not try unsupported charsets
|
||||
if (! in_array($server_language, array('ukrainian', 'greek', 'serbian'))) {
|
||||
$message = mb_convert_encoding(
|
||||
$message,
|
||||
'utf-8',
|
||||
$encoding
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $message;
|
||||
return PMA_convertString($encoding, 'utf-8', $message);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -619,7 +583,8 @@ class PMA_DatabaseInterface
|
||||
$each_tables[$table_name]['Type']
|
||||
=& $each_tables[$table_name]['Engine'];
|
||||
} elseif (! isset($each_tables[$table_name]['Engine'])
|
||||
&& isset($each_tables[$table_name]['Type'])) {
|
||||
&& isset($each_tables[$table_name]['Type'])
|
||||
) {
|
||||
// old MySQL reports Type, newer MySQL reports Engine
|
||||
$each_tables[$table_name]['Engine']
|
||||
=& $each_tables[$table_name]['Type'];
|
||||
|
||||
@ -881,9 +881,9 @@ class PMA_DisplayResults
|
||||
* Prepare fields for table navigation
|
||||
* Number of rows
|
||||
*
|
||||
* @param string $html_sql_query the sql encoded by html special
|
||||
* characters
|
||||
* @param string $id_for_direction_dropdown the id for the direction dropdown
|
||||
* @param string $html_sql_query the sql encoded by html special
|
||||
* characters
|
||||
* @param string $id_for_direction_dropdown the id for the direction dropdown
|
||||
*
|
||||
* @return string $additional_fields_html html content
|
||||
*
|
||||
@ -4212,9 +4212,9 @@ class PMA_DisplayResults
|
||||
{
|
||||
|
||||
$sql_md5 = md5($this->__get('sql_query'));
|
||||
$query = $_SESSION['tmp_user_values']['query'][$sql_md5];
|
||||
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['sql']
|
||||
= $this->__get('sql_query');
|
||||
$query['sql'] = $this->__get('sql_query');
|
||||
|
||||
$valid_disp_dir = PMA_isValid(
|
||||
$_REQUEST['disp_direction'],
|
||||
@ -4224,45 +4224,33 @@ class PMA_DisplayResults
|
||||
);
|
||||
|
||||
if ($valid_disp_dir) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['disp_direction']
|
||||
= $_REQUEST['disp_direction'];
|
||||
$query['disp_direction'] = $_REQUEST['disp_direction'];
|
||||
unset($_REQUEST['disp_direction']);
|
||||
} elseif (
|
||||
empty($_SESSION['tmp_user_values']['query'][$sql_md5]['disp_direction'])
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['disp_direction']
|
||||
= $GLOBALS['cfg']['DefaultDisplay'];
|
||||
} elseif (empty($query['disp_direction'])) {
|
||||
$query['disp_direction'] = $GLOBALS['cfg']['DefaultDisplay'];
|
||||
}
|
||||
|
||||
if (
|
||||
empty($_SESSION['tmp_user_values']['query'][$sql_md5]['repeat_cells'])
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['repeat_cells']
|
||||
= $GLOBALS['cfg']['RepeatCells'];
|
||||
if (empty($query['repeat_cells'])) {
|
||||
$query['repeat_cells'] = $GLOBALS['cfg']['RepeatCells'];
|
||||
}
|
||||
|
||||
// as this is a form value, the type is always string so we cannot
|
||||
// use PMA_isValid($_REQUEST['session_max_rows'], 'integer')
|
||||
if ((PMA_isValid($_REQUEST['session_max_rows'], 'numeric')
|
||||
&& ((int) $_REQUEST['session_max_rows'] == $_REQUEST['session_max_rows']))
|
||||
|| ($_REQUEST['session_max_rows'] == self::ALL_ROWS)
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['max_rows']
|
||||
= $_REQUEST['session_max_rows'];
|
||||
if (PMA_isValid($_REQUEST['session_max_rows'], 'numeric')) {
|
||||
$query['max_rows'] = (int)$_REQUEST['session_max_rows'];
|
||||
unset($_REQUEST['session_max_rows']);
|
||||
} elseif (
|
||||
empty($_SESSION['tmp_user_values']['query'][$sql_md5]['max_rows'])
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['max_rows']
|
||||
= $GLOBALS['cfg']['MaxRows'];
|
||||
} elseif ($_REQUEST['session_max_rows'] == self::ALL_ROWS) {
|
||||
$query['max_rows'] = self::ALL_ROWS;
|
||||
unset($_REQUEST['session_max_rows']);
|
||||
} elseif (empty($query['max_rows'])) {
|
||||
$query['max_rows'] = $GLOBALS['cfg']['MaxRows'];
|
||||
}
|
||||
|
||||
if (PMA_isValid($_REQUEST['pos'], 'numeric')) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['pos']
|
||||
= $_REQUEST['pos'];
|
||||
$query['pos'] = $_REQUEST['pos'];
|
||||
unset($_REQUEST['pos']);
|
||||
} elseif (empty($_SESSION['tmp_user_values']['query'][$sql_md5]['pos'])) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['pos'] = 0;
|
||||
} elseif (empty($query['pos'])) {
|
||||
$query['pos'] = 0;
|
||||
}
|
||||
|
||||
if (PMA_isValid(
|
||||
@ -4272,14 +4260,10 @@ class PMA_DisplayResults
|
||||
)
|
||||
)
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['display_text']
|
||||
= $_REQUEST['display_text'];
|
||||
$query['display_text'] = $_REQUEST['display_text'];
|
||||
unset($_REQUEST['display_text']);
|
||||
} elseif (
|
||||
empty($_SESSION['tmp_user_values']['query'][$sql_md5]['display_text'])
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['display_text']
|
||||
= self::DISPLAY_PARTIAL_TEXT;
|
||||
} elseif (empty($query['display_text'])) {
|
||||
$query['display_text'] = self::DISPLAY_PARTIAL_TEXT;
|
||||
}
|
||||
|
||||
if (PMA_isValid(
|
||||
@ -4289,16 +4273,10 @@ class PMA_DisplayResults
|
||||
)
|
||||
)
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['relational_display']
|
||||
= $_REQUEST['relational_display'];
|
||||
$query['relational_display'] = $_REQUEST['relational_display'];
|
||||
unset($_REQUEST['relational_display']);
|
||||
} elseif (
|
||||
empty(
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['relational_display']
|
||||
)
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['relational_display']
|
||||
= self::RELATIONAL_KEY;
|
||||
} elseif (empty($query['relational_display'])) {
|
||||
$query['relational_display'] = self::RELATIONAL_KEY;
|
||||
}
|
||||
|
||||
if (PMA_isValid(
|
||||
@ -4309,42 +4287,33 @@ class PMA_DisplayResults
|
||||
)
|
||||
)
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['geometry_display']
|
||||
= $_REQUEST['geometry_display'];
|
||||
$query['geometry_display'] = $_REQUEST['geometry_display'];
|
||||
unset($_REQUEST['geometry_display']);
|
||||
} elseif (
|
||||
empty(
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['geometry_display']
|
||||
)
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['geometry_display']
|
||||
= self::GEOMETRY_DISP_GEOM;
|
||||
} elseif (empty($query['geometry_display'])) {
|
||||
$query['geometry_display'] = self::GEOMETRY_DISP_GEOM;
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['display_binary'])) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['display_binary'] = true;
|
||||
$query['display_binary'] = true;
|
||||
unset($_REQUEST['display_binary']);
|
||||
} elseif (isset($_REQUEST['display_options_form'])) {
|
||||
// we know that the checkbox was unchecked
|
||||
unset($_SESSION['tmp_user_values']['query'][$sql_md5]['display_binary']);
|
||||
unset($query['display_binary']);
|
||||
} elseif (isset($_REQUEST['full_text_button'])) {
|
||||
// do nothing to keep the value that is there in the session
|
||||
} else {
|
||||
// selected by default because some operations like OPTIMIZE TABLE
|
||||
// and all queries involving functions return "binary" contents,
|
||||
// according to low-level field flags
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['display_binary'] = true;
|
||||
$query['display_binary'] = true;
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['display_binary_as_hex'])) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['display_binary_as_hex']
|
||||
= true;
|
||||
$query['display_binary_as_hex'] = true;
|
||||
unset($_REQUEST['display_binary_as_hex']);
|
||||
} elseif (isset($_REQUEST['display_options_form'])) {
|
||||
// we know that the checkbox was unchecked
|
||||
unset($_SESSION['tmp_user_values']['query'][$sql_md5]
|
||||
['display_binary_as_hex']
|
||||
);
|
||||
unset($query['display_binary_as_hex']);
|
||||
} elseif (isset($_REQUEST['full_text_button'])) {
|
||||
// do nothing to keep the value that is there in the session
|
||||
} else {
|
||||
@ -4352,36 +4321,31 @@ class PMA_DisplayResults
|
||||
if (isset($GLOBALS['cfg']['DisplayBinaryAsHex'])
|
||||
&& ($GLOBALS['cfg']['DisplayBinaryAsHex'] === true)
|
||||
) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]
|
||||
['display_binary_as_hex'] = true;
|
||||
$query['display_binary_as_hex'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['display_blob'])) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['display_blob'] = true;
|
||||
$query['display_blob'] = true;
|
||||
unset($_REQUEST['display_blob']);
|
||||
} elseif (isset($_REQUEST['display_options_form'])) {
|
||||
// we know that the checkbox was unchecked
|
||||
unset($_SESSION['tmp_user_values']['query'][$sql_md5]['display_blob']);
|
||||
unset($query['display_blob']);
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['hide_transformation'])) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['hide_transformation']
|
||||
= true;
|
||||
$query['hide_transformation'] = true;
|
||||
unset($_REQUEST['hide_transformation']);
|
||||
} elseif (isset($_REQUEST['display_options_form'])) {
|
||||
// we know that the checkbox was unchecked
|
||||
unset($_SESSION['tmp_user_values']['query'][$sql_md5]
|
||||
['hide_transformation']
|
||||
);
|
||||
unset($query['hide_transformation']);
|
||||
}
|
||||
|
||||
// move current query to the last position, to be removed last
|
||||
// so only least executed query will be removed if maximum remembered queries
|
||||
// limit is reached
|
||||
$tmp = $_SESSION['tmp_user_values']['query'][$sql_md5];
|
||||
// so only least executed query will be removed if maximum remembered
|
||||
// queries limit is reached
|
||||
unset($_SESSION['tmp_user_values']['query'][$sql_md5]);
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5] = $tmp;
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5] = $query;
|
||||
|
||||
// do not exceed a maximum number of queries to remember
|
||||
if (count($_SESSION['tmp_user_values']['query']) > 10) {
|
||||
@ -4391,41 +4355,31 @@ class PMA_DisplayResults
|
||||
|
||||
// populate query configuration
|
||||
$_SESSION['tmp_user_values']['display_text']
|
||||
= $_SESSION['tmp_user_values']['query'][$sql_md5]['display_text'];
|
||||
= $query['display_text'];
|
||||
$_SESSION['tmp_user_values']['relational_display']
|
||||
= $_SESSION['tmp_user_values']['query'][$sql_md5]['relational_display'];
|
||||
= $query['relational_display'];
|
||||
$_SESSION['tmp_user_values']['geometry_display']
|
||||
= $_SESSION['tmp_user_values']['query'][$sql_md5]['geometry_display'];
|
||||
$_SESSION['tmp_user_values']['display_binary']
|
||||
= isset($_SESSION['tmp_user_values']['query'][$sql_md5]
|
||||
['display_binary']
|
||||
)
|
||||
? true
|
||||
: false;
|
||||
$_SESSION['tmp_user_values']['display_binary_as_hex']
|
||||
= isset($_SESSION['tmp_user_values']['query'][$sql_md5]
|
||||
['display_binary_as_hex']
|
||||
)
|
||||
? true
|
||||
: false;
|
||||
$_SESSION['tmp_user_values']['display_blob']
|
||||
= isset($_SESSION['tmp_user_values']['query'][$sql_md5]['display_blob'])
|
||||
? true
|
||||
: false;
|
||||
$_SESSION['tmp_user_values']['hide_transformation']
|
||||
= isset($_SESSION['tmp_user_values']['query'][$sql_md5]
|
||||
['hide_transformation']
|
||||
)
|
||||
? true
|
||||
: false;
|
||||
= $query['geometry_display'];
|
||||
$_SESSION['tmp_user_values']['display_binary'] = isset(
|
||||
$query['display_binary']
|
||||
);
|
||||
$_SESSION['tmp_user_values']['display_binary_as_hex'] = isset(
|
||||
$query['display_binary_as_hex']
|
||||
);
|
||||
$_SESSION['tmp_user_values']['display_blob'] = isset(
|
||||
$query['display_blob']
|
||||
);
|
||||
$_SESSION['tmp_user_values']['hide_transformation'] = isset(
|
||||
$query['hide_transformation']
|
||||
);
|
||||
$_SESSION['tmp_user_values']['pos']
|
||||
= $_SESSION['tmp_user_values']['query'][$sql_md5]['pos'];
|
||||
= $query['pos'];
|
||||
$_SESSION['tmp_user_values']['max_rows']
|
||||
= $_SESSION['tmp_user_values']['query'][$sql_md5]['max_rows'];
|
||||
= $query['max_rows'];
|
||||
$_SESSION['tmp_user_values']['repeat_cells']
|
||||
= $_SESSION['tmp_user_values']['query'][$sql_md5]['repeat_cells'];
|
||||
= $query['repeat_cells'];
|
||||
$_SESSION['tmp_user_values']['disp_direction']
|
||||
= $_SESSION['tmp_user_values']['query'][$sql_md5]['disp_direction'];
|
||||
= $query['disp_direction'];
|
||||
|
||||
}
|
||||
|
||||
@ -4447,7 +4401,8 @@ class PMA_DisplayResults
|
||||
* @see sql.php file
|
||||
*/
|
||||
public function getTable(
|
||||
&$dt_result, &$the_disp_mode, $analyzed_sql, $is_limited_display = false
|
||||
&$dt_result, &$the_disp_mode, $analyzed_sql,
|
||||
$is_limited_display = false
|
||||
) {
|
||||
|
||||
$table_html = '';
|
||||
|
||||
@ -247,7 +247,7 @@ class PMA_File
|
||||
* Loads uploaded file from table change request.
|
||||
*
|
||||
* @param string $key the md5 hash of the column name
|
||||
* @param string $rownumber
|
||||
* @param string $rownumber number of row to process
|
||||
*
|
||||
* @return boolean success
|
||||
* @access public
|
||||
@ -320,8 +320,8 @@ class PMA_File
|
||||
* </code>
|
||||
*
|
||||
* @param array $file the array
|
||||
* @param string $rownumber
|
||||
* @param string $key
|
||||
* @param string $rownumber number of row to process
|
||||
* @param string $key key to process
|
||||
*
|
||||
* @return array
|
||||
* @access public
|
||||
@ -345,7 +345,7 @@ class PMA_File
|
||||
* sets the name if the file to the one selected in the tbl_change form
|
||||
*
|
||||
* @param string $key the md5 hash of the column name
|
||||
* @param string $rownumber
|
||||
* @param string $rownumber number of row to process
|
||||
*
|
||||
* @return boolean success
|
||||
* @access public
|
||||
@ -391,7 +391,7 @@ class PMA_File
|
||||
* and uses the submitted/selected file
|
||||
*
|
||||
* @param string $key the md5 hash of the column name
|
||||
* @param string $rownumber
|
||||
* @param string $rownumber number of row to process
|
||||
*
|
||||
* @return boolean success
|
||||
* @access public
|
||||
@ -791,7 +791,8 @@ class PMA_File
|
||||
$result = substr($result, 3);
|
||||
// UTF-16 BE, LE
|
||||
} elseif (strncmp($result, "\xFE\xFF", 2) == 0
|
||||
|| strncmp($result, "\xFF\xFE", 2) == 0) {
|
||||
|| strncmp($result, "\xFF\xFE", 2) == 0
|
||||
) {
|
||||
$result = substr($result, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -540,7 +540,9 @@ class PMA_Header
|
||||
$retval = '<meta charset="utf-8" />';
|
||||
$retval .= '<meta name="robots" content="noindex,nofollow" />';
|
||||
$retval .= '<meta http-equiv="X-UA-Compatible" content="IE=Edge">';
|
||||
$retval .= '<style>html{display: none;}</style>';
|
||||
if (! $GLOBALS['cfg']['AllowThirdPartyFraming']) {
|
||||
$retval .= '<style>html{display: none;}</style>';
|
||||
}
|
||||
return $retval;
|
||||
}
|
||||
|
||||
|
||||
@ -62,7 +62,7 @@ class PMA_ServerStatusData
|
||||
$server_status = $GLOBALS['dbi']->fetchResult('SHOW GLOBAL STATUS', 0, 1);
|
||||
if (PMA_DRIZZLE) {
|
||||
// Drizzle doesn't put query statistics into variables, add it
|
||||
$sql = "SELECT concat('Com_', variable_name), variable_value "
|
||||
$sql = "SELECT concat('Com_', variable_name), variable_value "
|
||||
. "FROM data_dictionary.GLOBAL_STATEMENTS";
|
||||
$statements = $GLOBALS['dbi']->fetchResult($sql, 0, 1);
|
||||
$server_status = array_merge($server_status, $statements);
|
||||
@ -93,7 +93,8 @@ class PMA_ServerStatusData
|
||||
/ $server_variables['key_buffer_size']
|
||||
* 100;
|
||||
} elseif (isset($server_status['Key_blocks_used'])
|
||||
&& isset($server_variables['key_buffer_size'])) {
|
||||
&& isset($server_variables['key_buffer_size'])
|
||||
) {
|
||||
$server_status['Key_buffer_fraction_%']
|
||||
= $server_status['Key_blocks_used']
|
||||
* 1024
|
||||
|
||||
@ -1378,10 +1378,10 @@ EOT;
|
||||
/**
|
||||
* Replaces a given string in a column with a give replacement
|
||||
*
|
||||
* @param int $columnIndex index of the column
|
||||
* @param string $find string to find in the column
|
||||
* @param string $replaceWith string to replace with
|
||||
* @param string $charSet character set of the connection
|
||||
* @param int $columnIndex index of the column
|
||||
* @param string $find string to find in the column
|
||||
* @param string $replaceWith string to replace with
|
||||
* @param string $charSet character set of the connection
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
@ -1116,7 +1116,8 @@ class PMA_Util
|
||||
)
|
||||
);
|
||||
} elseif (! empty($GLOBALS['parsed_sql'])
|
||||
&& $query_base == $GLOBALS['parsed_sql']['raw']) {
|
||||
&& $query_base == $GLOBALS['parsed_sql']['raw']
|
||||
) {
|
||||
// (here, use "! empty" because when deleting a bookmark,
|
||||
// $GLOBALS['parsed_sql'] is set but empty
|
||||
$parsed_sql = $GLOBALS['parsed_sql'];
|
||||
@ -1743,7 +1744,8 @@ class PMA_Util
|
||||
) {
|
||||
$tab['class'] = 'active';
|
||||
} elseif (is_null($tab['active']) && empty($GLOBALS['active_page'])
|
||||
&& (basename($GLOBALS['PMA_PHP_SELF']) == $tab['link'])) {
|
||||
&& (basename($GLOBALS['PMA_PHP_SELF']) == $tab['link'])
|
||||
) {
|
||||
$tab['class'] = 'active';
|
||||
}
|
||||
}
|
||||
@ -2229,8 +2231,8 @@ class PMA_Util
|
||||
$con_val = '= ' . $row[$i];
|
||||
} elseif ((($meta->type == 'blob') || ($meta->type == 'string'))
|
||||
// hexify only if this is a true not empty BLOB or a BINARY
|
||||
&& stristr($field_flags, 'BINARY')
|
||||
&& ! empty($row[$i])
|
||||
&& stristr($field_flags, 'BINARY')
|
||||
&& ! empty($row[$i])
|
||||
) {
|
||||
// do not waste memory building a too big condition
|
||||
if (strlen($row[$i]) < 1000) {
|
||||
@ -4264,24 +4266,16 @@ class PMA_Util
|
||||
}
|
||||
}
|
||||
|
||||
if ($save) {
|
||||
$_SESSION['cache']['version_check'] = array(
|
||||
'response' => $response,
|
||||
'timestamp' => time()
|
||||
);
|
||||
}
|
||||
|
||||
$data = json_decode($response);
|
||||
if (is_object($data)
|
||||
&& strlen($data->version)
|
||||
&& strlen($data->date)
|
||||
&& $save
|
||||
) {
|
||||
if ($save) {
|
||||
$_SESSION['cache']['version_check'] = array(
|
||||
'response' => $response,
|
||||
'timestamp' => time()
|
||||
);
|
||||
}
|
||||
$_SESSION['cache']['version_check'] = array(
|
||||
'response' => $response,
|
||||
'timestamp' => time()
|
||||
);
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
||||
@ -13,6 +13,7 @@ define('PMA_CHARSET_NONE', 0);
|
||||
define('PMA_CHARSET_ICONV', 1);
|
||||
define('PMA_CHARSET_RECODE', 2);
|
||||
define('PMA_CHARSET_ICONV_AIX', 3);
|
||||
define('PMA_CHARSET_MB', 4);
|
||||
|
||||
if (! isset($GLOBALS['cfg']['RecodingEngine'])) {
|
||||
$GLOBALS['cfg']['RecodingEngine'] = '';
|
||||
@ -39,6 +40,13 @@ if ($GLOBALS['cfg']['RecodingEngine'] == 'iconv') {
|
||||
$PMA_recoding_engine = PMA_CHARSET_NONE;
|
||||
PMA_warnMissingExtension('recode');
|
||||
}
|
||||
} elseif ($GLOBALS['cfg']['RecodingEngine'] == 'mb') {
|
||||
if (@function_exists('mb_convert_encoding')) {
|
||||
$PMA_recoding_engine = PMA_CHARSET_MB;
|
||||
} else {
|
||||
$PMA_recoding_engine = PMA_CHARSET_NONE;
|
||||
PMA_warnMissingExtension('mbstring');
|
||||
}
|
||||
} elseif ($GLOBALS['cfg']['RecodingEngine'] == 'auto') {
|
||||
if (@function_exists('iconv')) {
|
||||
if ((@stristr(PHP_OS, 'AIX'))
|
||||
@ -51,6 +59,8 @@ if ($GLOBALS['cfg']['RecodingEngine'] == 'iconv') {
|
||||
}
|
||||
} elseif (@function_exists('recode_string')) {
|
||||
$PMA_recoding_engine = PMA_CHARSET_RECODE;
|
||||
} elseif (@function_exists('mb_convert_encoding')) {
|
||||
$PMA_recoding_engine = PMA_CHARSET_MB;
|
||||
} else {
|
||||
$PMA_recoding_engine = PMA_CHARSET_NONE;
|
||||
}
|
||||
@ -89,9 +99,13 @@ function PMA_convertString($src_charset, $dest_charset, $what)
|
||||
$src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $what
|
||||
);
|
||||
case PMA_CHARSET_ICONV_AIX:
|
||||
return PMA_aix_iconv_wrapper(
|
||||
return PMA_convertAIXIconv(
|
||||
$src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $what
|
||||
);
|
||||
case PMA_CHARSET_MB:
|
||||
return mb_convert_encoding(
|
||||
$message, $dest_charset, $src_charset
|
||||
);
|
||||
default:
|
||||
return $what;
|
||||
}
|
||||
|
||||
@ -2325,6 +2325,7 @@ $cfg['FilterLanguages'] = '';
|
||||
* recode)
|
||||
* iconv - use iconv or libiconv functions
|
||||
* recode - use recode_string function
|
||||
* mb - use mbstring extension
|
||||
* none - disable encoding conversion
|
||||
*
|
||||
* @global string $cfg['RecodingEngine']
|
||||
|
||||
@ -32,7 +32,7 @@ $cfg_db['Servers'] = array(
|
||||
'only_db' => 'array'
|
||||
)
|
||||
);
|
||||
$cfg_db['RecodingEngine'] = array('auto', 'iconv', 'recode', 'none');
|
||||
$cfg_db['RecodingEngine'] = array('auto', 'iconv', 'recode', 'mb', 'none');
|
||||
$cfg_db['OBGzip'] = array('auto', true, false);
|
||||
$cfg_db['MemoryLimit'] = 'short_string';
|
||||
$cfg_db['NavigationLogoLinkWindow'] = array('main', 'new');
|
||||
|
||||
@ -47,8 +47,8 @@ class Form
|
||||
/**
|
||||
* Constructor, reads default config values
|
||||
*
|
||||
* @param string $form_name
|
||||
* @param array $form
|
||||
* @param string $form_name Form name
|
||||
* @param array $form Form data
|
||||
* @param int $index arbitrary index, stored in Form::$index
|
||||
*/
|
||||
public function __construct($form_name, array $form, $index = null)
|
||||
|
||||
@ -459,8 +459,8 @@ class FormDisplay
|
||||
/**
|
||||
* Validates select field and casts $value to correct type
|
||||
*
|
||||
* @param string $value
|
||||
* @param array $allowed
|
||||
* @param string &$value Current value
|
||||
* @param array $allowed List of allowed values
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
@ -743,8 +743,8 @@ class FormDisplay
|
||||
/**
|
||||
* Sets field comments and warnings based on current environment
|
||||
*
|
||||
* @param string $system_path
|
||||
* @param array $opts
|
||||
* @param string $system_path Path to settings
|
||||
* @param array &$opts Chosen options
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
@ -766,6 +766,13 @@ class FormDisplay
|
||||
'recode', 'recode'
|
||||
);
|
||||
}
|
||||
if (!function_exists('mb_convert_encoding')) {
|
||||
$opts['values']['mb'] .= ' (' . __('unavailable') . ')';
|
||||
$comment .= ($comment ? ", " : '') . sprintf(
|
||||
__('"%s" requires %s extension'),
|
||||
'mb', 'mbstring'
|
||||
);
|
||||
}
|
||||
$opts['comment'] = $comment;
|
||||
$opts['comment_warning'] = true;
|
||||
}
|
||||
|
||||
@ -35,9 +35,9 @@ function PMA_lang($lang_key, $args = null)
|
||||
/**
|
||||
* Returns translated field name/description or comment
|
||||
*
|
||||
* @param string $canonical_path
|
||||
* @param string $canonical_path path to handle
|
||||
* @param string $type 'name', 'desc' or 'cmt'
|
||||
* @param mixed $default
|
||||
* @param mixed $default default value
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
||||
@ -515,7 +515,8 @@ function PMA_getenv($var_name)
|
||||
} elseif (getenv($var_name)) {
|
||||
return getenv($var_name);
|
||||
} elseif (function_exists('apache_getenv')
|
||||
&& apache_getenv($var_name, true)) {
|
||||
&& apache_getenv($var_name, true)
|
||||
) {
|
||||
return apache_getenv($var_name, true);
|
||||
}
|
||||
|
||||
|
||||
@ -50,6 +50,7 @@ function PMA_getIndexedColumns()
|
||||
* add columns to a existing table
|
||||
*
|
||||
* @param int $field_cnt number of columns
|
||||
* @param int $field_primary primary index field
|
||||
* @param boolean $is_create_tbl true if requirement is to get the statement
|
||||
* for table creation
|
||||
*
|
||||
|
||||
@ -53,14 +53,14 @@ $gnu_iconv_to_aix_iconv_codepage_map = array (
|
||||
* @access public
|
||||
*
|
||||
*/
|
||||
function PMA_aix_iconv_wrapper($in_charset, $out_charset, $str)
|
||||
function PMA_convertAIXIconv($in_charset, $out_charset, $str)
|
||||
{
|
||||
list($in_charset, $out_charset) = PMA_aix_iconv_mapCharsets(
|
||||
list($in_charset, $out_charset) = PMA_convertAIXMapCharsets(
|
||||
$in_charset, $out_charset
|
||||
);
|
||||
// Call iconv() with the possibly modified parameters
|
||||
return iconv($in_charset, $out_charset, $str);
|
||||
} // end of the "PMA_aix_iconv_wrapper()" function
|
||||
} // end of the "PMA_convertAIXIconv()" function
|
||||
|
||||
/**
|
||||
* Maps input and output character set names to corresponding AIX ones
|
||||
@ -70,7 +70,7 @@ function PMA_aix_iconv_wrapper($in_charset, $out_charset, $str)
|
||||
*
|
||||
* @return array array of mapped input and output character set names
|
||||
*/
|
||||
function PMA_aix_iconv_mapCharsets($in_charset, $out_charset)
|
||||
function PMA_convertAIXMapCharsets($in_charset, $out_charset)
|
||||
{
|
||||
global $gnu_iconv_to_aix_iconv_codepage_map;
|
||||
|
||||
|
||||
@ -139,7 +139,7 @@ function PMA_importRunQuery($sql = '', $full = '', $controluser = false,
|
||||
}
|
||||
$sql_query = $import_run_buffer['sql'];
|
||||
$sql_data['valid_sql'][] = $import_run_buffer['sql'];
|
||||
if(! isset($sql_data['valid_queries'])) {
|
||||
if (! isset($sql_data['valid_queries'])) {
|
||||
$sql_data['valid_queries'] = 0;
|
||||
}
|
||||
$sql_data['valid_queries']++;
|
||||
@ -192,7 +192,7 @@ function PMA_importRunQuery($sql = '', $full = '', $controluser = false,
|
||||
|
||||
if (($a_num_rows > 0) || $is_use_query) {
|
||||
$sql_data['valid_sql'][] = $import_run_buffer['sql'];
|
||||
if(! isset($sql_data['valid_queries'])) {
|
||||
if (! isset($sql_data['valid_queries'])) {
|
||||
$sql_data['valid_queries'] = 0;
|
||||
}
|
||||
$sql_data['valid_queries']++;
|
||||
|
||||
@ -217,8 +217,8 @@ class ImportMediawiki extends ImportPlugin
|
||||
// End processing because the current line does not
|
||||
// contain any column information
|
||||
} elseif (substr($cur_buffer_line, 0, 2) === '|-'
|
||||
|| substr($cur_buffer_line, 0, 2) === '|+'
|
||||
|| substr($cur_buffer_line, 0, 2) === '|}'
|
||||
|| substr($cur_buffer_line, 0, 2) === '|+'
|
||||
|| substr($cur_buffer_line, 0, 2) === '|}'
|
||||
) {
|
||||
// Check begin row or end table
|
||||
|
||||
@ -570,4 +570,4 @@ class ImportMediawiki extends ImportPlugin
|
||||
{
|
||||
$this->_analyze = $analyze;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -115,8 +115,9 @@ function PMA_extractPrivInfo($row = '', $enableHTML = false)
|
||||
$privs[] = $current_grant[1];
|
||||
}
|
||||
} elseif (! empty($GLOBALS[$current_grant[0]])
|
||||
&& is_array($GLOBALS[$current_grant[0]])
|
||||
&& empty($GLOBALS[$current_grant[0] . '_none'])) {
|
||||
&& is_array($GLOBALS[$current_grant[0]])
|
||||
&& empty($GLOBALS[$current_grant[0] . '_none'])
|
||||
) {
|
||||
if ($enableHTML) {
|
||||
$priv_string = '<dfn title="' . $current_grant[2] . '">'
|
||||
. $current_grant[1] . '</dfn>';
|
||||
@ -137,9 +138,8 @@ function PMA_extractPrivInfo($row = '', $enableHTML = false)
|
||||
$privs[] = 'USAGE';
|
||||
}
|
||||
} elseif ($allPrivileges
|
||||
&& (! isset($_POST['grant_count'])
|
||||
|| count($privs) == $_POST['grant_count'])
|
||||
) {
|
||||
&& (! isset($_POST['grant_count']) || count($privs) == $_POST['grant_count'])
|
||||
) {
|
||||
if ($enableHTML) {
|
||||
$privs = array('<dfn title="'
|
||||
. __('Includes all privileges except GRANT.')
|
||||
@ -3436,7 +3436,7 @@ function _getTabList($title, $level, $selected)
|
||||
foreach ($tabs as $tab => $tabName) {
|
||||
$html_output .= '<div class="item">';
|
||||
$html_output .= '<input type="checkbox" class="checkall"'
|
||||
. (in_array($tab, $selected) ? 'checked="checked"' : '')
|
||||
. (in_array($tab, $selected) ? 'checked="checked"' : '')
|
||||
. ' name="' . $level . '_' . $tab . '" value="Y" />';
|
||||
$html_output .= '<label for="' . $level . '_' . $tab . '">'
|
||||
. '<code>' . $tabName . '</code>'
|
||||
|
||||
154
libraries/server_status_queries.lib.php
Normal file
154
libraries/server_status_queries.lib.php
Normal file
@ -0,0 +1,154 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
|
||||
/**
|
||||
* functions for displaying query statistics for the server
|
||||
*
|
||||
* @usedby server_status_queries.php
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the html content for the query statistics
|
||||
*
|
||||
* @param object $ServerStatusData An instance of the PMA_ServerStatusData class
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function PMA_getHtmlForQueryStatistics($ServerStatusData)
|
||||
{
|
||||
$retval = '';
|
||||
|
||||
$hour_factor = 3600 / $ServerStatusData->status['Uptime'];
|
||||
$used_queries = $ServerStatusData->used_queries;
|
||||
$total_queries = array_sum($used_queries);
|
||||
|
||||
$retval .= '<h3 id="serverstatusqueries">';
|
||||
/* l10n: Questions is the name of a MySQL Status variable */
|
||||
$retval .= sprintf(
|
||||
__('Questions since startup: %s'),
|
||||
PMA_Util::formatNumber($total_queries, 0)
|
||||
);
|
||||
$retval .= ' ';
|
||||
$retval .= PMA_Util::showMySQLDocu(
|
||||
'server-status-variables',
|
||||
'server-status-variables',
|
||||
false,
|
||||
'statvar_Questions'
|
||||
);
|
||||
$retval .= '<br />';
|
||||
$retval .= '<span>';
|
||||
$retval .= 'ø ' . __('per hour:') . ' ';
|
||||
$retval .= PMA_Util::formatNumber($total_queries * $hour_factor, 0);
|
||||
$retval .= '<br />';
|
||||
$retval .= 'ø ' . __('per minute:') . ' ';
|
||||
$retval .= PMA_Util::formatNumber(
|
||||
$total_queries * 60 / $ServerStatusData->status['Uptime'],
|
||||
0
|
||||
);
|
||||
$retval .= '<br />';
|
||||
if ($total_queries / $ServerStatusData->status['Uptime'] >= 1) {
|
||||
$retval .= 'ø ' . __('per second:') . ' ';
|
||||
$retval .= PMA_Util::formatNumber(
|
||||
$total_queries / $ServerStatusData->status['Uptime'],
|
||||
0
|
||||
);
|
||||
}
|
||||
$retval .= '</span>';
|
||||
$retval .= '</h3>';
|
||||
|
||||
$retval .= PMA_getHtmlForServerStatusQueriesDetails($ServerStatusData);
|
||||
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the html content for the query details
|
||||
*
|
||||
* @param object $ServerStatusData An instance of the PMA_ServerStatusData class
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function PMA_getHtmlForServerStatusQueriesDetails($ServerStatusData)
|
||||
{
|
||||
$hour_factor = 3600 / $ServerStatusData->status['Uptime'];
|
||||
$used_queries = $ServerStatusData->used_queries;
|
||||
$total_queries = array_sum($used_queries);
|
||||
// reverse sort by value to show most used statements first
|
||||
arsort($used_queries);
|
||||
|
||||
$odd_row = true;
|
||||
|
||||
//(- $ServerStatusData->status['Connections']);
|
||||
$perc_factor = 100 / $total_queries;
|
||||
|
||||
$retval = '<table id="serverstatusqueriesdetails" '
|
||||
. 'class="data sortable noclick">';
|
||||
$retval .= '<col class="namecol" />';
|
||||
$retval .= '<col class="valuecol" span="3" />';
|
||||
$retval .= '<thead>';
|
||||
$retval .= '<tr><th>' . __('Statements') . '</th>';
|
||||
$retval .= '<th>';
|
||||
/* l10n: # = Amount of queries */
|
||||
$retval .= __('#');
|
||||
$retval .= '</th>';
|
||||
$retval .= '<th>ø ' . __('per hour') . '</th>';
|
||||
$retval .= '<th>%</th>';
|
||||
$retval .= '</tr>';
|
||||
$retval .= '</thead>';
|
||||
$retval .= '<tbody>';
|
||||
|
||||
$chart_json = array();
|
||||
$query_sum = array_sum($used_queries);
|
||||
$other_sum = 0;
|
||||
foreach ($used_queries as $name => $value) {
|
||||
$odd_row = !$odd_row;
|
||||
// For the percentage column, use Questions - Connections, because
|
||||
// the number of connections is not an item of the Query types
|
||||
// but is included in Questions. Then the total of the percentages is 100.
|
||||
$name = str_replace(array('Com_', '_'), array('', ' '), $name);
|
||||
// Group together values that make out less than 2% into "Other", but only
|
||||
// if we have more than 6 fractions already
|
||||
if ($value < $query_sum * 0.02 && count($chart_json)>6) {
|
||||
$other_sum += $value;
|
||||
} else {
|
||||
$chart_json[$name] = $value;
|
||||
}
|
||||
$retval .= '<tr class="';
|
||||
$retval .= $odd_row ? 'odd' : 'even';
|
||||
$retval .= '">';
|
||||
$retval .= '<th class="name">' . htmlspecialchars($name) . '</th>';
|
||||
$retval .= '<td class="value">';
|
||||
$retval .= htmlspecialchars(PMA_Util::formatNumber($value, 5, 0, true));
|
||||
$retval .= '</td>';
|
||||
$retval .= '<td class="value">';
|
||||
$retval .= htmlspecialchars(
|
||||
PMA_Util::formatNumber($value * $hour_factor, 4, 1, true)
|
||||
);
|
||||
$retval .= '</td>';
|
||||
$retval .= '<td class="value">';
|
||||
$retval .= htmlspecialchars(
|
||||
PMA_Util::formatNumber($value * $perc_factor, 0, 2)
|
||||
);
|
||||
$retval .= '</td>';
|
||||
$retval .= '</tr>';
|
||||
}
|
||||
$retval .= '</tbody>';
|
||||
$retval .= '</table>';
|
||||
|
||||
$retval .= '<div id="serverstatusquerieschart"></div>';
|
||||
$retval .= '<div id="serverstatusquerieschart_data" style="display:none;">';
|
||||
if ($other_sum > 0) {
|
||||
$chart_json[__('Other')] = $other_sum;
|
||||
}
|
||||
$retval .= htmlspecialchars(json_encode($chart_json));
|
||||
$retval .= '</div>';
|
||||
|
||||
return $retval;
|
||||
}
|
||||
|
||||
?>
|
||||
@ -1464,7 +1464,7 @@ function PMA_getHtmlForEditView($url_params)
|
||||
$url .= implode(
|
||||
'&',
|
||||
array_map(
|
||||
function($key, $val) {
|
||||
function ($key, $val) {
|
||||
return 'view[' . urlencode($key) . ']=' . urlencode($val);
|
||||
},
|
||||
array_keys($view),
|
||||
|
||||
@ -188,11 +188,11 @@ function PMA_GIS_saveToFile($data, $visualizationSettings, $format, $fileName)
|
||||
|
||||
/**
|
||||
* Function to get html for the options lists
|
||||
*
|
||||
* @param array $options array of options
|
||||
* @param String $select the item that shoul be selected by default
|
||||
*
|
||||
* @return string $html the html for the options lists
|
||||
*
|
||||
* @param array $options array of options
|
||||
* @param string $select the item that shoul be selected by default
|
||||
*
|
||||
* @return string $html the html for the options lists
|
||||
*/
|
||||
function PMA_getHtmlForOptionsList($options, $select)
|
||||
{
|
||||
@ -204,54 +204,55 @@ function PMA_getHtmlForOptionsList($options, $select)
|
||||
}
|
||||
$html .= '>' . htmlspecialchars($option) . '</option>';
|
||||
}
|
||||
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to get html for the lebel column and spatial column
|
||||
*
|
||||
* @param String $column the column type. i.e either "labelColumn"
|
||||
* or "spatialColumn"
|
||||
* @param array $columnCandidates the list of select options
|
||||
* @param array $visualizationSettings visualization settings
|
||||
* @return String $html
|
||||
*
|
||||
* @param string $column the column type. i.e either "labelColumn"
|
||||
* or "spatialColumn"
|
||||
* @param array $columnCandidates the list of select options
|
||||
* @param array $visualizationSettings visualization settings
|
||||
*
|
||||
* @return string $html
|
||||
*/
|
||||
function PMA_getHtmlForColumn($column, $columnCandidates, $visualizationSettings)
|
||||
{
|
||||
$html = '<tr><td><label for="labelColumn">';
|
||||
$html .= ($column=="labelColumn") ? __("Label column") : __("Spatial column");;
|
||||
$html .= ($column=="labelColumn") ? __("Label column") : __("Spatial column");
|
||||
$html .= '</label></td>';
|
||||
|
||||
|
||||
$html .= '<td><select name="visualizationSettings[' . $column . ']" id="'
|
||||
. $column . '">';
|
||||
|
||||
|
||||
if ($column == "labelColumn") {
|
||||
$html .= '<option value="">' . __("-- None --") . '</option>';
|
||||
}
|
||||
|
||||
|
||||
$html .= PMA_getHtmlForOptionsList(
|
||||
$columnCandidates, $visualizationSettings[$column]
|
||||
);
|
||||
|
||||
|
||||
$html .= '</select></td>';
|
||||
$html .= '</tr>';
|
||||
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to get html for the option of using oprn street maps
|
||||
*
|
||||
* @param boolean $isSelected the default value
|
||||
*
|
||||
*
|
||||
* @param boolean $isSelected the default value
|
||||
*
|
||||
* @return string $html
|
||||
*/
|
||||
function PMA_getHtmlForUseOpenStreetMaps($isSelected)
|
||||
{
|
||||
$html = '<tr><td class="choice" colspan="2">';
|
||||
$html .= '<input type="checkbox" name="visualizationSettings[choice]"'
|
||||
. 'id="choice" value="useBaseLayer"';
|
||||
. 'id="choice" value="useBaseLayer"';
|
||||
if ($isSelected) {
|
||||
$html .= ' checked="checked"';
|
||||
}
|
||||
@ -260,22 +261,22 @@ function PMA_getHtmlForUseOpenStreetMaps($isSelected)
|
||||
$html .= __("Use OpenStreetMaps as Base Layer");
|
||||
$html .= '</label>';
|
||||
$html .= '</td></tr>';
|
||||
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to generate html for the GIS visualization page
|
||||
*
|
||||
*
|
||||
* @param array $url_params url parameters
|
||||
* @param array $labelCandidates list of candidates for the label
|
||||
* @param array $labelCandidates list of candidates for the label
|
||||
* @param array $spatialCandidates list of candidates for the spatial column
|
||||
* @param array $visualizationSettings visualization settings
|
||||
* @param String $sql_query the sql query
|
||||
* @param String $visualization html and js code for the visualization
|
||||
* @param boolean svg_support whether svg download format is supported
|
||||
* @param array $data array of visualizing data
|
||||
*
|
||||
*
|
||||
* @return string $html html code for the GIS visualization
|
||||
*/
|
||||
function PMA_getHtmlForGisVisualization(
|
||||
@ -285,18 +286,18 @@ function PMA_getHtmlForGisVisualization(
|
||||
$html = '<div id="div_view_options">';
|
||||
$html .= '<fieldset>';
|
||||
$html .= '<legend>' . __('Display GIS Visualization') . '</legend>';
|
||||
|
||||
|
||||
$html .= '<div style="width: 400px; float: left;">';
|
||||
$html .= '<form method="post" action="tbl_gis_visualization.php">';
|
||||
$html .= PMA_generate_common_hidden_inputs($url_params);
|
||||
$html .= '<table class="gis_table">';
|
||||
|
||||
$html .= PMA_getHtmlForColumn("labelColumn", $labelCandidates,
|
||||
$visualizationSettings
|
||||
|
||||
$html .= PMA_getHtmlForColumn(
|
||||
"labelColumn", $labelCandidates, $visualizationSettings
|
||||
);
|
||||
|
||||
$html .= PMA_getHtmlForColumn("spatialColumn", $spatialCandidates,
|
||||
$visualizationSettings
|
||||
$html .= PMA_getHtmlForColumn(
|
||||
"spatialColumn", $spatialCandidates, $visualizationSettings
|
||||
);
|
||||
|
||||
$html .= '<tr><td></td>';
|
||||
@ -308,7 +309,7 @@ function PMA_getHtmlForGisVisualization(
|
||||
$isSelected = isset($visualizationSettings['choice']) ? true : false;
|
||||
$html .= PMA_getHtmlForUseOpenStreetMaps($isSelected);
|
||||
}
|
||||
|
||||
|
||||
$html .= '</table>';
|
||||
$html .= '<input type="hidden" name="displayVisualization" value="redraw">';
|
||||
$html .= '<input type="hidden" name="sql_query" value="';
|
||||
@ -323,7 +324,7 @@ function PMA_getHtmlForGisVisualization(
|
||||
$html .= '<tr><td><label for="fileName">';
|
||||
$html .= __("File name") . '</label></td>';
|
||||
$html .= '<td><input type="text" name="fileName" id="fileName" /></td></tr>';
|
||||
|
||||
|
||||
$html .= '<tr><td><label for="fileFormat">';
|
||||
$html .= __("Format") . '</label></td>';
|
||||
$html .= '<td><select name="fileFormat" id="fileFormat">';
|
||||
@ -334,12 +335,12 @@ function PMA_getHtmlForGisVisualization(
|
||||
$html .= '<option value="svg" selected="selected">SVG</option>';
|
||||
}
|
||||
$html .= '</select></td></tr>';
|
||||
|
||||
|
||||
$html .= '<tr><td></td>';
|
||||
$html .= '<td class="button"><input type="submit" name="saveToFileBtn" value="';
|
||||
$html .= __('Download') . '" /></td></tr>';
|
||||
$html .= '</table>';
|
||||
|
||||
|
||||
$html .= '<input type="hidden" name="saveToFile" value="download">';
|
||||
$html .= '<input type="hidden" name="sql_query" value="';
|
||||
$html .= htmlspecialchars($sql_query) . '" />';
|
||||
@ -353,14 +354,14 @@ function PMA_getHtmlForGisVisualization(
|
||||
$html .= htmlspecialchars($visualizationSettings['height']) . 'px;">';
|
||||
$html .= $visualization;
|
||||
$html .= '</div>';
|
||||
|
||||
|
||||
$html .= '<div id="openlayersmap"></div>';
|
||||
$html .= '<input type="hidden" id="pmaThemeImage" value="';
|
||||
$html .= $GLOBALS['pmaThemeImage'] . '" />';
|
||||
$html .= '<script language="javascript" type="text/javascript">';
|
||||
$html .= 'function drawOpenLayers()';
|
||||
$html .= '{';
|
||||
|
||||
|
||||
if (! $GLOBALS['PMA_Config']->isHttps()) {
|
||||
$html .= PMA_GIS_visualizationResults($data, $visualizationSettings, 'ol');
|
||||
}
|
||||
@ -368,7 +369,7 @@ function PMA_getHtmlForGisVisualization(
|
||||
$html .= '</script>';
|
||||
$html .= '</fieldset>';
|
||||
$html .= '</div>';
|
||||
|
||||
|
||||
return $html;
|
||||
}
|
||||
?>
|
||||
|
||||
@ -302,8 +302,10 @@ function PMA_setMIME($db, $table, $key, $mimetype, $transformation,
|
||||
WHERE `db_name` = \'' . PMA_Util::sqlAddSlashes($db) . '\'
|
||||
AND `table_name` = \'' . PMA_Util::sqlAddSlashes($table) . '\'
|
||||
AND `column_name` = \'' . PMA_Util::sqlAddSlashes($key) . '\'';
|
||||
} elseif (strlen($mimetype) || strlen($transformation)
|
||||
|| strlen($transformation_options)) {
|
||||
} elseif (strlen($mimetype)
|
||||
|| strlen($transformation)
|
||||
|| strlen($transformation_options)
|
||||
) {
|
||||
|
||||
$upd_query = 'INSERT INTO ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['column_info'])
|
||||
. ' (db_name, table_name, column_name, mimetype, transformation, transformation_options) '
|
||||
|
||||
9
po/cs.po
9
po/cs.po
@ -6,7 +6,7 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2013-07-29 13:37-0400\n"
|
||||
"PO-Revision-Date: 2013-07-29 15:37+0200\n"
|
||||
"PO-Revision-Date: 2013-07-30 07:59+0200\n"
|
||||
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
|
||||
"Language-Team: Czech <http://l10n.cihar.com/projects/phpmyadmin/master/cs/>\n"
|
||||
"Language: cs\n"
|
||||
@ -10157,7 +10157,6 @@ msgid "Users of '%s' user group"
|
||||
msgstr "Uživatelé ze skupiny '%s'"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3198
|
||||
#, fuzzy
|
||||
#| msgid "No users were found belonging to this user group"
|
||||
msgid "No users were found belonging to this user group."
|
||||
msgstr "V této skupině nebyli nalezeni žádní uživatelé."
|
||||
@ -10169,21 +10168,18 @@ msgstr "Skupiny"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3236
|
||||
#: libraries/server_privileges.lib.php:3402
|
||||
#, fuzzy
|
||||
#| msgid "Server level tabs"
|
||||
msgid "Server-level tabs"
|
||||
msgstr "Záložky pro práci se serverem"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3237
|
||||
#: libraries/server_privileges.lib.php:3405
|
||||
#, fuzzy
|
||||
#| msgid "Database level tabs"
|
||||
msgid "Database-level tabs"
|
||||
msgstr "Záložky pro práci s databází"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3238
|
||||
#: libraries/server_privileges.lib.php:3408
|
||||
#, fuzzy
|
||||
#| msgid "Table level tabs"
|
||||
msgid "Table-level tabs"
|
||||
msgstr "Záložky pro práci s tabulkou"
|
||||
@ -10207,10 +10203,9 @@ msgid "User group privileges"
|
||||
msgstr "Oprávnění skupiny"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3370
|
||||
#, fuzzy
|
||||
#| msgid "Group name: "
|
||||
msgid "Group name:"
|
||||
msgstr "Název skupiny: "
|
||||
msgstr "Název skupiny:"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3521
|
||||
msgid "The selected user was not found in the privilege table."
|
||||
|
||||
94
po/el.po
94
po/el.po
@ -4,7 +4,7 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2013-07-29 13:37-0400\n"
|
||||
"PO-Revision-Date: 2013-07-15 07:46+0200\n"
|
||||
"PO-Revision-Date: 2013-07-30 07:54+0200\n"
|
||||
"Last-Translator: Panagiotis Papazoglou <papaz_p@yahoo.com>\n"
|
||||
"Language-Team: Greek <http://l10n.cihar.com/projects/phpmyadmin/master/el/>\n"
|
||||
"Language: el\n"
|
||||
@ -12,7 +12,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 1.6-dev\n"
|
||||
"X-Generator: Weblate 1.6\n"
|
||||
|
||||
#: browse_foreigners.php:51 browse_foreigners.php:75 js/messages.php:339
|
||||
#: libraries/DisplayResults.class.php:813
|
||||
@ -1950,10 +1950,9 @@ msgid "Hide Panel"
|
||||
msgstr "Απόκρυψη Πίνακα"
|
||||
|
||||
#: js/messages.php:369
|
||||
#, fuzzy
|
||||
#| msgid "Show logo in navigation panel"
|
||||
msgid "Show hidden navigation tree items"
|
||||
msgstr "Προβολή λογοτύπου στον πίνακα πλοήγησης"
|
||||
msgstr "Προβολή κρυφών αντικειμένων δέντρου πλοήγησης"
|
||||
|
||||
#: js/messages.php:372
|
||||
msgid "The requested page was not found in the history, it may have expired."
|
||||
@ -2674,16 +2673,16 @@ msgstr ""
|
||||
"%sτεκμηρίωση%s."
|
||||
|
||||
#: libraries/DisplayResults.class.php:4921
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Showing rows"
|
||||
msgid "Showing rows %1s - %2s"
|
||||
msgstr "Εμφάνιση εγγραφών"
|
||||
msgstr "Εμφάνιση εγγραφών %1s - %2s"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4933
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "total"
|
||||
msgid "%d total"
|
||||
msgstr "συνολικά"
|
||||
msgstr "%d συνολικά"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4945 libraries/sql.lib.php:1640
|
||||
#, php-format
|
||||
@ -6112,7 +6111,6 @@ msgid "User preferences storage table"
|
||||
msgstr "Πίνακας αποθήκευσης προτιμήσεων χρήστη"
|
||||
|
||||
#: libraries/config/messages.inc.php:455
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Leave blank for no user preferences storage in database, suggested: [kbd]"
|
||||
#| "pma__userconfig[/kbd]"
|
||||
@ -6120,17 +6118,15 @@ msgid ""
|
||||
"Leave blank to disable configurable menus feature, suggested: [kbd]pma__users"
|
||||
"[/kbd]"
|
||||
msgstr ""
|
||||
"Αφήστε το κενό για μη αποθήκευση των ρυθμίσεων χρήστη, προτείνεται: [kbd]"
|
||||
"pma__userconfig[/kbd]"
|
||||
"Αφήστε το κενό για απενεργοποίηση του χαρακτηριστικού προσαρμόσιμων μενού, "
|
||||
"προτείνεται: [kbd]pma__users[/kbd]"
|
||||
|
||||
#: libraries/config/messages.inc.php:456
|
||||
#, fuzzy
|
||||
#| msgid "Use Tables"
|
||||
msgid "Users table"
|
||||
msgstr "Χρήση Πινάκων"
|
||||
msgstr "Πίνακας χρηστών"
|
||||
|
||||
#: libraries/config/messages.inc.php:457
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Leave blank for no user preferences storage in database, suggested: [kbd]"
|
||||
#| "pma__userconfig[/kbd]"
|
||||
@ -6138,17 +6134,15 @@ msgid ""
|
||||
"Leave blank to disable configurable menus feature, suggested: [kbd]"
|
||||
"pma__usergroups[/kbd]"
|
||||
msgstr ""
|
||||
"Αφήστε το κενό για μη αποθήκευση των ρυθμίσεων χρήστη, προτείνεται: [kbd]"
|
||||
"pma__userconfig[/kbd]"
|
||||
"Αφήστε το κενό για απενεργοποίηση του χαρακτηριστικού προσαρμόσιμων μενού, "
|
||||
"προτείνεται: [kbd]pma__usergroups[/kbd]"
|
||||
|
||||
#: libraries/config/messages.inc.php:458
|
||||
#, fuzzy
|
||||
#| msgid "Use Host Table"
|
||||
msgid "User groups table"
|
||||
msgstr "Χρήση Οικείου Πίνακα"
|
||||
msgstr "Πίνακας ομάδων χρηστών"
|
||||
|
||||
#: libraries/config/messages.inc.php:459
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Leave blank for no user preferences storage in database, suggested: [kbd]"
|
||||
#| "pma__userconfig[/kbd]"
|
||||
@ -6156,12 +6150,12 @@ msgid ""
|
||||
"Leave blank to disable the feature to hide and show navigation items, "
|
||||
"suggested: [kbd]pma__navigationhiding[/kbd]"
|
||||
msgstr ""
|
||||
"Αφήστε το κενό για μη αποθήκευση των ρυθμίσεων χρήστη, προτείνεται: [kbd]"
|
||||
"pma__userconfig[/kbd]"
|
||||
"Αφήστε το κενό για απενεργοποίηση του χαρακτηριστικού προσαρμόσιμων μενού, "
|
||||
"προτείνεται: [kbd]pma__navigationhiding[/kbd]"
|
||||
|
||||
#: libraries/config/messages.inc.php:460
|
||||
msgid "Hidden navigation items table"
|
||||
msgstr ""
|
||||
msgstr "Πίνακας κρυφών αντικειμένων πλοήγησης"
|
||||
|
||||
#: libraries/config/messages.inc.php:462
|
||||
msgid "User for config auth"
|
||||
@ -7741,34 +7735,29 @@ msgid "An error has occured while loading the navigation tree"
|
||||
msgstr "Ένα σφάλμα συμβαίνει κατά τη φόρτωση του δέντρου πλοήγησης"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:172
|
||||
#, fuzzy
|
||||
#| msgid "Events"
|
||||
msgid "Events:"
|
||||
msgstr "Συμβάντα"
|
||||
msgstr "Συμβάντα:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:173
|
||||
#, fuzzy
|
||||
#| msgid "Functions"
|
||||
msgid "Functions:"
|
||||
msgstr "Συναρτήσεις"
|
||||
msgstr "Συναρτήσεις:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:174
|
||||
#, fuzzy
|
||||
#| msgid "Procedures"
|
||||
msgid "Procedures:"
|
||||
msgstr "Διαδικασίες"
|
||||
msgstr "Διαδικασίες:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:175
|
||||
#, fuzzy
|
||||
#| msgid "Tables"
|
||||
msgid "Tables:"
|
||||
msgstr "Πίνακες"
|
||||
msgstr "Πίνακες:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:176
|
||||
#, fuzzy
|
||||
#| msgid "Views"
|
||||
msgid "Views:"
|
||||
msgstr "Προβολές"
|
||||
msgstr "Προβολές:"
|
||||
|
||||
#: libraries/navigation/NavigationHeader.class.php:183
|
||||
msgid "Home"
|
||||
@ -8874,16 +8863,14 @@ msgid "User preferences"
|
||||
msgstr "Ρυθμίσεις χρήστη"
|
||||
|
||||
#: libraries/relation.lib.php:264
|
||||
#, fuzzy
|
||||
#| msgid "Configuration: %s"
|
||||
msgid "Configurable menus"
|
||||
msgstr "Ρύθμιση: %s"
|
||||
msgstr "Προσαρμόσιμα μενού"
|
||||
|
||||
#: libraries/relation.lib.php:275
|
||||
#, fuzzy
|
||||
#| msgid "Reload navigation frame"
|
||||
msgid "Hide/show navigation items"
|
||||
msgstr "Επαναφόρτωση πλαισίου πλοήγησης"
|
||||
msgstr "Απόκρυψη/εμφάνιση αντικειμένων πλοήγησης"
|
||||
|
||||
#: libraries/relation.lib.php:281
|
||||
msgid "Quick steps to setup advanced features:"
|
||||
@ -10056,7 +10043,7 @@ msgstr "Κανένα"
|
||||
#: libraries/server_privileges.lib.php:2531
|
||||
#: libraries/server_privileges.lib.php:3235
|
||||
msgid "User group"
|
||||
msgstr ""
|
||||
msgstr "Ομάδας χρηστών"
|
||||
|
||||
#: libraries/server_privileges.lib.php:618
|
||||
msgid "Resource limits"
|
||||
@ -10295,10 +10282,9 @@ msgid "Add privileges on the following table:"
|
||||
msgstr "Προσθήκη δεδομένων στον ακόλουθο πίνακα:"
|
||||
|
||||
#: libraries/server_privileges.lib.php:2599
|
||||
#, fuzzy
|
||||
#| msgid "Edit server"
|
||||
msgid "Edit user group"
|
||||
msgstr "Επεξεργασία διακομιστή"
|
||||
msgstr "Επεξεργασία ομάδας χρηστών"
|
||||
|
||||
#: libraries/server_privileges.lib.php:2714
|
||||
msgid "Remove selected users"
|
||||
@ -10363,69 +10349,61 @@ msgstr ""
|
||||
#: libraries/server_privileges.lib.php:3187
|
||||
#, php-format
|
||||
msgid "Users of '%s' user group"
|
||||
msgstr ""
|
||||
msgstr "Χρήστες της ομάδας χρηστών «%s»"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3198
|
||||
msgid "No users were found belonging to this user group."
|
||||
msgstr ""
|
||||
msgstr "Κανένας χρήστης δεν βρέθηκε να ανήκει σε αυτή την ομάδα χρηστών."
|
||||
|
||||
#: libraries/server_privileges.lib.php:3229
|
||||
#: libraries/server_privileges.lib.php:3878
|
||||
#, fuzzy
|
||||
#| msgid "Users"
|
||||
msgid "User groups"
|
||||
msgstr "Χρήστες"
|
||||
msgstr "Ομάδες χρηστών"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3236
|
||||
#: libraries/server_privileges.lib.php:3402
|
||||
#, fuzzy
|
||||
#| msgid "Server version"
|
||||
msgid "Server-level tabs"
|
||||
msgstr "Έκδοση διακομιστή"
|
||||
msgstr "Καρτέλες επιπέδου διακομιστή"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3237
|
||||
#: libraries/server_privileges.lib.php:3405
|
||||
#, fuzzy
|
||||
#| msgid "Database server"
|
||||
msgid "Database-level tabs"
|
||||
msgstr "Διακομιστής βάσης δεδομένων"
|
||||
msgstr "Καρτέλες επιπέδου βάσης δεδομένων"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3238
|
||||
#: libraries/server_privileges.lib.php:3408
|
||||
#, fuzzy
|
||||
#| msgid "Table comments"
|
||||
msgid "Table-level tabs"
|
||||
msgstr "Σχόλια πίνακα"
|
||||
msgstr "Καρτέλες επιπέδου πίνακα"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3260
|
||||
#, fuzzy
|
||||
#| msgid "Views"
|
||||
msgid "View users"
|
||||
msgstr "Προβολές"
|
||||
msgstr "Χρήστες προβολών"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3288
|
||||
#: libraries/server_privileges.lib.php:3344
|
||||
#, fuzzy
|
||||
#| msgid "Add user"
|
||||
msgid "Add user group"
|
||||
msgstr "Προσθήκη χρήστη"
|
||||
msgstr "Προσθήκη ομάδας χρηστών"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3347
|
||||
#, php-format
|
||||
msgid "Edit user group: '%s'"
|
||||
msgstr ""
|
||||
msgstr "Επεξεργασία ομάδας χρηστών: «%s»"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3363
|
||||
#, fuzzy
|
||||
#| msgid "No privileges."
|
||||
msgid "User group privileges"
|
||||
msgstr "Χωρίς δικαιώματα."
|
||||
msgstr "Δικαιώματα ομάδας χρηστών"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3370
|
||||
#, fuzzy
|
||||
#| msgid "Column names: "
|
||||
msgid "Group name:"
|
||||
msgstr "Ονόματα στηλών: "
|
||||
msgstr "Όνομα ομάδας:"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3521
|
||||
msgid "The selected user was not found in the privilege table."
|
||||
|
||||
9
po/et.po
9
po/et.po
@ -6,10 +6,10 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2013-07-29 13:37-0400\n"
|
||||
"PO-Revision-Date: 2013-07-29 16:09+0200\n"
|
||||
"PO-Revision-Date: 2013-07-30 07:13+0200\n"
|
||||
"Last-Translator: Kristjan Räts <kristjanrats@gmail.com>\n"
|
||||
"Language-Team: Estonian <http://l10n.cihar.com/projects/phpmyadmin/master/et/"
|
||||
">\n"
|
||||
"Language-Team: Estonian "
|
||||
"<http://l10n.cihar.com/projects/phpmyadmin/master/et/>\n"
|
||||
"Language: et\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -10158,21 +10158,18 @@ msgstr "Kasutajate grupid"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3236
|
||||
#: libraries/server_privileges.lib.php:3402
|
||||
#, fuzzy
|
||||
#| msgid "Server level tabs"
|
||||
msgid "Server-level tabs"
|
||||
msgstr "Serveri tasemete sakid"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3237
|
||||
#: libraries/server_privileges.lib.php:3405
|
||||
#, fuzzy
|
||||
#| msgid "Database level tabs"
|
||||
msgid "Database-level tabs"
|
||||
msgstr "Andmebaasi tasemete sakid"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3238
|
||||
#: libraries/server_privileges.lib.php:3408
|
||||
#, fuzzy
|
||||
#| msgid "Table level tabs"
|
||||
msgid "Table-level tabs"
|
||||
msgstr "Tabeli tasemete sakid"
|
||||
|
||||
48
po/hu.po
48
po/hu.po
@ -4,16 +4,16 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2013-07-29 13:37-0400\n"
|
||||
"PO-Revision-Date: 2013-07-09 11:52+0200\n"
|
||||
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
|
||||
"Language-Team: Hungarian <http://l10n.cihar.com/projects/phpmyadmin/master/"
|
||||
"hu/>\n"
|
||||
"PO-Revision-Date: 2013-07-30 14:08+0200\n"
|
||||
"Last-Translator: G. S. <somogyig@gmail.com>\n"
|
||||
"Language-Team: Hungarian "
|
||||
"<http://l10n.cihar.com/projects/phpmyadmin/master/hu/>\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 1.6-dev\n"
|
||||
"X-Generator: Weblate 1.6\n"
|
||||
|
||||
#: browse_foreigners.php:51 browse_foreigners.php:75 js/messages.php:339
|
||||
#: libraries/DisplayResults.class.php:813
|
||||
@ -1669,7 +1669,7 @@ msgstr "%d érték hozzáadása"
|
||||
msgid ""
|
||||
"Note: If the file contains multiple tables, they will be combined into one."
|
||||
msgstr ""
|
||||
"Megjegyzés: Ha a fájl több táblát tartalmaz, akkor azok egyesítve lesznek"
|
||||
"Megjegyzés: Ha a fájl több táblát tartalmaz, akkor azok egyesítve lesznek."
|
||||
|
||||
#: js/messages.php:262
|
||||
msgid "Hide query box"
|
||||
@ -1727,16 +1727,14 @@ msgid "Show search criteria"
|
||||
msgstr "Keresési kritériumok megjelenítése"
|
||||
|
||||
#: js/messages.php:278
|
||||
#, fuzzy
|
||||
#| msgid "Hide search criteria"
|
||||
msgid "Hide find and replace criteria"
|
||||
msgstr "Keresési kritériumok elrejtése"
|
||||
msgstr "Keresési és csere kritériumok elrejtése"
|
||||
|
||||
#: js/messages.php:279
|
||||
#, fuzzy
|
||||
#| msgid "Show search criteria"
|
||||
msgid "Show find and replace criteria"
|
||||
msgstr "Keresési kritériumok megjelenítése"
|
||||
msgstr "Keresési és csere kritériumok megjelenítése"
|
||||
|
||||
#: js/messages.php:282 libraries/TableSearch.class.php:212
|
||||
msgid "Zoom Search"
|
||||
@ -1947,10 +1945,9 @@ msgid "Hide Panel"
|
||||
msgstr "Panel elrejtése"
|
||||
|
||||
#: js/messages.php:369
|
||||
#, fuzzy
|
||||
#| msgid "Show logo in navigation panel"
|
||||
msgid "Show hidden navigation tree items"
|
||||
msgstr "A logó megjelenítése a bal oldali keretben"
|
||||
msgstr "Rejtett navigációs faszerkezet elemeinek mutatása"
|
||||
|
||||
#: js/messages.php:372
|
||||
msgid "The requested page was not found in the history, it may have expired."
|
||||
@ -2670,16 +2667,16 @@ msgstr ""
|
||||
"%sdokumentációban%s."
|
||||
|
||||
#: libraries/DisplayResults.class.php:4921
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Showing rows"
|
||||
msgid "Showing rows %1s - %2s"
|
||||
msgstr "Megjelenített sorok"
|
||||
msgstr "Sorok megjelenítése %1s-%2s"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4933
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "total"
|
||||
msgid "%d total"
|
||||
msgstr "összesen"
|
||||
msgstr "összesen %d"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4945 libraries/sql.lib.php:1640
|
||||
#, php-format
|
||||
@ -2870,7 +2867,7 @@ msgstr "Az elsődleges kulcs eldobása megtörtént"
|
||||
#: libraries/Index.class.php:608
|
||||
#, php-format
|
||||
msgid "Index %s has been dropped."
|
||||
msgstr "A(z) %s index eldobása megtörtént"
|
||||
msgstr "A(z) %s index eldobása megtörtént."
|
||||
|
||||
#: libraries/Index.class.php:731
|
||||
#, php-format
|
||||
@ -3344,20 +3341,18 @@ msgid "Reset zoom"
|
||||
msgstr "Nagyítás visszaállítása"
|
||||
|
||||
#: libraries/TableSearch.class.php:1281
|
||||
#, fuzzy
|
||||
#| msgid "Replace NULL with:"
|
||||
msgid "Replace with:"
|
||||
msgstr "NULL cseréje ezzel:"
|
||||
msgstr "Csere ezzel:"
|
||||
|
||||
#: libraries/TableSearch.class.php:1341
|
||||
msgid "Find and replace - preview"
|
||||
msgstr ""
|
||||
|
||||
#: libraries/TableSearch.class.php:1345
|
||||
#, fuzzy
|
||||
#| msgid "Column"
|
||||
msgid "Count"
|
||||
msgstr "Oszlop"
|
||||
msgstr "Számláló"
|
||||
|
||||
#: libraries/TableSearch.class.php:1346
|
||||
#, fuzzy
|
||||
@ -3853,7 +3848,7 @@ msgstr "Válasszon a szerver feltöltési könyvtárából <b> %s </b>:"
|
||||
#: libraries/Util.class.php:3406 libraries/insert_edit.lib.php:1183
|
||||
#: libraries/sql_query_form.lib.php:483
|
||||
msgid "The directory you set for upload work cannot be reached."
|
||||
msgstr "Nem elérhető a feltöltésekhez megadott könyvtár"
|
||||
msgstr "Nem elérhető a feltöltésekhez megadott könyvtár."
|
||||
|
||||
#: libraries/Util.class.php:3417
|
||||
msgid "There are no files to upload"
|
||||
@ -8110,7 +8105,7 @@ msgstr ""
|
||||
#: libraries/plugins/auth/AuthenticationSignon.class.php:271
|
||||
#, php-format
|
||||
msgid "No activity within %s seconds; please log in again."
|
||||
msgstr "Nem volt tevékenység %s másodperce; jelentkezzen be újra"
|
||||
msgstr "Nem volt tevékenység %s másodperce; jelentkezzen be újra."
|
||||
|
||||
#: libraries/plugins/auth/AuthenticationCookie.class.php:689
|
||||
#: libraries/plugins/auth/AuthenticationCookie.class.php:691
|
||||
@ -8134,7 +8129,7 @@ msgstr "A(z) %s fájl nem tartalmaz semmilyen kulcsazonosítót"
|
||||
#: libraries/plugins/auth/swekey/swekey.auth.lib.php:180
|
||||
#: libraries/plugins/auth/swekey/swekey.auth.lib.php:200
|
||||
msgid "Hardware authentication failed!"
|
||||
msgstr "A hardveres hitelesítés nem sikerült"
|
||||
msgstr "A hardveres hitelesítés nem sikerült!"
|
||||
|
||||
#: libraries/plugins/auth/swekey/swekey.auth.lib.php:187
|
||||
msgid "No valid authentication key plugged"
|
||||
@ -11554,9 +11549,8 @@ msgid ""
|
||||
"There seems to be an error in your SQL query. The MySQL server error output "
|
||||
"below, if there is any, may also help you in diagnosing the problem."
|
||||
msgstr ""
|
||||
"Úgy látszik, hogy hiba van az SQL lekérdezésben. A MySQL szerver "
|
||||
"hibakimenete alul látható, ha van ott valami, az segíthet kideríteni a hiba "
|
||||
"okát"
|
||||
"Úgy tűnik, hogy hiba van az SQL lekérdezésben. A MySQL szerver hibakimenete "
|
||||
"alul látható, amennyiben van hibakiírás, az segíthet kideríteni a hiba okát."
|
||||
|
||||
#: libraries/sqlparser.lib.php:178
|
||||
msgid ""
|
||||
|
||||
31
po/sv.po
31
po/sv.po
@ -4,16 +4,16 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2013-07-29 13:37-0400\n"
|
||||
"PO-Revision-Date: 2013-07-19 20:33+0200\n"
|
||||
"PO-Revision-Date: 2013-07-30 11:17+0200\n"
|
||||
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
|
||||
"Language-Team: Swedish <http://l10n.cihar.com/projects/phpmyadmin/master/sv/"
|
||||
">\n"
|
||||
"Language-Team: Swedish "
|
||||
"<http://l10n.cihar.com/projects/phpmyadmin/master/sv/>\n"
|
||||
"Language: sv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 1.6-dev\n"
|
||||
"X-Generator: Weblate 1.6\n"
|
||||
|
||||
#: browse_foreigners.php:51 browse_foreigners.php:75 js/messages.php:339
|
||||
#: libraries/DisplayResults.class.php:813
|
||||
@ -2646,16 +2646,16 @@ msgid ""
|
||||
msgstr "Denna vy har åtminstone detta antal rader. Se %sdokumentationen%s."
|
||||
|
||||
#: libraries/DisplayResults.class.php:4921
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Showing rows"
|
||||
msgid "Showing rows %1s - %2s"
|
||||
msgstr "Visar rader"
|
||||
msgstr "Visar raderna %1s - %2s"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4933
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "total"
|
||||
msgid "%d total"
|
||||
msgstr "totalt"
|
||||
msgstr "%d totalt"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4945 libraries/sql.lib.php:1640
|
||||
#, php-format
|
||||
@ -7636,34 +7636,29 @@ msgid "An error has occured while loading the navigation tree"
|
||||
msgstr "Ett fel uppstod vid inläsning av navigeringsträdet"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:172
|
||||
#, fuzzy
|
||||
#| msgid "Events"
|
||||
msgid "Events:"
|
||||
msgstr "Händelser"
|
||||
msgstr "Händelser:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:173
|
||||
#, fuzzy
|
||||
#| msgid "Functions"
|
||||
msgid "Functions:"
|
||||
msgstr "Funktioner"
|
||||
msgstr "Funktioner:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:174
|
||||
#, fuzzy
|
||||
#| msgid "Procedures"
|
||||
msgid "Procedures:"
|
||||
msgstr "Procedurer"
|
||||
msgstr "Procedurer:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:175
|
||||
#, fuzzy
|
||||
#| msgid "Tables"
|
||||
msgid "Tables:"
|
||||
msgstr "Tabeller"
|
||||
msgstr "Tabeller:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:176
|
||||
#, fuzzy
|
||||
#| msgid "Views"
|
||||
msgid "Views:"
|
||||
msgstr "Vy"
|
||||
msgstr "Vyer:"
|
||||
|
||||
#: libraries/navigation/NavigationHeader.class.php:183
|
||||
msgid "Home"
|
||||
|
||||
104
po/zh_TW.po
104
po/zh_TW.po
@ -4,16 +4,16 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2013-07-29 13:37-0400\n"
|
||||
"PO-Revision-Date: 2013-07-13 20:32+0200\n"
|
||||
"PO-Revision-Date: 2013-07-30 11:12+0200\n"
|
||||
"Last-Translator: Tony Chen <tonychen@finenet.com.tw>\n"
|
||||
"Language-Team: Traditional Chinese <http://l10n.cihar.com/projects/"
|
||||
"phpmyadmin/master/zh_TW/>\n"
|
||||
"Language-Team: Traditional Chinese "
|
||||
"<http://l10n.cihar.com/projects/phpmyadmin/master/zh_TW/>\n"
|
||||
"Language: zh_TW\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 1.6-dev\n"
|
||||
"X-Generator: Weblate 1.6\n"
|
||||
|
||||
#: browse_foreigners.php:51 browse_foreigners.php:75 js/messages.php:339
|
||||
#: libraries/DisplayResults.class.php:813
|
||||
@ -1885,10 +1885,9 @@ msgid "Hide Panel"
|
||||
msgstr "隱藏控制面板"
|
||||
|
||||
#: js/messages.php:369
|
||||
#, fuzzy
|
||||
#| msgid "Show logo in navigation panel"
|
||||
msgid "Show hidden navigation tree items"
|
||||
msgstr "在左側面板中顯示 logo"
|
||||
msgstr "顯示隱藏的導覽樹項目"
|
||||
|
||||
#: js/messages.php:372
|
||||
msgid "The requested page was not found in the history, it may have expired."
|
||||
@ -2603,16 +2602,16 @@ msgid ""
|
||||
msgstr "這個檢視至少需包含這個數目的資料,請參考%sdocumentation%s。"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4921
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Showing rows"
|
||||
msgid "Showing rows %1s - %2s"
|
||||
msgstr "顯示行"
|
||||
msgstr "顯示行 %1s-%2s"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4933
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "total"
|
||||
msgid "%d total"
|
||||
msgstr "總計"
|
||||
msgstr "總數 %d"
|
||||
|
||||
#: libraries/DisplayResults.class.php:4945 libraries/sql.lib.php:1640
|
||||
#, php-format
|
||||
@ -5164,7 +5163,7 @@ msgstr "內存限制"
|
||||
|
||||
#: libraries/config/messages.inc.php:299
|
||||
msgid "Show logo in navigation panel"
|
||||
msgstr "在左側面板中顯示 logo"
|
||||
msgstr "在導覽面板中顯示 logo"
|
||||
|
||||
#: libraries/config/messages.inc.php:300
|
||||
msgid "Display logo"
|
||||
@ -5190,7 +5189,7 @@ msgstr "Logo 連結目標"
|
||||
|
||||
#: libraries/config/messages.inc.php:305
|
||||
msgid "Display server choice at the top of the navigation panel"
|
||||
msgstr "在左側面板頂部顯示伺服器選擇"
|
||||
msgstr "在導覽面板頂部顯示伺服器選擇"
|
||||
|
||||
#: libraries/config/messages.inc.php:306
|
||||
msgid "Display servers selection"
|
||||
@ -5283,7 +5282,7 @@ msgstr "僅使用圖示、文字或都使用"
|
||||
|
||||
#: libraries/config/messages.inc.php:327
|
||||
msgid "Table navigation bar"
|
||||
msgstr "資料表導航欄"
|
||||
msgstr "資料表導覽欄"
|
||||
|
||||
#: libraries/config/messages.inc.php:328
|
||||
msgid "use GZip output buffering for increased speed in HTTP transfers"
|
||||
@ -5864,50 +5863,45 @@ msgid "User preferences storage table"
|
||||
msgstr "使用者偏好表"
|
||||
|
||||
#: libraries/config/messages.inc.php:455
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Leave blank for no user preferences storage in database, suggested: [kbd]"
|
||||
#| "pma__userconfig[/kbd]"
|
||||
msgid ""
|
||||
"Leave blank to disable configurable menus feature, suggested: [kbd]pma__users"
|
||||
"[/kbd]"
|
||||
msgstr "不在資料庫中儲存使用者偏好請留空,建議值:[kbd]pma__config[/kbd]"
|
||||
msgstr "空白為禁用配置的選單功能,建議值:[kbd]pma__users[/kbd]"
|
||||
|
||||
#: libraries/config/messages.inc.php:456
|
||||
#, fuzzy
|
||||
#| msgid "Use Tables"
|
||||
msgid "Users table"
|
||||
msgstr "使用表"
|
||||
msgstr "使用者資料表"
|
||||
|
||||
#: libraries/config/messages.inc.php:457
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Leave blank for no user preferences storage in database, suggested: [kbd]"
|
||||
#| "pma__userconfig[/kbd]"
|
||||
msgid ""
|
||||
"Leave blank to disable configurable menus feature, suggested: [kbd]"
|
||||
"pma__usergroups[/kbd]"
|
||||
msgstr "不在資料庫中儲存使用者偏好請留空,建議值:[kbd]pma__config[/kbd]"
|
||||
msgstr "空白為禁用配置的選單功能,建議值:[kbd]pma__usergroups[/kbd]"
|
||||
|
||||
#: libraries/config/messages.inc.php:458
|
||||
#, fuzzy
|
||||
#| msgid "Use Host Table"
|
||||
msgid "User groups table"
|
||||
msgstr "使用主機表"
|
||||
msgstr "使用者群組資料表"
|
||||
|
||||
#: libraries/config/messages.inc.php:459
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Leave blank for no user preferences storage in database, suggested: [kbd]"
|
||||
#| "pma__userconfig[/kbd]"
|
||||
msgid ""
|
||||
"Leave blank to disable the feature to hide and show navigation items, "
|
||||
"suggested: [kbd]pma__navigationhiding[/kbd]"
|
||||
msgstr "不在資料庫中儲存使用者偏好請留空,建議值:[kbd]pma__config[/kbd]"
|
||||
msgstr "空白為禁用隱藏和顯示項目的功能,建議值:[kbd]pma__navigationhiding[/kbd]"
|
||||
|
||||
#: libraries/config/messages.inc.php:460
|
||||
msgid "Hidden navigation items table"
|
||||
msgstr ""
|
||||
msgstr "隱藏導覽項目資料表"
|
||||
|
||||
#: libraries/config/messages.inc.php:462
|
||||
msgid "User for config auth"
|
||||
@ -7389,37 +7383,32 @@ msgstr "未知"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:61
|
||||
msgid "An error has occured while loading the navigation tree"
|
||||
msgstr "載入導航樹時出錯"
|
||||
msgstr "載入導覽樹時出錯"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:172
|
||||
#, fuzzy
|
||||
#| msgid "Events"
|
||||
msgid "Events:"
|
||||
msgstr "事件"
|
||||
msgstr "事件:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:173
|
||||
#, fuzzy
|
||||
#| msgid "Functions"
|
||||
msgid "Functions:"
|
||||
msgstr "函數"
|
||||
msgstr "函數:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:174
|
||||
#, fuzzy
|
||||
#| msgid "Procedures"
|
||||
msgid "Procedures:"
|
||||
msgstr "Procedure"
|
||||
msgstr "Procedure:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:175
|
||||
#, fuzzy
|
||||
#| msgid "Tables"
|
||||
msgid "Tables:"
|
||||
msgstr "資料表"
|
||||
msgstr "資料表:"
|
||||
|
||||
#: libraries/navigation/Navigation.class.php:176
|
||||
#, fuzzy
|
||||
#| msgid "Views"
|
||||
msgid "Views:"
|
||||
msgstr "視表"
|
||||
msgstr "視表:"
|
||||
|
||||
#: libraries/navigation/NavigationHeader.class.php:183
|
||||
msgid "Home"
|
||||
@ -7435,7 +7424,7 @@ msgstr "phpMyAdmin 檔案"
|
||||
|
||||
#: libraries/navigation/NavigationHeader.class.php:243
|
||||
msgid "Reload navigation frame"
|
||||
msgstr "重新整理導覽框架"
|
||||
msgstr "重新整理導覽區"
|
||||
|
||||
#: libraries/navigation/NavigationTree.class.php:712
|
||||
#, php-format
|
||||
@ -8474,16 +8463,14 @@ msgid "User preferences"
|
||||
msgstr "使用者偏好"
|
||||
|
||||
#: libraries/relation.lib.php:264
|
||||
#, fuzzy
|
||||
#| msgid "Configuration: %s"
|
||||
msgid "Configurable menus"
|
||||
msgstr "設定: %s"
|
||||
msgstr "配置選單"
|
||||
|
||||
#: libraries/relation.lib.php:275
|
||||
#, fuzzy
|
||||
#| msgid "Reload navigation frame"
|
||||
msgid "Hide/show navigation items"
|
||||
msgstr "重新整理導覽框架"
|
||||
msgstr "隱藏/顯示導覽項目"
|
||||
|
||||
#: libraries/relation.lib.php:281
|
||||
msgid "Quick steps to setup advanced features:"
|
||||
@ -9616,7 +9603,7 @@ msgstr "無"
|
||||
#: libraries/server_privileges.lib.php:2531
|
||||
#: libraries/server_privileges.lib.php:3235
|
||||
msgid "User group"
|
||||
msgstr ""
|
||||
msgstr "使用者群組"
|
||||
|
||||
#: libraries/server_privileges.lib.php:618
|
||||
msgid "Resource limits"
|
||||
@ -9839,10 +9826,9 @@ msgid "Add privileges on the following table:"
|
||||
msgstr "在下列資料表新增權限:"
|
||||
|
||||
#: libraries/server_privileges.lib.php:2599
|
||||
#, fuzzy
|
||||
#| msgid "Edit server"
|
||||
msgid "Edit user group"
|
||||
msgstr "編輯伺服器"
|
||||
msgstr "編輯使用者群組"
|
||||
|
||||
#: libraries/server_privileges.lib.php:2714
|
||||
msgid "Remove selected users"
|
||||
@ -9904,69 +9890,61 @@ msgstr ""
|
||||
#: libraries/server_privileges.lib.php:3187
|
||||
#, php-format
|
||||
msgid "Users of '%s' user group"
|
||||
msgstr ""
|
||||
msgstr "使用者群組 '%s' 清單"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3198
|
||||
msgid "No users were found belonging to this user group."
|
||||
msgstr ""
|
||||
msgstr "這個使用者群組為空的。"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3229
|
||||
#: libraries/server_privileges.lib.php:3878
|
||||
#, fuzzy
|
||||
#| msgid "Users"
|
||||
msgid "User groups"
|
||||
msgstr "使用者"
|
||||
msgstr "使用者群組"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3236
|
||||
#: libraries/server_privileges.lib.php:3402
|
||||
#, fuzzy
|
||||
#| msgid "Server version"
|
||||
msgid "Server-level tabs"
|
||||
msgstr "伺服器版本"
|
||||
msgstr "主機級別標籤頁"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3237
|
||||
#: libraries/server_privileges.lib.php:3405
|
||||
#, fuzzy
|
||||
#| msgid "Database server"
|
||||
msgid "Database-level tabs"
|
||||
msgstr "資料庫伺服器"
|
||||
msgstr "資料庫級別標籤頁"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3238
|
||||
#: libraries/server_privileges.lib.php:3408
|
||||
#, fuzzy
|
||||
#| msgid "Table comments"
|
||||
msgid "Table-level tabs"
|
||||
msgstr "表註釋"
|
||||
msgstr "資料表級別標籤頁"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3260
|
||||
#, fuzzy
|
||||
#| msgid "Views"
|
||||
msgid "View users"
|
||||
msgstr "視表"
|
||||
msgstr "檢視使用者"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3288
|
||||
#: libraries/server_privileges.lib.php:3344
|
||||
#, fuzzy
|
||||
#| msgid "Add user"
|
||||
msgid "Add user group"
|
||||
msgstr "新增使用者"
|
||||
msgstr "新增使用者群組"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3347
|
||||
#, php-format
|
||||
msgid "Edit user group: '%s'"
|
||||
msgstr ""
|
||||
msgstr "編輯使用者群組: '%s'"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3363
|
||||
#, fuzzy
|
||||
#| msgid "No privileges."
|
||||
msgid "User group privileges"
|
||||
msgstr "沒有權限。"
|
||||
msgstr "使用者群組權限"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3370
|
||||
#, fuzzy
|
||||
#| msgid "Column names: "
|
||||
msgid "Group name:"
|
||||
msgstr "欄位名稱: "
|
||||
msgstr "群組名稱:"
|
||||
|
||||
#: libraries/server_privileges.lib.php:3521
|
||||
msgid "The selected user was not found in the privilege table."
|
||||
@ -11473,7 +11451,7 @@ msgstr "ZIP 包中有錯誤:"
|
||||
|
||||
#: navigation.php:20
|
||||
msgid "Fatal error: The navigation can only be accessed via AJAX"
|
||||
msgstr "錯誤: 只能經由 AJAX 使用導航"
|
||||
msgstr "錯誤: 只能經由 AJAX 使用導覽"
|
||||
|
||||
#: pmd_display_field.php:49 pmd_save_pos.php:75
|
||||
msgid "Modifications have been saved"
|
||||
|
||||
@ -53,8 +53,9 @@ $response->addHTML(PMA_getHtmlForErrorMessage());
|
||||
|
||||
if ($server_master_status) {
|
||||
$response->addHTML(PMA_getHtmlForMasterReplication());
|
||||
} elseif (! isset($_REQUEST['mr_configure']) &&
|
||||
! isset($_REQUEST['repl_clear_scr'])) {
|
||||
} elseif (! isset($_REQUEST['mr_configure'])
|
||||
&& ! isset($_REQUEST['repl_clear_scr'])
|
||||
) {
|
||||
$response->addHTML(PMA_getHtmlForNotServerReplication());
|
||||
}
|
||||
|
||||
@ -70,7 +71,7 @@ if (! isset($_REQUEST['repl_clear_scr'])) {
|
||||
// Render the 'Slave configuration' section
|
||||
$response->addHTML(
|
||||
PMA_getHtmlForSlaveConfiguration(
|
||||
$server_slave_status,
|
||||
$server_slave_status,
|
||||
$server_slave_replication
|
||||
)
|
||||
);
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
|
||||
/**
|
||||
* Displays query statistics for the server
|
||||
*
|
||||
@ -9,6 +10,8 @@
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/server_common.inc.php';
|
||||
require_once 'libraries/ServerStatusData.class.php';
|
||||
require_once 'libraries/server_status_queries.lib.php';
|
||||
|
||||
if (PMA_DRIZZLE) {
|
||||
$server_master_status = false;
|
||||
$server_slave_status = false;
|
||||
@ -23,6 +26,7 @@ $response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('server_status_queries.js');
|
||||
|
||||
/* < IE 9 doesn't support canvas natively */
|
||||
if (PMA_USR_BROWSER_AGENT == 'IE' && PMA_USR_BROWSER_VER < 9) {
|
||||
$scripts->addFile('jqplot/excanvas.js');
|
||||
@ -42,138 +46,8 @@ $scripts->addFile('server_status_sorter.js');
|
||||
// Add the html content to the response
|
||||
$response->addHTML('<div>');
|
||||
$response->addHTML($ServerStatusData->getMenuHtml());
|
||||
$response->addHTML(PMA_getQueryStatisticsHtml($ServerStatusData));
|
||||
$response->addHTML(PMA_getHtmlForQueryStatistics($ServerStatusData));
|
||||
$response->addHTML('</div>');
|
||||
exit;
|
||||
|
||||
/**
|
||||
* Returns the html content for the query statistics
|
||||
*
|
||||
* @param object $ServerStatusData An instance of the PMA_ServerStatusData class
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function PMA_getQueryStatisticsHtml($ServerStatusData)
|
||||
{
|
||||
$retval = '';
|
||||
|
||||
$hour_factor = 3600 / $ServerStatusData->status['Uptime'];
|
||||
$used_queries = $ServerStatusData->used_queries;
|
||||
$total_queries = array_sum($used_queries);
|
||||
|
||||
$retval .= '<h3 id="serverstatusqueries">';
|
||||
/* l10n: Questions is the name of a MySQL Status variable */
|
||||
$retval .= sprintf(
|
||||
__('Questions since startup: %s'),
|
||||
PMA_Util::formatNumber($total_queries, 0)
|
||||
);
|
||||
$retval .= ' ';
|
||||
$retval .= PMA_Util::showMySQLDocu(
|
||||
'server-status-variables',
|
||||
'server-status-variables',
|
||||
false,
|
||||
'statvar_Questions'
|
||||
);
|
||||
$retval .= '<br />';
|
||||
$retval .= '<span>';
|
||||
$retval .= 'ø ' . __('per hour:') . ' ';
|
||||
$retval .= PMA_Util::formatNumber($total_queries * $hour_factor, 0);
|
||||
$retval .= '<br />';
|
||||
$retval .= 'ø ' . __('per minute:') . ' ';
|
||||
$retval .= PMA_Util::formatNumber($total_queries * 60 / $ServerStatusData->status['Uptime'], 0);
|
||||
$retval .= '<br />';
|
||||
if ($total_queries / $ServerStatusData->status['Uptime'] >= 1) {
|
||||
$retval .= 'ø ' . __('per second:') . ' ';
|
||||
$retval .= PMA_Util::formatNumber($total_queries / $ServerStatusData->status['Uptime'], 0);
|
||||
}
|
||||
$retval .= '</span>';
|
||||
$retval .= '</h3>';
|
||||
|
||||
$retval .= PMA_getServerStatusQueriesDetailsHtml($ServerStatusData);
|
||||
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the html content for the query details
|
||||
*
|
||||
* @param object $ServerStatusData An instance of the PMA_ServerStatusData class
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function PMA_getServerStatusQueriesDetailsHtml($ServerStatusData)
|
||||
{
|
||||
$hour_factor = 3600 / $ServerStatusData->status['Uptime'];
|
||||
$used_queries = $ServerStatusData->used_queries;
|
||||
$total_queries = array_sum($used_queries);
|
||||
// reverse sort by value to show most used statements first
|
||||
arsort($used_queries);
|
||||
|
||||
$odd_row = true;
|
||||
$perc_factor = 100 / $total_queries; //(- $ServerStatusData->status['Connections']);
|
||||
|
||||
$retval = '<table id="serverstatusqueriesdetails" class="data sortable noclick">';
|
||||
$retval .= '<col class="namecol" />';
|
||||
$retval .= '<col class="valuecol" span="3" />';
|
||||
$retval .= '<thead>';
|
||||
$retval .= '<tr><th>' . __('Statements') . '</th>';
|
||||
$retval .= '<th>';
|
||||
/* l10n: # = Amount of queries */
|
||||
$retval .= __('#');
|
||||
$retval .= '</th>';
|
||||
$retval .= '<th>ø ' . __('per hour') . '</th>';
|
||||
$retval .= '<th>%</th>';
|
||||
$retval .= '</tr>';
|
||||
$retval .= '</thead>';
|
||||
$retval .= '<tbody>';
|
||||
|
||||
$chart_json = array();
|
||||
$query_sum = array_sum($used_queries);
|
||||
$other_sum = 0;
|
||||
foreach ($used_queries as $name => $value) {
|
||||
$odd_row = !$odd_row;
|
||||
// For the percentage column, use Questions - Connections, because
|
||||
// the number of connections is not an item of the Query types
|
||||
// but is included in Questions. Then the total of the percentages is 100.
|
||||
$name = str_replace(array('Com_', '_'), array('', ' '), $name);
|
||||
// Group together values that make out less than 2% into "Other", but only
|
||||
// if we have more than 6 fractions already
|
||||
if ($value < $query_sum * 0.02 && count($chart_json)>6) {
|
||||
$other_sum += $value;
|
||||
} else {
|
||||
$chart_json[$name] = $value;
|
||||
}
|
||||
$retval .= '<tr class="';
|
||||
$retval .= $odd_row ? 'odd' : 'even';
|
||||
$retval .= '">';
|
||||
$retval .= '<th class="name">' . htmlspecialchars($name) . '</th>';
|
||||
$retval .= '<td class="value">';
|
||||
$retval .= htmlspecialchars(PMA_Util::formatNumber($value, 5, 0, true));
|
||||
$retval .= '</td>';
|
||||
$retval .= '<td class="value">';
|
||||
$retval .= htmlspecialchars(
|
||||
PMA_Util::formatNumber($value * $hour_factor, 4, 1, true)
|
||||
);
|
||||
$retval .= '</td>';
|
||||
$retval .= '<td class="value">';
|
||||
$retval .= htmlspecialchars(
|
||||
PMA_Util::formatNumber($value * $perc_factor, 0, 2)
|
||||
);
|
||||
$retval .= '</td>';
|
||||
$retval .= '</tr>';
|
||||
}
|
||||
$retval .= '</tbody>';
|
||||
$retval .= '</table>';
|
||||
|
||||
$retval .= '<div id="serverstatusquerieschart"></div>';
|
||||
$retval .= '<div id="serverstatusquerieschart_data" style="display:none;">';
|
||||
if ($other_sum > 0) {
|
||||
$chart_json[__('Other')] = $other_sum;
|
||||
}
|
||||
$retval .= htmlspecialchars(json_encode($chart_json));
|
||||
$retval .= '</div>';
|
||||
|
||||
return $retval;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@ -72,7 +72,7 @@ class ConfigGenerator
|
||||
$ret .= self::_getVarExport($k, $cf->getDefault($k), $crlf);
|
||||
}
|
||||
}
|
||||
$ret .= '?>';
|
||||
$ret .= '?' . '>';
|
||||
|
||||
return $ret;
|
||||
}
|
||||
@ -108,7 +108,7 @@ class ConfigGenerator
|
||||
/**
|
||||
* Check whether $array is a continuous 0-based array
|
||||
*
|
||||
* @param array $array
|
||||
* @param array $array Array to check
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
@ -125,8 +125,8 @@ class ConfigGenerator
|
||||
/**
|
||||
* Exports continuous 0-based array
|
||||
*
|
||||
* @param array $array
|
||||
* @param string $crlf
|
||||
* @param array $array Array to export
|
||||
* @param string $crlf Newline string
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
||||
@ -12,7 +12,7 @@ require_once './libraries/common.inc.php';
|
||||
define('TABLE_MAY_BE_ABSENT', true);
|
||||
require './libraries/tbl_common.inc.php';
|
||||
$url_query .= '&goto=tbl_tracking.php&back=tbl_tracking.php';
|
||||
$url_params['goto'] = 'tbl_tracking.php';;
|
||||
$url_params['goto'] = 'tbl_tracking.php';
|
||||
$url_params['back'] = 'tbl_tracking.php';
|
||||
|
||||
// Init vars for tracking report
|
||||
|
||||
@ -627,9 +627,9 @@ class PMA_DisplayResults_Test extends PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* Test for _getCheckBoxesForMultipleRowOperations
|
||||
*
|
||||
* @param string $dir _left / _right
|
||||
* @param array $is_display display mode
|
||||
* @param string $output output of _getCheckBoxesForMultipleRowOperations
|
||||
* @param string $dir _left / _right
|
||||
* @param array $is_display display mode
|
||||
* @param string $output output of _getCheckBoxesForMultipleRowOperations
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
|
||||
@ -33,8 +33,8 @@ class PMA_Types_Drizzle_Test extends PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* Test for getTypeDescription
|
||||
*
|
||||
* @param string $type The data type to get a description.
|
||||
* @param $output string
|
||||
* @param string $type The data type to get a description.
|
||||
* @param string $output Expected string
|
||||
*
|
||||
* @dataProvider providerForTestGetTypeDescription
|
||||
*/
|
||||
@ -127,8 +127,8 @@ class PMA_Types_Drizzle_Test extends PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* Test for getTypeClass
|
||||
*
|
||||
* @param $type
|
||||
* @param $output
|
||||
* @param string $type Type to test
|
||||
* @param string $output Expected result
|
||||
*
|
||||
* @dataProvider providerFortTestGetTypeClass
|
||||
*/
|
||||
@ -169,8 +169,8 @@ class PMA_Types_Drizzle_Test extends PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* Test for getFunctionsClass
|
||||
*
|
||||
* @param string $class The class to get function list.
|
||||
* @param $output array
|
||||
* @param string $class The class to get function list.
|
||||
* @param array $output Expected result
|
||||
*
|
||||
* @dataProvider providerFortTestGetFunctionsClass
|
||||
*/
|
||||
|
||||
@ -39,7 +39,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function tearDown()
|
||||
@ -49,7 +49,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
|
||||
/**
|
||||
* Test for AuthenticationHttp::auth
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuth()
|
||||
@ -73,7 +73,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
);
|
||||
|
||||
// case 2
|
||||
|
||||
|
||||
$restoreInstance = PMA_Response::getInstance();
|
||||
|
||||
// mock footer
|
||||
@ -98,7 +98,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
$mockHeader->expects($this->once())
|
||||
->method('setBodyId')
|
||||
->with('loginform');
|
||||
|
||||
|
||||
$mockHeader->expects($this->once())
|
||||
->method('setTitle')
|
||||
->with('Access denied');
|
||||
@ -128,7 +128,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
->with();
|
||||
|
||||
$attrInstance = new ReflectionProperty('PMA_Response', '_instance');
|
||||
$attrInstance->setAccessible(true);
|
||||
$attrInstance->setAccessible(true);
|
||||
$attrInstance->setValue(null, $mockResponse);
|
||||
|
||||
$GLOBALS['header'] = array();
|
||||
@ -151,7 +151,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
$attrInstance->setValue(null, $restoreInstance);
|
||||
|
||||
// case 3
|
||||
|
||||
|
||||
$GLOBALS['header'] = array();
|
||||
$GLOBALS['cfg']['Server']['verbose'] = '';
|
||||
$GLOBALS['cfg']['Server']['host'] = 'hòst';
|
||||
@ -169,7 +169,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
);
|
||||
|
||||
// case 4
|
||||
|
||||
|
||||
$GLOBALS['header'] = array();
|
||||
$GLOBALS['cfg']['Server']['host'] = '';
|
||||
$GLOBALS['cfg']['Server']['auth_http_realm'] = 'rêäealmmessage';
|
||||
@ -189,7 +189,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
|
||||
/**
|
||||
* Test for AuthenticationHttp::authCheck
|
||||
*
|
||||
*
|
||||
* @param string $user test username
|
||||
* @param string $pass test password
|
||||
* @param string $userIndex index to test username against
|
||||
@ -198,7 +198,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
* @param string $expectedUser expected username to be set
|
||||
* @param string $expectedPass expected password to be set
|
||||
* @param string $old_usr value for $_REQUEST['old_usr']
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @dataProvider authCheckProvider
|
||||
*/
|
||||
@ -217,7 +217,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
$expectedReturn,
|
||||
$this->object->authCheck()
|
||||
);
|
||||
|
||||
|
||||
$this->assertEquals(
|
||||
$expectedUser,
|
||||
$GLOBALS['PHP_AUTH_USER']
|
||||
@ -234,7 +234,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
|
||||
/**
|
||||
* Data provider for testAuthCheck
|
||||
*
|
||||
*
|
||||
* @return array Test data
|
||||
*/
|
||||
public function authCheckProvider()
|
||||
@ -291,7 +291,7 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
|
||||
/**
|
||||
* Test for AuthenticationHttp::authSetUser
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuthSetUser()
|
||||
@ -399,8 +399,10 @@ class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
|
||||
/**
|
||||
* Test for AuthenticationHttp::authSetFails
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @group medium
|
||||
*/
|
||||
public function testAuthFails()
|
||||
{
|
||||
|
||||
@ -20,7 +20,7 @@ class PMA_Iconv_Wrapper_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
||||
/**
|
||||
* Test for PMA_aix_iconv_mapCharsets
|
||||
* Test for PMA_convertAIXMapCharsets
|
||||
*
|
||||
* @param string $in_charset Non IBM-AIX-Compliant in-charset
|
||||
* @param string $out_charset Non IBM-AIX-Compliant out-charset
|
||||
@ -36,7 +36,7 @@ class PMA_Iconv_Wrapper_Test extends PHPUnit_Framework_TestCase
|
||||
) {
|
||||
$this->assertEquals(
|
||||
array($in_charset_mapped, $out_charset_mapped),
|
||||
PMA_aix_iconv_mapCharsets($in_charset, $out_charset)
|
||||
PMA_convertAIXMapCharsets($in_charset, $out_charset)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -17,8 +17,8 @@ class PMA_MIME_Test extends PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* Test for PMA_detectMIME
|
||||
*
|
||||
* @param string $test
|
||||
* @param $output
|
||||
* @param string $test MIME to test
|
||||
* @param string $output Expected output
|
||||
*
|
||||
* @return void
|
||||
* @dataProvider providerForTestDetectMIME
|
||||
|
||||
@ -299,7 +299,7 @@ class PMA_User_Preferences_Test extends PHPUnit_Framework_TestCase
|
||||
public function testReadUserprefsFieldNames()
|
||||
{
|
||||
$this->assertCount(
|
||||
216,
|
||||
217,
|
||||
PMA_readUserprefsFieldNames()
|
||||
);
|
||||
|
||||
|
||||
@ -55,8 +55,8 @@ class PMA_Zip_Test extends PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* Test for unix2DosTime
|
||||
*
|
||||
* @param $unixtime
|
||||
* @param $output
|
||||
* @param int $unixTime UNIX timestamp
|
||||
* @param int $output DOS timestamp
|
||||
*
|
||||
* @dataProvider providerForTestUnix2DosTime
|
||||
*/
|
||||
|
||||
@ -1867,7 +1867,7 @@ fieldset .disabled-field td {
|
||||
}
|
||||
|
||||
.config-form .lastrow {
|
||||
background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;;
|
||||
background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
|
||||
padding: .5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@ -2327,7 +2327,7 @@ fieldset .disabled-field td {
|
||||
}
|
||||
|
||||
.config-form .lastrow {
|
||||
background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;;
|
||||
background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
|
||||
padding: .5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@ -16,9 +16,11 @@ header('Content-type: application/json; charset=UTF-8');
|
||||
|
||||
$version = PMA_Util::getLatestVersion();
|
||||
|
||||
echo json_encode(array(
|
||||
'version' => $version->version,
|
||||
'date' => $version->date,
|
||||
));
|
||||
echo json_encode(
|
||||
array(
|
||||
'version' => $version->version,
|
||||
'date' => $version->date,
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user