1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/dolibarr_ynh.git synced 2024-09-03 18:35:53 +02:00
dolibarr_ynh/sources/dolibarr/htdocs/ftp/admin/ftpclient.php

305 lines
9.9 KiB
PHP
Raw Normal View History

2015-09-28 22:09:38 +02:00
<?php
/* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
*
* 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 3 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, see <http://www.gnu.org/licenses/>.
*/
/**
* \file htdocs/ftp/admin/ftpclient.php
* \ingroup ftp
* \brief Admin page to setup FTP client module
*/
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
$langs->load("admin");
$langs->load("ftp");
// Security check
if (!$user->admin) accessforbidden();
$def = array();
$lastftpentry=0;
$action = GETPOST('action','alpha');
$entry = GETPOST('numero_entry','alpha');
// Positionne la variable pour le nombre de rss externes
$sql ="select MAX(name) as name from ".MAIN_DB_PREFIX."const";
$sql.=" WHERE name like 'FTP_SERVER_%'";
$result=$db->query($sql);
if ($result)
{
$obj = $db->fetch_object($result);
preg_match('/([0-9]+)$/i',$obj->name,$reg);
if ($reg[1]) $lastftpentry = $reg[1];
}
else
{
dol_print_error($db);
}
if ($action == 'add' || GETPOST('modify','alpha'))
{
$ftp_name = "FTP_NAME_" . $entry;// $_POST["numero_entry"];
$ftp_server = "FTP_SERVER_" . $entry; //$_POST["numero_entry"];
$error=0;
if (! GETPOST("$ftp_name",'alpha'))
{
$error=1;
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Label")), 'errors');
}
if (! GETPOST("$ftp_server",'alpha'))
{
$error=1;
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Server")), 'errors');
}
if (! $error)
{
$ftp_port = "FTP_PORT_" . $entry;
$ftp_user = "FTP_USER_" . $entry;
$ftp_password = "FTP_PASSWORD_" . $entry;
$ftp_passive = "FTP_PASSIVE_" . $entry;
$db->begin();
$result1=dolibarr_set_const($db, "FTP_PORT_" . $entry,GETPOST($ftp_port,'alpha'),'chaine',0,'',$conf->entity);
if ($result1) $result2=dolibarr_set_const($db, "FTP_SERVER_" . $entry, GETPOST($ftp_server,'alpha'),'chaine',0,'',$conf->entity);
if ($result2) $result3=dolibarr_set_const($db, "FTP_USER_" . $entry,GETPOST($ftp_user,'alpha'),'chaine',0,'',$conf->entity);
if ($result3) $result4=dolibarr_set_const($db, "FTP_PASSWORD_" . $entry,GETPOST($ftp_password,'alpha'),'chaine',0,'',$conf->entity);
if ($result4) $result5=dolibarr_set_const($db, "FTP_NAME_" . $entry,GETPOST($ftp_name,'alpha'),'chaine',0,'',$conf->entity);
if ($result5) $result6=dolibarr_set_const($db, "FTP_PASSIVE_" . $entry,GETPOST($ftp_passive,'alpha'),'chaine',0,'',$conf->entity);
if ($result1 && $result2 && $result3 && $result4 && $result5 && $result6)
{
$db->commit();
header("Location: ".$_SERVER["PHP_SELF"]);
exit;
}
else
{
$db->rollback();
dol_print_error($db);
}
}
}
if (GETPOST('delete','alpha'))
{
if($entry)
{
$db->begin();
$result1=dolibarr_del_const($db,"FTP_PORT_" . $entry,$conf->entity);
if ($result1) $result2=dolibarr_del_const($db,"FTP_SERVER_" . $entry,$conf->entity);
if ($result2) $result3=dolibarr_del_const($db,"FTP_USER_" . $entry,$conf->entity);
if ($result3) $result4=dolibarr_del_const($db,"FTP_PASSWORD_" . $entry,$conf->entity);
if ($result4) $result5=dolibarr_del_const($db,"FTP_NAME_" . $entry,$conf->entity);
if ($result4) $result6=dolibarr_del_const($db,"FTP_PASSIVE_" . $entry,$conf->entity);
if ($result1 && $result2 && $result3 && $result4 && $result5 && $result6)
{
$db->commit();
header("Location: ".$_SERVER["PHP_SELF"]);
exit;
}
else
{
$db->rollback();
dol_print_error($db);
}
}
}
/*
* View
*/
$form=new Form($db);
llxHeader();
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print_fiche_titre($langs->trans("FTPClientSetup"), $linkback, 'title_setup');
print '<br>';
if (! function_exists('ftp_connect'))
{
print $langs->trans("FTPFeatureNotSupportedByYourPHP");
}
else
{
// Formulaire ajout
print '<form name="ftpconfig" action="ftpclient.php" method="post">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans("NewFTPClient").'</td>';
print '<td>'.$langs->trans("Example").'</td>';
print '</tr>';
print '<tr class="pair">';
print '<td>'.$langs->trans("Label").'</td>';
print '<td><input type="text" name="FTP_NAME_'.($lastftpentry+1).'" value="'.GETPOST("FTP_NAME_" . ($lastftpentry+1)).'" size="64"></td>';
print '<td>My FTP access</td>';
print '</tr>';
print '<tr class="impair">';
print '<td>'.$langs->trans("Server").'</td>';
print '<td><input type="text" name="FTP_SERVER_'.($lastftpentry+1).'" value="'.GETPOST("FTP_SERVER_" . ($lastftpentry+1)).'" size="64"></td>';
print '<td>localhost</td>';
print '</tr>';
print '<tr class="pair">';
print '<td width="100">'.$langs->trans("Port").'</td>';
print '<td><input type="text" name="FTP_PORT_'.($lastftpentry+1).'" value="'.GETPOST("FTP_PORT_" . ($lastftpentry+1)).'" size="64"></td>';
print '<td>21</td>';
print '</tr>';
print '<tr class="impair">';
print '<td>'.$langs->trans("User").'</td>';
print '<td><input type="text" name="FTP_USER_'.($lastftpentry+1).'" value="'.GETPOST("FTP_USER_" . ($lastftpentry+1)).'" size="24"></td>';
print '<td>myftplogin</td>';
print '</tr>';
print '<tr class="pair">';
print '<td>'.$langs->trans("Password").'</td>';
print '<td><input type="password" name="FTP_PASSWORD_'.($lastftpentry+1).'" value="'.GETPOST("FTP_PASSWORD_" . ($lastftpentry+1)).'" size="24"></td>';
print '<td>myftppassword</td>';
print '</tr>';
print '<tr class="impair">';
print '<td>'.$langs->trans("FTPPassiveMode").'</td>';
$defaultpassive=GETPOST("FTP_PASSIVE_" . ($lastftpentry+1));
if (! isset($_POST["FTP_PASSIVE_" . ($lastftpentry+1)])) $defaultpassive=empty($conf->global->FTP_SUGGEST_PASSIVE_BYDEFAULT)?0:1;
print '<td>'.$form->selectyesno('FTP_PASSIVE_'.($lastftpentry+1), $defaultpassive, 2).'</td>';
print '<td>'.$langs->trans("No").'</td>';
print '</tr>';
print '</table>';
?>
<br><div class="center"><input type="submit" class="button" value="<?php echo $langs->trans("Add") ?>"></div>
<input type="hidden" name="action" value="add">
<input type="hidden" name="numero_entry" value="<?php echo ($lastftpentry+1) ?>">
<?php
print '</form>';
?>
<br>
<?php
print '<table class="noborder" width="100%">'."\n";
$sql ="select name, value, note from ".MAIN_DB_PREFIX."const";
$sql.=" WHERE name like 'FTP_SERVER_%'";
$sql.=" ORDER BY name";
dol_syslog("ftpclient select ftp setup", LOG_DEBUG);
$resql=$db->query($sql);
if ($resql)
{
$num =$db->num_rows($resql);
$i=0;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
preg_match('/([0-9]+)$/i',$obj->name,$reg);
$idrss = $reg[0];
//print "x".join(',',$reg)."=".$obj->name."=".$idrss;
$var=true;
print "<form name=\"externalrssconfig\" action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">";
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print "<tr class=\"liste_titre\">";
print "<td colspan=\"2\">".$langs->trans("FTP")." ".($idrss)."</td>";
print "</tr>";
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td>".$langs->trans("Name")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"FTP_NAME_" . $idrss . "\" value=\"" . @constant("FTP_NAME_" . $idrss) . "\" size=\"64\"></td>";
print "</tr>";
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td>".$langs->trans("Server")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"FTP_SERVER_" . $idrss . "\" value=\"" . @constant("FTP_SERVER_" . $idrss) . "\" size=\"64\"></td>";
print "</tr>";
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td width=\"100\">".$langs->trans("Port")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"FTP_PORT_" . $idrss . "\" value=\"" . @constant("FTP_PORT_" . $idrss) . "\" size=\"64\"></td>";
print "</tr>";
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td width=\"100\">".$langs->trans("User")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"FTP_USER_" . $idrss . "\" value=\"" . @constant("FTP_USER_" . $idrss) . "\" size=\"24\"></td>";
print "</tr>";
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td width=\"100\">".$langs->trans("Password")."</td>";
print "<td><input type=\"password\" class=\"flat\" name=\"FTP_PASSWORD_" . $idrss . "\" value=\"" . @constant("FTP_PASSWORD_" . $idrss) . "\" size=\"24\"></td>";
print "</tr>";
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td width=\"100\">".$langs->trans("FTPPassiveMode")."</td>";
print '<td>'.$form->selectyesno('FTP_PASSIVE_'.$idrss, @constant("FTP_PASSIVE_" . $idrss), 1).'</td>';
print "</tr>";
print "<tr>";
print "<td colspan=\"2\" align=\"center\">";
print "<input type=\"submit\" class=\"button\" name=\"modify\" value=\"".$langs->trans("Modify")."\">";
print " &nbsp; ";
print "<input type=\"submit\" class=\"button\" name=\"delete\" value=\"".$langs->trans("Delete")."\">";
print "<input type=\"hidden\" name=\"numero_entry\" value=\"".$idrss."\">";
print "</td>";
print "</tr>";
print "</form>";
$i++;
}
}
else
{
dol_print_error($db);
}
print '</table>';
}
llxFooter();
$db->close();