29require
'../../main.inc.php';
43$action =
GETPOST(
'action',
'aZ09');
54if ($action ==
'convertutf8unicode') {
55 $sql =
"ALTER DATABASE ".$db->sanitize($db->database_name).
" CHARACTER SET utf8 COLLATE utf8_unicode_ci";
58if ($action ==
'convertutf8mb4unicode') {
59 $sql =
"ALTER DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci";
62if ($action ==
'convertutf8general') {
63 $sql =
"ALTER DATABASE ".$db->sanitize($db->database_name).
" CHARACTER SET utf8 COLLATE utf8_general_ci";
66if ($action ==
'convertutf8mb4general') {
67 $sql =
"ALTER DATABASE ".$db->sanitize($db->database_name).
" CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci";
78llxHeader(
'',
'',
'',
'', 0, 0,
'',
'',
'',
'mod-admin page-system_database');
83print
'<div class="div-table-responsive-no-min">';
84print
'<table class="noborder centpercent">';
85print
'<tr class="liste_titre"><td colspan="2">'.$langs->trans(
"Database").
'</td></tr>'.
"\n";
86print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"Version").
'</td><td>'.$db::LABEL.
' '.$db->getVersion().
'</td></tr>'.
"\n";
87print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DatabaseServer").
'</td><td>'.
$conf->db->host.
'</td></tr>'.
"\n";
88print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DatabasePort").
'</td><td>'.(empty(
$conf->db->port) ? $langs->trans(
"Default") :
$conf->db->port).
'</td></tr>'.
"\n";
89print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DatabaseName").
'</td><td>'.
$conf->db->name.
'</td></tr>'.
"\n";
90print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DriverType").
'</td><td>'.
$conf->db->type.($db->getDriverInfo() ?
' ('.$db->getDriverInfo().
')' :
'').
'</td></tr>'.
"\n";
92print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"User").
'</td><td>'.
$conf->db->user.
'</td></tr>'.
"\n";
93print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"Password").
'</td><td>'.preg_replace(
'/./i',
'*', $dolibarr_main_db_pass).
'</td></tr>'.
"\n";
94print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DBStoringCharset").
'</td><td>'.$db->getDefaultCharacterSetDatabase();
95if ($db->type ==
'mysqli') {
96 $tooltipexample =
"<br>SHOW VARIABLES LIKE 'character_set_database' (cached)<br>You can avoid cache effect with:<br>SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = '".$db->escape(
$conf->db->name).
"'";
97 print
' '.$form->textwithpicto(
'', $langs->transnoentitiesnoconv(
"HelpMariaDBToGetValue", $tooltipexample.
'<br>'.$langs->transnoentitiesnoconv(
"HelpMariaDBToGetPossibleValues",
"<br>SHOW CHARSET")));
100print
'</td></tr>'.
"\n";
101print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DBSortingCharset").
'</td><td>';
102$defaultcollation = $db->getDefaultCollationDatabase();
104global $dolibarr_main_db_collation;
105if ($db->type ==
'mysqli') {
106 if ($defaultcollation !=
$conf->db->dolibarr_main_db_collation) {
107 print
img_warning(
'The database default value of collation '.$defaultcollation.
' differs from conf setup '.
$conf->db->dolibarr_main_db_collation);
109 $tooltipexample =
"<br>SHOW VARIABLES LIKE 'collation_database' (cached)<br>You can avoid cache effect with:<br>SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = '".$db->escape(
$conf->db->name).
"'";
110 print
' '.$form->textwithpicto(
'', $langs->transnoentitiesnoconv(
"HelpMariaDBToGetValue", $tooltipexample.
'<br>'.$langs->transnoentitiesnoconv(
"HelpMariaDBToGetPossibleValues",
"<br>SHOW COLLATION")));
113 print
' <span class="opacitymedium small">'.$langs->trans(
"ConvertInto");
114 if (!in_array($defaultcollation, array(
"utf8_unicode_ci"))) {
115 print
' <a class="reposition" href="'.DOL_URL_ROOT.
'/admin/system/database.php?action=convertutf8unicode&token='.
newToken().
'">utf8 unicode</a>';
117 if (!in_array($defaultcollation, array(
"utf8_general_ci"))) {
118 print
' <a class="reposition" href="'.DOL_URL_ROOT.
'/admin/system/database.php?action=convertutf8general&token='.
newToken().
'">utf8 general</a>';
120 if (!in_array($defaultcollation, array(
"utf8mb4_unicode_ci"))) {
121 print
' <a class="reposition" href="'.DOL_URL_ROOT.
'/admin/system/database.php?action=convertutf8mb4unicode&&token='.
newToken().
'">utf8mb4 unicode</a>';
123 if (!in_array($defaultcollation, array(
"utf8mb4_general_ci"))) {
124 print
' <a class="reposition" href="'.DOL_URL_ROOT.
'/admin/system/database.php?action=convertutf8mb4general&&token='.
newToken().
'">utf8mb4 general</a>';
127print
'</td></tr>'.
"\n";
133print
'<div class="div-table-responsive-no-min">';
134print
'<table class="noborder centpercent">';
135print
'<tr class="liste_titre"><td colspan="2">'.$langs->trans(
"Tables").
'</td></tr>'.
"\n";
136print
'<tr class="oddeven"><td class=""><a href="'.DOL_URL_ROOT.
'/admin/system/database-tables.php?mainmenu=home">'.
img_picto(
'',
'list',
'class="pictofixedwidth"').$langs->trans(
"List").
'</a></td></tr>'.
"\n";
140$listofvars = $db->getServerParametersValues();
141$listofstatus = $db->getServerStatusValues();
142$arraylist = array(
'listofvars',
'listofstatus');
144if (!count($listofvars) && !count($listofstatus)) {
145 print $langs->trans(
"FeatureNotAvailableWithThisDatabaseDriver");
147 foreach ($arraylist as $listname) {
149 print
'<div class="div-table-responsive-no-min">';
150 print
'<table class="noborder centpercent">';
151 print
'<tr class="liste_titre">';
152 print
'<td width="300">'.$langs->trans(
"Parameters").
'</td>';
157 $arraytest = array();
158 if (preg_match(
'/mysql/i', $db->type)) {
160 'character_set_database' => array(
'var' =>
'dolibarr_main_db_character_set',
'valifempty' =>
'utf8'),
161 'collation_database' => array(
'var' =>
'dolibarr_main_db_collation',
'valifempty' =>
'utf8_unicode_ci')
165 $listtouse = array();
166 if ($listname ==
'listofvars') {
167 $listtouse = $listofvars;
169 if ($listname ==
'listofstatus') {
170 $listtouse = $listofstatus;
173 foreach ($listtouse as $param => $paramval) {
174 print
'<tr class="oddeven">';
178 print
'<td class="wordbreak">';
181 foreach ($arraytest as $key => $val) {
182 if ($key != $param) {
185 $tmpvar = $val[
'var'];
187 $text =
'Should be in line with value of param <b>'.$val[
'var'].
'</b> thas is <b>'.($val2 ? $val2 :
"'' (=".$val[
'valifempty'].
")").
'</b>';
195 print $form->textwithpicto($paramval, $text);
199 print $form->textwithpicto($paramval, $text, 1,
'warning');
204 print
'</table>'.
"\n";
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dolPrintHTML($s, $allowiframe=0)
Return a string (that can be on several lines) ready to be output on a HTML page.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.