Merge branch 'QA_5_0' into STABLE
This commit is contained in:
commit
37ba6991b5
@ -49,7 +49,6 @@ jobs:
|
||||
allow_failures:
|
||||
- php: nightly
|
||||
- os: osx
|
||||
- name: "PHP 7.1 with dbase extension"
|
||||
|
||||
include:
|
||||
- stage: "Lint and analyse code"
|
||||
@ -144,6 +143,7 @@ jobs:
|
||||
install:
|
||||
- pecl channel-update pecl.php.net
|
||||
- pecl install dbase
|
||||
- php -m |grep -F 'dbase'
|
||||
- composer install --no-interaction
|
||||
- yarn install --non-interactive
|
||||
|
||||
|
||||
22
ChangeLog
22
ChangeLog
@ -1,6 +1,24 @@
|
||||
phpMyAdmin - ChangeLog
|
||||
======================
|
||||
|
||||
5.0.1 (2020-01-07)
|
||||
- issue #15719 Fixed error 500 when browsing a table when $cfg['LimitChars'] used a string and not an int value
|
||||
- issue #14936 Fixed display NULL on numeric fields has showing empty string since 5.0.0
|
||||
- issue #15722 Fix get Database structure fails with PHP error on replicated server
|
||||
- issue #15723 Fix can't browse certain tables since 5.0.0 update
|
||||
- issue Prevent line wrap in DB structure size column
|
||||
- issue Remove extra line break from downloaded blob content
|
||||
- issue #15725 Fixed error 500 when exporting - set time limit when $cfg['ExecTimeLimit'] used a string and not an int value
|
||||
- issue #15726 Fixed double delete icons on enum editor
|
||||
- issue #15717 Fixed warning popup not dissapearing on table stucture when using actions without any column selection
|
||||
- issue #15693 Fixed focus of active tab is lost by clicking refresh option on browse tab
|
||||
- issue #15734 Fix Uncaught TypeError: http_build_query() in setup
|
||||
- issue Fix double slash in path when $cfg['TempDir'] has a trailing slash
|
||||
- issue #14875 Fix shp file import tests where failing when php dbase extension was enabled
|
||||
- issue #14299 Fix JS error "PMA_makegrid is not defined" when clicking on a table from the "Insert" tab opened in a new tab
|
||||
- issue #15351 Fixed 2FA setting removed each time the user edits another configuration setting
|
||||
- issue [security] Fix SQL injection vulnerability on the user accounts page (PMASA-2020-1)
|
||||
|
||||
5.0.0 (2019-12-26)
|
||||
- issue #13896 Drop support for PHP 5.5, PHP 5.6, PHP 7.0 and HHVM
|
||||
- issue #14007 Enable columns names by default for CSV exports
|
||||
@ -47,6 +65,10 @@ phpMyAdmin - ChangeLog
|
||||
- issue #15677 Fix show process-list triggers a php exception
|
||||
- issue #15697 Fix uncaught php error: "Call to a member function get() on null" in db_export.php when exporting a table from the list
|
||||
|
||||
4.9.4 (2020-01-07)
|
||||
- issue #15724 Fix 2FA was disabled by a bug
|
||||
- issue [security] Fix SQL injection vulnerability on the user accounts page (PMASA-2020-1)
|
||||
|
||||
4.9.3 (2019-12-26)
|
||||
- issue #15570 Fix page contents go underneath of floating menubar in some cases
|
||||
- issue #15591 Fix php notice 'Undefined index: foreign_keys_data' on relations view when the user has column access
|
||||
|
||||
2
README
2
README
@ -1,7 +1,7 @@
|
||||
phpMyAdmin - Readme
|
||||
===================
|
||||
|
||||
Version 5.0.0
|
||||
Version 5.0.1
|
||||
|
||||
A web interface for MySQL and MariaDB.
|
||||
|
||||
|
||||
@ -34,10 +34,10 @@ $template = $containerBuilder->get('template');
|
||||
$containerBuilder->set(
|
||||
'browse_foreigners',
|
||||
new BrowseForeigners(
|
||||
$GLOBALS['cfg']['LimitChars'],
|
||||
$GLOBALS['cfg']['MaxRows'],
|
||||
$GLOBALS['cfg']['RepeatCells'],
|
||||
$GLOBALS['cfg']['ShowAll'],
|
||||
(int) $GLOBALS['cfg']['LimitChars'],
|
||||
(int) $GLOBALS['cfg']['MaxRows'],
|
||||
(int) $GLOBALS['cfg']['RepeatCells'],
|
||||
(bool) $GLOBALS['cfg']['ShowAll'],
|
||||
$GLOBALS['pmaThemeImage'],
|
||||
$template
|
||||
)
|
||||
|
||||
@ -51,7 +51,7 @@ copyright = u'2012 - 2018, The phpMyAdmin devel team'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '5.0.0'
|
||||
version = '5.0.1'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = version
|
||||
|
||||
|
||||
24
doc/faq.rst
24
doc/faq.rst
@ -692,6 +692,30 @@ A list of files and corresponding functionality which degrade gracefully when re
|
||||
* :file:`./sql/` (SQL scripts to configure advanced functionality)
|
||||
* :file:`./js/vendor/openlayers/` (GIS visualization)
|
||||
|
||||
.. _faq1_45:
|
||||
|
||||
1.45 I get an error message about unknown authentication method caching_sha2_password when trying to log in
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
When logging in using MySQL version 8 or newer, you may encounter an error message like this:
|
||||
|
||||
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
|
||||
|
||||
mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client
|
||||
|
||||
This error is because of a version compatibility problem between PHP and MySQL. The MySQL project introduced a new authentication
|
||||
method (our tests show this began with version 8.0.11) however PHP did not include the ability to use that authentication method.
|
||||
PHP reports that this was fixed in PHP version 7.4.
|
||||
|
||||
Users experiencing this are encouraged to upgrade their PHP installation, however a workaround exists. Your MySQL user account
|
||||
can be set to use the older authentication with a command such as
|
||||
|
||||
.. code-block:: mysql
|
||||
|
||||
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
|
||||
|
||||
.. seealso:: <https://github.com/phpmyadmin/phpmyadmin/issues/14220>, <https://stackoverflow.com/questions/49948350/phpmyadmin-on-mysql-8-0>, <https://bugs.php.net/bug.php?id=76243>
|
||||
|
||||
.. _faqconfig:
|
||||
|
||||
Configuration
|
||||
|
||||
@ -788,9 +788,30 @@ You will also need to have a controluser
|
||||
with the proper rights to those tables. For example you can create it
|
||||
using following statement:
|
||||
|
||||
And for any MariaDB version:
|
||||
|
||||
.. code-block:: mysql
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
|
||||
CREATE USER 'pma'@'localhost' IDENTIFIED VIA mysql_native_password USING 'pmapass';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON `<pma_db>`.* TO 'pma'@'localhost';
|
||||
|
||||
For MySQL 8.0 and newer:
|
||||
|
||||
.. code-block:: mysql
|
||||
|
||||
CREATE USER 'pma'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'pmapass';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
|
||||
|
||||
For MySQL older than 8.0:
|
||||
|
||||
.. code-block:: mysql
|
||||
|
||||
CREATE USER 'pma'@'localhost' IDENTIFIED WITH mysql_native_password AS 'pmapass';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
|
||||
|
||||
Note that MySQL installations with PHP older than 7.4 and MySQL newer than 8.0 may require
|
||||
using the mysql_native_password authentication as a workaround, see
|
||||
:ref:`faq1_45` for details.
|
||||
|
||||
.. _upgrading:
|
||||
|
||||
|
||||
@ -113,7 +113,7 @@ class Config
|
||||
*/
|
||||
public function checkSystem(): void
|
||||
{
|
||||
$this->set('PMA_VERSION', '5.0.0');
|
||||
$this->set('PMA_VERSION', '5.0.1');
|
||||
/* Major version */
|
||||
$this->set(
|
||||
'PMA_MAJOR_VERSION',
|
||||
@ -1673,7 +1673,7 @@ class Config
|
||||
if (empty($path)) {
|
||||
$path = null;
|
||||
} else {
|
||||
$path .= '/' . $name;
|
||||
$path = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $name;
|
||||
if (! @is_dir($path)) {
|
||||
@mkdir($path, 0770, true);
|
||||
}
|
||||
|
||||
@ -767,8 +767,8 @@ class StructureController extends AbstractController
|
||||
$GLOBALS['replication_info']['slave']['Do_DB']
|
||||
);
|
||||
|
||||
$do = strlen($searchDoDBInTruename) > 0
|
||||
|| strlen($searchDoDBInDB) > 0
|
||||
$do = (is_string($searchDoDBInTruename) && strlen($searchDoDBInTruename) > 0)
|
||||
|| (is_string($searchDoDBInDB) && strlen($searchDoDBInDB) > 0)
|
||||
|| ($nbServSlaveDoDb == 0 && $nbServSlaveIgnoreDb == 0)
|
||||
|| $this->hasTable(
|
||||
$GLOBALS['replication_info']['slave']['Wild_Do_Table'],
|
||||
@ -783,8 +783,8 @@ class StructureController extends AbstractController
|
||||
$table,
|
||||
$GLOBALS['replication_info']['slave']['Ignore_Table']
|
||||
);
|
||||
$ignored = strlen($searchTable) > 0
|
||||
|| strlen($searchDb) > 0
|
||||
$ignored = (is_string($searchTable) && strlen($searchTable) > 0)
|
||||
|| (is_string($searchDb) && strlen($searchDb) > 0)
|
||||
|| $this->hasTable(
|
||||
$GLOBALS['replication_info']['slave']['Wild_Ignore_Table'],
|
||||
$table
|
||||
|
||||
@ -291,7 +291,8 @@ class StructureController extends AbstractController
|
||||
}
|
||||
} else {
|
||||
$this->response->setRequestStatus(false);
|
||||
$this->response->addJSON('message', __('No column selected.'));
|
||||
$message = Message::error(__('No column selected.'));
|
||||
$this->response->addJSON('message', $message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1247,11 +1247,15 @@ class DatabaseInterface
|
||||
$columns[$column_name]['TABLE_SCHEMA'] = $database;
|
||||
$columns[$column_name]['TABLE_NAME'] = $table;
|
||||
$columns[$column_name]['ORDINAL_POSITION'] = $ordinal_position;
|
||||
$colType = $columns[$column_name]['COLUMN_TYPE'];
|
||||
$colType = is_string($colType) ? $colType : '';
|
||||
$colTypePosComa = strpos($colType, '(');
|
||||
$colTypePosComa = $colTypePosComa !== false ? $colTypePosComa : strlen($colType);
|
||||
$columns[$column_name]['DATA_TYPE']
|
||||
= substr(
|
||||
$columns[$column_name]['COLUMN_TYPE'],
|
||||
$colType,
|
||||
0,
|
||||
strpos($columns[$column_name]['COLUMN_TYPE'], '(')
|
||||
$colTypePosComa
|
||||
);
|
||||
/**
|
||||
* @todo guess CHARACTER_MAXIMUM_LENGTH from COLUMN_TYPE
|
||||
@ -1263,11 +1267,15 @@ class DatabaseInterface
|
||||
$columns[$column_name]['CHARACTER_OCTET_LENGTH'] = null;
|
||||
$columns[$column_name]['NUMERIC_PRECISION'] = null;
|
||||
$columns[$column_name]['NUMERIC_SCALE'] = null;
|
||||
$colCollation = $columns[$column_name]['COLLATION_NAME'];
|
||||
$colCollation = is_string($colCollation) ? $colCollation : '';
|
||||
$colCollationPosUnderscore = strpos($colCollation, '_');
|
||||
$colCollationPosUnderscore = $colCollationPosUnderscore !== false ? $colCollationPosUnderscore : strlen($colCollation);
|
||||
$columns[$column_name]['CHARACTER_SET_NAME']
|
||||
= substr(
|
||||
$columns[$column_name]['COLLATION_NAME'],
|
||||
$colCollation,
|
||||
0,
|
||||
strpos($columns[$column_name]['COLLATION_NAME'], '_')
|
||||
$colCollationPosUnderscore
|
||||
);
|
||||
|
||||
$ordinal_position++;
|
||||
@ -1620,6 +1628,28 @@ class DatabaseInterface
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function checks and initialises the phpMyAdmin configuration
|
||||
* storage state before it is used into session cache.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function initRelationParamsCache()
|
||||
{
|
||||
if (strlen($GLOBALS['db'])) {
|
||||
$cfgRelation = $this->relation->getRelationsParam();
|
||||
if (empty($cfgRelation['db'])) {
|
||||
$this->relation->fixPmaTables($GLOBALS['db'], false);
|
||||
}
|
||||
}
|
||||
$cfgRelation = $this->relation->getRelationsParam();
|
||||
if (empty($cfgRelation['db']) && isset($GLOBALS['dblist'])) {
|
||||
if ($GLOBALS['dblist']->databases->exists('phpmyadmin')) {
|
||||
$this->relation->fixPmaTables('phpmyadmin', false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function called just after a connection to the MySQL database server has
|
||||
* been established. It sets the connection collation, and determines the
|
||||
@ -1636,16 +1666,7 @@ class DatabaseInterface
|
||||
*/
|
||||
$GLOBALS['dblist'] = new DatabaseList();
|
||||
|
||||
if (strlen($GLOBALS['db'])) {
|
||||
$cfgRelation = $this->relation->getRelationsParam();
|
||||
if (empty($cfgRelation['db'])) {
|
||||
$this->relation->fixPmaTables($GLOBALS['db'], false);
|
||||
}
|
||||
}
|
||||
$cfgRelation = $this->relation->getRelationsParam();
|
||||
if (empty($cfgRelation['db']) && $GLOBALS['dblist']->databases->exists('phpmyadmin')) {
|
||||
$this->relation->fixPmaTables('phpmyadmin', false);
|
||||
}
|
||||
$this->initRelationParamsCache();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2948,7 +2948,7 @@ class Results
|
||||
|
||||
$display_params['data'][$row_no][$i]
|
||||
= $this->_getDataCellForNumericColumns(
|
||||
(string) $row[$i],
|
||||
$row[$i] === null ? null : (string) $row[$i],
|
||||
$class,
|
||||
$condition_field,
|
||||
$meta,
|
||||
@ -4449,7 +4449,7 @@ class Results
|
||||
mb_substr(
|
||||
(string) $column_for_first_row,
|
||||
0,
|
||||
$GLOBALS['cfg']['LimitChars']
|
||||
(int) $GLOBALS['cfg']['LimitChars']
|
||||
) . '...'
|
||||
);
|
||||
|
||||
@ -4478,7 +4478,7 @@ class Results
|
||||
mb_substr(
|
||||
(string) $column_for_last_row,
|
||||
0,
|
||||
$GLOBALS['cfg']['LimitChars']
|
||||
(int) $GLOBALS['cfg']['LimitChars']
|
||||
) . '...'
|
||||
);
|
||||
|
||||
@ -5682,7 +5682,7 @@ class Results
|
||||
$str = mb_substr(
|
||||
$str,
|
||||
0,
|
||||
$GLOBALS['cfg']['LimitChars']
|
||||
(int) $GLOBALS['cfg']['LimitChars']
|
||||
) . '...';
|
||||
$truncated = true;
|
||||
} else {
|
||||
|
||||
@ -402,8 +402,8 @@ class Header
|
||||
*/
|
||||
public function getDisplay(): string
|
||||
{
|
||||
if (! $this->_headerIsSent) {
|
||||
if (! $this->_isAjax && $this->_isEnabled) {
|
||||
if (! $this->_headerIsSent && $this->_isEnabled) {
|
||||
if (! $this->_isAjax) {
|
||||
$this->sendHttpHeaders();
|
||||
|
||||
$baseDir = defined('PMA_PATH_TO_BASEDIR') ? PMA_PATH_TO_BASEDIR : '';
|
||||
@ -452,7 +452,7 @@ class Header
|
||||
$console = $this->_console->getDisplay();
|
||||
$messages = $this->getMessage();
|
||||
}
|
||||
if ($this->_isEnabled && empty($_REQUEST['recent_table'])) {
|
||||
if (empty($_REQUEST['recent_table'])) {
|
||||
$recentTable = $this->_addRecentTable(
|
||||
$GLOBALS['db'],
|
||||
$GLOBALS['table']
|
||||
|
||||
@ -2420,7 +2420,7 @@ class InsertEdit
|
||||
$foreigner['foreign_table']
|
||||
);
|
||||
// Field to display from the foreign table?
|
||||
if ($display_field !== null && strlen($display_field) > 0) {
|
||||
if (is_string($display_field) && strlen($display_field) > 0) {
|
||||
$dispsql = 'SELECT ' . Util::backquote($display_field)
|
||||
. ' FROM ' . Util::backquote($foreigner['foreign_db'])
|
||||
. '.' . Util::backquote($foreigner['foreign_table'])
|
||||
|
||||
@ -115,21 +115,24 @@ class ImportShp extends ImportPlugin
|
||||
$dbf_file_name
|
||||
);
|
||||
if ($extracted !== false) {
|
||||
$dbf_file_path = $temp . (PMA_IS_WINDOWS ? '\\' : '/')
|
||||
. Sanitize::sanitizeFilename($dbf_file_name, true);
|
||||
$handle = fopen($dbf_file_path, 'wb');
|
||||
if ($handle !== false) {
|
||||
fwrite($handle, $extracted);
|
||||
fclose($handle);
|
||||
// remove filename extension, e.g.
|
||||
// dresden_osm.shp/gis.osm_transport_a_v06.dbf
|
||||
// to
|
||||
// dresden_osm.shp/gis.osm_transport_a_v06
|
||||
$path_parts = pathinfo($dbf_file_name);
|
||||
$dbf_file_name = $path_parts['dirname'] . '/' . $path_parts['filename'];
|
||||
|
||||
// sanitize filename
|
||||
$dbf_file_name = Sanitize::sanitizeFilename($dbf_file_name, true);
|
||||
|
||||
// concat correct filename and extension
|
||||
$dbf_file_path = $temp . '/' . $dbf_file_name . '.dbf';
|
||||
|
||||
if (file_put_contents($dbf_file_path, $extracted, LOCK_EX) !== false) {
|
||||
$temp_dbf_file = true;
|
||||
// Replace the .dbf with .*, as required
|
||||
// by the bsShapeFiles library.
|
||||
$file_name = substr(
|
||||
$dbf_file_path,
|
||||
0,
|
||||
strlen($dbf_file_path) - 4
|
||||
) . '.*';
|
||||
$shp->FileName = $file_name;
|
||||
|
||||
// Replace the .dbf with .*, as required by the bsShapeFiles library.
|
||||
$shp->FileName = substr($dbf_file_path, 0, -4) . '.*';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -150,6 +153,9 @@ class ImportShp extends ImportPlugin
|
||||
}
|
||||
}
|
||||
|
||||
// It should load data before file being deleted
|
||||
$shp->loadFromFile('');
|
||||
|
||||
// Delete the .dbf file extracted to 'TempDir'
|
||||
if ($temp_dbf_file
|
||||
&& isset($dbf_file_path)
|
||||
@ -158,9 +164,7 @@ class ImportShp extends ImportPlugin
|
||||
unlink($dbf_file_path);
|
||||
}
|
||||
|
||||
// Load data
|
||||
$shp->loadFromFile('');
|
||||
if ($shp->lastError != "") {
|
||||
if ($shp->lastError != '') {
|
||||
$error = true;
|
||||
$message = Message::error(
|
||||
__('There was an error importing the ESRI shape file: "%s".')
|
||||
@ -224,7 +228,7 @@ class ImportShp extends ImportPlugin
|
||||
|
||||
if ($shp->getDBFHeader() !== null) {
|
||||
foreach ($shp->getDBFHeader() as $c) {
|
||||
$cell = trim($record->DBFData[$c[0]]);
|
||||
$cell = trim((string) $record->DBFData[$c[0]]);
|
||||
|
||||
if (! strcmp($cell, '')) {
|
||||
$cell = 'NULL';
|
||||
|
||||
@ -1354,7 +1354,7 @@ class Relation
|
||||
mb_substr(
|
||||
$value,
|
||||
0,
|
||||
$GLOBALS['cfg']['LimitChars']
|
||||
(int) $GLOBALS['cfg']['LimitChars']
|
||||
) . '...'
|
||||
);
|
||||
}
|
||||
|
||||
@ -3213,7 +3213,7 @@ class Privileges
|
||||
|
||||
if (isset($_GET['validate_username'])) {
|
||||
$sql_query = "SELECT * FROM `mysql`.`user` WHERE `User` = '"
|
||||
. $_GET['username'] . "';";
|
||||
. $this->dbi->escapeString($_GET['username']) . "';";
|
||||
$res = $this->dbi->query($sql_query);
|
||||
$row = $this->dbi->fetchRow($res);
|
||||
if (empty($row)) {
|
||||
|
||||
@ -29,12 +29,19 @@ class SysInfoLinux extends SysInfoBase
|
||||
public function loadavg()
|
||||
{
|
||||
$buf = file_get_contents('/proc/stat');
|
||||
if ($buf === false) {
|
||||
$buf = '';
|
||||
}
|
||||
$pos = mb_strpos($buf, "\n");
|
||||
if ($pos === false) {
|
||||
$pos = 0;
|
||||
}
|
||||
$nums = preg_split(
|
||||
"/\s+/",
|
||||
mb_substr(
|
||||
$buf,
|
||||
0,
|
||||
mb_strpos($buf, "\n")
|
||||
$pos
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@ -62,6 +62,10 @@ class TwoFactor
|
||||
*/
|
||||
public function __construct($user)
|
||||
{
|
||||
/** @var DatabaseInterface $dbi */
|
||||
global $dbi;
|
||||
$dbi->initRelationParamsCache();
|
||||
|
||||
$this->userPreferences = new UserPreferences();
|
||||
$this->user = $user;
|
||||
$this->_available = $this->getAvailable();
|
||||
|
||||
@ -1174,7 +1174,7 @@ class Util
|
||||
&& ! isset($GLOBALS['show_as_php']) // 'Submit query' does the same
|
||||
&& preg_match('@^(SELECT|SHOW)[[:space:]]+@i', $sql_query)
|
||||
) {
|
||||
$refresh_link = 'import.php' . Url::getCommon($url_params);
|
||||
$refresh_link = 'sql.php' . Url::getCommon($url_params);
|
||||
$refresh_link = ' [ '
|
||||
. self::linkOrButton($refresh_link, __('Refresh')) . ']';
|
||||
} else {
|
||||
@ -2972,7 +2972,7 @@ class Util
|
||||
mb_substr(
|
||||
$printtype,
|
||||
0,
|
||||
$GLOBALS['cfg']['LimitChars']
|
||||
(int) $GLOBALS['cfg']['LimitChars']
|
||||
) . '...'
|
||||
);
|
||||
$displayed_type .= '</abbr>';
|
||||
@ -4448,7 +4448,7 @@ class Util
|
||||
) {
|
||||
$rows = $_SESSION['tmpval']['max_rows'];
|
||||
} else {
|
||||
$rows = $GLOBALS['cfg']['MaxRows'];
|
||||
$rows = (int) $GLOBALS['cfg']['MaxRows'];
|
||||
$_SESSION['tmpval']['max_rows'] = $rows;
|
||||
}
|
||||
|
||||
@ -4839,7 +4839,7 @@ class Util
|
||||
{
|
||||
// The function can be disabled in php.ini
|
||||
if (function_exists('set_time_limit')) {
|
||||
@set_time_limit($GLOBALS['cfg']['ExecTimeLimit']);
|
||||
@set_time_limit((int) $GLOBALS['cfg']['ExecTimeLimit']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "phpmyadmin",
|
||||
"version": "5.0.0",
|
||||
"version": "5.0.1",
|
||||
"description": "A web interface for MySQL and MariaDB",
|
||||
"repository": "https://github.com/phpmyadmin/phpmyadmin.git",
|
||||
"author": "The phpMyAdmin Team <developers@phpmyadmin.net> (https://www.phpmyadmin.net/team/)",
|
||||
|
||||
124
po/fr.po
124
po/fr.po
@ -4,8 +4,8 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin-docs 4.0.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
|
||||
"POT-Creation-Date: 2019-12-23 15:37-0300\n"
|
||||
"PO-Revision-Date: 2019-12-23 19:26+0000\n"
|
||||
"Last-Translator: William Desportes <williamdes@wdes.fr>\n"
|
||||
"PO-Revision-Date: 2020-01-04 14:21+0000\n"
|
||||
"Last-Translator: Olivier Humbert <trebmuh@tuxfamily.org>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/phpmyadmin/5-0/fr/"
|
||||
">\n"
|
||||
"Language: fr\n"
|
||||
@ -3942,7 +3942,7 @@ msgstr ""
|
||||
|
||||
#: libraries/classes/Config/Descriptions.php:285
|
||||
msgid "Foreign key checks"
|
||||
msgstr "Vérification des clés étrangères :"
|
||||
msgstr "Vérification des clés étrangères"
|
||||
|
||||
#: libraries/classes/Config/Descriptions.php:286
|
||||
msgid "Browse mode"
|
||||
@ -5962,7 +5962,7 @@ msgstr "Ordre"
|
||||
|
||||
#: libraries/classes/Config/Descriptions.php:926
|
||||
msgid "Order by"
|
||||
msgstr "Trier par :"
|
||||
msgstr "Trier par"
|
||||
|
||||
#: libraries/classes/Config/Descriptions.php:927
|
||||
msgid "Server connection collation"
|
||||
@ -7634,7 +7634,7 @@ msgstr "Alias :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:568
|
||||
msgid "Sort:"
|
||||
msgstr "Tri : "
|
||||
msgstr "Tri :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:627
|
||||
msgid "Sort order:"
|
||||
@ -7646,7 +7646,7 @@ msgstr "Afficher :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:719
|
||||
msgid "Criteria:"
|
||||
msgstr "Critère : "
|
||||
msgstr "Critère :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:799
|
||||
#: libraries/classes/Database/Qbe.php:831
|
||||
@ -7660,12 +7660,12 @@ msgstr "Utiliser les tables"
|
||||
#: libraries/classes/Database/Qbe.php:854
|
||||
#: libraries/classes/Database/Qbe.php:961
|
||||
msgid "Or:"
|
||||
msgstr "Ou : "
|
||||
msgstr "Ou :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:858
|
||||
#: libraries/classes/Database/Qbe.php:946
|
||||
msgid "And:"
|
||||
msgstr "Et : "
|
||||
msgstr "Et :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:863
|
||||
msgid "Ins"
|
||||
@ -7677,15 +7677,15 @@ msgstr "Suppr."
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:882
|
||||
msgid "Modify:"
|
||||
msgstr "Modifier : "
|
||||
msgstr "Modifier :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:941
|
||||
msgid "Ins:"
|
||||
msgstr "Insérer : "
|
||||
msgstr "Insérer :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:956
|
||||
msgid "Del:"
|
||||
msgstr "Supprimer : "
|
||||
msgstr "Supprimer :"
|
||||
|
||||
#: libraries/classes/Database/Qbe.php:1810
|
||||
#, php-format
|
||||
@ -7812,7 +7812,7 @@ msgstr "Aucun mot de passe"
|
||||
#: templates/server/replication/master_add_slave_user.twig:49
|
||||
#: templates/server/replication/change_master.twig:18
|
||||
msgid "Password:"
|
||||
msgstr "Mot de passe : "
|
||||
msgstr "Mot de passe :"
|
||||
|
||||
#: libraries/classes/Display/ChangePassword.php:92
|
||||
msgid "Enter:"
|
||||
@ -7827,7 +7827,7 @@ msgstr "Saisir à nouveau :"
|
||||
#: libraries/classes/Display/ChangePassword.php:133
|
||||
#: libraries/classes/Display/ChangePassword.php:168
|
||||
msgid "Password Hashing:"
|
||||
msgstr "Hachage du mot de passe : "
|
||||
msgstr "Hachage du mot de passe :"
|
||||
|
||||
#: libraries/classes/Display/ChangePassword.php:146
|
||||
#: libraries/classes/Server/Privileges.php:1870
|
||||
@ -7890,7 +7890,7 @@ msgstr "aucune branche"
|
||||
|
||||
#: libraries/classes/Display/GitRevision.php:109
|
||||
msgid "Git revision:"
|
||||
msgstr "Révision Git : "
|
||||
msgstr "Révision Git :"
|
||||
|
||||
#: libraries/classes/Display/GitRevision.php:112
|
||||
#, php-format
|
||||
@ -9055,20 +9055,20 @@ msgstr "Évènements :"
|
||||
|
||||
#: libraries/classes/Navigation/Navigation.php:220
|
||||
msgid "Functions:"
|
||||
msgstr "Fonctions : "
|
||||
msgstr "Fonctions :"
|
||||
|
||||
#: libraries/classes/Navigation/Navigation.php:221
|
||||
msgid "Procedures:"
|
||||
msgstr "Procédures : "
|
||||
msgstr "Procédures :"
|
||||
|
||||
#: libraries/classes/Navigation/Navigation.php:222
|
||||
#: templates/display/export/selection.twig:5
|
||||
msgid "Tables:"
|
||||
msgstr "Tables : "
|
||||
msgstr "Tables :"
|
||||
|
||||
#: libraries/classes/Navigation/Navigation.php:223
|
||||
msgid "Views:"
|
||||
msgstr "Vues : "
|
||||
msgstr "Vues :"
|
||||
|
||||
#: libraries/classes/Navigation/NavigationTree.php:777
|
||||
msgid ""
|
||||
@ -9733,7 +9733,7 @@ msgstr "Retirer le partitionnement"
|
||||
|
||||
#: libraries/classes/Operations.php:1767
|
||||
msgid "Check referential integrity:"
|
||||
msgstr "Vérifier l'intégrité référentielle : "
|
||||
msgstr "Vérifier l'intégrité référentielle :"
|
||||
|
||||
#: libraries/classes/Operations.php:2169
|
||||
msgid "Can't move table to same one!"
|
||||
@ -9769,7 +9769,7 @@ msgstr "Le nom de la table est vide !"
|
||||
|
||||
#: libraries/classes/Pdf.php:155
|
||||
msgid "Error while creating PDF:"
|
||||
msgstr "Erreur pendant la création du PDF : "
|
||||
msgstr "Erreur pendant la création du PDF :"
|
||||
|
||||
#: libraries/classes/Plugins.php:627
|
||||
msgid "This format has no options"
|
||||
@ -9845,11 +9845,11 @@ msgstr "Serveur : "
|
||||
|
||||
#: libraries/classes/Plugins/Auth/AuthenticationCookie.php:217
|
||||
msgid "Username:"
|
||||
msgstr "Utilisateur : "
|
||||
msgstr "Utilisateur :"
|
||||
|
||||
#: libraries/classes/Plugins/Auth/AuthenticationCookie.php:229
|
||||
msgid "Server Choice:"
|
||||
msgstr "Choix du serveur : "
|
||||
msgstr "Choix du serveur :"
|
||||
|
||||
#: libraries/classes/Plugins/Auth/AuthenticationCookie.php:359
|
||||
msgid "Failed to connect to the reCAPTCHA service!"
|
||||
@ -9904,17 +9904,17 @@ msgstr ""
|
||||
#: templates/display/import/import.twig:169
|
||||
#: templates/display/export/format_dropdown.twig:2
|
||||
msgid "Format:"
|
||||
msgstr "Format : "
|
||||
msgstr "Format :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportCsv.php:66
|
||||
#: libraries/classes/Plugins/Import/AbstractImportCsv.php:60
|
||||
msgid "Columns separated with:"
|
||||
msgstr "Colonnes séparées par : "
|
||||
msgstr "Colonnes séparées par :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportCsv.php:71
|
||||
#: libraries/classes/Plugins/Import/AbstractImportCsv.php:66
|
||||
msgid "Columns enclosed with:"
|
||||
msgstr "Colonnes entourées par : "
|
||||
msgstr "Colonnes entourées par :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportCsv.php:76
|
||||
#: libraries/classes/Plugins/Import/AbstractImportCsv.php:73
|
||||
@ -9924,7 +9924,7 @@ msgstr "Colonnes échappées avec :"
|
||||
#: libraries/classes/Plugins/Export/ExportCsv.php:81
|
||||
#: libraries/classes/Plugins/Import/AbstractImportCsv.php:80
|
||||
msgid "Lines terminated with:"
|
||||
msgstr "Lignes terminées par : "
|
||||
msgstr "Lignes terminées par :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportCsv.php:86
|
||||
#: libraries/classes/Plugins/Export/ExportExcel.php:54
|
||||
@ -9934,7 +9934,7 @@ msgstr "Lignes terminées par : "
|
||||
#: libraries/classes/Plugins/Export/ExportOdt.php:138
|
||||
#: libraries/classes/Plugins/Export/ExportTexytext.php:95
|
||||
msgid "Replace NULL with:"
|
||||
msgstr "Remplacer NULL par : "
|
||||
msgstr "Remplacer NULL par :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportCsv.php:91
|
||||
#: libraries/classes/Plugins/Export/ExportExcel.php:59
|
||||
@ -9943,7 +9943,7 @@ msgstr "Retirer les caractères de fin de ligne à l'intérieur des colonnes"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportExcel.php:69
|
||||
msgid "Excel edition:"
|
||||
msgstr "Version d'Excel : "
|
||||
msgstr "Version d'Excel :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportHtmlword.php:73
|
||||
#: libraries/classes/Plugins/Export/ExportLatex.php:106
|
||||
@ -10108,7 +10108,7 @@ msgstr "Afficher les types média (MIME)"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportLatex.php:173
|
||||
msgid "Put columns names in the first row:"
|
||||
msgstr "Afficher les noms de colonnes en première ligne : "
|
||||
msgstr "Afficher les noms de colonnes en première ligne :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportLatex.php:221
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:718
|
||||
@ -10122,7 +10122,7 @@ msgstr "Hôte :"
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:724
|
||||
#: libraries/classes/Plugins/Export/ExportXml.php:249
|
||||
msgid "Generation Time:"
|
||||
msgstr "Généré le : "
|
||||
msgstr "Généré le :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportLatex.php:228
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:728
|
||||
@ -10135,23 +10135,23 @@ msgstr "Version du serveur : "
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:730
|
||||
#: libraries/classes/Plugins/Export/ExportXml.php:252
|
||||
msgid "PHP Version:"
|
||||
msgstr "Version de PHP : "
|
||||
msgstr "Version de PHP :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportLatex.php:259
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:919
|
||||
#: libraries/classes/Plugins/Export/ExportXml.php:420
|
||||
#: libraries/classes/Plugins/Export/Helpers/Pdf.php:181
|
||||
msgid "Database:"
|
||||
msgstr "Base de données : "
|
||||
msgstr "Base de données :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportLatex.php:332
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:2241
|
||||
msgid "Data:"
|
||||
msgstr "Données : "
|
||||
msgstr "Données :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportLatex.php:520
|
||||
msgid "Structure:"
|
||||
msgstr "Structure : "
|
||||
msgstr "Structure :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportMediawiki.php:86
|
||||
msgid "Export table names"
|
||||
@ -10163,7 +10163,7 @@ msgstr "Exporter les entêtes de table"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportPdf.php:104
|
||||
msgid "Report title:"
|
||||
msgstr "Titre du rapport : "
|
||||
msgstr "Titre du rapport :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportPdf.php:235
|
||||
msgid "Dumping data"
|
||||
@ -10205,8 +10205,8 @@ msgstr "Exporter les métadonnées"
|
||||
msgid ""
|
||||
"Database system or older MySQL server to maximize output compatibility with:"
|
||||
msgstr ""
|
||||
"Maximiser la compatibilité avec un système de base de données ou un ancien "
|
||||
"serveur MySQL : "
|
||||
"Système de base de données ou ancien serveur MySQL pour maximiser la "
|
||||
"compatibilité de sortie avec :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:238
|
||||
msgid "Add statements:"
|
||||
@ -10270,7 +10270,7 @@ msgstr "Fonction à utiliser lors du déchargement des données :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:423
|
||||
msgid "Syntax to use when inserting data:"
|
||||
msgstr "Syntaxe à utiliser lors de l'insertion de données : "
|
||||
msgstr "Syntaxe à utiliser lors de l'insertion de données :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:433
|
||||
msgid ""
|
||||
@ -10354,17 +10354,17 @@ msgstr "Métadonnées pour la base de données %s"
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:1440
|
||||
#: libraries/classes/Plugins/Schema/Pdf/PdfRelationSchema.php:649
|
||||
msgid "Creation:"
|
||||
msgstr "Création : "
|
||||
msgstr "Création :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:1453
|
||||
#: libraries/classes/Plugins/Schema/Pdf/PdfRelationSchema.php:660
|
||||
msgid "Last update:"
|
||||
msgstr "Dernière modification : "
|
||||
msgstr "Dernière modification :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:1466
|
||||
#: libraries/classes/Plugins/Schema/Pdf/PdfRelationSchema.php:671
|
||||
msgid "Last check:"
|
||||
msgstr "Dernière vérification : "
|
||||
msgstr "Dernière vérification :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/ExportSql.php:1522
|
||||
#, php-format
|
||||
@ -10435,7 +10435,7 @@ msgstr "Exporter les contenus"
|
||||
|
||||
#: libraries/classes/Plugins/Export/Helpers/Pdf.php:182
|
||||
msgid "Table:"
|
||||
msgstr "Table : "
|
||||
msgstr "Table :"
|
||||
|
||||
#: libraries/classes/Plugins/Export/Helpers/Pdf.php:183
|
||||
msgid "Purpose:"
|
||||
@ -10577,7 +10577,7 @@ msgstr "Le fichier importé ne contient aucune donnée !"
|
||||
|
||||
#: libraries/classes/Plugins/Import/ImportSql.php:72
|
||||
msgid "SQL compatibility mode:"
|
||||
msgstr "Mode de compatibilité SQL : "
|
||||
msgstr "Mode de compatibilité SQL :"
|
||||
|
||||
#: libraries/classes/Plugins/Import/ImportSql.php:84
|
||||
msgid "Do not use <code>AUTO_INCREMENT</code> for zero values"
|
||||
@ -11087,7 +11087,7 @@ msgstr "Enregistrement des modèles d'exportation"
|
||||
|
||||
#: libraries/classes/Relation.php:386
|
||||
msgid "Quick steps to set up advanced features:"
|
||||
msgstr "Guide rapide de configuration des fonctions avancées : "
|
||||
msgstr "Guide rapide de configuration des fonctions avancées :"
|
||||
|
||||
#: libraries/classes/Relation.php:392
|
||||
#, php-format
|
||||
@ -11340,7 +11340,7 @@ msgstr "Il faut fournir une définition pour l'évènement."
|
||||
#: libraries/classes/Rte/Routines.php:1358
|
||||
#: libraries/classes/Rte/Routines.php:1563
|
||||
msgid "Error in processing request:"
|
||||
msgstr "Erreur dans le traitement de la requête : "
|
||||
msgstr "Erreur dans le traitement de la requête :"
|
||||
|
||||
#: libraries/classes/Rte/Footer.php:125
|
||||
msgid "OFF"
|
||||
@ -11356,7 +11356,7 @@ msgstr "État du planificateur d'évènements"
|
||||
|
||||
#: libraries/classes/Rte/General.php:61
|
||||
msgid "The backed up query was:"
|
||||
msgstr "La requête conservée est : "
|
||||
msgstr "La requête conservée est :"
|
||||
|
||||
#: libraries/classes/Rte/Routines.php:142
|
||||
msgid ""
|
||||
@ -12020,7 +12020,7 @@ msgstr "Informations pour la connexion"
|
||||
#: templates/server/replication/master_add_slave_user.twig:16
|
||||
#: templates/server/replication/change_master.twig:14
|
||||
msgid "User name:"
|
||||
msgstr "Nom d'utilisateur : "
|
||||
msgstr "Nom d'utilisateur :"
|
||||
|
||||
#: libraries/classes/Server/Privileges.php:1641
|
||||
#: libraries/classes/Server/Privileges.php:1662
|
||||
@ -12477,7 +12477,7 @@ msgstr "Attributions de menu du groupe d'utilisateurs"
|
||||
|
||||
#: libraries/classes/Server/UserGroups.php:257
|
||||
msgid "Group name:"
|
||||
msgstr "Nom du groupe : "
|
||||
msgstr "Nom du groupe :"
|
||||
|
||||
#: libraries/classes/Server/UserGroups.php:294
|
||||
msgid "Server-level tabs"
|
||||
@ -12666,7 +12666,7 @@ msgstr "Nom de base de données invalide : "
|
||||
|
||||
#: libraries/classes/Table.php:1576
|
||||
msgid "Invalid table name:"
|
||||
msgstr "Nom de table invalide : "
|
||||
msgstr "Nom de table invalide :"
|
||||
|
||||
#: libraries/classes/Table.php:1613
|
||||
#, php-format
|
||||
@ -12748,7 +12748,7 @@ msgstr "Chemin non trouvé pour le thème %s !"
|
||||
|
||||
#: libraries/classes/ThemeManager.php:352
|
||||
msgid "Theme:"
|
||||
msgstr "Thème : "
|
||||
msgstr "Thème :"
|
||||
|
||||
#: libraries/classes/Tracking.php:275
|
||||
#: templates/database/tracking/tables.twig:78
|
||||
@ -13746,7 +13746,7 @@ msgstr "Colonnes des graphiques"
|
||||
|
||||
#: templates/server/status/monitor/index.twig:74
|
||||
msgid "Chart arrangement"
|
||||
msgstr "Actions sur la dispositions des graphiques :"
|
||||
msgstr "Actions sur la dispositions des graphiques"
|
||||
|
||||
#: templates/server/status/monitor/index.twig:75
|
||||
msgid ""
|
||||
@ -13780,7 +13780,7 @@ msgstr ""
|
||||
|
||||
#: templates/server/status/monitor/index.twig:101
|
||||
msgid "Using the monitor:"
|
||||
msgstr "Utilisation de la surveillance : "
|
||||
msgstr "Utilisation de la surveillance :"
|
||||
|
||||
#: templates/server/status/monitor/index.twig:103
|
||||
msgid ""
|
||||
@ -13809,7 +13809,7 @@ msgstr ""
|
||||
|
||||
#: templates/server/status/monitor/index.twig:114
|
||||
msgid "Please note:"
|
||||
msgstr "Note : "
|
||||
msgstr "Veuillez noter :"
|
||||
|
||||
#: templates/server/status/monitor/index.twig:117
|
||||
msgid ""
|
||||
@ -15203,7 +15203,7 @@ msgstr ""
|
||||
|
||||
#: templates/server/replication/change_master.twig:26
|
||||
msgid "Port:"
|
||||
msgstr "Port : "
|
||||
msgstr "Port :"
|
||||
|
||||
#: templates/setup/config/index.twig:4 templates/setup/home/index.twig:93
|
||||
msgid "Configuration file"
|
||||
@ -15284,7 +15284,7 @@ msgstr "Voir l'état de l'esclave"
|
||||
|
||||
#: templates/server/replication/slave_configuration.twig:37
|
||||
msgid "Control slave:"
|
||||
msgstr "Contrôler le serveur esclave : "
|
||||
msgstr "Contrôler le serveur esclave :"
|
||||
|
||||
#: templates/server/replication/slave_configuration.twig:47
|
||||
msgid "Reset slave"
|
||||
@ -15308,7 +15308,7 @@ msgstr "Arrêter seulement le fil d'exécution des entrées/sorties"
|
||||
|
||||
#: templates/server/replication/slave_configuration.twig:73
|
||||
msgid "Error management:"
|
||||
msgstr "Gestion des erreurs : "
|
||||
msgstr "Gestion des erreurs :"
|
||||
|
||||
#: templates/server/replication/slave_configuration.twig:76
|
||||
msgid "Skipping errors might lead into unsynchronized master and slave!"
|
||||
@ -15479,7 +15479,7 @@ msgstr "Survol"
|
||||
|
||||
#: templates/filter.twig:4 templates/server/status/variables/index.twig:14
|
||||
msgid "Containing the word:"
|
||||
msgstr "Contenant le mot : "
|
||||
msgstr "Contenant le mot :"
|
||||
|
||||
#: templates/database/designer/main.twig:21
|
||||
#: templates/database/designer/main.twig:27
|
||||
@ -15932,7 +15932,7 @@ msgstr "Afficher les valeurs non formatées"
|
||||
|
||||
#: templates/server/status/variables/index.twig:45
|
||||
msgid "Related links:"
|
||||
msgstr "Liens connexes : "
|
||||
msgstr "Liens connexes :"
|
||||
|
||||
#: templates/server/status/variables/index.twig:70
|
||||
#: templates/server/variables/index.twig:28
|
||||
@ -16317,15 +16317,15 @@ msgstr "Nombre d'instructions exécutées depuis le démarrage :"
|
||||
|
||||
#: templates/server/status/queries/index.twig:17
|
||||
msgid "per hour:"
|
||||
msgstr "par heure : "
|
||||
msgstr "par heure :"
|
||||
|
||||
#: templates/server/status/queries/index.twig:18
|
||||
msgid "per minute:"
|
||||
msgstr "par minute : "
|
||||
msgstr "par minute :"
|
||||
|
||||
#: templates/server/status/queries/index.twig:20
|
||||
msgid "per second:"
|
||||
msgstr "par seconde : "
|
||||
msgstr "par seconde :"
|
||||
|
||||
#: templates/server/status/queries/index.twig:32
|
||||
msgid "Statements"
|
||||
@ -16689,7 +16689,7 @@ msgstr "Conserver cette requête SQL dans les signets"
|
||||
|
||||
#: templates/sql/bookmark.twig:15
|
||||
msgid "Label:"
|
||||
msgstr "Intitulé : "
|
||||
msgstr "Intitulé :"
|
||||
|
||||
#: templates/error/report_form.twig:6
|
||||
msgid ""
|
||||
|
||||
22
po/id.po
22
po/id.po
@ -3,17 +3,16 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 5.0.0-rc1\n"
|
||||
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
|
||||
"POT-Creation-Date: 2019-12-23 15:37-0300\n"
|
||||
"PO-Revision-Date: 2018-05-19 17:38+0000\n"
|
||||
"Last-Translator: Muhammad Rifqi Priyo Susanto "
|
||||
"<muhammadrifqipriyosusanto@gmail.com>\n"
|
||||
"PO-Revision-Date: 2020-01-07 01:21+0000\n"
|
||||
"Last-Translator: Timothy Aditya Sutantyo <timisutantyo@gmail.com>\n"
|
||||
"Language-Team: Indonesian <https://hosted.weblate.org/projects/phpmyadmin/"
|
||||
"master/id/>\n"
|
||||
"5-0/id/>\n"
|
||||
"Language: id\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 3.0-dev\n"
|
||||
"X-Generator: Weblate 3.10\n"
|
||||
"X-Poedit-Basepath: ../../..\n"
|
||||
|
||||
#: ajax.php:35 ajax.php:73 export.php:214 libraries/classes/Export.php:1219
|
||||
@ -125,16 +124,12 @@ msgid "You have to choose at least one column to display!"
|
||||
msgstr "Anda harus memilih paling sedikit satu kolom untuk ditampilkan!"
|
||||
|
||||
#: db_qbe.php:159 templates/database/multi_table_query/form.twig:3
|
||||
#, fuzzy
|
||||
#| msgid "Simulate query"
|
||||
msgid "Multi-table query"
|
||||
msgstr "Simulasikan query"
|
||||
msgstr "Query multi tabel"
|
||||
|
||||
#: db_qbe.php:163 templates/database/multi_table_query/form.twig:3
|
||||
#, fuzzy
|
||||
#| msgid "Query failed"
|
||||
msgid "Query by example"
|
||||
msgstr "Kueri gagal"
|
||||
msgstr "Kueri dengan contoh"
|
||||
|
||||
#: db_qbe.php:182
|
||||
#, php-format
|
||||
@ -344,7 +339,6 @@ msgid "Dropping Primary Key/Index"
|
||||
msgstr "Menghapus Kunci Primer/Indeks"
|
||||
|
||||
#: js/messages.php:66
|
||||
#, fuzzy
|
||||
msgid "Dropping Foreign key."
|
||||
msgstr "Penghapusan Foreign Key."
|
||||
|
||||
@ -540,10 +534,8 @@ msgid "Y values"
|
||||
msgstr "Nilai Y"
|
||||
|
||||
#: js/messages.php:146
|
||||
#, fuzzy
|
||||
#| msgid "Please enter the same value again"
|
||||
msgid "Please enter the SQL query first."
|
||||
msgstr "Silakan masukkan lagi nilai yang sama"
|
||||
msgstr "Silakan masukkan kueri SQL dulu."
|
||||
|
||||
#: js/messages.php:149
|
||||
msgid "The host name is empty!"
|
||||
|
||||
@ -14,6 +14,7 @@ use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Relation;
|
||||
use PhpMyAdmin\Response;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\UserPreferences;
|
||||
use PhpMyAdmin\UserPreferencesHeader;
|
||||
@ -59,8 +60,12 @@ if (isset($_POST['revert'])) {
|
||||
|
||||
$error = null;
|
||||
if ($form_display->process(false) && ! $form_display->hasErrors()) {
|
||||
// Load 2FA settings
|
||||
$twoFactor = new TwoFactor($GLOBALS['cfg']['Server']['user']);
|
||||
// save settings
|
||||
$result = $userPreferences->save($cf->getConfigArray());
|
||||
// save back the 2FA setting only
|
||||
$twoFactor->save();
|
||||
if ($result === true) {
|
||||
// reload config
|
||||
$GLOBALS['PMA_Config']->loadUserPreferences();
|
||||
|
||||
@ -81,6 +81,7 @@ $comments_map = $insertEdit->getCommentsMap($db, $table);
|
||||
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('makegrid.js');
|
||||
$scripts->addFile('sql.js');
|
||||
$scripts->addFile('table/change.js');
|
||||
$scripts->addFile('vendor/jquery/additional-methods.js');
|
||||
|
||||
@ -129,8 +129,7 @@
|
||||
{% if is_show_stats %}
|
||||
<td class="value tbl_size">
|
||||
<a href="tbl_structure.php{{ tbl_url_query|raw }}#showusage">
|
||||
<span>{{ formatted_size }}</span>
|
||||
<span class="unit">{{ unit }}</span>
|
||||
<span>{{ formatted_size }}</span> <span class="unit">{{ unit }}</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="value tbl_overhead">
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
</a>
|
||||
|
|
||||
<a class="delete-server" href="{{ get_common(server.params.remove) }}" data-post="
|
||||
{{- get_common(server.params.token, '') }}">
|
||||
{{- get_common({ token: server.params.token }, '') }}">
|
||||
{% trans 'Delete' %}
|
||||
</a>
|
||||
</small>
|
||||
|
||||
@ -1007,6 +1007,40 @@ class ConfigTest extends PmaTestCase
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for getTempDir
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @group file-system
|
||||
*/
|
||||
public function testGetTempDir(): void
|
||||
{
|
||||
$this->object->set('TempDir', sys_get_temp_dir() . DIRECTORY_SEPARATOR);
|
||||
// Check no double slash is here
|
||||
$this->assertEquals(
|
||||
sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'upload',
|
||||
$this->object->getTempDir('upload')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for getUploadTempDir
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @group file-system
|
||||
*/
|
||||
public function testGetUploadTempDir(): void
|
||||
{
|
||||
$this->object->set('TempDir', realpath(sys_get_temp_dir()) . DIRECTORY_SEPARATOR);
|
||||
|
||||
$this->assertEquals(
|
||||
$this->object->getTempDir('upload'),
|
||||
$this->object->getUploadTempDir()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for isGitRevision
|
||||
*
|
||||
|
||||
@ -59,7 +59,21 @@ class HeaderTest extends PmaTestCase
|
||||
$header = new Header();
|
||||
$header->disable();
|
||||
$this->assertEquals(
|
||||
"\n",
|
||||
'',
|
||||
$header->getDisplay()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for enable
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testEnable()
|
||||
{
|
||||
$header = new Header();
|
||||
$this->assertStringContainsString(
|
||||
'<title>phpMyAdmin</title>',
|
||||
$header->getDisplay()
|
||||
);
|
||||
}
|
||||
|
||||
@ -1018,6 +1018,19 @@ class AuthenticationCookieTest extends PmaTestCase
|
||||
'sec321'
|
||||
)
|
||||
);
|
||||
$this->assertEquals(
|
||||
'root',
|
||||
$this->object->cookieDecrypt(
|
||||
'{"iv":"AclJhCM7ryNiuPnw3Y8cXg==","mac":"d0ef75e852bc162e81496e116dc571182cb2cba6","payload":"O4vrt9R1xyzAw7ypvrLmQA=="}',
|
||||
':Kb1?)c(r{]-{`HW*hOzuufloK(M~!p'
|
||||
)
|
||||
);
|
||||
$this->assertFalse(
|
||||
$this->object->cookieDecrypt(
|
||||
'{"iv":"AclJhCM7ryNiuPnw3Y8cXg==","mac":"d0ef75e852bc162e81496e116dc571182cb2cba6","payload":"O4vrt9R1xyzAw7ypvrLmQA=="}',
|
||||
'aedzoiefpzf,zf1z7ef6ef84'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -29,8 +29,9 @@ class ImportShpTest extends PmaTestCase
|
||||
* Sets up the fixture, for example, opens a network connection.
|
||||
* This method is called before a test is executed.
|
||||
*
|
||||
* @access protected
|
||||
* @return void
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function setUp(): void
|
||||
{
|
||||
@ -84,8 +85,9 @@ class ImportShpTest extends PmaTestCase
|
||||
* Tears down the fixture, for example, closes a network connection.
|
||||
* This method is called after a test is executed.
|
||||
*
|
||||
* @access protected
|
||||
* @return void
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function tearDown(): void
|
||||
{
|
||||
@ -138,13 +140,20 @@ class ImportShpTest extends PmaTestCase
|
||||
$this->runImport('test/test_data/dresden_osm.shp.zip');
|
||||
|
||||
$this->assertMessages($import_notice);
|
||||
|
||||
$endsWith = "13.737122 51.0542065)))'))";
|
||||
|
||||
if (extension_loaded('dbase')) {
|
||||
$endsWith = "13.737122 51.0542065)))'),";
|
||||
}
|
||||
|
||||
$this->assertStringContainsString(
|
||||
"(GeomFromText('MULTIPOLYGON((("
|
||||
. "13.737122 51.0542065,"
|
||||
. "13.7373039 51.0541298,"
|
||||
. "13.7372661 51.0540944,"
|
||||
. "13.7370842 51.0541711,"
|
||||
. "13.737122 51.0542065)))'))",
|
||||
. '13.737122 51.0542065,'
|
||||
. '13.7373039 51.0541298,'
|
||||
. '13.7372661 51.0540944,'
|
||||
. '13.7370842 51.0541711,'
|
||||
. $endsWith,
|
||||
$sql_query
|
||||
);
|
||||
}
|
||||
@ -166,22 +175,39 @@ class ImportShpTest extends PmaTestCase
|
||||
//Test function called
|
||||
$this->runImport('test/test_data/timezone.shp.zip');
|
||||
|
||||
//asset that all sql are executed
|
||||
// asset that all sql are executed
|
||||
$this->assertStringContainsString(
|
||||
'CREATE DATABASE IF NOT EXISTS `SHP_DB` DEFAULT CHARACTER '
|
||||
. 'SET utf8 COLLATE utf8_general_ci',
|
||||
$sql_query
|
||||
);
|
||||
$this->assertStringContainsString(
|
||||
'CREATE TABLE IF NOT EXISTS `SHP_DB`.`TBL_NAME` '
|
||||
. '(`SPATIAL` geometry) DEFAULT CHARACTER '
|
||||
. 'SET utf8 COLLATE utf8_general_ci;',
|
||||
$sql_query
|
||||
);
|
||||
$this->assertStringContainsString(
|
||||
"INSERT INTO `SHP_DB`.`TBL_NAME` (`SPATIAL`) VALUES",
|
||||
$sql_query
|
||||
);
|
||||
|
||||
// dbase extension will generate different sql statement
|
||||
if (extension_loaded('dbase')) {
|
||||
$this->assertStringContainsString(
|
||||
'CREATE TABLE IF NOT EXISTS `SHP_DB`.`TBL_NAME` '
|
||||
. '(`SPATIAL` geometry, `ID` int(2), `AUTHORITY` varchar(25), `NAME` varchar(42)) '
|
||||
. 'DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;',
|
||||
$sql_query
|
||||
);
|
||||
|
||||
$this->assertStringContainsString(
|
||||
'INSERT INTO `SHP_DB`.`TBL_NAME` (`SPATIAL`, `ID`, `AUTHORITY`, `NAME`) VALUES',
|
||||
$sql_query
|
||||
);
|
||||
} else {
|
||||
$this->assertStringContainsString(
|
||||
'CREATE TABLE IF NOT EXISTS `SHP_DB`.`TBL_NAME` (`SPATIAL` geometry)',
|
||||
$sql_query
|
||||
);
|
||||
|
||||
$this->assertStringContainsString(
|
||||
'INSERT INTO `SHP_DB`.`TBL_NAME` (`SPATIAL`) VALUES',
|
||||
$sql_query
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$this->assertStringContainsString(
|
||||
"GeomFromText('POINT(1294523.1759236",
|
||||
$sql_query
|
||||
|
||||
@ -41,7 +41,6 @@ p.enum_notice {
|
||||
}
|
||||
|
||||
img {
|
||||
width: 1.8em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,7 +41,6 @@ p.enum_notice {
|
||||
}
|
||||
|
||||
img {
|
||||
width: 1.8em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user