Merge remote-tracking branch 'origin/master' into useNamespaces_master
This commit is contained in:
commit
71b62bcef9
14
ChangeLog
14
ChangeLog
@ -11,8 +11,18 @@ phpMyAdmin - ChangeLog
|
||||
- issue #11480 Notice Undefined index: drop_database
|
||||
- issue #11486 Server variable edition in ANSI_QUOTES sql_mode: losing current value
|
||||
- issue #11491 Propose table structure broken
|
||||
- issue #11464 phpMyAdmin suggests upgrading to newer version not usable on that system
|
||||
- issue #11495 'PMA_Microhistory' is undefined
|
||||
- issue #11496 Incorrect definition for getTablesWhenOpen()
|
||||
- issue #11500 Error when creating new user on MariaDB 10.0.21
|
||||
|
||||
4.5.0.0 (not yet released)
|
||||
4.5.0.2 (2015-09-25)
|
||||
- issue #11497 Incorrect indexes when exporting
|
||||
|
||||
4.5.0.1 (2015-09-24)
|
||||
- issue #11492 AUTO_INCREMENT statements are partly missing from exports
|
||||
|
||||
4.5.0.0 (2015-09-23)
|
||||
+ rfe Pagination for GIS visualization
|
||||
+ issue #6207 Usability improvements for console
|
||||
+ issue #6310 Access to Add columns text-box and Go button when creating table
|
||||
@ -112,7 +122,7 @@ phpMyAdmin - ChangeLog
|
||||
- issue #11448 Clarify doc about the MemoryLimit directive
|
||||
- issue #11489 Cannot copy a database under certain conditions
|
||||
|
||||
4.4.15.0 (not yet released)
|
||||
4.4.15.0 (2015-09-20)
|
||||
- issue #11411 Undefined "replace" function on numeric scalar
|
||||
- issue #11421 Stored-proc / routine - broken parameter parsing
|
||||
- issue Missing name for configuration read_as_multibytes
|
||||
|
||||
@ -20,8 +20,8 @@ PHP
|
||||
* You need GD2 support in PHP to display inline thumbnails of JPEGs
|
||||
("image/jpeg: inline") with their original aspect ratio.
|
||||
|
||||
* When using the cookie authentication (the default), the `mcrypt
|
||||
<http://www.php.net/mcrypt>`_ extension is strongly suggested.
|
||||
* When using the cookie authentication (the default), the `openssl
|
||||
<http://www.php.net/openssl>`_ extension is strongly suggested.
|
||||
|
||||
* To support upload progress bars, see :ref:`faq2_9`.
|
||||
|
||||
|
||||
@ -410,7 +410,7 @@ if (!defined('TESTSUITE')) {
|
||||
// Will we need relation & co. setup?
|
||||
$do_relation = isset($GLOBALS[$what . '_relation']);
|
||||
$do_comments = isset($GLOBALS[$what . '_include_comments'])
|
||||
|| isset($GLOBALS[$what . '_comments']) ;
|
||||
|| isset($GLOBALS[$what . '_comments']);
|
||||
$do_mime = isset($GLOBALS[$what . '_mime']);
|
||||
if ($do_relation || $do_comments || $do_mime) {
|
||||
$cfgRelation = PMA_getRelationsParam();
|
||||
|
||||
@ -2837,7 +2837,7 @@ AJAX.registerOnload('functions.js', function () {
|
||||
// Redirect to table structure page on creation of new table
|
||||
var params_12 = 'ajax_request=true&ajax_page_request=true';
|
||||
if (! (history && history.pushState)) {
|
||||
params_12 += PMA_Microhistory.menus.getRequestParam();
|
||||
params_12 += PMA_MicroHistory.menus.getRequestParam();
|
||||
}
|
||||
tblStruct_url = 'tbl_structure.php?server=' + data._params.server +
|
||||
'&db='+ data._params.db + '&token=' + data._params.token +
|
||||
@ -3971,7 +3971,7 @@ AJAX.registerOnload('functions.js', function () {
|
||||
* Load version information asynchronously.
|
||||
*/
|
||||
if ($('li.jsversioncheck').length > 0) {
|
||||
$.getJSON('version_check.php', {}, PMA_current_version);
|
||||
$.getJSON('version_check.php', {'server' : PMA_commonParams.get('server')}, PMA_current_version);
|
||||
}
|
||||
|
||||
if ($('#is_git_revision').length > 0) {
|
||||
|
||||
@ -128,7 +128,7 @@ AJAX.registerOnload('server_databases.js', function () {
|
||||
dbStruct_url = dbStruct_url.replace(/amp;/ig, '');
|
||||
var params = 'ajax_request=true&ajax_page_request=true';
|
||||
if (! (history && history.pushState)) {
|
||||
params += PMA_Microhistory.menus.getRequestParam();
|
||||
params += PMA_MicroHistory.menus.getRequestParam();
|
||||
}
|
||||
$.get(dbStruct_url, params, AJAX.responseHandler);
|
||||
} else {
|
||||
|
||||
@ -396,12 +396,12 @@ AJAX.registerOnload('sql.js', function () {
|
||||
);
|
||||
AJAX.handleMenu.replace(data._menu);
|
||||
} else {
|
||||
PMA_Microhistory.menus.replace(data._menu);
|
||||
PMA_Microhistory.menus.add(data._menuHash, data._menu);
|
||||
PMA_MicroHistory.menus.replace(data._menu);
|
||||
PMA_MicroHistory.menus.add(data._menuHash, data._menu);
|
||||
}
|
||||
} else if (data._menuHash) {
|
||||
if (! (history && history.pushState)) {
|
||||
PMA_Microhistory.menus.replace(PMA_Microhistory.menus.get(data._menuHash));
|
||||
PMA_MicroHistory.menus.replace(PMA_MicroHistory.menus.get(data._menuHash));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1190,10 +1190,9 @@ class DisplayResults
|
||||
|
||||
// See if this column should get highlight because it's used in the
|
||||
// where-query.
|
||||
$condition_field = (isset($highlight_columns[$fields_meta[$i]->name])
|
||||
|| isset(
|
||||
$highlight_columns[Util::backquote($fields_meta[$i]->name)])
|
||||
)
|
||||
$name = $fields_meta[$i]->name;
|
||||
$condition_field = (isset($highlight_columns[$name])
|
||||
|| isset($highlight_columns[Util::backquote($name)]))
|
||||
? true
|
||||
: false;
|
||||
|
||||
|
||||
@ -321,7 +321,7 @@ class Footer
|
||||
$this->_scripts->addCode(
|
||||
sprintf(
|
||||
'if (! (history && history.pushState)) '
|
||||
. 'PMA_Microhistory.primer = {'
|
||||
. 'PMA_MicroHistory.primer = {'
|
||||
. ' url: "%s",'
|
||||
. ' scripts: %s,'
|
||||
. ' menuHash: "%s"'
|
||||
|
||||
@ -110,7 +110,7 @@ class StorageEngine
|
||||
if (PMA_MYSQL_INT_VERSION >= 50708) {
|
||||
$disabled = Util::cacheGet(
|
||||
'disabled_storage_engines',
|
||||
function() {
|
||||
function () {
|
||||
return $GLOBALS['dbi']->fetchValue(
|
||||
'SELECT @@disabled_storage_engines'
|
||||
);
|
||||
|
||||
@ -4424,161 +4424,6 @@ class Util
|
||||
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'phpMyAdmin/' . PMA_VERSION);
|
||||
return $curl_handle;
|
||||
}
|
||||
/**
|
||||
* Returns information with latest version from phpmyadmin.net
|
||||
*
|
||||
* @return object JSON decoded object with the data
|
||||
*/
|
||||
public static function getLatestVersion()
|
||||
{
|
||||
if (!$GLOBALS['cfg']['VersionCheck']) {
|
||||
return new stdClass();
|
||||
}
|
||||
|
||||
// wait 3s at most for server response, it's enough to get information
|
||||
// from a working server
|
||||
$connection_timeout = 3;
|
||||
|
||||
$response = '{}';
|
||||
// Get response text from phpmyadmin.net or from the session
|
||||
// Update cache every 6 hours
|
||||
if (isset($_SESSION['cache']['version_check'])
|
||||
&& time() < $_SESSION['cache']['version_check']['timestamp'] + 3600 * 6
|
||||
) {
|
||||
$save = false;
|
||||
$response = $_SESSION['cache']['version_check']['response'];
|
||||
} else {
|
||||
$save = true;
|
||||
$file = 'https://www.phpmyadmin.net/home_page/version.json';
|
||||
if (ini_get('allow_url_fopen')) {
|
||||
$context = array(
|
||||
'http' => array(
|
||||
'request_fulluri' => true,
|
||||
'timeout' => $connection_timeout,
|
||||
)
|
||||
);
|
||||
$context = Util::handleContext($context);
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_write_close();
|
||||
}
|
||||
$response = file_get_contents(
|
||||
$file,
|
||||
false,
|
||||
stream_context_create($context)
|
||||
);
|
||||
} else if (function_exists('curl_init')) {
|
||||
$curl_handle = curl_init($file);
|
||||
if ($curl_handle === false) {
|
||||
return null;
|
||||
}
|
||||
$curl_handle = Util::configureCurl($curl_handle);
|
||||
curl_setopt(
|
||||
$curl_handle,
|
||||
CURLOPT_HEADER,
|
||||
false
|
||||
);
|
||||
curl_setopt(
|
||||
$curl_handle,
|
||||
CURLOPT_RETURNTRANSFER,
|
||||
true
|
||||
);
|
||||
curl_setopt(
|
||||
$curl_handle,
|
||||
CURLOPT_TIMEOUT,
|
||||
$connection_timeout
|
||||
);
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_write_close();
|
||||
}
|
||||
$response = curl_exec($curl_handle);
|
||||
}
|
||||
}
|
||||
|
||||
$data = json_decode($response);
|
||||
if (is_object($data)
|
||||
&& ! empty($data->version)
|
||||
&& ! empty($data->date)
|
||||
&& $save
|
||||
) {
|
||||
if (! isset($_SESSION) && ! defined('TESTSUITE')) {
|
||||
ini_set('session.use_only_cookies', 'false');
|
||||
ini_set('session.use_cookies', 'false');
|
||||
ini_set('session.use_trans_sid', 'false');
|
||||
ini_set('session.cache_limiter', 'nocache');
|
||||
session_start();
|
||||
}
|
||||
$_SESSION['cache']['version_check'] = array(
|
||||
'response' => $response,
|
||||
'timestamp' => time()
|
||||
);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates numerical equivalent of phpMyAdmin version string
|
||||
*
|
||||
* @param string $version version
|
||||
*
|
||||
* @return mixed false on failure, integer on success
|
||||
*/
|
||||
public static function versionToInt($version)
|
||||
{
|
||||
$parts = explode('-', $version);
|
||||
if (count($parts) > 1) {
|
||||
$suffix = $parts[1];
|
||||
} else {
|
||||
$suffix = '';
|
||||
}
|
||||
$parts = explode('.', $parts[0]);
|
||||
|
||||
$result = 0;
|
||||
|
||||
if (count($parts) >= 1 && is_numeric($parts[0])) {
|
||||
$result += 1000000 * $parts[0];
|
||||
}
|
||||
|
||||
if (count($parts) >= 2 && is_numeric($parts[1])) {
|
||||
$result += 10000 * $parts[1];
|
||||
}
|
||||
|
||||
if (count($parts) >= 3 && is_numeric($parts[2])) {
|
||||
$result += 100 * $parts[2];
|
||||
}
|
||||
|
||||
if (count($parts) >= 4 && is_numeric($parts[3])) {
|
||||
$result += 1 * $parts[3];
|
||||
}
|
||||
|
||||
if (!empty($suffix)) {
|
||||
$matches = array();
|
||||
if (preg_match('/^(\D+)(\d+)$/', $suffix, $matches)) {
|
||||
$suffix = $matches[1];
|
||||
$result += intval($matches[2]);
|
||||
}
|
||||
switch ($suffix) {
|
||||
case 'pl':
|
||||
$result += 60;
|
||||
break;
|
||||
case 'rc':
|
||||
$result += 30;
|
||||
break;
|
||||
case 'beta':
|
||||
$result += 20;
|
||||
break;
|
||||
case 'alpha':
|
||||
$result += 10;
|
||||
break;
|
||||
case 'dev':
|
||||
$result += 0;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$result += 50; // for final
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add fractional seconds to time, datetime and timestamp strings.
|
||||
@ -5035,7 +4880,7 @@ class Util
|
||||
* @return array $tables list of tables
|
||||
*
|
||||
*/
|
||||
public function getTablesWhenOpen($db, $db_info_result)
|
||||
public static function getTablesWhenOpen($db, $db_info_result)
|
||||
{
|
||||
$sot_cache = $tables = array();
|
||||
|
||||
|
||||
272
libraries/VersionInformation.php
Normal file
272
libraries/VersionInformation.php
Normal file
@ -0,0 +1,272 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Responsible for retrieving version information and notifiying about latest version
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
use PMA\libraries\Util;
|
||||
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Responsible for retrieving version information and notifiying about latest version
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*
|
||||
*/
|
||||
class VersionInformation
|
||||
{
|
||||
/**
|
||||
* Returns information with latest version from phpmyadmin.net
|
||||
*
|
||||
* @return object JSON decoded object with the data
|
||||
*/
|
||||
public function getLatestVersion()
|
||||
{
|
||||
if (!$GLOBALS['cfg']['VersionCheck']) {
|
||||
return new stdClass();
|
||||
}
|
||||
|
||||
// wait 3s at most for server response, it's enough to get information
|
||||
// from a working server
|
||||
$connection_timeout = 3;
|
||||
|
||||
$response = '{}';
|
||||
// Get response text from phpmyadmin.net or from the session
|
||||
// Update cache every 6 hours
|
||||
if (isset($_SESSION['cache']['version_check'])
|
||||
&& time() < $_SESSION['cache']['version_check']['timestamp'] + 3600 * 6
|
||||
) {
|
||||
$save = false;
|
||||
$response = $_SESSION['cache']['version_check']['response'];
|
||||
} else {
|
||||
$save = true;
|
||||
$file = 'https://www.phpmyadmin.net/home_page/version.json';
|
||||
if (ini_get('allow_url_fopen')) {
|
||||
$context = array(
|
||||
'http' => array(
|
||||
'request_fulluri' => true,
|
||||
'timeout' => $connection_timeout,
|
||||
)
|
||||
);
|
||||
$context = Util::handleContext($context);
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_write_close();
|
||||
}
|
||||
$response = file_get_contents(
|
||||
$file,
|
||||
false,
|
||||
stream_context_create($context)
|
||||
);
|
||||
} else if (function_exists('curl_init')) {
|
||||
$curl_handle = curl_init($file);
|
||||
if ($curl_handle === false) {
|
||||
return null;
|
||||
}
|
||||
$curl_handle = Util::configureCurl($curl_handle);
|
||||
curl_setopt(
|
||||
$curl_handle,
|
||||
CURLOPT_HEADER,
|
||||
false
|
||||
);
|
||||
curl_setopt(
|
||||
$curl_handle,
|
||||
CURLOPT_RETURNTRANSFER,
|
||||
true
|
||||
);
|
||||
curl_setopt(
|
||||
$curl_handle,
|
||||
CURLOPT_TIMEOUT,
|
||||
$connection_timeout
|
||||
);
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_write_close();
|
||||
}
|
||||
$response = curl_exec($curl_handle);
|
||||
}
|
||||
}
|
||||
|
||||
$data = json_decode($response);
|
||||
if (is_object($data)
|
||||
&& ! empty($data->version)
|
||||
&& ! empty($data->date)
|
||||
&& $save
|
||||
) {
|
||||
if (! isset($_SESSION) && ! defined('TESTSUITE')) {
|
||||
ini_set('session.use_only_cookies', 'false');
|
||||
ini_set('session.use_cookies', 'false');
|
||||
ini_set('session.use_trans_sid', 'false');
|
||||
ini_set('session.cache_limiter', 'nocache');
|
||||
session_start();
|
||||
}
|
||||
$_SESSION['cache']['version_check'] = array(
|
||||
'response' => $response,
|
||||
'timestamp' => time()
|
||||
);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates numerical equivalent of phpMyAdmin version string
|
||||
*
|
||||
* @param string $version version
|
||||
*
|
||||
* @return mixed false on failure, integer on success
|
||||
*/
|
||||
public function versionToInt($version)
|
||||
{
|
||||
$parts = explode('-', $version);
|
||||
if (count($parts) > 1) {
|
||||
$suffix = $parts[1];
|
||||
} else {
|
||||
$suffix = '';
|
||||
}
|
||||
$parts = explode('.', $parts[0]);
|
||||
|
||||
$result = 0;
|
||||
|
||||
if (count($parts) >= 1 && is_numeric($parts[0])) {
|
||||
$result += 1000000 * $parts[0];
|
||||
}
|
||||
|
||||
if (count($parts) >= 2 && is_numeric($parts[1])) {
|
||||
$result += 10000 * $parts[1];
|
||||
}
|
||||
|
||||
if (count($parts) >= 3 && is_numeric($parts[2])) {
|
||||
$result += 100 * $parts[2];
|
||||
}
|
||||
|
||||
if (count($parts) >= 4 && is_numeric($parts[3])) {
|
||||
$result += 1 * $parts[3];
|
||||
}
|
||||
|
||||
if (!empty($suffix)) {
|
||||
$matches = array();
|
||||
if (preg_match('/^(\D+)(\d+)$/', $suffix, $matches)) {
|
||||
$suffix = $matches[1];
|
||||
$result += intval($matches[2]);
|
||||
}
|
||||
switch ($suffix) {
|
||||
case 'pl':
|
||||
$result += 60;
|
||||
break;
|
||||
case 'rc':
|
||||
$result += 30;
|
||||
break;
|
||||
case 'beta':
|
||||
$result += 20;
|
||||
break;
|
||||
case 'alpha':
|
||||
$result += 10;
|
||||
break;
|
||||
case 'dev':
|
||||
$result += 0;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$result += 50; // for final
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the version and date of the latest phpMyAdmin version compatible
|
||||
* with the available PHP and MySQL versions
|
||||
*
|
||||
* @param array $releases array of information related to each version
|
||||
*
|
||||
* @return array containing the version and date of latest compatible version
|
||||
*/
|
||||
public function getLatestCompatibleVersion($releases)
|
||||
{
|
||||
foreach ($releases as $release) {
|
||||
$phpVersions = $release->php_versions;
|
||||
$phpConditions = explode(",", $phpVersions);
|
||||
foreach ($phpConditions as $phpCondition) {
|
||||
if (! $this->evaluateVersionCondition("PHP", $phpCondition)) {
|
||||
continue 2;
|
||||
}
|
||||
}
|
||||
|
||||
// We evalute MySQL version constraint if there are only
|
||||
// one server configured.
|
||||
if (count($GLOBALS['cfg']['Servers']) == 1) {
|
||||
$mysqlVersions = $release->mysql_versions;
|
||||
$mysqlConditions = explode(",", $mysqlVersions);
|
||||
foreach ($mysqlConditions as $mysqlCondition) {
|
||||
if (! $this->evaluateVersionCondition('MySQL', $mysqlCondition)) {
|
||||
continue 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array(
|
||||
'version' => $release->version,
|
||||
'date' => $release->date,
|
||||
);
|
||||
}
|
||||
|
||||
// no compatible version
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether PHP or MySQL version meets supplied version condition
|
||||
*
|
||||
* @param string $type PHP or MySQL
|
||||
* @param string $condition version condition
|
||||
*
|
||||
* @return boolean whether the condition is met
|
||||
*/
|
||||
public function evaluateVersionCondition($type, $condition)
|
||||
{
|
||||
$operator = null;
|
||||
$operators = array("<=", ">=", "!=", "<>", "<", ">", "="); // preserve order
|
||||
foreach ($operators as $oneOperator) {
|
||||
if (strpos($condition, $oneOperator) === 0) {
|
||||
$operator = $oneOperator;
|
||||
$version = substr($condition, strlen($oneOperator));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$myVersion = null;
|
||||
if ($type == 'PHP') {
|
||||
$myVersion = $this->getPHPVersion();
|
||||
} elseif ($type == 'MySQL') {
|
||||
$myVersion = $this->getMySQLVersion();
|
||||
}
|
||||
|
||||
if ($myVersion != null && $operator != null) {
|
||||
return version_compare($myVersion, $version, $operator);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the PHP version
|
||||
*
|
||||
* @return string PHP version
|
||||
*/
|
||||
protected function getPHPVersion()
|
||||
{
|
||||
return PHP_VERSION;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the MySQL version
|
||||
*
|
||||
* @return string MySQL version
|
||||
*/
|
||||
protected function getMySQLVersion()
|
||||
{
|
||||
return Util::cacheGet('PMA_MYSQL_STR_VERSION');
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -1020,7 +1020,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
|
||||
/**
|
||||
* Charset information
|
||||
*/
|
||||
require_once './libraries/mysql_charsets.inc.php';
|
||||
include_once './libraries/mysql_charsets.inc.php';
|
||||
|
||||
if (!isset($mysql_charsets)) {
|
||||
$mysql_charsets = array();
|
||||
|
||||
@ -161,7 +161,7 @@ class DatabaseStructureController extends DatabaseController
|
||||
return;
|
||||
}
|
||||
|
||||
require_once 'libraries/replication.inc.php';
|
||||
include_once 'libraries/replication.inc.php';
|
||||
|
||||
PageSettings::showGroup('DbStructure');
|
||||
|
||||
|
||||
@ -629,7 +629,7 @@ $GLOBALS['dummy_queries'] = array(
|
||||
. "`CREATE_OPTIONS` AS `Create_options`, "
|
||||
. "`TABLE_COMMENT` AS `Comment` "
|
||||
. "FROM `information_schema`.`TABLES` t "
|
||||
. "WHERE BINARY `TABLE_SCHEMA` IN ('db') "
|
||||
. "WHERE `TABLE_SCHEMA` IN ('db') "
|
||||
. "AND t.`TABLE_NAME` = 'table' ORDER BY Name ASC",
|
||||
'result' => array()
|
||||
),
|
||||
@ -640,6 +640,10 @@ $GLOBALS['dummy_queries'] = array(
|
||||
array(
|
||||
'query' => "SELECT @@have_partitioning;",
|
||||
'result' => array()
|
||||
),
|
||||
array(
|
||||
'query' => "SELECT @@lower_case_table_names",
|
||||
'result' => array()
|
||||
)
|
||||
);
|
||||
/**
|
||||
|
||||
@ -38,10 +38,10 @@ if (! function_exists('openssl_encrypt')
|
||||
|| ! function_exists('openssl_random_pseudo_bytes')
|
||||
|| PHP_VERSION_ID < 50304
|
||||
) {
|
||||
require PHPSECLIB_INC_DIR . '/Crypt/Base.php';
|
||||
require PHPSECLIB_INC_DIR . '/Crypt/Rijndael.php';
|
||||
require PHPSECLIB_INC_DIR . '/Crypt/AES.php';
|
||||
require PHPSECLIB_INC_DIR . '/Crypt/Random.php';
|
||||
include PHPSECLIB_INC_DIR . '/Crypt/Base.php';
|
||||
include PHPSECLIB_INC_DIR . '/Crypt/Rijndael.php';
|
||||
include PHPSECLIB_INC_DIR . '/Crypt/AES.php';
|
||||
include PHPSECLIB_INC_DIR . '/Crypt/Random.php';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1742,13 +1742,12 @@ class ExportSql extends ExportPlugin
|
||||
}
|
||||
|
||||
// Generating auto-increment-related query.
|
||||
if ((!empty($auto_increment))
|
||||
&& ($update_indexes_increments)
|
||||
&& ($statement->entityOptions->has('AUTO_INCREMENT') !== false)
|
||||
) {
|
||||
if ((! empty($auto_increment)) && ($update_indexes_increments)) {
|
||||
$sql_auto_increments_query = $alter_header . $crlf . ' MODIFY '
|
||||
. implode(',' . $crlf . ' MODIFY ', $auto_increment);
|
||||
if (isset($GLOBALS['sql_auto_increment'])) {
|
||||
if (isset($GLOBALS['sql_auto_increment'])
|
||||
&& ($statement->entityOptions->has('AUTO_INCREMENT') !== false)
|
||||
) {
|
||||
$sql_auto_increments_query .= ', AUTO_INCREMENT='
|
||||
. $statement->entityOptions->has('AUTO_INCREMENT');
|
||||
}
|
||||
@ -2712,9 +2711,9 @@ class ExportSql extends ExportPlugin
|
||||
// Key's columns.
|
||||
if (!empty($field->key)) {
|
||||
foreach ($field->key->columns as $key => $column) {
|
||||
if (!empty($aliases[$old_database]['tables'][$old_table]['columns'][$column])) {
|
||||
$field->key->columns[$key] = $aliases[$old_database]
|
||||
['tables'][$old_table]['columns'][$column];
|
||||
if (!empty($aliases[$old_database]['tables'][$old_table]['columns'][$column['name']])) {
|
||||
$field->key->columns[$key]['name'] = $aliases[$old_database]
|
||||
['tables'][$old_table]['columns'][$column['name']];
|
||||
$flag = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4962,6 +4962,7 @@ function PMA_getSqlQueriesForDisplayAndAddUser($username, $hostname, $password)
|
||||
$slashedUsername = Util::sqlAddSlashes($username);
|
||||
$slashedHostname = Util::sqlAddSlashes($hostname);
|
||||
$slashedPassword = Util::sqlAddSlashes($password);
|
||||
$serverType = Util::getServerType();
|
||||
|
||||
$create_user_stmt = sprintf(
|
||||
'CREATE USER \'%s\'@\'%s\'',
|
||||
@ -4970,12 +4971,14 @@ function PMA_getSqlQueriesForDisplayAndAddUser($username, $hostname, $password)
|
||||
);
|
||||
|
||||
if (PMA_MYSQL_INT_VERSION >= 50507
|
||||
&& $serverType == 'MySQL'
|
||||
&& isset($_REQUEST['authentication_plugin'])
|
||||
) {
|
||||
$create_user_stmt .= ' IDENTIFIED WITH '
|
||||
. $_REQUEST['authentication_plugin'];
|
||||
}
|
||||
if (PMA_MYSQL_INT_VERSION >= 50707
|
||||
&& $serverType == 'MySQL'
|
||||
&& strpos($create_user_stmt, '%') !== false
|
||||
) {
|
||||
$create_user_stmt = str_replace(
|
||||
@ -5000,7 +5003,9 @@ function PMA_getSqlQueriesForDisplayAndAddUser($username, $hostname, $password)
|
||||
);
|
||||
$real_sql_query = $sql_query = $sql_query_stmt;
|
||||
|
||||
if (PMA_MYSQL_INT_VERSION < 50707) {
|
||||
if (PMA_MYSQL_INT_VERSION < 50707
|
||||
|| $serverType != 'MySQL'
|
||||
) {
|
||||
if ($_POST['pred_password'] == 'keep') {
|
||||
$password_set_real = sprintf(
|
||||
$password_set_stmt,
|
||||
@ -5083,7 +5088,7 @@ function PMA_getSqlQueriesForDisplayAndAddUser($username, $hostname, $password)
|
||||
$sql_query = '';
|
||||
}
|
||||
|
||||
if (Util::getServerType() == 'MySQL'
|
||||
if ($serverType == 'MySQL'
|
||||
&& PMA_MYSQL_INT_VERSION >= 50700
|
||||
) {
|
||||
$password_set_real = null;
|
||||
@ -5114,7 +5119,6 @@ function PMA_getRoutineType($dbname, $routineName)
|
||||
{
|
||||
$routineData = $GLOBALS['dbi']->getRoutines($dbname);
|
||||
|
||||
$routines = array();
|
||||
foreach ($routineData as $routine) {
|
||||
if ($routine['name'] === $routineName) {
|
||||
return $routine['type'];
|
||||
|
||||
@ -95,6 +95,13 @@ class Key extends Component
|
||||
{
|
||||
$ret = new Key();
|
||||
|
||||
/**
|
||||
* Last parsed column.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
$lastColumn = array();
|
||||
|
||||
/**
|
||||
* The state of the parser.
|
||||
*
|
||||
@ -135,12 +142,31 @@ class Key extends Component
|
||||
$state = 1;
|
||||
} elseif ($state === 1) {
|
||||
if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) {
|
||||
$ret->columns = ArrayObj::parse($parser, $list)->values;
|
||||
$state = 2;
|
||||
} else {
|
||||
$ret->name = $token->value;
|
||||
}
|
||||
} elseif ($state === 2) {
|
||||
if ($token->type === Token::TYPE_OPERATOR) {
|
||||
if ($token->value === '(') {
|
||||
$state = 3;
|
||||
} elseif (($token->value === ',') || ($token->value === ')')) {
|
||||
$state = ($token->value === ',') ? 2 : 4;
|
||||
if (!empty($lastColumn)) {
|
||||
$ret->columns[] = $lastColumn;
|
||||
$lastColumn = array();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$lastColumn['name'] = $token->value;
|
||||
}
|
||||
} elseif ($state === 3) {
|
||||
if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ')')) {
|
||||
$state = 2;
|
||||
} else {
|
||||
$lastColumn['length'] = $token->value;
|
||||
}
|
||||
} elseif ($state === 4) {
|
||||
$ret->options = OptionsArray::parse($parser, $list, static::$KEY_OPTIONS);
|
||||
++$list->idx;
|
||||
break;
|
||||
@ -163,8 +189,17 @@ class Key extends Component
|
||||
if (!empty($component->name)) {
|
||||
$ret .= Context::escape($component->name) . ' ';
|
||||
}
|
||||
$ret .= '(' . implode(',', Context::escape($component->columns)) . ') '
|
||||
. $component->options;
|
||||
|
||||
$columns = array();
|
||||
foreach ($component->columns as $column) {
|
||||
$tmp = Context::escape($column['name']);
|
||||
if (isset($column['length'])) {
|
||||
$tmp .= '(' . $column['length'] . ')';
|
||||
}
|
||||
$columns[] = $tmp;
|
||||
}
|
||||
|
||||
$ret .= '(' . implode(',', $columns) . ') ' . $component->options;
|
||||
return trim($ret);
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,9 +45,14 @@ class Table
|
||||
continue;
|
||||
}
|
||||
|
||||
$columns = array();
|
||||
foreach ($field->key->columns as $column) {
|
||||
$columns[] = $column['name'];
|
||||
}
|
||||
|
||||
$tmp = array(
|
||||
'constraint' => $field->name,
|
||||
'index_list' => $field->key->columns,
|
||||
'index_list' => $columns,
|
||||
);
|
||||
|
||||
if (!empty($field->references)) {
|
||||
|
||||
@ -105,7 +105,7 @@ if (isset($_REQUEST['step1'])) {
|
||||
} else if (isset($_REQUEST['step3'])) {
|
||||
$res = PMA_getHtmlContentsFor1NFStep3($db, $table);
|
||||
$response->addJSON($res);
|
||||
} else if (isset ($_REQUEST['step4'])) {
|
||||
} else if (isset($_REQUEST['step4'])) {
|
||||
$res = PMA_getHtmlContentsFor1NFStep4($db, $table);
|
||||
$response->addJSON($res);
|
||||
} else if (isset($_REQUEST['step']) && $_REQUEST['step'] == 2.1) {
|
||||
|
||||
244
po/ca.po
244
po/ca.po
@ -4,16 +4,16 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.6.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 07:31-0400\n"
|
||||
"PO-Revision-Date: 2015-08-27 13:57+0200\n"
|
||||
"PO-Revision-Date: 2015-09-24 18:03+0200\n"
|
||||
"Last-Translator: Xavier Navarro <xvnavarro@gmail.com>\n"
|
||||
"Language-Team: Catalan <https://hosted.weblate.org/projects/phpmyadmin/"
|
||||
"master/ca/>\n"
|
||||
"Language-Team: Catalan "
|
||||
"<https://hosted.weblate.org/projects/phpmyadmin/master/ca/>\n"
|
||||
"Language: ca\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 2.4-dev\n"
|
||||
"X-Generator: Weblate 2.5\n"
|
||||
|
||||
#: changelog.php:37 license.php:30
|
||||
#, php-format
|
||||
@ -652,10 +652,9 @@ msgstr ""
|
||||
"informació disponible a %s."
|
||||
|
||||
#: index.php:163
|
||||
#, fuzzy
|
||||
#| msgid "General Settings"
|
||||
msgid "General settings"
|
||||
msgstr "Paràmetres Generals"
|
||||
msgstr "Paràmetres generals"
|
||||
|
||||
#: index.php:191 js/messages.php:525
|
||||
#: libraries/display_change_password.lib.php:50
|
||||
@ -668,7 +667,6 @@ msgid "Server connection collation"
|
||||
msgstr "Ordenació de la connexió del servidor"
|
||||
|
||||
#: index.php:229
|
||||
#, fuzzy
|
||||
#| msgid "Appearance Settings"
|
||||
msgid "Appearance settings"
|
||||
msgstr "Paràmetres d'aparença"
|
||||
@ -974,14 +972,19 @@ msgid ""
|
||||
"collation; in this case we suggest you revert to the original collation and "
|
||||
"refer to the tips at "
|
||||
msgstr ""
|
||||
"Aquesta operació intentarà convertir les seves dades al nou joc de "
|
||||
"caràcters. En casos estranys, especialment on un caràcter no existeix en el "
|
||||
"nou joc, aquest procés podria causar que les dades apareguin incorrectament; "
|
||||
"en aquest cas us suggerim tornar al joc de caràcters original i indicar un "
|
||||
"consell "
|
||||
|
||||
#: js/messages.php:73
|
||||
msgid "Garbled Data"
|
||||
msgstr ""
|
||||
msgstr "Dades confuses"
|
||||
|
||||
#: js/messages.php:75
|
||||
msgid "Are you sure you wish to change the collation and convert the data?"
|
||||
msgstr ""
|
||||
msgstr "Estàs segur de voler canviar el joc de caràcters i convertir les dades?"
|
||||
|
||||
#: js/messages.php:77
|
||||
msgid ""
|
||||
@ -992,15 +995,23 @@ msgid ""
|
||||
"column(s) editing feature (the \"Change\" Link) on the table structure page. "
|
||||
"</b>"
|
||||
msgstr ""
|
||||
"Mitjançant aquesta operació, MySQL intenta assignar els valors de dades "
|
||||
"entre jocs de caràcters. Si els conjunts de caràcters són incompatibles, hi "
|
||||
"pot haver pèrdua de dades i aquesta pèrdua <b>no</b> es pot recuperar "
|
||||
"simplement canviant altra vegada el(s) joc(s) de caràcters de la columna. <b>"
|
||||
"Per convertir les dades existents, se suggereix utilitzar la característica "
|
||||
"d'edició de columnes (l'enllaç de \"Canvi\") a la pàgina de l'estructura de "
|
||||
"taula.</b>"
|
||||
|
||||
#: js/messages.php:85
|
||||
msgid ""
|
||||
"Are you sure you wish to change all the column collations and convert the "
|
||||
"data?"
|
||||
msgstr ""
|
||||
"Estàs segur de voler canviar tots els jocs de caràcters de columna i "
|
||||
"convertir les dades?"
|
||||
|
||||
#: js/messages.php:88
|
||||
#, fuzzy
|
||||
#| msgid "Save & Close"
|
||||
msgid "Save & close"
|
||||
msgstr "Desa i tanca"
|
||||
@ -1012,10 +1023,9 @@ msgid "Reset"
|
||||
msgstr "Reinicia"
|
||||
|
||||
#: js/messages.php:90
|
||||
#, fuzzy
|
||||
#| msgid "Reset All"
|
||||
msgid "Reset all"
|
||||
msgstr "Reinicia Tot"
|
||||
msgstr "Reinicia tot"
|
||||
|
||||
#: js/messages.php:93
|
||||
msgid "Missing value in the form!"
|
||||
@ -1038,7 +1048,6 @@ msgid "Add index"
|
||||
msgstr "Afegir índex"
|
||||
|
||||
#: js/messages.php:98
|
||||
#, fuzzy
|
||||
#| msgid "Edit Index"
|
||||
msgid "Edit index"
|
||||
msgstr "Editar índex"
|
||||
@ -1089,7 +1098,6 @@ msgstr "Consulta SQL:"
|
||||
|
||||
#. l10n: Default label for the y-Axis of Charts
|
||||
#: js/messages.php:118
|
||||
#, fuzzy
|
||||
#| msgid "Y Values"
|
||||
msgid "Y values"
|
||||
msgstr "Valors Y"
|
||||
@ -1127,7 +1135,7 @@ msgstr "S'ha creat la plantilla."
|
||||
|
||||
#: js/messages.php:130
|
||||
msgid "Template was loaded."
|
||||
msgstr ""
|
||||
msgstr "Plantilla carregada."
|
||||
|
||||
#: js/messages.php:131
|
||||
msgid "Template was updated."
|
||||
@ -1187,7 +1195,6 @@ msgid "Query cache used"
|
||||
msgstr "Memòria cau de consultes utilitzada"
|
||||
|
||||
#: js/messages.php:151
|
||||
#, fuzzy
|
||||
#| msgid "System CPU Usage"
|
||||
msgid "System CPU usage"
|
||||
msgstr "Ús de la CPU del sistema"
|
||||
@ -1225,25 +1232,21 @@ msgid "Used memory"
|
||||
msgstr "Memòria utilitzada"
|
||||
|
||||
#: js/messages.php:162
|
||||
#, fuzzy
|
||||
#| msgid "Total Swap"
|
||||
msgid "Total swap"
|
||||
msgstr "Intercanvi Total"
|
||||
msgstr "Intercanvi total"
|
||||
|
||||
#: js/messages.php:163
|
||||
#, fuzzy
|
||||
#| msgid "Cached Swap"
|
||||
msgid "Cached swap"
|
||||
msgstr "Intercanvi en cau"
|
||||
|
||||
#: js/messages.php:164
|
||||
#, fuzzy
|
||||
#| msgid "Used Swap"
|
||||
msgid "Used swap"
|
||||
msgstr "Intercanvi utilitzat"
|
||||
|
||||
#: js/messages.php:165
|
||||
#, fuzzy
|
||||
#| msgid "Free Swap"
|
||||
msgid "Free swap"
|
||||
msgstr "Intercanvi lliure"
|
||||
@ -1662,7 +1665,6 @@ msgid "No files available on server for import!"
|
||||
msgstr "No hi ha arxius disponibles al servidor per importar!"
|
||||
|
||||
#: js/messages.php:275
|
||||
#, fuzzy
|
||||
#| msgid "Analyse Query"
|
||||
msgid "Analyse query"
|
||||
msgstr "Analitzar consulta"
|
||||
@ -1728,28 +1730,24 @@ msgid "Loading…"
|
||||
msgstr "Carregar…"
|
||||
|
||||
#: js/messages.php:301
|
||||
#, fuzzy
|
||||
#| msgid "Request Aborted!!"
|
||||
msgid "Request aborted!!"
|
||||
msgstr "Petició abortada!!"
|
||||
msgstr "Petició avortada!!"
|
||||
|
||||
#: js/messages.php:302
|
||||
#, fuzzy
|
||||
#| msgid "Processing Request"
|
||||
msgid "Processing request"
|
||||
msgstr "Petició de procés"
|
||||
msgstr "Processant petició"
|
||||
|
||||
#: js/messages.php:303
|
||||
#, fuzzy
|
||||
#| msgid "Request Failed!!"
|
||||
msgid "Request failed!!"
|
||||
msgstr "Petició Fallida!!"
|
||||
msgstr "Petició fallida!!"
|
||||
|
||||
#: js/messages.php:304
|
||||
#, fuzzy
|
||||
#| msgid "Error in processing request:"
|
||||
msgid "Error in processing request"
|
||||
msgstr "Error processant a la petició:"
|
||||
msgstr "Error processant a la petició"
|
||||
|
||||
#: js/messages.php:305
|
||||
#, php-format
|
||||
@ -1767,16 +1765,14 @@ msgid "No databases selected."
|
||||
msgstr "No s'han triat bases de dades."
|
||||
|
||||
#: js/messages.php:308
|
||||
#, fuzzy
|
||||
#| msgid "Dropping Column"
|
||||
msgid "Dropping column"
|
||||
msgstr "Eliminació de columna"
|
||||
msgstr "Eliminant columna"
|
||||
|
||||
#: js/messages.php:309
|
||||
#, fuzzy
|
||||
#| msgid "Add primary key"
|
||||
msgid "Adding primary key"
|
||||
msgstr "Afegir clau principal"
|
||||
msgstr "Afegint clau principal"
|
||||
|
||||
#: js/messages.php:310
|
||||
#: templates/database/designer/aggregate_query_panel.phtml:59
|
||||
@ -1793,22 +1789,19 @@ msgid "Click to dismiss this notification"
|
||||
msgstr "Prem per rebutjar aquest avís"
|
||||
|
||||
#: js/messages.php:314
|
||||
#, fuzzy
|
||||
#| msgid "Renaming Databases"
|
||||
msgid "Renaming databases"
|
||||
msgstr "Reanomenar bases de dades"
|
||||
msgstr "Reanomenant bases de dades"
|
||||
|
||||
#: js/messages.php:315
|
||||
#, fuzzy
|
||||
#| msgid "Copying Database"
|
||||
msgid "Copying database"
|
||||
msgstr "Copiant base de dades"
|
||||
|
||||
#: js/messages.php:316
|
||||
#, fuzzy
|
||||
#| msgid "Changing Charset"
|
||||
msgid "Changing charset"
|
||||
msgstr "Canvi de Joc de Caràcters"
|
||||
msgstr "Canviant de joc de caràcters"
|
||||
|
||||
#: js/messages.php:320 libraries/Util.class.php:3232
|
||||
msgid "Enable foreign key checks"
|
||||
@ -2198,16 +2191,14 @@ msgid "Geometry"
|
||||
msgstr "Geometria"
|
||||
|
||||
#: js/messages.php:440
|
||||
#, fuzzy
|
||||
#| msgid "Inner Ring"
|
||||
msgid "Inner ring"
|
||||
msgstr "Cercle interior"
|
||||
|
||||
#: js/messages.php:441
|
||||
#, fuzzy
|
||||
#| msgid "Outer ring:"
|
||||
msgid "Outer ring"
|
||||
msgstr "Cercle exterior:"
|
||||
msgstr "Cercle exterior"
|
||||
|
||||
#: js/messages.php:445
|
||||
msgid "Do you want to copy encryption key?"
|
||||
@ -2455,13 +2446,11 @@ msgid "More"
|
||||
msgstr "Més"
|
||||
|
||||
#: js/messages.php:531
|
||||
#, fuzzy
|
||||
#| msgid "Show Panel"
|
||||
msgid "Show panel"
|
||||
msgstr "Mostra el panell"
|
||||
|
||||
#: js/messages.php:532
|
||||
#, fuzzy
|
||||
#| msgid "Hide Panel"
|
||||
msgid "Hide panel"
|
||||
msgstr "Amagar el panell"
|
||||
@ -2539,16 +2528,14 @@ msgid "Create view"
|
||||
msgstr "Crea una vista"
|
||||
|
||||
#: js/messages.php:556
|
||||
#, fuzzy
|
||||
#| msgid "Send error reports"
|
||||
msgid "Send error report"
|
||||
msgstr "Enviar informes d'error"
|
||||
msgstr "Enviar informe d'error"
|
||||
|
||||
#: js/messages.php:557
|
||||
#, fuzzy
|
||||
#| msgid "Submit Error Report"
|
||||
msgid "Submit error report"
|
||||
msgstr "Introduir informe d'error"
|
||||
msgstr "Presentar informe d'error"
|
||||
|
||||
#: js/messages.php:559
|
||||
msgid ""
|
||||
@ -2558,16 +2545,14 @@ msgstr ""
|
||||
"S'ha produït un error fatal de JavaScript. Vols enviar un informe d'errors?"
|
||||
|
||||
#: js/messages.php:561
|
||||
#, fuzzy
|
||||
#| msgid "Change Report Settings"
|
||||
msgid "Change report settings"
|
||||
msgstr "Canviar les configuracions d'informes"
|
||||
msgstr "Canviar les configuracions de l'informe"
|
||||
|
||||
#: js/messages.php:562
|
||||
#, fuzzy
|
||||
#| msgid "Show Report Details"
|
||||
msgid "Show report details"
|
||||
msgstr "Mostra el detall dels informes"
|
||||
msgstr "Mostra el detall de l'informe"
|
||||
|
||||
#: js/messages.php:565
|
||||
msgid ""
|
||||
@ -2614,7 +2599,7 @@ msgstr "Realment vols esborrar aquesta marca?"
|
||||
|
||||
#: js/messages.php:600
|
||||
msgid "Some error occurred while getting SQL debug info."
|
||||
msgstr ""
|
||||
msgstr "S'ha produït algun error en obtenir informació de depuració SQL."
|
||||
|
||||
#: js/messages.php:601
|
||||
#, php-format
|
||||
@ -2624,7 +2609,7 @@ msgstr "%s consultes executades %s vegades en %s segons."
|
||||
#: js/messages.php:602
|
||||
#, php-format
|
||||
msgid "%s argument(s) passed"
|
||||
msgstr ""
|
||||
msgstr "%s argument(s) correctes"
|
||||
|
||||
#: js/messages.php:603
|
||||
msgid "Show arguments"
|
||||
@ -2636,7 +2621,7 @@ msgstr "Amaga els arguments"
|
||||
|
||||
#: js/messages.php:605 libraries/Console.class.php:321
|
||||
msgid "Time taken:"
|
||||
msgstr ""
|
||||
msgstr "Temps dedicat:"
|
||||
|
||||
#: js/messages.php:606
|
||||
msgid ""
|
||||
@ -3231,7 +3216,7 @@ msgstr "Ordre d'execució"
|
||||
|
||||
#: libraries/Console.class.php:295
|
||||
msgid "Time taken"
|
||||
msgstr ""
|
||||
msgstr "Temps dedicat"
|
||||
|
||||
#: libraries/Console.class.php:298
|
||||
msgid "Order by:"
|
||||
@ -3343,7 +3328,7 @@ msgstr "Columna:"
|
||||
|
||||
#: libraries/DBQbe.class.php:513
|
||||
msgid "Alias:"
|
||||
msgstr ""
|
||||
msgstr "Àlies:"
|
||||
|
||||
#: libraries/DBQbe.class.php:566
|
||||
msgid "Sort:"
|
||||
@ -3533,7 +3518,6 @@ msgstr "Dins les taules:"
|
||||
|
||||
#: libraries/DbSearch.class.php:450 libraries/display_export.lib.php:50
|
||||
#: libraries/replication_gui.lib.php:380
|
||||
#, fuzzy
|
||||
#| msgid "Unselect All"
|
||||
msgid "Unselect all"
|
||||
msgstr "Desmarca tot"
|
||||
@ -3706,7 +3690,6 @@ msgstr "Amb marca:"
|
||||
#: libraries/server_user_groups.lib.php:231
|
||||
#: templates/database/structure/check_all_tables.phtml:3
|
||||
#: templates/database/structure/check_all_tables.phtml:4
|
||||
#, fuzzy
|
||||
#| msgid "Check All"
|
||||
msgid "Check all"
|
||||
msgstr "Marcar-ho tot"
|
||||
@ -3925,11 +3908,13 @@ msgstr ""
|
||||
msgid ""
|
||||
"Linting is disabled for this query because it exceeds the maximum length."
|
||||
msgstr ""
|
||||
"L'anàlisi d'errors està desactivat per a aquesta consulta perquè supera la "
|
||||
"longitud màxima."
|
||||
|
||||
#: libraries/Linter.class.php:162
|
||||
#, php-format
|
||||
msgid "%1$s (near <code>%2$s</code>)"
|
||||
msgstr ""
|
||||
msgstr "%1$s (prop de <code>%2$s</code>)"
|
||||
|
||||
#: libraries/Menu.class.php:200 libraries/ServerStatusData.class.php:442
|
||||
#: libraries/config/messages.inc.php:933
|
||||
@ -4791,7 +4776,7 @@ msgstr "Anàlisi estàtica:"
|
||||
#: libraries/Util.class.php:668
|
||||
#, php-format
|
||||
msgid "%d errors were found during analysis."
|
||||
msgstr ""
|
||||
msgstr "s'han trobat %d errors durant l'anàlisi."
|
||||
|
||||
#: libraries/Util.class.php:730 libraries/rte/rte_events.lib.php:110
|
||||
#: libraries/rte/rte_events.lib.php:119 libraries/rte/rte_events.lib.php:150
|
||||
@ -4815,14 +4800,13 @@ msgstr "Salta l'explicació de l'SQL"
|
||||
#: libraries/Util.class.php:1189
|
||||
#, php-format
|
||||
msgid "Analyze Explain at %s"
|
||||
msgstr ""
|
||||
msgstr "Analitzar Explain a %s"
|
||||
|
||||
#: libraries/Util.class.php:1220
|
||||
msgid "Without PHP Code"
|
||||
msgstr "Sense codi PHP"
|
||||
|
||||
#: libraries/Util.class.php:1223 libraries/config/messages.inc.php:898
|
||||
#, fuzzy
|
||||
#| msgid "Create PHP Code"
|
||||
msgid "Create PHP code"
|
||||
msgstr "Crea codi PHP"
|
||||
@ -4953,7 +4937,6 @@ msgid "Check privileges for database \"%s\"."
|
||||
msgstr "Comprova els permisos per la base de dades \"%s\"."
|
||||
|
||||
#: libraries/build_html_for_db.lib.php:181
|
||||
#, fuzzy
|
||||
#| msgid "Check Privileges"
|
||||
msgid "Check privileges"
|
||||
msgstr "Comprova els permisos"
|
||||
@ -5669,6 +5652,8 @@ msgid ""
|
||||
"Find any errors in the query before executing it. Requires CodeMirror to be "
|
||||
"enabled."
|
||||
msgstr ""
|
||||
"Troba errors a la consulta abans d'executar-la. Requereix que CodeMirror "
|
||||
"estigui habilitat."
|
||||
|
||||
#: libraries/config/messages.inc.php:67
|
||||
msgid "Enable linter"
|
||||
@ -5750,6 +5735,8 @@ msgstr "Confirma les consultes de DROP"
|
||||
msgid ""
|
||||
"Log SQL queries and their execution time, to be displayed in the console"
|
||||
msgstr ""
|
||||
"Registre de consultes SQL i el seu temps d'execució, que es mostrarà a la "
|
||||
"consola"
|
||||
|
||||
#: libraries/config/messages.inc.php:101
|
||||
msgid "Tab that is displayed when entering a database."
|
||||
@ -6030,6 +6017,8 @@ msgid ""
|
||||
"Add IF NOT EXISTS (less efficient as indexes will be generated during table "
|
||||
"creation)"
|
||||
msgstr ""
|
||||
"Afegir IF NOT EXISTS (menys eficient perquè els índexs es generaran durant "
|
||||
"la creació de la taula)"
|
||||
|
||||
#: libraries/config/messages.inc.php:211
|
||||
msgid "Use ignore inserts"
|
||||
@ -6089,6 +6078,8 @@ msgstr "Límit de claus externes"
|
||||
#: libraries/config/messages.inc.php:241
|
||||
msgid "Default value for foreign key checks checkbox for some queries."
|
||||
msgstr ""
|
||||
"El valor per defecte per a la clau externa activa el checkbox per a algunes "
|
||||
"consultes."
|
||||
|
||||
#: libraries/config/messages.inc.php:243
|
||||
msgid "Foreign key checks"
|
||||
@ -6665,7 +6656,6 @@ msgid "Maximum tables"
|
||||
msgstr "Màxim de taules"
|
||||
|
||||
#: libraries/config/messages.inc.php:465
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] "
|
||||
#| "([kbd]0[/kbd] for no limit)."
|
||||
@ -6673,8 +6663,9 @@ msgid ""
|
||||
"The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] "
|
||||
"([kbd]-1[/kbd] for no limit and [kbd]0[/kbd] for no change)."
|
||||
msgstr ""
|
||||
"El nombre d'octets que una ordre està autoritzada a reservar, ex. [kbd]32M[/"
|
||||
"kbd] ([kbd]0[/kbd] per no posar límit)."
|
||||
"El nombre d'octets que una ordre està autoritzada a reservar, ex. "
|
||||
"[kbd]32M[/kbd] ([kbd]-1[/kbd] per no posar límit i [kbd]0[/kbd] per a no "
|
||||
"canviar)."
|
||||
|
||||
#: libraries/config/messages.inc.php:468
|
||||
msgid "Memory limit"
|
||||
@ -6827,6 +6818,7 @@ msgstr "Mostrar funcions en arbre"
|
||||
#: libraries/config/messages.inc.php:532
|
||||
msgid "Whether to show functions under database in the navigation tree"
|
||||
msgstr ""
|
||||
"Si vols mostrar les funcions sota la base de dades a l'arbre de navegació"
|
||||
|
||||
#: libraries/config/messages.inc.php:533
|
||||
msgid "Show procedures in tree"
|
||||
@ -6835,6 +6827,7 @@ msgstr "Mostrar procediments en arbre"
|
||||
#: libraries/config/messages.inc.php:535
|
||||
msgid "Whether to show procedures under database in the navigation tree"
|
||||
msgstr ""
|
||||
"Si es mostren els procediments sota la base de dades a l'arbre de navegació"
|
||||
|
||||
#: libraries/config/messages.inc.php:536
|
||||
msgid "Show events in tree"
|
||||
@ -6867,10 +6860,11 @@ msgstr "Ón de mostrar els vincles de fila de taula"
|
||||
#: libraries/config/messages.inc.php:548
|
||||
msgid "Whether to show row links even in the absence of a unique key."
|
||||
msgstr ""
|
||||
"Si es mostren els enllaços de fila fins i tot en absència d'una clau única."
|
||||
|
||||
#: libraries/config/messages.inc.php:550
|
||||
msgid "Show row links anyway"
|
||||
msgstr ""
|
||||
msgstr "Mostrar els enllaços de fila sempre"
|
||||
|
||||
#: libraries/config/messages.inc.php:552
|
||||
msgid "Use natural order for sorting table and database names."
|
||||
@ -7653,7 +7647,6 @@ msgstr ""
|
||||
"taules."
|
||||
|
||||
#: libraries/config/messages.inc.php:853
|
||||
#, fuzzy
|
||||
#| msgid "Show Creation timestamp"
|
||||
msgid "Show creation timestamp"
|
||||
msgstr "Mostra el temps de creació"
|
||||
@ -7666,7 +7659,6 @@ msgstr ""
|
||||
"actualització per a totes les taules."
|
||||
|
||||
#: libraries/config/messages.inc.php:857
|
||||
#, fuzzy
|
||||
#| msgid "Show Last update timestamp"
|
||||
msgid "Show last update timestamp"
|
||||
msgstr "Mostra data i hora de la darrera actualització"
|
||||
@ -7679,7 +7671,6 @@ msgstr ""
|
||||
"comprovació per a totes les taules."
|
||||
|
||||
#: libraries/config/messages.inc.php:861
|
||||
#, fuzzy
|
||||
#| msgid "Show Last check timestamp"
|
||||
msgid "Show last check timestamp"
|
||||
msgstr "Mostra el temps de la darrera comprovació"
|
||||
@ -8274,6 +8265,9 @@ msgid ""
|
||||
"connection that encrypts the password using RSA</i>'; while connecting to "
|
||||
"the server."
|
||||
msgstr ""
|
||||
"Aquest mètode requereix l'ús d'una \"<i>connexió SSL</i>\" o una \"<i>"
|
||||
"connexió sense xifrar que xifra la contrasenya utilitzant RSA</i>\"; mentre "
|
||||
"es connecta al servidor."
|
||||
|
||||
#: libraries/display_create_database.lib.php:23
|
||||
msgid "Create database"
|
||||
@ -8353,10 +8347,9 @@ msgid "Custom - display all possible options"
|
||||
msgstr "Usuari - mostra totes les opcions possibles"
|
||||
|
||||
#: libraries/display_export.lib.php:335
|
||||
#, fuzzy
|
||||
#| msgid "Databases"
|
||||
msgid "Databases:"
|
||||
msgstr "Bases de dades"
|
||||
msgstr "Bases de dades:"
|
||||
|
||||
#: libraries/display_export.lib.php:337
|
||||
#: libraries/navigation/Navigation.class.php:196
|
||||
@ -8565,7 +8558,6 @@ msgstr ""
|
||||
"<b>.sql.zip</b>"
|
||||
|
||||
#: libraries/display_import.lib.php:224
|
||||
#, fuzzy
|
||||
#| msgid "File to Import:"
|
||||
msgid "File to import:"
|
||||
msgstr "Arxiu a importar:"
|
||||
@ -8579,7 +8571,6 @@ msgid "File uploads are not allowed on this server."
|
||||
msgstr "No es permet pujar arxius en aquest servidor."
|
||||
|
||||
#: libraries/display_import.lib.php:278
|
||||
#, fuzzy
|
||||
#| msgid "Partial Import:"
|
||||
msgid "Partial import:"
|
||||
msgstr "Importació parcial:"
|
||||
@ -8611,7 +8602,6 @@ msgstr ""
|
||||
"formats), contant des de la primera:"
|
||||
|
||||
#: libraries/display_import.lib.php:340
|
||||
#, fuzzy
|
||||
#| msgid "Other Options:"
|
||||
msgid "Other options:"
|
||||
msgstr "Altres opcions:"
|
||||
@ -9354,7 +9344,7 @@ msgstr "Romanés"
|
||||
|
||||
#: libraries/mysql_charsets.lib.php:239
|
||||
msgid "Sinhalese"
|
||||
msgstr ""
|
||||
msgstr "Singalès"
|
||||
|
||||
#: libraries/mysql_charsets.lib.php:242
|
||||
msgid "Slovak"
|
||||
@ -9955,7 +9945,6 @@ msgstr ""
|
||||
#: libraries/operations.lib.php:879 libraries/operations.lib.php:973
|
||||
#: libraries/operations.lib.php:1327 libraries/rte/rte_routines.lib.php:998
|
||||
#: templates/columns_definitions/table_fields_definitions.phtml:47
|
||||
#, fuzzy
|
||||
#| msgid "Adjust Privileges"
|
||||
msgid "Adjust privileges"
|
||||
msgstr "Ajusta els permisos"
|
||||
@ -10130,7 +10119,7 @@ msgstr "Repara"
|
||||
#: libraries/operations.lib.php:1609
|
||||
#: templates/table/structure/display_structure.phtml:186
|
||||
msgid "Truncate"
|
||||
msgstr ""
|
||||
msgstr "Truncar"
|
||||
|
||||
#: libraries/operations.lib.php:1619
|
||||
msgid "Coalesce"
|
||||
@ -10568,6 +10557,7 @@ msgstr "Afegir instrucció %s"
|
||||
#: libraries/plugins/export/ExportSql.class.php:279
|
||||
msgid "(less efficient as indexes will be generated during table creation)"
|
||||
msgstr ""
|
||||
"(menys eficient perquè els índexs es generaran durant la creació de la taula)"
|
||||
|
||||
#: libraries/plugins/export/ExportSql.class.php:288
|
||||
#, php-format
|
||||
@ -10948,10 +10938,9 @@ msgstr "Mostra graella"
|
||||
|
||||
#: libraries/plugins/schema/SchemaPdf.class.php:94
|
||||
#: templates/database/structure/print_view_data_dictionary_link.phtml:6
|
||||
#, fuzzy
|
||||
#| msgid "Data Dictionary"
|
||||
msgid "Data dictionary"
|
||||
msgstr "Diccionari de Dades"
|
||||
msgstr "Diccionari de dades"
|
||||
|
||||
#: libraries/plugins/schema/SchemaPdf.class.php:99
|
||||
msgid "Order of the tables"
|
||||
@ -11191,6 +11180,7 @@ msgstr ""
|
||||
#: libraries/plugins/transformations/input/Text_Plain_Iptobinary.class.php:32
|
||||
msgid "Converts an Internet network address in (IPv4/IPv6) format to binary"
|
||||
msgstr ""
|
||||
"Converteix una adreça de xarxa d'Internet en format (IPv4/IPv6) a binari"
|
||||
|
||||
#: libraries/plugins/transformations/input/Text_Plain_JsonEditor.class.php:33
|
||||
msgid "Syntax highlighted CodeMirror editor for JSON."
|
||||
@ -11700,10 +11690,9 @@ msgid "Re-type"
|
||||
msgstr "Reescriu"
|
||||
|
||||
#: libraries/replication_gui.lib.php:895
|
||||
#, fuzzy
|
||||
#| msgid "Generate password"
|
||||
msgid "Generate password:"
|
||||
msgstr "Genera una contrasenya"
|
||||
msgstr "Genera una contrasenya:"
|
||||
|
||||
#: libraries/replication_gui.lib.php:933
|
||||
msgid "Replication started successfully."
|
||||
@ -11977,6 +11966,8 @@ msgid ""
|
||||
"You do not have sufficient privileges to perform this operation; Please "
|
||||
"refer to the documentation for more details"
|
||||
msgstr ""
|
||||
"No tens prou permisos per realitzar aquesta operació; si us plau, consulta "
|
||||
"la documentació per a mes detalls"
|
||||
|
||||
#: libraries/rte/rte_routines.lib.php:1026
|
||||
msgid "Security type"
|
||||
@ -12169,10 +12160,9 @@ msgid "Ignoring unsupported language code."
|
||||
msgstr "Ignorant codi d'idioma no suportat."
|
||||
|
||||
#: libraries/select_server.lib.php:43 libraries/select_server.lib.php:48
|
||||
#, fuzzy
|
||||
#| msgid "Current server"
|
||||
msgid "Current server:"
|
||||
msgstr "Servidor actual"
|
||||
msgstr "Servidor actual:"
|
||||
|
||||
#: libraries/server_bin_log.lib.php:30
|
||||
msgid "Select binary log to view"
|
||||
@ -12231,10 +12221,9 @@ msgstr ""
|
||||
|
||||
#: libraries/server_databases.lib.php:366
|
||||
#: libraries/server_databases.lib.php:371
|
||||
#, fuzzy
|
||||
#| msgid "Enable Statistics"
|
||||
msgid "Enable statistics"
|
||||
msgstr "Activa Estadístiques"
|
||||
msgstr "Activa estadístiques"
|
||||
|
||||
#: libraries/server_databases.lib.php:492
|
||||
#, php-format
|
||||
@ -12677,10 +12666,9 @@ msgid "table-specific"
|
||||
msgstr "específic de la taula"
|
||||
|
||||
#: libraries/server_privileges.lib.php:2628
|
||||
#, fuzzy
|
||||
#| msgid "Edit privileges:"
|
||||
msgid "Edit privileges"
|
||||
msgstr "Edita permisos:"
|
||||
msgstr "Edita permisos"
|
||||
|
||||
#: libraries/server_privileges.lib.php:2631
|
||||
msgid "Revoke"
|
||||
@ -12823,6 +12811,9 @@ msgid ""
|
||||
"will prevent other users from connecting if the host part of their account "
|
||||
"allows a connection from any (%) host."
|
||||
msgstr ""
|
||||
"Existeix un compte d'usuari que permet a qualsevol usuari de localhost "
|
||||
"connectar-se. Això evita que altres usuaris es connectin si la part del host "
|
||||
"del seu compte permet una connexió des de qualsevol host (%)."
|
||||
|
||||
#: libraries/server_privileges.lib.php:4528
|
||||
#, php-format
|
||||
@ -13103,7 +13094,6 @@ msgid "Clear series"
|
||||
msgstr "Buidar sèrie"
|
||||
|
||||
#: libraries/server_status_monitor.lib.php:233
|
||||
#, fuzzy
|
||||
#| msgid "Series in Chart:"
|
||||
msgid "Series in chart:"
|
||||
msgstr "Series al gràfic:"
|
||||
@ -13167,7 +13157,7 @@ msgstr "Ordre"
|
||||
|
||||
#: libraries/server_status_processes.lib.php:96
|
||||
msgid "Progress"
|
||||
msgstr ""
|
||||
msgstr "Progrés"
|
||||
|
||||
#: libraries/server_status_processes.lib.php:252
|
||||
#: libraries/server_status_variables.lib.php:39
|
||||
@ -13999,12 +13989,12 @@ msgstr "Valor global"
|
||||
|
||||
#: libraries/server_variables.lib.php:243
|
||||
msgid "This is a read-only variable and can not be edited"
|
||||
msgstr ""
|
||||
msgstr "Això és una variable de només lectura i no es pot editar"
|
||||
|
||||
#: libraries/sql-parser/src/Component.php:63
|
||||
#: libraries/sql-parser/src/Component.php:83
|
||||
msgid "Not implemented yet."
|
||||
msgstr ""
|
||||
msgstr "Encara no implementat."
|
||||
|
||||
#: libraries/sql-parser/src/Components/AlterOperation.php:202
|
||||
msgid "Unrecognized alter operation."
|
||||
@ -14013,20 +14003,20 @@ msgstr "Operació de modificació no reconeguda."
|
||||
#: libraries/sql-parser/src/Components/Array2d.php:93
|
||||
#, php-format
|
||||
msgid "%1$d values were expected, but found %2$d."
|
||||
msgstr ""
|
||||
msgstr "S'esperaven %1$d valors, però s'han trobat %2$d."
|
||||
|
||||
#: libraries/sql-parser/src/Components/Array2d.php:116
|
||||
msgid "An opening bracket followed by a set of values was expected."
|
||||
msgstr ""
|
||||
msgstr "S'esperava un claudàtor d'obertura seguit per un conjunt de valors."
|
||||
|
||||
#: libraries/sql-parser/src/Components/ArrayObj.php:103
|
||||
#: libraries/sql-parser/src/Components/CreateDefinition.php:204
|
||||
msgid "An opening bracket was expected."
|
||||
msgstr ""
|
||||
msgstr "S'esperava un claudàtor d'obertura."
|
||||
|
||||
#: libraries/sql-parser/src/Components/ArrayObj.php:128
|
||||
msgid "A comma or a closing bracket was expected"
|
||||
msgstr ""
|
||||
msgstr "S'esperava una coma o un claudàtor de tancament"
|
||||
|
||||
#: libraries/sql-parser/src/Components/CreateDefinition.php:248
|
||||
msgid "A comma or a closing bracket was expected."
|
||||
@ -14034,25 +14024,25 @@ msgstr "S'esperava una coma o un claudàtor de tancament."
|
||||
|
||||
#: libraries/sql-parser/src/Components/CreateDefinition.php:264
|
||||
msgid "A closing bracket was expected."
|
||||
msgstr ""
|
||||
msgstr "S'esperava un claudàtor de tancament."
|
||||
|
||||
#: libraries/sql-parser/src/Components/DataType.php:127
|
||||
msgid "Unrecognized data type."
|
||||
msgstr ""
|
||||
msgstr "Tipus de dades desconegut."
|
||||
|
||||
#: libraries/sql-parser/src/Components/Expression.php:234
|
||||
msgid "Unexpected closing bracket."
|
||||
msgstr ""
|
||||
msgstr "Claudàtor de tancament inesperat."
|
||||
|
||||
#: libraries/sql-parser/src/Components/Expression.php:255
|
||||
#: libraries/sql-parser/src/Components/Expression.php:292
|
||||
#: libraries/sql-parser/src/Components/Expression.php:312
|
||||
msgid "An alias was previously found."
|
||||
msgstr ""
|
||||
msgstr "S'ha trobat un àlies anteriorment."
|
||||
|
||||
#: libraries/sql-parser/src/Components/Expression.php:266
|
||||
msgid "Unexpected dot."
|
||||
msgstr ""
|
||||
msgstr "Punt inesperat."
|
||||
|
||||
#: libraries/sql-parser/src/Components/Expression.php:336
|
||||
msgid "An alias was expected."
|
||||
@ -14065,12 +14055,12 @@ msgstr "S'esperava una expressió."
|
||||
#: libraries/sql-parser/src/Components/Limit.php:92
|
||||
#: libraries/sql-parser/src/Components/Limit.php:114
|
||||
msgid "An offset was expected."
|
||||
msgstr ""
|
||||
msgstr "S'esperava un desplaçament."
|
||||
|
||||
#: libraries/sql-parser/src/Components/OptionsArray.php:148
|
||||
#, php-format
|
||||
msgid "This option conflicts with \"%1$s\"."
|
||||
msgstr ""
|
||||
msgstr "Aquesta opció està en conflicte amb \"%1$s\"."
|
||||
|
||||
#: libraries/sql-parser/src/Components/RenameOperation.php:104
|
||||
msgid "The old name of the table was expected."
|
||||
@ -14078,7 +14068,7 @@ msgstr "S'esperava el nom antic de la taula."
|
||||
|
||||
#: libraries/sql-parser/src/Components/RenameOperation.php:114
|
||||
msgid "Keyword \"TO\" was expected."
|
||||
msgstr ""
|
||||
msgstr "S'esperava la paraula clau \"TO\"."
|
||||
|
||||
#: libraries/sql-parser/src/Components/RenameOperation.php:131
|
||||
msgid "The new name of the table was expected."
|
||||
@ -14094,12 +14084,12 @@ msgstr "Caràcter no esperat."
|
||||
|
||||
#: libraries/sql-parser/src/Lexer.php:307
|
||||
msgid "Expected whitespace(s) before delimiter."
|
||||
msgstr ""
|
||||
msgstr "S'esperava(en) espai(s) en blanc abans del delimitador."
|
||||
|
||||
#: libraries/sql-parser/src/Lexer.php:325
|
||||
#: libraries/sql-parser/src/Lexer.php:341
|
||||
msgid "Expected delimiter."
|
||||
msgstr ""
|
||||
msgstr "S'esperava delimitador ."
|
||||
|
||||
#: libraries/sql-parser/src/Lexer.php:788
|
||||
#, php-format
|
||||
@ -14116,11 +14106,11 @@ msgstr "Inici no esperat de declaració."
|
||||
|
||||
#: libraries/sql-parser/src/Parser.php:421
|
||||
msgid "Unrecognized statement type."
|
||||
msgstr ""
|
||||
msgstr "Tipus de declaració no reconegut."
|
||||
|
||||
#: libraries/sql-parser/src/Parser.php:505
|
||||
msgid "No transaction was previously started."
|
||||
msgstr ""
|
||||
msgstr "No s'ha iniciat cap transacció anteriorment."
|
||||
|
||||
#: libraries/sql-parser/src/Statement.php:212
|
||||
msgid "Unexpected token."
|
||||
@ -14128,16 +14118,18 @@ msgstr "Símbol (token) no esperat."
|
||||
|
||||
#: libraries/sql-parser/src/Statement.php:250
|
||||
msgid "This type of clause was previously parsed."
|
||||
msgstr ""
|
||||
msgstr "Aquest tipus de clàusula s'ha analitzat anteriorment."
|
||||
|
||||
#: libraries/sql-parser/src/Statement.php:277
|
||||
msgid ""
|
||||
"A new statement was found, but no delimiter between it and the previous one."
|
||||
msgstr ""
|
||||
"S'ha trobat una nova declaració, però no hi ha cap delimitador entre aquesta "
|
||||
"i la anterior."
|
||||
|
||||
#: libraries/sql-parser/src/Statement.php:297
|
||||
msgid "Unrecognized keyword."
|
||||
msgstr ""
|
||||
msgstr "Paraula clau no reconeguda."
|
||||
|
||||
#: libraries/sql-parser/src/Statements/CreateStatement.php:348
|
||||
msgid "The name of the entity was expected."
|
||||
@ -14149,7 +14141,7 @@ msgstr "S'esperava al menys la definició d'una columna."
|
||||
|
||||
#: libraries/sql-parser/src/Statements/CreateStatement.php:478
|
||||
msgid "A \"RETURNS\" keyword was expected."
|
||||
msgstr ""
|
||||
msgstr "S'esperava una paraula clau \"RETURNS\"."
|
||||
|
||||
#: libraries/sql.lib.php:224
|
||||
msgid "Detailed profile"
|
||||
@ -14609,16 +14601,14 @@ msgid "Username and hostname didn't change."
|
||||
msgstr "El nom d'usuari i de servidor no s'han canviat."
|
||||
|
||||
#: server_status.php:39
|
||||
#, fuzzy
|
||||
#| msgid "Not enough privilege to view users."
|
||||
msgid "Not enough privilege to view server status."
|
||||
msgstr "Permisos insuficients per veure usuaris."
|
||||
msgstr "Permisos insuficients per veure l'estat del servidor."
|
||||
|
||||
#: server_status_advisor.php:39
|
||||
#, fuzzy
|
||||
#| msgid "Not enough privilege to view users."
|
||||
msgid "Not enough privilege to view the advisor."
|
||||
msgstr "Permisos insuficients per veure usuaris."
|
||||
msgstr "Permisos insuficients per veure l'assessor."
|
||||
|
||||
#: server_status_processes.php:36
|
||||
#, php-format
|
||||
@ -14632,22 +14622,21 @@ msgid ""
|
||||
msgstr "phpMyAdmin no pot cancel.lar el fil %s. Probablement, ja és tancat."
|
||||
|
||||
#: server_status_queries.php:55
|
||||
#, fuzzy
|
||||
#| msgid "Not enough privilege to view users."
|
||||
msgid "Not enough privilege to view query statistics."
|
||||
msgstr "Permisos insuficients per veure usuaris."
|
||||
msgstr "Permisos insuficients per veure estadístiques de consultes."
|
||||
|
||||
#: server_status_variables.php:57
|
||||
#, fuzzy
|
||||
#| msgid "Not enough privilege to view users."
|
||||
msgid "Not enough privilege to view status variables."
|
||||
msgstr "Permisos insuficients per veure usuaris."
|
||||
msgstr "Permisos insuficients per veure variables d'estat."
|
||||
|
||||
#: server_variables.php:83
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Not enough privilege to view users."
|
||||
msgid "Not enough privilege to view server variables and settings. %s"
|
||||
msgstr "Permisos insuficients per veure usuaris."
|
||||
msgstr ""
|
||||
"Permisos insuficients per veure variables del servidor i configuracions. %s"
|
||||
|
||||
#: setup/frames/config.inc.php:41 setup/frames/index.inc.php:277
|
||||
msgid "Download"
|
||||
@ -14953,7 +14942,7 @@ msgstr ""
|
||||
|
||||
#: templates/columns_definitions/table_fields_definitions.phtml:70
|
||||
msgid "Virtuality"
|
||||
msgstr ""
|
||||
msgstr "Virtualitat"
|
||||
|
||||
#: templates/columns_definitions/table_fields_definitions.phtml:76
|
||||
msgid "Move column"
|
||||
@ -15021,10 +15010,9 @@ msgid "Operator"
|
||||
msgstr "Operador"
|
||||
|
||||
#: templates/database/designer/database_tables.phtml:29
|
||||
#, fuzzy
|
||||
#| msgid "Move columns"
|
||||
msgid "Show/hide columns"
|
||||
msgstr "Moure columnes"
|
||||
msgstr "Mostrar/amagar columnes"
|
||||
|
||||
#: templates/database/designer/database_tables.phtml:40
|
||||
msgid "See table structure"
|
||||
@ -16004,6 +15992,9 @@ msgid ""
|
||||
"Percona documentation is at <a href=\"http://www.percona.com/software/"
|
||||
"documentation/\">http://www.percona.com/software/documentation/</a>"
|
||||
msgstr ""
|
||||
"La documentació de Percona és a <a href=\""
|
||||
"http://www.percona.com/software/documentation/\"> "
|
||||
"http://www.percona.com/software/documentation/</a>"
|
||||
|
||||
#: libraries/advisory_rules.txt:133
|
||||
msgid "'percona' found in version_comment"
|
||||
@ -16015,6 +16006,9 @@ msgid ""
|
||||
"Drizzle documentation is at <a href=\"http://www.drizzle.org/content/"
|
||||
"documentation/\">http://www.drizzle.org/content/documentation/</a>"
|
||||
msgstr ""
|
||||
"La documentació de Drizzle és a <a href=\""
|
||||
"http://www.drizzle.org/content/documentation/\"> "
|
||||
"http://www.drizzle.org/content/documentation/</a>"
|
||||
|
||||
#: libraries/advisory_rules.txt:140
|
||||
#, php-format
|
||||
|
||||
11
po/de.po
11
po/de.po
@ -4,16 +4,16 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin-docs 4.0.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 07:31-0400\n"
|
||||
"PO-Revision-Date: 2015-09-01 02:22+0200\n"
|
||||
"PO-Revision-Date: 2015-09-23 03:11+0200\n"
|
||||
"Last-Translator: Hauke Henningsen <sqrt@entless.org>\n"
|
||||
"Language-Team: German <https://hosted.weblate.org/projects/phpmyadmin/master/"
|
||||
"de/>\n"
|
||||
"Language-Team: German "
|
||||
"<https://hosted.weblate.org/projects/phpmyadmin/master/de/>\n"
|
||||
"Language: de\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 2.4-dev\n"
|
||||
"X-Generator: Weblate 2.5\n"
|
||||
|
||||
#: changelog.php:37 license.php:30
|
||||
#, php-format
|
||||
@ -15112,10 +15112,9 @@ msgid "Operator"
|
||||
msgstr "Operator"
|
||||
|
||||
#: templates/database/designer/database_tables.phtml:29
|
||||
#, fuzzy
|
||||
#| msgid "Move columns"
|
||||
msgid "Show/hide columns"
|
||||
msgstr "Spalten verschieben"
|
||||
msgstr "Anzeigen/Verbergen von Spalten"
|
||||
|
||||
#: templates/database/designer/database_tables.phtml:40
|
||||
msgid "See table structure"
|
||||
|
||||
19
po/pl.po
19
po/pl.po
@ -4,17 +4,17 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.6.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 07:31-0400\n"
|
||||
"PO-Revision-Date: 2015-01-21 02:11+0200\n"
|
||||
"Last-Translator: Krystian Biesaga <krystian4842@gmail.com>\n"
|
||||
"Language-Team: Polish <https://hosted.weblate.org/projects/phpmyadmin/master/"
|
||||
"pl/>\n"
|
||||
"PO-Revision-Date: 2015-09-25 14:07+0200\n"
|
||||
"Last-Translator: Andrzej <andrzej@kynu.pl>\n"
|
||||
"Language-Team: Polish "
|
||||
"<https://hosted.weblate.org/projects/phpmyadmin/master/pl/>\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 2.2-dev\n"
|
||||
"X-Generator: Weblate 2.5\n"
|
||||
|
||||
#: changelog.php:37 license.php:30
|
||||
#, php-format
|
||||
@ -346,10 +346,9 @@ msgid ""
|
||||
msgstr "Wersja %1$s stworzona, śledzenie dla %2$s jest aktywne."
|
||||
|
||||
#: db_tracking.php:91
|
||||
#, fuzzy
|
||||
#| msgid "No databases selected."
|
||||
msgid "No tables selected."
|
||||
msgstr "Żadna baza danych nie został wybrana."
|
||||
msgstr "Nie wybrano tabeli."
|
||||
|
||||
#: db_tracking.php:145
|
||||
msgid "Database Log"
|
||||
@ -1978,14 +1977,14 @@ msgid "No auto-saved query"
|
||||
msgstr ""
|
||||
|
||||
#: js/messages.php:354
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Variable"
|
||||
msgid "Variable %d:"
|
||||
msgstr "Zmienna"
|
||||
msgstr "Zmienna %d:"
|
||||
|
||||
#: js/messages.php:357 libraries/normalization.lib.php:886
|
||||
msgid "Pick"
|
||||
msgstr ""
|
||||
msgstr "Wybierz"
|
||||
|
||||
#: js/messages.php:358
|
||||
msgid "Column selector"
|
||||
|
||||
19
po/pt_BR.po
19
po/pt_BR.po
@ -4,16 +4,16 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.6.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 07:31-0400\n"
|
||||
"PO-Revision-Date: 2015-08-03 23:39+0200\n"
|
||||
"Last-Translator: Guilherme Seibt <gui@webseibt.net>\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
|
||||
"phpmyadmin/master/pt_BR/>\n"
|
||||
"PO-Revision-Date: 2015-09-23 17:13+0200\n"
|
||||
"Last-Translator: Victor Laureano <victor.laureano@gmail.com>\n"
|
||||
"Language-Team: Portuguese (Brazil) "
|
||||
"<https://hosted.weblate.org/projects/phpmyadmin/master/pt_BR/>\n"
|
||||
"Language: pt_BR\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 2.4-dev\n"
|
||||
"X-Generator: Weblate 2.5\n"
|
||||
|
||||
#: changelog.php:37 license.php:30
|
||||
#, php-format
|
||||
@ -653,7 +653,6 @@ msgstr ""
|
||||
"pma. Mais informações disponíveis em %s."
|
||||
|
||||
#: index.php:163
|
||||
#, fuzzy
|
||||
#| msgid "General Settings"
|
||||
msgid "General settings"
|
||||
msgstr "Configurações gerais"
|
||||
@ -669,10 +668,9 @@ msgid "Server connection collation"
|
||||
msgstr "Collation de conexão do servidor MySQL"
|
||||
|
||||
#: index.php:229
|
||||
#, fuzzy
|
||||
#| msgid "Appearance Settings"
|
||||
msgid "Appearance settings"
|
||||
msgstr "Configurações de aparência"
|
||||
msgstr "Configurações do Tema"
|
||||
|
||||
#: index.php:259 prefs_manage.php:285
|
||||
msgid "More settings"
|
||||
@ -961,12 +959,13 @@ msgid ""
|
||||
"Do you really want to DROP the selected partition(s)? This will also DELETE "
|
||||
"the data related to the selected partition(s)!"
|
||||
msgstr ""
|
||||
"Você realmente quer APAGAR a(s) partição(ões) seleciona(s)? Isso também irá "
|
||||
"DELETAR os dados relacionados com a(s) partição(ões) seleciona(s)!"
|
||||
|
||||
#: js/messages.php:65
|
||||
#, fuzzy
|
||||
#| msgid "Do you really want to delete the search \"%s\"?"
|
||||
msgid "Do you really want to TRUNCATE the selected partition(s)?"
|
||||
msgstr "Você realmente deseja excluir a busca \"%s\"?"
|
||||
msgstr "Você realmente deseja LIMPAR a(s) partição(ões) seleciona(s)?"
|
||||
|
||||
#: js/messages.php:67
|
||||
msgid ""
|
||||
|
||||
6
po/sk.po
6
po/sk.po
@ -4,7 +4,7 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.6.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 07:31-0400\n"
|
||||
"PO-Revision-Date: 2015-09-15 10:38+0200\n"
|
||||
"PO-Revision-Date: 2015-09-20 20:15+0200\n"
|
||||
"Last-Translator: Martin Lacina <martin@whistler.sk>\n"
|
||||
"Language-Team: Slovak "
|
||||
"<https://hosted.weblate.org/projects/phpmyadmin/master/sk/>\n"
|
||||
@ -13,7 +13,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 2.4-dev\n"
|
||||
"X-Generator: Weblate 2.4\n"
|
||||
|
||||
#: changelog.php:37 license.php:30
|
||||
#, php-format
|
||||
@ -12171,7 +12171,7 @@ msgstr ""
|
||||
|
||||
#: libraries/server_privileges.lib.php:818
|
||||
msgid "Requires a valid X509 certificate."
|
||||
msgstr ""
|
||||
msgstr "Vyžaduje platný X509 certifikát."
|
||||
|
||||
#: libraries/server_privileges.lib.php:869
|
||||
msgid "Resource limits"
|
||||
|
||||
23
po/zh_CN.po
23
po/zh_CN.po
@ -4,16 +4,16 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 4.6.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 07:31-0400\n"
|
||||
"PO-Revision-Date: 2015-09-03 04:02+0200\n"
|
||||
"Last-Translator: Vincent Lau <3092849@qq.com>\n"
|
||||
"Language-Team: Chinese (China) <https://hosted.weblate.org/projects/"
|
||||
"phpmyadmin/master/zh_CN/>\n"
|
||||
"PO-Revision-Date: 2015-09-24 16:29+0200\n"
|
||||
"Last-Translator: Zheng Dan <clanboy@163.com>\n"
|
||||
"Language-Team: Chinese (China) "
|
||||
"<https://hosted.weblate.org/projects/phpmyadmin/master/zh_CN/>\n"
|
||||
"Language: zh_CN\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 2.4-dev\n"
|
||||
"X-Generator: Weblate 2.5\n"
|
||||
|
||||
#: changelog.php:37 license.php:30
|
||||
#, php-format
|
||||
@ -2453,32 +2453,31 @@ msgstr "忽略全部"
|
||||
#: js/messages.php:590
|
||||
msgid ""
|
||||
"As per your settings, they are being submitted currently, please be patient."
|
||||
msgstr ""
|
||||
msgstr "正在提交您的设置,请耐心等待。"
|
||||
|
||||
#: js/messages.php:598
|
||||
msgid "Execute this query again?"
|
||||
msgstr "再次执行该查询?"
|
||||
|
||||
#: js/messages.php:599
|
||||
#, fuzzy
|
||||
#| msgid "Do you really want to delete the search \"%s\"?"
|
||||
msgid "Do you really want to delete this bookmark?"
|
||||
msgstr "您真的要删除搜索“%s”吗?"
|
||||
msgstr "您真的要删除该书签吗?"
|
||||
|
||||
#: js/messages.php:600
|
||||
msgid "Some error occurred while getting SQL debug info."
|
||||
msgstr ""
|
||||
msgstr "获取SQL调试信息时出错。"
|
||||
|
||||
#: js/messages.php:601
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Executed queries"
|
||||
msgid "%s queries executed %s times in %s seconds."
|
||||
msgstr "已执行的查询"
|
||||
msgstr "%s条查询的执行时常:%s秒"
|
||||
|
||||
#: js/messages.php:602
|
||||
#, php-format
|
||||
msgid "%s argument(s) passed"
|
||||
msgstr ""
|
||||
msgstr "%s 个参数已传递"
|
||||
|
||||
#: js/messages.php:603
|
||||
#, fuzzy
|
||||
|
||||
@ -414,10 +414,10 @@ if (isset($_REQUEST['adduser'])) {
|
||||
);
|
||||
} else if (!empty($routinename)) {
|
||||
$response->addHTML(
|
||||
PMA_getHtmlForRoutineSpecificPrivilges(
|
||||
$username, $hostname, $dbname, $routinename,
|
||||
(isset($url_dbname) ? $url_dbname : '')
|
||||
)
|
||||
PMA_getHtmlForRoutineSpecificPrivilges(
|
||||
$username, $hostname, $dbname, $routinename,
|
||||
(isset($url_dbname) ? $url_dbname : '')
|
||||
)
|
||||
);
|
||||
} else {
|
||||
// A user was selected -> display the user's properties
|
||||
|
||||
@ -18,6 +18,7 @@ if (!defined('PHPMYADMIN')) {
|
||||
* Core libraries.
|
||||
*/
|
||||
require_once './libraries/display_select_lang.lib.php';
|
||||
require_once './libraries/VersionInformation.php';
|
||||
require_once './setup/lib/index.lib.php';
|
||||
require_once './libraries/config/FormDisplay.tpl.php';
|
||||
|
||||
|
||||
@ -108,7 +108,8 @@ function PMA_versionCheck()
|
||||
$message_id = uniqid('version_check');
|
||||
|
||||
// Fetch data
|
||||
$version_data = PMA\libraries\Util::getLatestVersion();
|
||||
$versionInformation = new VersionInformation();
|
||||
$version_data = $versionInformation->getLatestVersion();
|
||||
|
||||
if (empty($version_data)) {
|
||||
PMA_messagesSet(
|
||||
@ -123,10 +124,16 @@ function PMA_versionCheck()
|
||||
return;
|
||||
}
|
||||
|
||||
$version = $version_data->version;
|
||||
$date = $version_data->date;
|
||||
$releases = $version_data->releases;
|
||||
$latestCompatible = $versionInformation->getLatestCompatibleVersion($releases);
|
||||
if ($latestCompatible != null) {
|
||||
$version = $latestCompatible['version'];
|
||||
$date = $latestCompatible['date'];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
$version_upstream = PMA\libraries\Util::versionToInt($version);
|
||||
$version_upstream = $versionInformation->versionToInt($version);
|
||||
if ($version_upstream === false) {
|
||||
PMA_messagesSet(
|
||||
'error',
|
||||
@ -137,7 +144,7 @@ function PMA_versionCheck()
|
||||
return;
|
||||
}
|
||||
|
||||
$version_local = PMA\libraries\Util::versionToInt(
|
||||
$version_local = $versionInformation->versionToInt(
|
||||
$GLOBALS['PMA_Config']->get('PMA_VERSION')
|
||||
);
|
||||
if ($version_local === false) {
|
||||
|
||||
@ -66,72 +66,6 @@ class PMA_Util_Test extends PHPUnit_Framework_TestCase
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test version checking
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @group large
|
||||
*/
|
||||
public function testGetLatestVersion()
|
||||
{
|
||||
$GLOBALS['cfg']['ProxyUrl'] = PROXY_URL;
|
||||
$GLOBALS['cfg']['ProxyUser'] = PROXY_USER;
|
||||
$GLOBALS['cfg']['ProxyPass'] = PROXY_PASS;
|
||||
$GLOBALS['cfg']['VersionCheck'] = true;
|
||||
$version = PMA\libraries\Util::getLatestVersion();
|
||||
$this->assertNotEmpty($version->version);
|
||||
$this->assertNotEmpty($version->date);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test version to int conversion.
|
||||
*
|
||||
* @param string $version Version string
|
||||
* @param int $numeric Integer matching version
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider dataVersions
|
||||
*/
|
||||
public function testVersionToInt($version, $numeric)
|
||||
{
|
||||
$this->assertEquals(
|
||||
$numeric,
|
||||
PMA\libraries\Util::versionToInt($version)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for version parsing
|
||||
*
|
||||
* @return array with test data
|
||||
*/
|
||||
public function dataVersions()
|
||||
{
|
||||
return array(
|
||||
array('1.0.0', 1000050),
|
||||
array('2.0.0.2-dev', 2000002),
|
||||
array('3.4.2.1', 3040251),
|
||||
array('3.4.2-dev3', 3040203),
|
||||
array('3.4.2-dev', 3040200),
|
||||
array('3.4.2-pl', 3040260),
|
||||
array('3.4.2-pl3', 3040263),
|
||||
array('4.4.2-rc22', 4040252),
|
||||
array('4.4.2-rc', 4040230),
|
||||
array('4.4.22-beta22', 4042242),
|
||||
array('4.4.22-beta', 4042220),
|
||||
array('4.4.21-alpha22', 4042132),
|
||||
array('4.4.20-alpha', 4042010),
|
||||
array('4.40.20-alpha-dev', 4402010),
|
||||
array('4.4a', 4000050),
|
||||
array('4.4.4-test', 4040400),
|
||||
array('4.1.0', 4010050),
|
||||
array('4.0.1.3', 4000153),
|
||||
array('4.1-dev', 4010000),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for isForeignKeyCheck
|
||||
*
|
||||
|
||||
259
test/classes/VersionInformation_test.php
Normal file
259
test/classes/VersionInformation_test.php
Normal file
@ -0,0 +1,259 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Tests for methods in VersionInformation class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
require_once 'libraries/VersionInformation.php';
|
||||
|
||||
/**
|
||||
* Tests for methods in VersionInformation class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class VersionInformationTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
private $_releases;
|
||||
|
||||
/**
|
||||
* Sets up the fixture, for example, opens a network connection.
|
||||
* This method is called before a test is executed.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function setUp()
|
||||
{
|
||||
$this->_releases = array();
|
||||
|
||||
$release = new stdClass();
|
||||
$release->date = "2015-09-08";
|
||||
$release->php_versions = ">=5.3,<7.1";
|
||||
$release->version = "4.4.14.1";
|
||||
$release->mysql_versions = ">=5.5";
|
||||
$this->_releases[] = $release;
|
||||
|
||||
$release = new stdClass();
|
||||
$release->date = "2015-09-09";
|
||||
$release->php_versions = ">=5.3,<7.0";
|
||||
$release->version = "4.4.13.3";
|
||||
$release->mysql_versions = ">=5.5";
|
||||
$this->_releases[] = $release;
|
||||
|
||||
$release = new stdClass();
|
||||
$release->date = "2015-05-13";
|
||||
$release->php_versions = ">=5.2,<5.3";
|
||||
$release->version = "4.0.10.10";
|
||||
$release->mysql_versions = ">=5.0";
|
||||
$this->_releases[] = $release;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test version checking
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @group large
|
||||
*/
|
||||
public function testGetLatestVersion()
|
||||
{
|
||||
$GLOBALS['cfg']['ProxyUrl'] = PROXY_URL;
|
||||
$GLOBALS['cfg']['ProxyUser'] = PROXY_USER;
|
||||
$GLOBALS['cfg']['ProxyPass'] = PROXY_PASS;
|
||||
$GLOBALS['cfg']['VersionCheck'] = true;
|
||||
$versionInformation = new VersionInformation();
|
||||
$version = $versionInformation->getLatestVersion();
|
||||
$this->assertNotEmpty($version->version);
|
||||
$this->assertNotEmpty($version->date);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test version to int conversion.
|
||||
*
|
||||
* @param string $version Version string
|
||||
* @param int $numeric Integer matching version
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider dataVersions
|
||||
*/
|
||||
public function testVersionToInt($version, $numeric)
|
||||
{
|
||||
$versionInformation = new VersionInformation();
|
||||
$this->assertEquals(
|
||||
$numeric,
|
||||
$versionInformation->versionToInt($version)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Data provider for version parsing
|
||||
*
|
||||
* @return array with test data
|
||||
*/
|
||||
public function dataVersions()
|
||||
{
|
||||
return array(
|
||||
array('1.0.0', 1000050),
|
||||
array('2.0.0.2-dev', 2000002),
|
||||
array('3.4.2.1', 3040251),
|
||||
array('3.4.2-dev3', 3040203),
|
||||
array('3.4.2-dev', 3040200),
|
||||
array('3.4.2-pl', 3040260),
|
||||
array('3.4.2-pl3', 3040263),
|
||||
array('4.4.2-rc22', 4040252),
|
||||
array('4.4.2-rc', 4040230),
|
||||
array('4.4.22-beta22', 4042242),
|
||||
array('4.4.22-beta', 4042220),
|
||||
array('4.4.21-alpha22', 4042132),
|
||||
array('4.4.20-alpha', 4042010),
|
||||
array('4.40.20-alpha-dev', 4402010),
|
||||
array('4.4a', 4000050),
|
||||
array('4.4.4-test', 4040400),
|
||||
array('4.1.0', 4010050),
|
||||
array('4.0.1.3', 4000153),
|
||||
array('4.1-dev', 4010000),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests getLatestCompatibleVersion() when there is only one server confgiured
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetLatestCompatibleVersionWithSingleServer()
|
||||
{
|
||||
$GLOBALS['cfg']['Servers'] = array(
|
||||
array()
|
||||
);
|
||||
|
||||
$mockVersionInfo = $this->getMockBuilder('VersionInformation')
|
||||
->setMethods(array('evaluateVersionCondition'))
|
||||
->getMock();
|
||||
|
||||
$mockVersionInfo->expects($this->at(0))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('PHP', '>=5.3')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$mockVersionInfo->expects($this->at(1))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('PHP', '<7.1')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$mockVersionInfo->expects($this->at(2))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('MySQL', '>=5.5')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$compatible = $mockVersionInfo
|
||||
->getLatestCompatibleVersion($this->_releases);
|
||||
$this->assertEquals('4.4.14.1', $compatible['version']);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests getLatestCompatibleVersion() when there are multiple servers configured
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetLaestCompatibleVersionWithMultipleServers()
|
||||
{
|
||||
$GLOBALS['cfg']['Servers'] = array(
|
||||
array(),
|
||||
array()
|
||||
);
|
||||
|
||||
$mockVersionInfo = $this->getMockBuilder('VersionInformation')
|
||||
->setMethods(array('evaluateVersionCondition'))
|
||||
->getMock();
|
||||
|
||||
$mockVersionInfo->expects($this->at(0))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('PHP', '>=5.3')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$mockVersionInfo->expects($this->at(1))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('PHP', '<7.1')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$compatible = $mockVersionInfo
|
||||
->getLatestCompatibleVersion($this->_releases);
|
||||
$this->assertEquals('4.4.14.1', $compatible['version']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests getLatestCompatibleVersion() with an old PHP version
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetLaestCompatibleVersionWithOldPHPVersion()
|
||||
{
|
||||
$GLOBALS['cfg']['Servers'] = array(
|
||||
array(),
|
||||
array()
|
||||
);
|
||||
|
||||
$mockVersionInfo = $this->getMockBuilder('VersionInformation')
|
||||
->setMethods(array('evaluateVersionCondition'))
|
||||
->getMock();
|
||||
|
||||
$mockVersionInfo->expects($this->at(0))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('PHP', '>=5.3')
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$mockVersionInfo->expects($this->at(1))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('PHP', '>=5.3')
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$mockVersionInfo->expects($this->at(2))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('PHP', '>=5.2')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$mockVersionInfo->expects($this->at(3))
|
||||
->method('evaluateVersionCondition')
|
||||
->with('PHP', '<5.3')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$compatible = $mockVersionInfo
|
||||
->getLatestCompatibleVersion($this->_releases);
|
||||
$this->assertEquals('4.0.10.10', $compatible['version']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests evaluateVersionCondition() method
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testEvaluateVersionCondition()
|
||||
{
|
||||
$mockVersionInfo = $this->getMockBuilder('VersionInformation')
|
||||
->setMethods(array('getPHPVersion'))
|
||||
->getMock();
|
||||
|
||||
$mockVersionInfo->expects($this->any())
|
||||
->method('getPHPVersion')
|
||||
->will($this->returnValue('5.2.4'));
|
||||
|
||||
$this->assertTrue($mockVersionInfo->evaluateVersionCondition('PHP', '<=5.3'));
|
||||
$this->assertTrue($mockVersionInfo->evaluateVersionCondition('PHP', '<5.3'));
|
||||
$this->assertTrue($mockVersionInfo->evaluateVersionCondition('PHP', '>=5.2'));
|
||||
$this->assertTrue($mockVersionInfo->evaluateVersionCondition('PHP', '>5.2'));
|
||||
$this->assertTrue($mockVersionInfo->evaluateVersionCondition('PHP', '!=5.3'));
|
||||
|
||||
$this->assertFalse($mockVersionInfo->evaluateVersionCondition('PHP', '<=5.2'));
|
||||
$this->assertFalse($mockVersionInfo->evaluateVersionCondition('PHP', '<5.2'));
|
||||
$this->assertFalse($mockVersionInfo->evaluateVersionCondition('PHP', '>=7.0'));
|
||||
$this->assertFalse($mockVersionInfo->evaluateVersionCondition('PHP', '>7.0'));
|
||||
$this->assertTrue($mockVersionInfo->evaluateVersionCondition('PHP', '!=5.2'));
|
||||
}
|
||||
}
|
||||
@ -389,7 +389,7 @@ class DBI_PMA_Relation_Cleanup extends DatabaseInterface
|
||||
}
|
||||
|
||||
if (/*overload*/mb_stripos($sql, "table_info") !== false) {
|
||||
unset ($this->values[$this->indexs['table_info']]);
|
||||
unset($this->values[$this->indexs['table_info']]);
|
||||
}
|
||||
|
||||
if (/*overload*/mb_stripos($sql, "table_coords") !== false) {
|
||||
|
||||
@ -639,7 +639,7 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase
|
||||
list($create_user_real, $create_user_show, $real_sql_query, $sql_query)
|
||||
= PMA_getSqlQueriesForDisplayAndAddUser(
|
||||
$username, $hostname,
|
||||
(isset ($password) ? $password : '')
|
||||
(isset($password) ? $password : '')
|
||||
);
|
||||
$this->assertEquals(
|
||||
"CREATE USER 'pma_username'@'pma_hostname' "
|
||||
|
||||
@ -9,19 +9,30 @@
|
||||
// Sets up the session
|
||||
define('PMA_MINIMUM_COMMON', true);
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/VersionInformation.php';
|
||||
|
||||
// Always send the correct headers
|
||||
header('Content-type: application/json; charset=UTF-8');
|
||||
|
||||
$version = PMA\libraries\Util::getLatestVersion();
|
||||
$versionInformation = new VersionInformation();
|
||||
$versionDetails = $versionInformation->getLatestVersion();
|
||||
|
||||
if (empty($version)) {
|
||||
if (empty($versionDetails)) {
|
||||
echo json_encode(array());
|
||||
} else {
|
||||
$latestCompatible = $versionInformation->getLatestCompatibleVersion(
|
||||
$versionDetails->releases
|
||||
);
|
||||
$version = '';
|
||||
$date = '';
|
||||
if ($latestCompatible != null) {
|
||||
$version = $latestCompatible['version'];
|
||||
$date = $latestCompatible['date'];
|
||||
}
|
||||
echo json_encode(
|
||||
array(
|
||||
'version' => (! empty($version->version) ? $version->version : ''),
|
||||
'date' => (! empty($version->date) ? $version->date : ''),
|
||||
'version' => (! empty($version) ? $version : ''),
|
||||
'date' => (! empty($date) ? $date : ''),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user