29require
'../../main.inc.php';
33$action =
GETPOST(
'action',
'aZ09');
44if ($action ==
'convertutf8unicode') {
45 $sql =
"ALTER DATABASE ".$db->sanitize($db->database_name).
" CHARACTER SET utf8 COLLATE utf8_unicode_ci";
48if ($action ==
'convertutf8mb4unicode') {
49 $sql =
"ALTER DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci";
52if ($action ==
'convertutf8general') {
53 $sql =
"ALTER DATABASE ".$db->sanitize($db->database_name).
" CHARACTER SET utf8 COLLATE utf8_general_ci";
56if ($action ==
'convertutf8mb4general') {
57 $sql =
"ALTER DATABASE ".$db->sanitize($db->database_name).
" CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci";
68llxHeader(
'',
'',
'',
'', 0, 0,
'',
'',
'',
'mod-admin page-system_database');
73print
'<div class="div-table-responsive-no-min">';
74print
'<table class="noborder centpercent">';
75print
'<tr class="liste_titre"><td colspan="2">'.$langs->trans(
"Database").
'</td></tr>'.
"\n";
76print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"Version").
'</td><td>'.$db::LABEL.
' '.$db->getVersion().
'</td></tr>'.
"\n";
77print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DatabaseServer").
'</td><td>'.$conf->db->host.
'</td></tr>'.
"\n";
78print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DatabasePort").
'</td><td>'.(empty($conf->db->port) ? $langs->trans(
"Default") : $conf->db->port).
'</td></tr>'.
"\n";
79print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DatabaseName").
'</td><td>'.$conf->db->name.
'</td></tr>'.
"\n";
80print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DriverType").
'</td><td>'.$conf->db->type.($db->getDriverInfo() ?
' ('.$db->getDriverInfo().
')' :
'').
'</td></tr>'.
"\n";
82print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"User").
'</td><td>'.$conf->db->user.
'</td></tr>'.
"\n";
83print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"Password").
'</td><td>'.preg_replace(
'/./i',
'*', $dolibarr_main_db_pass).
'</td></tr>'.
"\n";
84print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DBStoringCharset").
'</td><td>'.$db->getDefaultCharacterSetDatabase();
85if ($db->type ==
'mysqli') {
86 $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).
"'";
87 print
' '.$form->textwithpicto(
'', $langs->transnoentitiesnoconv(
"HelpMariaDBToGetValue", $tooltipexample.
'<br>'.$langs->transnoentitiesnoconv(
"HelpMariaDBToGetPossibleValues",
"<br>SHOW CHARSET")));
90print
'</td></tr>'.
"\n";
91print
'<tr class="oddeven"><td width="300">'.$langs->trans(
"DBSortingCharset").
'</td><td>';
92$defaultcollation = $db->getDefaultCollationDatabase();
94global $dolibarr_main_db_collation;
95if ($db->type ==
'mysqli') {
96 if ($defaultcollation != $conf->db->dolibarr_main_db_collation) {
97 print
img_warning(
'The database default value of collation '.$defaultcollation.
' differs from conf setup '.$conf->db->dolibarr_main_db_collation);
99 $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).
"'";
100 print
' '.$form->textwithpicto(
'', $langs->transnoentitiesnoconv(
"HelpMariaDBToGetValue", $tooltipexample.
'<br>'.$langs->transnoentitiesnoconv(
"HelpMariaDBToGetPossibleValues",
"<br>SHOW COLLATION")));
103 print
' <span class="opacitymedium small">'.$langs->trans(
"ConvertInto");
104 if (!in_array($defaultcollation, array(
"utf8_unicode_ci"))) {
105 print
' <a class="reposition" href="'.DOL_URL_ROOT.
'/admin/system/database.php?action=convertutf8unicode&token='.
newToken().
'">utf8 unicode</a>';
107 if (!in_array($defaultcollation, array(
"utf8_general_ci"))) {
108 print
' <a class="reposition" href="'.DOL_URL_ROOT.
'/admin/system/database.php?action=convertutf8general&token='.
newToken().
'">utf8 general</a>';
110 if (!in_array($defaultcollation, array(
"utf8mb4_unicode_ci"))) {
111 print
' <a class="reposition" href="'.DOL_URL_ROOT.
'/admin/system/database.php?action=convertutf8mb4unicode&&token='.
newToken().
'">utf8mb4 unicode</a>';
113 if (!in_array($defaultcollation, array(
"utf8mb4_general_ci"))) {
114 print
' <a class="reposition" href="'.DOL_URL_ROOT.
'/admin/system/database.php?action=convertutf8mb4general&&token='.
newToken().
'">utf8mb4 general</a>';
117print
'</td></tr>'.
"\n";
123print
'<div class="div-table-responsive-no-min">';
124print
'<table class="noborder centpercent">';
125print
'<tr class="liste_titre"><td colspan="2">'.$langs->trans(
"Tables").
'</td></tr>'.
"\n";
126print
'<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";
130$listofvars = $db->getServerParametersValues();
131$listofstatus = $db->getServerStatusValues();
132$arraylist = array(
'listofvars',
'listofstatus');
134if (!count($listofvars) && !count($listofstatus)) {
135 print $langs->trans(
"FeatureNotAvailableWithThisDatabaseDriver");
137 foreach ($arraylist as $listname) {
139 print
'<div class="div-table-responsive-no-min">';
140 print
'<table class="noborder centpercent">';
141 print
'<tr class="liste_titre">';
142 print
'<td width="300">'.$langs->trans(
"Parameters").
'</td>';
147 $arraytest = array();
148 if (preg_match(
'/mysql/i', $db->type)) {
150 'character_set_database' => array(
'var' =>
'dolibarr_main_db_character_set',
'valifempty' =>
'utf8'),
151 'collation_database' => array(
'var' =>
'dolibarr_main_db_collation',
'valifempty' =>
'utf8_unicode_ci')
155 $listtouse = array();
156 if ($listname ==
'listofvars') {
157 $listtouse = $listofvars;
159 if ($listname ==
'listofstatus') {
160 $listtouse = $listofstatus;
163 foreach ($listtouse as $param => $paramval) {
164 print
'<tr class="oddeven">';
168 print
'<td class="wordbreak">';
171 foreach ($arraytest as $key => $val) {
172 if ($key != $param) {
175 $tmpvar = $val[
'var'];
177 $text =
'Should be in line with value of param <b>'.$val[
'var'].
'</b> thas is <b>'.($val2 ? $val2 :
"'' (=".$val[
'valifempty'].
")").
'</b>';
185 print $form->textwithpicto($paramval, $text);
189 print $form->textwithpicto($paramval, $text, 1,
'warning');
194 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.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.