diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php new file mode 100644 index 0000000000000000000000000000000000000000..34d0d5ceb44e446fb618a21f398a6f7cb2a79360 --- /dev/null +++ b/htdocs/admin/tools/dolibarr_export.php @@ -0,0 +1,573 @@ +<?php +/* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ + +/** + \file htdocs/admin/tools/dolibarr_export.php + \brief Page export de la base + \version $Revision$ +*/ + +require("./pre.inc.php"); +include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php"; + +$langs->load("admin"); + +if (! $user->admin) + accessforbidden(); + + +llxHeader(); + +print_fiche_titre($langs->trans("Backup"),'','setup'); +print '<br>'; + +print $langs->trans("DatabaseName").' : <b>'.$dolibarr_main_db_name.'</b><br>'; +print '<br>'; + +?> + + + +<!-- Dump of a server --> +<form method="post" action="export.php" name="dump"> + +<input type="hidden" name="export_type" value="server" /> + +<script type="text/javascript" language="javascript"> +//<![CDATA[ +function hide_them_all() { + document.getElementById("mysql_options").style.display = 'none'; +// document.getElementById("csv_options").style.display = 'none'; +// document.getElementById("latex_options").style.display = 'none'; +// document.getElementById("pdf_options").style.display = 'none'; +// document.getElementById("none_options").style.display = 'none'; +} + +function show_checked_option() { + hide_them_all(); + + if (document.getElementById('radio_dump_mysql')) { + document.getElementById('mysql_options').style.display = 'block'; + } +// if (document.getElementById('radio_dump_latex').checked) { +// document.getElementById('latex_options').style.display = 'block'; +// } +// if (document.getElementById('radio_dump_pdf').checked) { +// document.getElementById('pdf_options').style.display = 'block'; +// } +// if (document.getElementById('radio_dump_xml').checked) { +// document.getElementById('none_options').style.display = 'block'; +// } +// if (document.getElementById('radio_dump_csv')) { +// document.getElementById('csv_options').style.display = 'block'; +// } + +} + +//]]> +</script> + +<fieldset id="fieldsetexport"> +<legend>Sch�ma et/ou contenu des bases de donn�es +</legend> + + +<!-- LDR --> +<table><tr><td valign="top"> + +<div id="div_container_exportoptions"> +<fieldset id="exportoptions"> +<legend>M�thode d'exportation</legend> + + <div class="formelementrow"> + <input type="radio" name="what" value="mysql" id="radio_dump_mysql" + onclick=" + if (this.checked) { + hide_them_all(); + document.getElementById('mysql_options').style.display = 'block'; + }; return true" + /> + <label for="radio_dump_mysql">MySQLDump</label> + </div> + +<!-- + <div class="formelementrow"> + <input type="radio" name="what" value="latex" id="radio_dump_latex" + onclick=" + if (this.checked) { + hide_them_all(); + document.getElementById('latex_options').style.display = 'block'; + }; return true" + /> + <label for="radio_dump_latex">LaTeX</label> + + </div> + + <div class="formelementrow"> + <input type="radio" name="what" value="pdf" id="radio_dump_pdf" + onclick=" + if (this.checked) { + hide_them_all(); + document.getElementById('pdf_options').style.display = 'block'; + }; return true" + /> + <label for="radio_dump_pdf">PDF</label> + </div> + + <div class="formelementrow"> + <input type="radio" name="what" value="csv" id="radio_dump_csv" + onclick="if + (this.checked) { + hide_them_all(); + document.getElementById('csv_options').style.display = 'block'; + }; return true" + /> + <label for="radio_dump_csv">CSV</label> + </div> + + <div class="formelementrow"> + <input type="radio" name="what" value="xml" id="radio_dump_xml" + onclick=" + if (this.checked) { + hide_them_all(); + document.getElementById('none_options').style.display = 'block'; + }; return true" + /> + <label for="radio_dump_xml">XML</label> + + </div> +--> + +</fieldset> +</div> + +</td><td valign="top"> + + +<div id="div_container_sub_exportoptions"> + + +<fieldset id="mysql_options"> + <legend>Parametres export MySQL</legend> + + <div class="formelementrow"> + Path commande mysqldump:<br /> + <input type="text" name="mysqldump" size="80" + value="<?php echo $conf->global->SYSTEMTOOLS_MYSQLDUMP ?>" /> + </div> + + <div class="formelementrow"> + <input type="checkbox" name="use_transaction" value="yes" + id="checkbox_use_transaction" + /> + <label for="checkbox_use_transaction"> + Utiliser le mode transactionnel</label> + + </div> + + <div class="formelementrow"> + <input type="checkbox" name="disable_fk" value="yes" + id="checkbox_disable_fk" checked="true" + /> + <label for="checkbox_disable_fk"> + Ordre de d�sactivation des cl�s �trang�res � l'import</label> + </div> + <label for="select_sql_compat"> + Compatibilit� de l'exportation:</label> + + <select name="sql_compat" id="select_sql_compat"> + <option value="NONE" selected="selected">NONE</option> +<option value="ANSI">ANSI</option> +<option value="DB2">DB2</option> +<option value="MAXDB">MAXDB</option> +<option value="MYSQL323">MYSQL323</option> +<option value="MYSQL40">MYSQL40</option> +<option value="MSSQL">MSSQL</option> +<option value="ORACLE">ORACLE</option> +<option value="POSTGRESQL">POSTGRESQL</option> + </select> + <fieldset> + <legend>Options d'exportation</legend> + <input type="checkbox" name="drop_database" value="yes" + id="checkbox_drop_database" + /> + <label for="checkbox_drop_database"> + + Ajouter DROP DATABASE</label> + </fieldset> + <fieldset> + <legend> + <input type="checkbox" name="sql_structure" value="structure" + id="checkbox_sql_structure" + checked="checked" onclick=" + if (!this.checked && !document.getElementById('checkbox_sql_data').checked) + return false; + else return true;" /> + <label for="checkbox_sql_structure"> + Structure</label> + </legend> + + <input type="checkbox" name="drop" value="1" id="checkbox_dump_drop" + /> + <label for="checkbox_dump_drop"> + Inclure des �nonc�s "DROP TABLE"</label><br /> + + </fieldset> + <fieldset> + <legend> + + <input type="checkbox" name="sql_data" value="data" + id="checkbox_sql_data" checked="checked" onclick=" + if (!this.checked && (!document.getElementById('checkbox_sql_structure') || !document.getElementById('checkbox_sql_structure').checked)) + return false; + else return true;" /> + <label for="checkbox_sql_data"> + Donn�es</label> + </legend> + <input type="checkbox" name="showcolumns" value="yes" + id="checkbox_dump_showcolumns" + /> + <label for="checkbox_dump_showcolumns"> + Nomme les colonnes</label><br /> + + <input type="checkbox" name="extended_ins" value="yes" + id="checkbox_dump_extended_ins" + /> + <label for="checkbox_dump_extended_ins"> + Insertions �tendues</label><br /> + + <input type="checkbox" name="delayed" value="yes" + id="checkbox_dump_delayed" + /> + + <label for="checkbox_dump_delayed"> + Insertions avec d�lais (DELAYED)</label><br /> + + <input type="checkbox" name="sql_ignore" value="yes" + id="checkbox_dump_ignore" + /> + <label for="checkbox_dump_ignore"> + Ignorer les erreurs de doublons (INSERT IGNORE)</label><br /> + + <input type="checkbox" name="hexforbinary" value="yes" + id="checkbox_hexforbinary" + checked="checked" /> + <label for="checkbox_hexforbinary"> + Encoder les champs binaires en hexad�cimal</label><br /> + + </fieldset> +</fieldset> + +<!-- +<fieldset id="latex_options"> + <legend>Parametres export LaTeX</legend> + + <div class="formelementrow"> + <input type="checkbox" name="latex_caption" value="yes" + id="checkbox_latex_show_caption" + checked="checked" /> + + <label for="checkbox_latex_show_caption"> + Inclure les sous-titres</label> + </div> + + <fieldset> + <legend> + <input type="checkbox" name="latex_structure" value="structure" + id="checkbox_latex_structure" + checked="checked" onclick=" + if (!this.checked && !document.getElementById('checkbox_latex_data').checked) + return false; + else return true;" /> + <label for="checkbox_latex_structure"> + Structure</label> + + </legend> + + <table> + <tr><td><label for="latex_structure_caption"> + Sous-titre de la table</label></td> + <td><input type="text" name="latex_structure_caption" size="30" + value="Structure de la table __TABLE__" + id="latex_structure_caption" /> + </td> + </tr> + <tr><td><label for="latex_structure_continued_caption"> + + Sous-titre de la table (suite)</label></td> + <td><input type="text" name="latex_structure_continued_caption" + value="Structure de la table __TABLE__ (suite)" + size="30" id="latex_structure_continued_caption" /> + </td> + </tr> + <tr><td><label for="latex_structure_label"> + Cl� de l'�tiquette</label></td> + <td><input type="text" name="latex_structure_label" size="30" + value="tab:__TABLE__-structure" + id="latex_structure_label" /> + </td> + + </tr> + </table> + + </fieldset> + <fieldset> + <legend> + <input type="checkbox" name="latex_data" value="data" + id="checkbox_latex_data" + checked="checked" onclick=" + if (!this.checked && (!document.getElementById('checkbox_latex_structure') || !document.getElementById('checkbox_latex_structure').checked)) + return false; + else return true;" /> + <label for="checkbox_latex_data"> + Donn�es</label> + + </legend> + <input type="checkbox" name="latex_showcolumns" value="yes" + id="ch_latex_showcolumns" + checked="checked" /> + <label for="ch_latex_showcolumns"> + Nom des colonnes</label><br /> + <table> + <tr><td><label for="latex_data_caption"> + Sous-titre de la table</label></td> + <td><input type="text" name="latex_data_caption" size="30" + value="Contenu de la table __TABLE__" + id="latex_data_caption" /> + + </td> + </tr> + <tr><td><label for="latex_data_continued_caption"> + Sous-titre de la table (suite)</label></td> + <td><input type="text" name="latex_data_continued_caption" size="30" + value="Contenu de la table __TABLE__ (suite)" + id="latex_data_continued_caption" /> + </td> + </tr> + <tr><td><label for="latex_data_label"> + + Cl� de l'�tiquette</label></td> + <td><input type="text" name="latex_data_label" size="30" + value="tab:__TABLE__-data" + id="latex_data_label" /> + </td> + </tr> + <tr><td><label for="latex_replace_null"> + Remplacer NULL par</label></td> + <td><input type="text" name="latex_replace_null" size="20" + value="\textit{NULL}" + id="latex_replace_null" /> + </td> + + </tr> + </table> + </fieldset> +</fieldset> +--> + +<!-- +<fieldset id="csv_options"> + <input type="hidden" name="csv_data" value="csv_data" /> + <legend>Parametres export CSV</legend> + + <table> + + <tr><td><label for="export_separator"> + Champs termin�s par</label></td> + <td><input type="text" name="export_separator" size="2" + id="export_separator" + value=";" /> + </td> + </tr> + <tr><td><label for="enclosed"> + Champs entour�s par</label></td> + <td><input type="text" name="enclosed" size="2" + id="enclosed" + value=""" /> + + </td> + </tr> + <tr><td><label for="escaped"> + Caract�re sp�cial</label></td> + <td><input type="text" name="escaped" size="2" + id="escaped" + value="\" /> + </td> + </tr> + <tr><td><label for="add_character"> + + Lignes termin�es par</label></td> + <td><input type="text" name="add_character" size="2" + id="add_character" + value="\r\n" /> + </td> + </tr> + <tr><td><label for="csv_replace_null"> + Remplacer NULL par</label></td> + <td><input type="text" name="csv_replace_null" size="20" + id="csv_replace_null" + value="NULL" /> + </td> + + </tr> + </table> + <input type="checkbox" name="showcsvnames" value="yes" + id="checkbox_dump_showcsvnames" + /> + <label for="checkbox_dump_showcsvnames"> + Afficher les noms de champ en premi�re ligne</label> +</fieldset> +--> + +<!-- +<fieldset id="pdf_options"> + <input type="hidden" name="pdf_data" value="pdf_data" /> + + <legend>Parametres export PDF</legend> + + <div class="formelementrow"> + <label for="pdf_report_title">Titre du rapport</label> + <input type="text" name="pdf_report_title" size="50" + value="" + id="pdf_report_title" /> + </div> +</fieldset> +--> + +<!-- +<fieldset id="none_options"> + <legend>Options XML</legend> + Ce format ne comporte pas d'options <input type="hidden" name="xml_data" value="xml_data" /> +</fieldset> +--> + +</div> + + +</td></tr></table> + +<script type="text/javascript" language="javascript"> +//<![CDATA[ + show_checked_option(); + hide_them_all(); +//]]> +</script> + +</fieldset> + + + +<fieldset> + + <label for="filename_template"> + Nom du fichier � g�n�rer</label> : + <input type="text" name="filename_template" size="60" id="filename_template" + value="<?php +$file='mysqldump_'.$dolibarr_main_db_name.'_'.strftime("%Y%m%d%H%M").'.sql'; +echo $file; +?>" /> + +<br><br> + + <div class="formelementrow"> + Compression : + <input type="radio" name="compression" value="none" + id="radio_compression_none" + onclick="document.getElementById('checkbox_dump_asfile').checked = true;" + checked="checked" /> + <label for="radio_compression_none">aucune</label> + +<!-- No zip support (not open source) + <input type="radio" name="compression" value="zip" + id="radio_compression_zip" + onclick="document.getElementById('checkbox_dump_asfile').checked = true;" + /> + <label for="radio_compression_zip">"zipp�"</label> +--> + +<?php +if (function_exists('gz_open')) +{ +?> + <input type="radio" name="compression" value="gz" + id="radio_compression_gzip" + onclick="document.getElementById('checkbox_dump_asfile').checked = true;" + /> + <label for="radio_compression_gzip">"gzipp�"</label> +<?php +} +?> +<?php +if (function_exists('bz_open')) +{ +?> + <input type="radio" name="compression" value="bz" + id="radio_compression_bzip" + onclick="document.getElementById('checkbox_dump_asfile').checked = true;" + /> + <label for="radio_compression_bzip">"bzipp�"</label> + </div> +<?php +} +?> + +</fieldset> + + +<center> + <input type="submit" class="button" value="Ex�cuter" id="buttonGo" /><br><br> +</center> + + +</form> + + +<script type="text/javascript" language="javascript"> +//<![CDATA[ + + +// set current db, table and sql query in the querywindow +if (window.parent.refreshLeft) { + window.parent.reload_querywindow("","",""); +} + + +if (window.parent.frames[1]) { + // reset content frame name, as querywindow needs to set a unique name + // before submitting form data, and navigation frame needs the original name + if (window.parent.frames[1].name != 'frame_content') { + window.parent.frames[1].name = 'frame_content'; + } + if (window.parent.frames[1].id != 'frame_content') { + window.parent.frames[1].id = 'frame_content'; + } + //window.parent.frames[1].setAttribute('name', 'frame_content'); + //window.parent.frames[1].setAttribute('id', 'frame_content'); +} +//]]> +</script> + + +<?php + +llxFooter(); + +?> \ No newline at end of file diff --git a/htdocs/admin/tools/dolibarr_import.php b/htdocs/admin/tools/dolibarr_import.php new file mode 100644 index 0000000000000000000000000000000000000000..190e85db83f8165591f10953e97fdf9bff04837e --- /dev/null +++ b/htdocs/admin/tools/dolibarr_import.php @@ -0,0 +1,51 @@ +<?php +/* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ + +/** + \file htdocs/admin/tools/dolibarr_import.php + \brief Page import de la base + \version $Revision$ +*/ + +require("./pre.inc.php"); +include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php"; + +$langs->load("admin"); + +if (! $user->admin) + accessforbidden(); + + +llxHeader(); + +print_fiche_titre($langs->trans("Restore"),'','setup'); +print '<br>'; + +print $langs->trans("DatabaseName").' : <b>'.$dolibarr_main_db_name.'</b><br>'; +print '<br>'; + + +print $langs->trans("FeatureNotYetAvailable"); + + +llxFooter(); + +?> \ No newline at end of file diff --git a/htdocs/admin/tools/export.php b/htdocs/admin/tools/export.php new file mode 100644 index 0000000000000000000000000000000000000000..e6abff9b3eff722ed4b69ac41138833492368905 --- /dev/null +++ b/htdocs/admin/tools/export.php @@ -0,0 +1,195 @@ +<?php +/* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ + +/** + \file htdocs/admin/tools/export.php + \brief Page export de la base + \version $Revision$ +*/ + +require("./pre.inc.php"); +include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php"; + +$what=$_REQUEST["what"]; +$export_type=$_REQUEST["export_type"]; +$file=isset($_POST['filename_template']) ? $_POST['filename_template'] : ''; + +$langs->load("admin"); + +if (! $user->admin) + accessforbidden(); + + +llxHeader(); + +$html=new Form($db); + +print_fiche_titre($langs->trans("Backup"),'','setup'); +print '<br>'; + +if ($file && ! $what) +{ + print '<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->trans("ee")).'</div>'; + print '<br>'; +} + + + +/** + * Increase time limit for script execution and initializes some variables + */ +@set_time_limit($cfg['ExecTimeLimit']); +if (!empty($cfg['MemoryLimit'])) { + @ini_set('memory_limit', $cfg['MemoryLimit']); +} + +// Start with empty buffer +$dump_buffer = ''; +$dump_buffer_len = 0; + +// We send fake headers to avoid browser timeout when buffering +$time_start = time(); + + +if ($what == 'mysql') +{ + $mysqldump=$_POST["mysqldump"]; + if ($mysqldump) + { + dolibarr_set_const($db, 'SYSTEMTOOLS_MYSQLDUMP', $mysqldump, $type='chaine'); + } + + create_exdir(DOL_DATA_ROOT.'/admin/temp'); + + // Parameteres execution + $command=escapeshellarg($mysqldump); + //$param=escapeshellarg($dolibarr_main_db_name)." -h ".escapeshellarg($dolibarr_main_db_host)." -u ".escapeshellarg($dolibarr_main_db_user)." -p".escapeshellarg($dolibarr_main_db_pass); + $param=$dolibarr_main_db_name." -h ".$dolibarr_main_db_host." -u ".$dolibarr_main_db_user." -p".$dolibarr_main_db_pass; + $compression=isset($_POST['compression']) ? $_POST['compression'] : 'none'; + if (! $_POST["use_transaction"]) $param.=" -l --single-transaction"; + if ($_POST["disable_fk"]) $param.=" -K"; + if ($_POST["sql_compat"] && $_POST["sql_compat"] != 'NONE') $param.=" --compatible=".$_POST["sql_compat"]; + if ($_POST["drop_database"]) $param.=" --add-drop-database"; + if ($_POST["sql_structure"]) + { + if ($_POST["drop"]) $param.=" --add-drop-table"; + } + else + { + $param.=" -t"; + } + if ($_POST["sql_data"]) + { + $param.=" --tables"; + if ($_POST["showcolumns"]) $param.=" -c"; + if ($_POST["extended_ins"]) $param.=" -e"; + if ($_POST["delayed"]) $param.=" --delayed-insert"; + if ($_POST["sql_ignore"]) $param.=" --insert-ignore"; + if ($_POST["hexforbinary"]) $param.=" --hex-blob"; + } + else + { + $param.=" -d"; + } + $relativepathfile='/admin/temp/'.$file; + $relativepatherr=$relativepathfile.'.err'; + $outputfile=DOL_DATA_ROOT.$relativepathfile; + $outputerror=DOL_DATA_ROOT.$relativepatherr; + + print $langs->trans("RunCommandSummary").':<br>'; + print '<textarea rows="1" cols="120">'.$command." ".$param.'</textarea><br>'; + + print '<br>'; + + print $langs->trans("BackupResult").': '; + + + // Debut appel methode execution + $fullcommand=$command." ".$param." 2>&1"; + if ($compression == 'none') $handle = fopen($outputfile, 'w'); + if ($compression == 'gz') $handle = gzopen($outputfile, 'w'); + if ($compression == 'bz') $handle = bzopen($outputfile, 'w'); + $handlein = popen($fullcommand, 'r'); + while (!feof($handlein)) + { + $read = fgets($handlein); + fwrite($handle,$read); + } + pclose($handlein); + if ($compression == 'none') fclose($handle); + if ($compression == 'gz') gzclose($handle); + if ($compression == 'bz') bzclose($handle); + + // Get errorstring + $errormsg=''; + if ($compression == 'none') $handle = fopen($outputfile, 'r'); + if ($compression == 'gz') $handle = gzopen($outputfile, 'r'); + if ($compression == 'bz') $handle = bzopen($outputfile, 'r'); + $handle = fopen($outputfile, "r"); + $errormsg = fgets($handle); + if ($compression == 'none') fclose($handle); + if ($compression == 'gz') gzclose($handle); + if ($compression == 'bz') bzclose($handle); + if (eregi('^-- MySql',$errormsg)) $errormsg=''; // Pas erreur + else + { + // Renommer fichier sortie en fichier erreur + //print "$outputfile -> $outputerror"; + @rename($outputfile,$outputerror); + } + // Fin execution commande + +} + +// Si on a demande une generation +if ($what) +{ + if ($errormsg) + { + print '<div class="error">'.$langs->trans("Error")." : ".$errormsg.'</div>'; +// print '<a href="'.DOL_URL_ROOT.$relativepatherr.'">'.$langs->trans("DownloadErrorFile").'</a><br>'; + print '<br>'; + print '<br>'; + } + else + { + print '<div class="ok">'; + print $langs->trans("BackupFileSuccessfullyCreated").'.<br>'; + print $langs->trans("YouCanDownloadBackupFile"); + print '</div>'; + print '<br>'; + } +} + +$result=$html->show_documents('systemtools','',DOL_DATA_ROOT.'/admin/temp',$_SERVER['PHP_SELF'],0,1); + +if ($result == 0) +{ + print $langs->trans("NoBackupFileAvailable").'<br>'; + print $langs->trans("ToBuildBackupFileClickHere",DOL_URL_ROOT.'/admin/tools/dolibarr_export.php').'<br>'; +} + +print '<br>'; + +$time_end = time(); + +llxFooter(); +?> diff --git a/htdocs/admin/tools/index.php b/htdocs/admin/tools/index.php new file mode 100644 index 0000000000000000000000000000000000000000..d88be9c6c72b9c744661270e7388a76b1d4680fc --- /dev/null +++ b/htdocs/admin/tools/index.php @@ -0,0 +1,61 @@ +<?php +/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> + * Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ + +/** + \file htdocs/admin/tools/index.php + \brief Page d'accueil de l'espace outils admin + \version $Revision$ +*/ + +require("./pre.inc.php"); + +$langs->load("admin"); +$langs->load("companies"); + +if (!$user->admin) + accessforbidden(); + + + +/* + * Affichage page + */ + +llxHeader(); + +$form = new Form($db); + + +print_fiche_titre($langs->trans("SystemToolsArea"),'','setup'); + +print "<br>"; + +if ($message) print $message.'<br>'; + + + + + +$db->close(); + +llxFooter('$Date$ - $Revision$'); +?> diff --git a/htdocs/admin/tools/pre.inc.php b/htdocs/admin/tools/pre.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..23f30f33f46f1291ff3d4b7cfefa26803a1bfee4 --- /dev/null +++ b/htdocs/admin/tools/pre.inc.php @@ -0,0 +1,48 @@ +<?php +/* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ + +/** + \file htdocs/admin/system/pre.inc.php + \brief Fichier gestionnaire menu page infos syst�me + \version $Revision$ +*/ + +require("../../main.inc.php"); + +function llxHeader($head = "", $urlp = "") +{ + global $langs; + + $langs->load("admin"); + + + top_menu($head); + + $menu = new Menu(); + + $menu->add(DOL_URL_ROOT."/admin/tools/index.php", "SystemTools"); + $menu->add_submenu(DOL_URL_ROOT."/admin/tools/dolibarr_export.php", $langs->trans("Backup")); + $menu->add_submenu(DOL_URL_ROOT."/admin/tools/dolibarr_import.php", $langs->trans("Restore")); + + left_menu($menu->liste); +} + +?> diff --git a/htdocs/conf/conf.class.php b/htdocs/conf/conf.class.php index e0f0a9a596b73b3e83af1bc4cd6efcd7917f4646..6db173b17903732b77bfb6e3f0eb027f7b045c16 100644 --- a/htdocs/conf/conf.class.php +++ b/htdocs/conf/conf.class.php @@ -291,6 +291,9 @@ class Conf * Modification de quelques variable de conf en fonction des Constantes */ + // outils systemes + if (! $this->global->SYSTEMTOOLS_MYSQLDUMP) $this->global->SYSTEMTOOLS_MYSQLDUMP="mysqldump"; + // societe if (! $this->global->SOCIETE_CODECLIENT_ADDON) $this->global->SOCIETE_CODECLIENT_ADDON="mod_codeclient_leopard"; if (! $this->global->SOCIETE_CODEFOURNISSEUR_ADDON) $this->global->SOCIETE_CODEFOURNISSEUR_ADDON="mod_codeclient_leopard"; diff --git a/htdocs/document.php b/htdocs/document.php index 0daba8ff60e0cacc57d6645efbf6c42105547a9c..f87c2422b0fdc4b511e13875dcc12b189376a36e 100644 --- a/htdocs/document.php +++ b/htdocs/document.php @@ -263,6 +263,17 @@ if ($modulepart) $original_file=$conf->fckeditor->dir_output.'/'.$original_file; } + // Wrapping pour les backups + if ($modulepart == 'systemtools') + { + if ($user->admin) + { + $accessallowed=1; + } + $original_file=DOL_DATA_ROOT.'/admin/temp/'.$original_file; + } + + } // Limite acc�s si droits non corrects diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index 11c202000d4d75a07c8587e6b787d66e5353f191..009da645652690cc69efcb023455166e44107567 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -2389,7 +2389,7 @@ class Form /** * \brief Affiche la cartouche de la liste des documents d'une propale, facture... * \param modulepart propal=propal, facture=facture, ... - * \param filename Nom fichier sans extension + * \param filename Sous rep � scanner (vide si filedir deja complet) * \param filedir Repertoire � scanner * \param urlsource Url page origine * \param genallowed G�n�ration autoris�e (1/0 ou array des formats) @@ -2558,7 +2558,9 @@ class Form { // D�fini chemin relatif par rapport au module pour lien download - $relativepath=$filename."/".$file["name"]; + $relativepath=$file["name"]; // Cas general + if ($filename) $relativepath=$filename."/".$file["name"]; // Cas prpal, facture... + // Autre cas if ($modulepart == 'don') { $relativepath = get_exdir($filename).$file["name"]; } if ($modulepart == 'export') { $relativepath = $file["name"]; } diff --git a/htdocs/includes/menus/barre_left/eldy_backoffice.php b/htdocs/includes/menus/barre_left/eldy_backoffice.php index 18ec7bbfa3d51bd2297d6e9215885b9acc84a53a..f1e44364c9804790909eb1071c0a3f9b1f43eea1 100644 --- a/htdocs/includes/menus/barre_left/eldy_backoffice.php +++ b/htdocs/includes/menus/barre_left/eldy_backoffice.php @@ -116,33 +116,37 @@ class MenuLeft { if($user->admin) { - $langs->load("admin"); - - $newmenu->add(DOL_URL_ROOT."/admin/index.php?leftmenu=setup", $langs->trans("Setup")); - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/company.php", $langs->trans("MenuCompanySetup")); - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/modules.php", $langs->trans("Modules")); - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/ihm.php", $langs->trans("GUISetup")); - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/boxes.php", $langs->trans("Boxes")); - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/delais.php",$langs->trans("Alerts")); - - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/triggers.php", $langs->trans("Triggers")); - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/perms.php", $langs->trans("Security")); - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/dict.php", $langs->trans("DictionnarySetup")); - if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/const.php", $langs->trans("OtherSetup")); - - $newmenu->add(DOL_URL_ROOT."/admin/system/index.php?leftmenu=system", $langs->trans("SystemInfo")); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/dolibarr.php", $langs->trans("Dolibarr"),1); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/constall.php", $langs->trans("AllParameters"),2); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/about.php", $langs->trans("About"),2); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/os.php", $langs->trans("OS")); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/web.php", $langs->trans("WebServer")); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php", $langs->trans("Php")); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=conf", $langs->trans("PhpConf"),2); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=env", $langs->trans("PhpEnv"),2); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=modules", $langs->trans("PhpModules"),2); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database.php", $langs->trans("Database")); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database-tables.php", $langs->trans("Tables"),2); - if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database-tables-contraintes.php", $langs->trans("Constraints"),2); + $langs->load("admin"); + + $newmenu->add(DOL_URL_ROOT."/admin/index.php?leftmenu=setup", $langs->trans("Setup")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/company.php", $langs->trans("MenuCompanySetup")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/modules.php", $langs->trans("Modules")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/ihm.php", $langs->trans("GUISetup")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/boxes.php", $langs->trans("Boxes")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/delais.php",$langs->trans("Alerts")); + + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/triggers.php", $langs->trans("Triggers")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/perms.php", $langs->trans("Security")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/dict.php", $langs->trans("DictionnarySetup")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/const.php", $langs->trans("OtherSetup")); + + $newmenu->add(DOL_URL_ROOT."/admin/system/index.php?leftmenu=system", $langs->trans("SystemInfo")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/dolibarr.php", $langs->trans("Dolibarr"),1); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/constall.php", $langs->trans("AllParameters"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/about.php", $langs->trans("About"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/os.php", $langs->trans("OS")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/web.php", $langs->trans("WebServer")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php", $langs->trans("Php")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=conf", $langs->trans("PhpConf"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=env", $langs->trans("PhpEnv"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=modules", $langs->trans("PhpModules"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database.php", $langs->trans("Database")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database-tables.php", $langs->trans("Tables"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database-tables-contraintes.php", $langs->trans("Constraints"),2); + + $newmenu->add(DOL_URL_ROOT."/admin/tools/index.php?leftmenu=admintools", $langs->trans("SystemTools")); + if ($leftmenu=="admintools") $newmenu->add_submenu(DOL_URL_ROOT."/admin/tools/dolibarr_export.php", $langs->trans("Backup"),1); + if ($leftmenu=="admintools") $newmenu->add_submenu(DOL_URL_ROOT."/admin/tools/dolibarr_import.php", $langs->trans("Restore"),1); } $langs->load("users"); diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index a28a6ff60ce8f459ab680c115c271c105e7d1677..857e3b10e91fc2d70172533d7493e230c97e6ea4 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -41,6 +41,17 @@ Box=Box Boxes=Boxes System=System SystemInfo=System informations +SystemTools=System tools +SystemToolsArea=System tools area +Backup=Backup +Restore=Restore +RunCommandSummary=Backup will be done through the following command +WebServerMustHavePermissionForCommand=Your web server must have permissions to run such commands +BackupResult=Backup result +BackupFileSuccessfullyCreated=Backup file successfully generated +YouCanDownloadBackupFile=Generated files can now be downlaoded +NoBackupFileAvailable=No backup files available. +ToBuildBackupFileClickHere=To build one backup file, click <a href="%s">here</a>. Yes=Yes No=No AutoDetectLang=Autodetect (browser language) diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index ec5ea8b35fc76faba14c11450b5720d29874d46e..d044adcb901a9c475973a6eba0c11418c805ce9c 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -41,6 +41,17 @@ Box=Bo Boxes=Bo�tes System=Syst�me SystemInfo=Infos Syst�me +SystemTools=Outils Syst�me +SystemToolsArea=Espace outils syst�mes +Backup=Sauvegarde +Restore=Restauration +RunCommandSummary=La sauvegarde sera ex�cut�e par la commande suivante +WebServerMustHavePermissionForCommand=Votre serveur web doit avoir les droits pour ex�cuter une telle commande +BackupResult=R�sultat sauvegarde +BackupFileSuccessfullyCreated=Fichier backup g�n�r� avec succ�s +YouCanDownloadBackupFile=Les fichiers g�n�r�s peuvent maintenant �tre t�l�charg�s +NoBackupFileAvailable=Aucune fichier backup disponible. +ToBuildBackupFileClickHere=Pour g�n�rer un fichier de sauvegarde, cliquez <a href="%s">ici</a>. Yes=Oui No=Non AutoDetectLang=D�tection auto (navigateur)