26 require
'../../main.inc.php';
27 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
28 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
29 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
31 $langs->load(
"admin");
33 $action =
GETPOST(
'action',
'aZ09');
35 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
36 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
44 if (empty($page) || $page == -1) {
47 $limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
48 $offset = $limit * $page;
59 if ($action ==
'deletefile') {
60 if (preg_match(
'/^backup\//',
GETPOST(
'urlfile',
'alpha'))) {
61 $file = $conf->admin->dir_output.
'/backup/'.basename(
GETPOST(
'urlfile',
'alpha'));
69 $file = $conf->admin->dir_output.
'/documents/'.basename(
GETPOST(
'urlfile',
'alpha'));
92 $help_url =
'EN:Backups|FR:Sauvegardes|ES:Copias_de_seguridad';
95 print
'<script type="text/javascript">
96 jQuery(document).ready(function() {';
99 function hideoptions () {
100 jQuery(
"#mysql_options").hide();
101 jQuery(
"#mysql_nobin_options").hide();
102 jQuery(
"#postgresql_options").hide();
106 jQuery(
"#radio_dump_mysql").click(
function() {
108 jQuery(
"#mysql_options").show();
110 jQuery(
"#radio_dump_mysql_nobin").click(
function() {
112 jQuery(
"#mysql_nobin_options").show();
114 jQuery(
"#radio_dump_postgresql").click(
function() {
116 jQuery(
"#postgresql_options").show();
118 jQuery(
"#select_sql_compat").click(
function() {
119 if (jQuery(
"#select_sql_compat").val() ==
'POSTGRESQL')
121 jQuery(
"#checkbox_dump_disable-add-locks").prop(
'checked',
true);
126 if (in_array($type, array(
'mysql',
'mysqli'))) {
127 print
'jQuery("#radio_dump_mysql").click();';
129 if (in_array($type, array(
'pgsql'))) {
130 print
'jQuery("#radio_dump_postgresql").click();';
135 $title = $langs->trans(
"Backup");
140 print
'<div class="center">';
141 print $langs->trans(
"BackupDesc", DOL_DATA_ROOT);
145 print
"<!-- Dump of a server -->\n";
146 print
'<form method="post" action="export.php" name="dump">';
147 print
'<input type="hidden" name="token" value="'.newToken().
'" />';
148 print
'<input type="hidden" name="export_type" value="server" />';
149 print
'<input type="hidden" name="page_y" value="" />';
151 print
'<fieldset id="fieldsetexport"><legend class="legendforfieldsetstep" style="font-size: 3em">1</legend>';
153 print
'<span class="opacitymedium">';
154 print $langs->trans(
"BackupDesc3", $dolibarr_main_db_name).
'<br>';
160 print
'<div id="backupdatabaseleft" class="fichehalfleft" >';
162 $title = $langs->trans(
"BackupDumpWizard");
166 print
'<table class="liste nohover centpercent noborderbottom">';
167 print
'<tr class="liste_titre">';
168 print
'<td class="liste_titre">';
169 print $langs->trans(
"DatabaseName").
' : <b>'.$dolibarr_main_db_name.
'</b><br>';
172 print
'<tr class="oddeven nohover"><td style="class="nohover">';
174 print
'<table class="centpercent noborderbottom">';
177 print
'<td class="tdtop nopaddingleftimp">';
179 print
'<div id="div_container_exportoptions">';
180 print
'<fieldset id="exportoptions"><legend>'.$langs->trans(
"ExportMethod").
'</legend>';
181 if (in_array($type, array(
'mysql',
'mysqli'))) {
182 print
'<div class="formelementrow"><input type="radio" name="what" value="mysql" id="radio_dump_mysql" />';
183 print
'<label for="radio_dump_mysql">MySQL Dump (mysqldump)</label>';
186 print
'<div class="formelementrow"><input type="radio" name="what" value="mysqlnobin" id="radio_dump_mysql_nobin" />';
187 print
'<label for="radio_dump_mysql_nobin">MySQL Dump (php) '.img_warning($langs->trans(
'BackupPHPWarning')).
'</label>';
189 } elseif (in_array($type, array(
'pgsql'))) {
190 print
'<div class="formelementrow"><input type="radio" name="what" value="postgresql" id="radio_dump_postgresql" />';
191 print
'<label for="radio_dump_postgresql">PostgreSQL Dump (pg_dump)</label>';
194 print
'No method available with database '.$label;
203 print
'<td class="tdtop nopaddingleftimp">';
205 print
'<div class="centpercent center"><a id="lnk" href="javascript:hideoptions()"> '.$langs->trans(
"ShowAdvancedOptions").
'...</a></div>';
207 print
'<script type="text/javascript">
209 function hideoptions(){
210 const lnk = document.getElementById("lnk");
211 const div = document.getElementById("div_container_sub_exportoptions");
213 if (div.style.display === "none") {
214 div.style.display = "block";
215 lnk.innerText="'.dol_escape_js($langs->transnoentitiesnoconv(
"HideAdvancedoptions")).
'";
217 div.style.display = "none";
218 lnk.innerText="'.
dol_escape_js($langs->transnoentitiesnoconv(
"ShowAdvancedOptions")).
'...";
223 print
'<div id="div_container_sub_exportoptions" style="display: none;">';
225 if (in_array($type, array(
'mysql',
'mysqli'))) {
226 print
"<!-- Fieldset mysqldump -->\n";
227 print
'<fieldset id="mysql_options"><legend>'.$langs->trans(
"MySqlExportParameters").
'</legend>';
229 print
'<div class="formelementrow">'.$langs->trans(
"FullPathToMysqldumpCommand");
230 if (empty($conf->global->SYSTEMTOOLS_MYSQLDUMP)) {
231 $fullpathofmysqldump = $db->getPathOfDump();
233 $fullpathofmysqldump = $conf->global->SYSTEMTOOLS_MYSQLDUMP;
236 print
'<input type="text" name="mysqldump" style="width: 80%" value="'.$fullpathofmysqldump.
'" /></div>';
239 print
'<fieldset><legend>'.$langs->trans(
"ExportOptions").
'</legend>';
241 if (!empty($conf->global->MYSQL_OLD_OPTION_DISABLE_FK)) {
242 print
'<div class="formelementrow">';
243 print
'<input type="checkbox" name="disable_fk" value="yes" id="checkbox_disable_fk" checked />';
244 print
'<label for="checkbox_disable_fk">'.$langs->trans(
"CommandsToDisableForeignKeysForImport").
' '.
img_info($langs->trans(
'CommandsToDisableForeignKeysForImportWarning')).
'</label>';
248 print
'<label for="select_sql_compat">'.$langs->trans(
"ExportCompatibility").
'</label>';
250 print
'<select name="sql_compat" id="select_sql_compat" class="flat">';
251 print
'<option value="NONE" selected>NONE</option>';
252 print
'<option value="ANSI">ANSI</option>';
253 print
'<option value="DB2">DB2</option>';
254 print
'<option value="MAXDB">MAXDB</option>';
255 print
'<option value="MYSQL323">MYSQL323</option>';
256 print
'<option value="MYSQL40">MYSQL40</option>';
257 print
'<option value="MSSQL">MSSQL</option>';
258 print
'<option value="ORACLE">ORACLE</option>';
259 print
'<option value="POSTGRESQL">POSTGRESQL</option>';
263 print
'<div class="formelementrow">';
264 print
'<input type="checkbox" name="use_transaction" value="yes" id="checkbox_use_transaction" checked="checked" />';
265 print
'<label for="checkbox_use_transaction">'.$langs->trans(
"UseTransactionnalMode").
'</label>';
268 print
'<input type="checkbox" name="use_mysql_quick_param" value="yes" id="checkbox_use_quick" checked="checked" />';
269 print
'<label for="checkbox_use_quick">';
270 print
$form->textwithpicto($langs->trans(
'ExportUseMySQLQuickParameter'), $langs->trans(
'ExportUseMySQLQuickParameterHelp'));
275 if (!empty($conf->global->MAIN_EXEC_USE_POPEN)) {
276 $execmethod = $conf->global->MAIN_EXEC_USE_POPEN;
278 if (empty($execmethod)) {
281 if ($execmethod == 1) {
283 print
'<input type="checkbox" name="lowmemorydump" value="yes" id="lowmemorydump"'.((GETPOSTISSET(
'lowmemorydump') ?
GETPOST(
'lowmemorydump',
'alpha') :
getDolGlobalString(
'MAIN_LOW_MEMORY_DUMP')) ?
' checked="checked"' :
'').
'" />';
284 print
'<label for="lowmemorydump">';
285 print
$form->textwithpicto($langs->trans(
'ExportUseLowMemoryMode'), $langs->trans(
'ExportUseLowMemoryModeHelp'));
290 print
'<!-- <input type="checkbox" name="drop_database" value="yes" id="checkbox_drop_database" />';
291 print
'<label for="checkbox_drop_database">'.$langs->trans(
"AddDropDatabase").
'</label>';
298 print
'<input type="checkbox" name="sql_structure" value="structure" id="checkbox_sql_structure" checked />';
299 print
'<label for="checkbox_sql_structure">'.$langs->trans(
'ExportStructure').
'</label>';
302 print
'<input type="checkbox" name="drop"'.((!
GETPOSTISSET(
"drop") ||
GETPOST(
'drop')) ?
' checked' :
'').
' id="checkbox_dump_drop" />';
303 print
'<label for="checkbox_dump_drop">'.$langs->trans(
"AddDropTable").
'</label>';
310 print
'<input type="checkbox" name="sql_data" value="data" id="checkbox_sql_data" checked />';
311 print
'<label for="checkbox_sql_data">'.$langs->trans(
"Datas").
'</label>';
313 print
'<input type="checkbox" name="showcolumns" value="yes" id="checkbox_dump_showcolumns" checked />';
314 print
'<label for="checkbox_dump_showcolumns">'.$langs->trans(
"NameColumn").
'</label>';
317 print
'<input type="checkbox" name="extended_ins" value="yes" id="checkbox_dump_extended_ins" checked />';
318 print
'<label for="checkbox_dump_extended_ins">'.$langs->trans(
"ExtendedInsert").
'</label>';
321 print
'<input type="checkbox" name="disable-add-locks" value="no" id="checkbox_dump_disable-add-locks" />';
322 print
'<label for="checkbox_dump_disable-add-locks">'.$langs->trans(
"NoLockBeforeInsert").
'</label>';
325 print
'<input type="checkbox" name="delayed" value="yes" id="checkbox_dump_delayed" />';
326 print
'<label for="checkbox_dump_delayed">'.$langs->trans(
"DelayedInsert").
'</label>';
329 print
'<input type="checkbox" name="sql_ignore" value="yes" id="checkbox_dump_ignore" />';
330 print
'<label for="checkbox_dump_ignore">'.$langs->trans(
"IgnoreDuplicateRecords").
'</label>';
333 print
'<input type="checkbox" name="hexforbinary" value="yes" id="checkbox_hexforbinary" checked />';
334 print
'<label for="checkbox_hexforbinary">'.$langs->trans(
"EncodeBinariesInHexa").
'</label>';
337 print
'<input type="checkbox" name="charset_utf8" value="yes" id="checkbox_charset_utf8" checked disabled />';
338 print
'<label for="checkbox_charset_utf8">'.$langs->trans(
"UTF8").
'</label>';
343 print
"<!-- Fieldset mysql_nobin -->\n";
344 print
'<fieldset id="mysql_nobin_options">';
345 print
'<legend>'.$langs->trans(
"MySqlExportParameters").
'</legend>';
347 print
'<legend>'.$langs->trans(
"ExportOptions").
'</legend>';
348 print
'<div class="formelementrow">';
349 print
'<input type="checkbox" name="nobin_use_transaction" value="yes" id="checkbox_use_transaction" />';
350 print
'<label for="checkbox_use_transaction">'.$langs->trans(
"UseTransactionnalMode").
'</label>';
353 if (!empty($conf->global->MYSQL_OLD_OPTION_DISABLE_FK)) {
354 print
'<div class="formelementrow">';
355 print
'<input type="checkbox" name="nobin_disable_fk" value="yes" id="checkbox_disable_fk" checked />';
356 print
'<label for="checkbox_disable_fk">'.$langs->trans(
"CommandsToDisableForeignKeysForImport").
' '.
img_info($langs->trans(
'CommandsToDisableForeignKeysForImportWarning')).
'</label>';
362 print
'<fieldset><legend>'.$langs->trans(
'ExportStructure').
'</legend>';
363 print
'<input type="checkbox" name="nobin_drop"'.((!
GETPOSTISSET(
"nobin_drop") ||
GETPOST(
'nobin_drop')) ?
' checked' :
'').
' id="checkbox_dump_drop" />';
364 print
'<label for="checkbox_dump_drop">'.$langs->trans(
"AddDropTable").
'</label>';
370 print
'<legend>'.$langs->trans(
"Datas").
'</legend>';
372 print
'<input type="checkbox" name="nobin_nolocks" value="no" id="checkbox_dump_disable-add-locks" />';
373 print
'<label for="checkbox_dump_disable-add-locks">'.$langs->trans(
"NoLockBeforeInsert").
'</label>';
376 print
'<input type="checkbox" name="nobin_delayed" value="yes" id="checkbox_dump_delayed" />';
377 print
'<label for="checkbox_dump_delayed">'.$langs->trans(
"DelayedInsert").
'</label>';
380 print
'<input type="checkbox" name="nobin_sql_ignore" value="yes" id="checkbox_dump_ignore" />';
381 print
'<label for="checkbox_dump_ignore">'.$langs->trans(
"IgnoreDuplicateRecords").
'</label>';
384 print
'<input type="checkbox" name="nobin_charset_utf8" value="yes" id="checkbox_charset_utf8" checked disabled />';
385 print
'<label for="checkbox_charset_utf8">'.$langs->trans(
"UTF8").
'</label>';
392 if (in_array($type, array(
'pgsql'))) {
393 print
"<!-- Fieldset pg_dump -->\n";
394 print
'<fieldset id="postgresql_options"><legend>'.$langs->trans(
"PostgreSqlExportParameters").
'</legend>';
396 print
'<div class="formelementrow">'.$langs->trans(
"FullPathToPostgreSQLdumpCommand");
397 if (empty($conf->global->SYSTEMTOOLS_POSTGRESQLDUMP)) {
398 $fullpathofpgdump = $db->getPathOfDump();
400 $fullpathofpgdump = $conf->global->SYSTEMTOOLS_POSTGRESQLDUMP;
403 print
'<input type="text" name="postgresqldump" style="width: 80%" value="'.$fullpathofpgdump.
'" /></div>';
407 print
'<legend>'.$langs->trans(
"ExportOptions").
'</legend>';
408 print
'<label for="select_sql_compat">'.$langs->trans(
"ExportCompatibility").
'</label>';
409 print
'<select name="sql_compat" id="select_sql_compat" class="flat">';
410 print
'<option value="POSTGRESQL" selected>POSTGRESQL</option>';
411 print
'<option value="ANSI">ANSI</option>';
414 print
'<!-- <input type="checkbox" name="drop_database" value="yes" id="checkbox_drop_database" />';
415 print
'<label for="checkbox_drop_database">'.$langs->trans(
"AddDropDatabase").
'</label>';
421 print
'<input type="checkbox" name="sql_structure" value="structure" id="checkbox_sql_structure" checked />';
422 print
'<label for="checkbox_sql_structure">'.$langs->trans(
'ExportStructure').
'</label>';
428 print
'<input type="checkbox" name="sql_data" value="data" id="checkbox_sql_data" checked />';
429 print
'<label for="checkbox_sql_data">'.$langs->trans(
"Datas").
'</label>';
431 print
'<input type="checkbox" name="showcolumns" value="yes" id="checkbox_dump_showcolumns" checked />';
432 print
'<label for="checkbox_dump_showcolumns">'.$langs->trans(
"NameColumn").
'</label>';
446 print
'<!--<fieldset>';
447 print
'<legend>'.$langs->trans(
"Destination").
'</legend> -->';
449 print
'<label for="filename_template" class="line-height-large">'.$langs->trans(
"FileNameToGenerate").
'</label>';
453 if (in_array($type, array(
'mysql',
'mysqli'))) {
454 $prefix =
'mysqldump';
461 if (in_array($type, array(
'pgsql'))) {
466 print
'<input type="text" name="filename_template" style="width: 90%" id="filename_template" value="'.$file.
'" />';
471 $compression = array();
472 if (in_array($type, array(
'mysql',
'mysqli'))) {
473 $compression[
'gz'] = array(
474 'function' =>
'gzopen',
475 'id' =>
'radio_compression_gzip',
476 'label' => $langs->trans(
"Gzip")
484 $compression[
'bz'] = array(
485 'function' =>
'bzopen',
486 'id' =>
'radio_compression_bzip',
487 'label' => $langs->trans(
"Bzip2")
489 $compression[
'zstd'] = array(
490 'function' =>
'zstd_compress',
491 'id' =>
'radio_compression_zstd',
492 'label' => $langs->trans(
"Zstd")
494 $compression[
'none'] = array(
496 'id' =>
'radio_compression_none',
497 'label' => $langs->trans(
"None")
500 $compression[
'none'] = array(
502 'id' =>
'radio_compression_none',
503 'label' => $langs->trans(
"None")
505 $compression[
'gz'] = array(
506 'function' =>
'gzopen',
507 'id' =>
'radio_compression_gzip',
508 'label' => $langs->trans(
"Gzip")
513 print
'<div class="formelementrow">';
516 print $langs->trans(
"Compression").
': ';
519 foreach ($compression as $key => $val) {
520 if (!$val[
'function'] || function_exists($val[
'function'])) {
524 $checked =
' checked';
526 print
'<input type="radio" name="compression" value="'.$key.
'" id="'.$val[
'id'].
'"'.$checked.
'>';
527 print
' <label for="'.$val[
'id'].
'">'.$val[
'label'].
'</label>';
530 print
'<input type="radio" name="compression" value="'.$key.
'" id="'.$val[
'id'].
'" disabled>';
531 print
' <label for="'.$val[
'id'].
'">'.$val[
'label'].
'</label>';
532 print
' <span class="opacitymedium">('.$langs->trans(
"NotAvailable").
')</span>';
534 print
' ';
541 print
"<!--</fieldset>--> <!-- End destination -->\n";
544 print
'<div class="center">';
545 print
'<input type="submit" class="button reposition" value="'.$langs->trans(
"GenerateBackup").
'" id="buttonGo">';
549 if (!empty($_SESSION[
"commandbackuplastdone"])) {
550 print
'<br><b>'.$langs->trans(
"RunCommandSummary").
':</b><br>'.
"\n";
551 print
'<textarea rows="'.ROWS_2.
'" class="centpercent">'.$_SESSION[
"commandbackuplastdone"].
'</textarea><br>'.
"\n";
557 print
'<b>'.$langs->trans(
"BackupResult").
':</b> ';
558 print $_SESSION[
"commandbackupresult"];
560 $_SESSION[
"commandbackuplastdone"] =
'';
561 $_SESSION[
"commandbackuptorun"] =
'';
562 $_SESSION[
"commandbackupresult"] =
'';
564 if (!empty($_SESSION[
"commandbackuptorun"])) {
565 print
'<br><span class="warning">'.$langs->trans(
"YouMustRunCommandFromCommandLineAfterLoginToUser", $dolibarr_main_db_user, $dolibarr_main_db_user).
':</span><br>'.
"\n";
566 print
'<textarea id="commandbackuptoruntext" rows="'.ROWS_2.
'" class="centpercent">'.$_SESSION[
"commandbackuptorun"].
'</textarea><br>'.
"\n";
572 $_SESSION[
"commandbackuplastdone"] =
'';
573 $_SESSION[
"commandbackuptorun"] =
'';
574 $_SESSION[
"commandbackupresult"] =
'';
577 print
"</div> <!-- end div center button -->\n";
582 print
"</div> <!-- end div fichehalfleft -->\n";
585 print
'<div id="backupdatabaseright" class="fichehalfright">';
587 $filearray =
dol_dir_list($conf->admin->dir_output.
'/backup',
'files', 0,
'',
'', $sortfield, (strtolower($sortorder) ==
'asc' ?SORT_ASC:SORT_DESC), 1);
588 $result = $formfile->list_of_documents($filearray,
null,
'systemtools',
'', 1,
'backup/', 1, 0, $langs->trans(
"NoBackupFileAvailable"), 0, $langs->trans(
"PreviousDumpFiles"),
'', 0, -1,
'',
'',
'ASC', 1, 0, -1,
'style="height:480px; overflow: auto;"');
596 $title = $langs->trans(
"BackupZipWizard");
599 print
"<!-- Dump of a server -->\n";
601 print
'<form method="post" action="export_files.php" name="dump">';
602 print
'<input type="hidden" name="token" value="'.newToken().
'" />';
603 print
'<input type="hidden" name="export_type" value="server" />';
604 print
'<input type="hidden" name="page_y" value="" />';
606 print
'<fieldset><legend class="legendforfieldsetstep" style="font-size: 3em">2</legend>';
608 print
'<span class="opacitymedium">';
609 print $langs->trans(
"BackupDesc2", DOL_DATA_ROOT).
'<br>';
610 print $langs->trans(
"BackupDescX").
'<br><br>';
613 print
'<div id="backupfilesleft" class="fichehalfleft">';
617 print
'<label for="zipfilename_template" class="line-height-large paddingbottom">'.$langs->trans(
"FileNameToGenerate").
'</label><br>';
618 $prefix =
'documents';
621 print
'<input type="text" name="zipfilename_template" style="width: 90%" id="zipfilename_template" value="'.$file.
'" /> <br>';
627 print
'<div class="formelementrow">';
630 print $langs->trans(
"Compression").
': ';
631 $filecompression = $compression;
632 unset($filecompression[
'none']);
633 $filecompression[
'zip'] = array(
'function' =>
'dol_compress_dir',
'id' =>
'radio_compression_zip',
'label' => $langs->trans(
"FormatZip"));
636 foreach ($filecompression as $key => $val) {
637 if (!$val[
'function'] || function_exists($val[
'function'])) {
640 $checked =
' checked';
642 print
'<input type="radio" name="compression" value="'.$key.
'" id="'.$val[
'id'].
'"'.$checked.
'>';
643 print
' <label for="'.$val[
'id'].
'">'.$val[
'label'].
'</label>';
646 print
'<input type="radio" name="compression" value="'.$key.
'" id="'.$val[
'id'].
'" disabled>';
647 print
' <label for="'.$val[
'id'].
'">'.$val[
'label'].
'</label>';
648 print
' <span class="opacitymedium">('.$langs->trans(
"NotAvailable").
')</span>';
650 print
' ';
658 print
'<div class="center">';
659 print
'<input type="submit" class="button reposition" value="'.$langs->trans(
"GenerateBackup").
'" id="buttonGo" /><br>';
665 print
'<div id="backupfileright" class="fichehalfright">';
667 $filearray =
dol_dir_list($conf->admin->dir_output.
'/documents',
'files', 0,
'',
'', $sortfield, (strtolower($sortorder) ==
'asc' ?SORT_ASC:SORT_DESC), 1);
668 $result = $formfile->list_of_documents($filearray,
null,
'systemtools',
'', 1,
'documents/', 1, 0, $langs->trans(
"NoBackupFileAvailable"), 0, $langs->trans(
"PreviousArchiveFiles"),
'', 0, -1,
'',
'',
'ASC', 1, 0, -1,
'style="height:250px; overflow: auto;"');
if(GETPOST('button_removefilter_x', 'alpha')||GETPOST('button_removefilter.x', 'alpha')||GETPOST('button_removefilter', 'alpha')) if(GETPOST('button_search_x', 'alpha')||GETPOST('button_search.x', 'alpha')||GETPOST('button_search', 'alpha')) if($action=="save" &&empty($cancel)) $help_url
View.
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
dol_delete_file($file, $disableglob=0, $nophperrors=0, $nohook=0, $object=null, $allowdotdot=false, $indexdatabase=1, $nolog=0)
Remove a file or several files with a mask.
dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
dol_escape_js($stringtoescape, $mode=0, $noescapebackslashn=0)
Returns text escaped for inclusion into javascript code.
ajax_autoselect($htmlname, $addlink='', $textonlink='Link')
Make content of an input box selected when we click into input field.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
if(!function_exists('utf8_encode')) if(!function_exists('utf8_decode')) getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
img_info($titlealt='default')
Show info logo.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.