Works on move webcalendar and phenix module to doliforge
This commit is contained in:
parent
1b467a9350
commit
f15a4f5eb0
@ -1,328 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2003 Eric Seigne <erics@rycks.com>
|
||||
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/webcalendar/admin/webcalendar.php
|
||||
* \ingroup webcalendar
|
||||
* \brief Page to setup webcalendar module
|
||||
* \version $Id$
|
||||
*/
|
||||
|
||||
require("../../main.inc.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
|
||||
require_once(DOL_DOCUMENT_ROOT.'/webcalendar/class/webcal.class.php');
|
||||
|
||||
|
||||
if (!$user->admin)
|
||||
accessforbidden();
|
||||
|
||||
|
||||
$langs->load("admin");
|
||||
$langs->load("other");
|
||||
|
||||
$def = array();
|
||||
$actiontest=$_POST["test"];
|
||||
$actionsave=$_POST["save"];
|
||||
|
||||
// Sauvegardes parametres
|
||||
if ($actionsave)
|
||||
{
|
||||
$i=0;
|
||||
|
||||
$db->begin();
|
||||
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_URL',trim($_POST["phpwebcalendar_url"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_HOST',trim($_POST["phpwebcalendar_host"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_DBNAME',trim($_POST["phpwebcalendar_dbname"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_USER',trim($_POST["phpwebcalendar_user"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_PASS',trim($_POST["phpwebcalendar_pass"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_PASSWORD_VCALEXPORT',trim($_POST["PHPWEBCALENDAR_PASSWORD_VCALEXPORT"]),'chaine',0,'',$conf->entity);
|
||||
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_SYNCRO',trim($_POST["phpwebcalendar_syncro"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_COMPANYCREATE',trim($_POST["phpwebcalendar_companycreate"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_PROPALSTATUS',trim($_POST["phpwebcalendar_propalstatus"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_CONTRACTSTATUS',trim($_POST["phpwebcalendar_contractstatus"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_BILLSTATUS',trim($_POST["phpwebcalendar_billstatus"]),'chaine',0,'',$conf->entity);
|
||||
$i+=dolibarr_set_const($db,'PHPWEBCALENDAR_MEMBERSTATUS',trim($_POST["phpwebcalendar_memberstatus"]),'chaine',0,'',$conf->entity);
|
||||
|
||||
if ($i >= 9)
|
||||
{
|
||||
$db->commit();
|
||||
$mesg = "<font class=\"ok\">".$langs->trans("WebCalSetupSaved")."</font>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$db->rollback();
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
elseif ($actiontest)
|
||||
{
|
||||
//$resql=$db->query("select count(*) from llx_const");
|
||||
//print "< ".$db." - ".$db->db." - ".$resql." - ".$db->error()."><br>\n";
|
||||
|
||||
// Test de la connexion a la database webcalendar
|
||||
$conf->webcal->db->type=$dolibarr_main_db_type;
|
||||
$conf->webcal->db->host=$_POST["phpwebcalendar_host"];
|
||||
$conf->webcal->db->port=$_POST["phpwebcalendar_port"];
|
||||
$conf->webcal->db->user=$_POST["phpwebcalendar_user"];
|
||||
$conf->webcal->db->pass=$_POST["phpwebcalendar_pass"];
|
||||
$conf->webcal->db->name=$_POST["phpwebcalendar_dbname"];
|
||||
|
||||
$webcal=new WebCal();
|
||||
|
||||
//print "D ".$db." - ".$db->db."<br>\n";
|
||||
//print "W ".$webcal->localdb." - ".$webcal->localdb->db."<br>\n";
|
||||
|
||||
if ($webcal->localdb->connected == 1 && $webcal->localdb->database_selected == 1)
|
||||
{
|
||||
// Verifie si bonne base
|
||||
$sql="SELECT cal_value FROM webcal_config WHERE cal_setting='application_name'";
|
||||
$resql=$webcal->localdb->query($sql);
|
||||
if ($resql) {
|
||||
# Search version
|
||||
$webcal->version='';
|
||||
$sql="SELECT cal_value FROM webcal_config WHERE cal_setting='WEBCAL_PROGRAM_VERSION'";
|
||||
$resql=$webcal->localdb->query($sql);
|
||||
if ($resql) {
|
||||
$obj=$webcal->localdb->fetch_object($resql);
|
||||
if ($obj)
|
||||
{
|
||||
$webcal->version=$obj->cal_value;
|
||||
}
|
||||
}
|
||||
|
||||
$mesg ="<div class=\"ok\">";
|
||||
$mesg.=$langs->trans("WebCalTestOk",$_POST["phpwebcalendar_host"],$_POST["phpwebcalendar_dbname"],$_POST["phpwebcalendar_user"]);
|
||||
$mesg.='<br>'.$langs->trans("DetectedVersion").': '.($webcal->version?$webcal->version:$langs->trans("NotAvailable"));
|
||||
$mesg.="</div>";
|
||||
}
|
||||
else {
|
||||
$mesg ="<div class=\"error\">";
|
||||
$mesg.=$langs->trans("WebCalErrorConnectOkButWrongDatabase");
|
||||
$mesg.="</div>";
|
||||
}
|
||||
// Ne pas fermer car la conn de webcal est la meme que dolibarr si
|
||||
// parametre host/user/pass identique.
|
||||
//$webcal->localdb->close();
|
||||
}
|
||||
elseif ($webcal->localdb->connected == 1 && $webcal->localdb->database_selected != 1)
|
||||
{
|
||||
$mesg ="<div class=\"error\">".$langs->trans("WebCalTestKo1",$_POST["phpwebcalendar_host"],$_POST["phpwebcalendar_dbname"]);
|
||||
$mesg.="<br>".$webcal->localdb->error();
|
||||
$mesg.="</div>";
|
||||
//$webcal->localdb->close(); Ne pas fermer car la conn de webcal est la meme que dolibarr si parametre host/user/pass identique
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg ="<div class=\"error\">".$langs->trans("WebCalTestKo2",$_POST["phpwebcalendar_host"],$_POST["phpwebcalendar_user"]);
|
||||
$mesg.="<br>".$webcal->localdb->error();
|
||||
$mesg.="</div>";
|
||||
}
|
||||
|
||||
//$resql=$db->query("select count(*) from llx_const");
|
||||
//print "< ".$db." - ".$db->db." - ".$resql." - ".$db->error()."><br>\n";
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
llxHeader();
|
||||
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print_fiche_titre($langs->trans("WebCalSetup"),$linkback,'setup');
|
||||
print '<br>';
|
||||
|
||||
|
||||
print '<form name="phpwebcalendarconfig" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print "<table class=\"noborder\" width=\"100%\">";
|
||||
|
||||
print "<tr class=\"liste_titre\">";
|
||||
print "<td width=\"30%\">".$langs->trans("Parameter")."</td>";
|
||||
print "<td>".$langs->trans("Value")."</td>";
|
||||
print "<td>".$langs->trans("Examples")."</td>";
|
||||
print "</tr>";
|
||||
|
||||
print "<tr class=\"impair\">";
|
||||
print "<td>".$langs->trans("WebCalURL")."</td>";
|
||||
print "<td><input type=\"text\" class=\"flat\" name=\"phpwebcalendar_url\" value=\"". ($_POST["phpwebcalendar_url"]?$_POST["phpwebcalendar_url"]:$conf->global->PHPWEBCALENDAR_URL) . "\" size=\"40\"></td>";
|
||||
print "<td>http://localhost/webcalendar/";
|
||||
print "<br>https://webcalendarserver/";
|
||||
print "</td>";
|
||||
print "</tr>";
|
||||
|
||||
print "<tr class=\"pair\">";
|
||||
print "<td>".$langs->trans("WebCalServer")."</td>";
|
||||
print "<td><input type=\"text\" class=\"flat\" name=\"phpwebcalendar_host\" value=\"". ($_POST["phpwebcalendar_host"]?$_POST["phpwebcalendar_host"]:$conf->global->PHPWEBCALENDAR_HOST) . "\" size=\"30\"></td>";
|
||||
print "<td>localhost";
|
||||
//print "<br>__dolibarr_main_db_host__ <i>(".$dolibarr_main_db_host.")</i>"
|
||||
print "</td>";
|
||||
print "</tr>";
|
||||
|
||||
print "<tr class=\"impair\">";
|
||||
print "<td>".$langs->trans("WebCalDatabaseName")."</td>";
|
||||
print "<td><input type=\"text\" class=\"flat\" name=\"phpwebcalendar_dbname\" value=\"". ($_POST["phpwebcalendar_dbname"]?$_POST["phpwebcalendar_dbname"]:$conf->global->PHPWEBCALENDAR_DBNAME) . "\" size=\"30\"></td>";
|
||||
print "<td>webcalendar";
|
||||
//print "<br>__dolibarr_main_db_name__ <i>(".$dolibarr_main_db_name.")</i>";
|
||||
print "</td>";
|
||||
print "</tr>";
|
||||
|
||||
print "<tr class=\"pair\">";
|
||||
print "<td>".$langs->trans("WebCalUser")."</td>";
|
||||
print "<td><input type=\"text\" class=\"flat\" name=\"phpwebcalendar_user\" value=\"". ($_POST["phpwebcalendar_user"]?$_POST["phpwebcalendar_user"]:$conf->global->PHPWEBCALENDAR_USER) . "\" size=\"30\"></td>";
|
||||
print "<td>webcaluser";
|
||||
//print "<br>__dolibarr_main_db_user__ <i>(".$dolibarr_main_db_user.")</i>";
|
||||
print "</td>";
|
||||
print "</tr>";
|
||||
|
||||
print "<tr class=\"impair\">";
|
||||
print "<td>".$langs->trans("Password")."</td>";
|
||||
print "<td><input type=\"password\" class=\"flat\" name=\"phpwebcalendar_pass\" value=\"" . ($_POST["phpwebcalendar_pass"]?$_POST["phpwebcalendar_pass"]:$conf->global->PHPWEBCALENDAR_PASS) . "\" size=\"30\"></td>";
|
||||
print '<td>';
|
||||
//if ($dolibarr_main_db_pass) print '__dolibarr_main_db_pass__ <i>('.preg_replace('/./i','*',$dolibarr_main_db_pass).')</i>';
|
||||
print ' </td>';
|
||||
print "</tr>";
|
||||
|
||||
print "<tr class=\"pair\">";
|
||||
print "<td>".$langs->trans("PasswordTogetVCalExport")."</td>";
|
||||
print "<td><input type=\"text\" class=\"flat\" name=\"PHPWEBCALENDAR_PASSWORD_VCALEXPORT\" value=\"". ($_POST["PHPWEBCALENDAR_PASSWORD_VCALEXPORT"]?$_POST["PHPWEBCALENDAR_PASSWORD_VCALEXPORT"]:$conf->global->PHPWEBCALENDAR_PASSWORD_VCALEXPORT) . "\" size=\"40\"></td>";
|
||||
print "<td> </td>";
|
||||
print "</tr>";
|
||||
|
||||
print "</table>";
|
||||
print "<br>";
|
||||
|
||||
$var=true;
|
||||
print "<table class=\"noborder\" width=\"100%\">";
|
||||
print "<tr class=\"liste_titre\">";
|
||||
print "<td colspan=\"3\">".$langs->trans("WebCalSyncro")."</td>";
|
||||
print "</tr>";
|
||||
if ($conf->agenda->enabled)
|
||||
{
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->trans("WebCalAddEventOnCreateActions").'</td>';
|
||||
print '<td>';
|
||||
print '<select name="phpwebcalendar_syncro" class="flat">';
|
||||
print '<option value="always"'.($conf->global->PHPWEBCALENDAR_SYNCRO=='always'?' selected="selected"':'').'>'.$langs->trans("WebCalAllways").'</option>';
|
||||
print '<option value="yesbydefault"'.($conf->global->PHPWEBCALENDAR_SYNCRO=='yesbydefault'?' selected="selected"':'').'>'.$langs->trans("WebCalYesByDefault").'</option>';
|
||||
print '<option value="nobydefault"'.((! $conf->global->PHPWEBCALENDAR_SYNCRO || $conf->global->PHPWEBCALENDAR_SYNCRO=='nobydefault')?' selected="selected"':'').'>'.$langs->trans("WebCalNoByDefault").'</option>';
|
||||
print '<option value="never"'.($conf->global->PHPWEBCALENDAR_SYNCRO=='never'?' selected="selected"':'').'>'.$langs->trans("WebCalNever").'</option>';
|
||||
print '</select>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
if ($conf->societe->enabled)
|
||||
{
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->trans("WebCalAddEventOnCreateCompany").'</td>';
|
||||
print '<td>';
|
||||
print '<select name="phpwebcalendar_companycreate" class="flat">';
|
||||
print '<option value="always"'.($conf->global->PHPWEBCALENDAR_COMPANYCREATE=='always'?' selected="true"':'').'>'.$langs->trans("WebCalAllways").'</option>';
|
||||
print '<option value="never"'.(! $conf->global->PHPWEBCALENDAR_COMPANYCREATE || $conf->global->PHPWEBCALENDAR_COMPANYCREATE=='never'?' selected="true"':'').'>'.$langs->trans("WebCalNever").'</option>';
|
||||
print '</select>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
if ($conf->propal->enabled)
|
||||
{
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->trans("WebCalAddEventOnStatusPropal").'</td>';
|
||||
print '<td>';
|
||||
print '<select name="phpwebcalendar_propalstatus" class="flat">';
|
||||
print '<option value="always"'.($conf->global->PHPWEBCALENDAR_PROPALSTATUS=='always'?' selected="true"':'').'>'.$langs->trans("WebCalAllways").'</option>';
|
||||
print '<option value="never"'.(! $conf->global->PHPWEBCALENDAR_PROPALSTATUS || $conf->global->PHPWEBCALENDAR_PROPALSTATUS=='never'?' selected="true"':'').'>'.$langs->trans("WebCalNever").'</option>';
|
||||
print '</select>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
if ($conf->contrat->enabled)
|
||||
{
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->trans("WebCalAddEventOnStatusContract").'</td>';
|
||||
print '<td>';
|
||||
print '<select name="phpwebcalendar_contractstatus" class="flat">';
|
||||
print '<option value="always"'.($conf->global->PHPWEBCALENDAR_CONTRACTSTATUS=='always'?' selected="true"':'').'>'.$langs->trans("WebCalAllways").'</option>';
|
||||
print '<option value="never"'.(! $conf->global->PHPWEBCALENDAR_CONTRACTSTATUS || $conf->global->PHPWEBCALENDAR_CONTRACTSTATUS=='never'?' selected="selected"':'').'>'.$langs->trans("WebCalNever").'</option>';
|
||||
print '</select>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
if ($conf->facture->enabled)
|
||||
{
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->trans("WebCalAddEventOnStatusBill").'</td>';
|
||||
print '<td>';
|
||||
print '<select name="phpwebcalendar_billstatus" class="flat">';
|
||||
print '<option value="always"'.($conf->global->PHPWEBCALENDAR_BILLSTATUS=='always'?' selected="true"':'').'>'.$langs->trans("WebCalAllways").'</option>';
|
||||
print '<option value="never"'.(! $conf->global->PHPWEBCALENDAR_BILLSTATUS || $conf->global->PHPWEBCALENDAR_BILLSTATUS=='never'?' selected="selected"':'').'>'.$langs->trans("WebCalNever").'</option>';
|
||||
print '</select>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
if ($conf->adherent->enabled)
|
||||
{
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->trans("WebCalAddEventOnStatusMember").'</td>';
|
||||
print '<td>';
|
||||
print '<select name="phpwebcalendar_memberstatus" class="flat">';
|
||||
print '<option value="always"'.($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?' selected="true"':'').'>'.$langs->trans("WebCalAllways").'</option>';
|
||||
print '<option value="never"'.(! $conf->global->PHPWEBCALENDAR_MEMBERSTATUS || $conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='never'?' selected="selected"':'').'>'.$langs->trans("WebCalNever").'</option>';
|
||||
print '</select>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
print '</table>';
|
||||
|
||||
|
||||
print '<br><center>';
|
||||
print "<input type=\"submit\" name=\"test\" class=\"button\" value=\"".$langs->trans("TestConnection")."\">";
|
||||
print " ";
|
||||
print "<input type=\"submit\" name=\"save\" class=\"button\" value=\"".$langs->trans("Save")."\">";
|
||||
print "</center>";
|
||||
|
||||
print "</form>\n";
|
||||
|
||||
|
||||
clearstatcache();
|
||||
|
||||
if ($mesg) print "<br>$mesg<br>";
|
||||
print "<br>";
|
||||
|
||||
// Show message
|
||||
$message='';
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$dolibarr_main_url_root);
|
||||
$urlvcal='<a href="'.DOL_URL_ROOT.'/webcal/webcalexport.php?format=vcal&exportkey='.$conf->global->PHPWEBCALENDAR_PASSWORD_VCALEXPORT.'" target="_blank">'.$urlwithouturlroot.DOL_URL_ROOT.'/webcal/webcalexport.php?format=vcal&exportkey='.$conf->global->PHPWEBCALENDAR_PASSWORD_VCALEXPORT.'</a>';
|
||||
$message.=img_picto('','object_globe.png').' '.$langs->trans("WebCalUrlForVCalExport",'vcal',$urlvcal);
|
||||
$message.='<br>';
|
||||
$urlical='<a href="'.DOL_URL_ROOT.'/webcal/webcalexport.php?format=ical&type=event&exportkey='.$conf->global->PHPWEBCALENDAR_PASSWORD_VCALEXPORT.'" target="_blank">'.$urlwithouturlroot.DOL_URL_ROOT.'/webcal/webcalexport.php?format=ical&type=event&exportkey='.$conf->global->PHPWEBCALENDAR_PASSWORD_VCALEXPORT.'</a>';
|
||||
$message.=img_picto('','object_globe.png').' '.$langs->trans("WebCalUrlForVCalExport",'ical',$urlical);
|
||||
//print info_admin($message);
|
||||
print $message;
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter('$Date$ - $Revision$');
|
||||
?>
|
||||
@ -1,290 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2008 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/webcalendar/class/webcal.class.php
|
||||
\ingroup webcalendar
|
||||
\brief Ensemble des fonctions permettant d'acceder a la database webcalendar.
|
||||
\author Rodolphe Quiedeville.
|
||||
\author Laurent Destailleur.
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
\class Webcal
|
||||
\brief Classe permettant d'acceder a la database webcalendar
|
||||
*/
|
||||
|
||||
class Webcal {
|
||||
|
||||
var $localdb;
|
||||
var $error;
|
||||
var $version; /* Version string from webcalendar. Not defined in 1.0 */
|
||||
var $date;
|
||||
var $duree = 0; /* Secondes */
|
||||
var $texte;
|
||||
var $desc;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
\brief Constructeur de la classe d'interface a Webcalendar
|
||||
*/
|
||||
function Webcal()
|
||||
{
|
||||
global $conf;
|
||||
global $dolibarr_main_db_type,$dolibarr_main_db_host,$dolibarr_main_db_user;
|
||||
global $dolibarr_main_db_pass,$dolibarr_main_db_name;
|
||||
|
||||
// Defini parametres webcal (avec substitution eventuelle)
|
||||
$webcaltype=preg_replace('/__dolibarr_main_db_type__/i',$dolibarr_main_db_type,$conf->webcal->db->type);
|
||||
$webcalhost=preg_replace('/__dolibarr_main_db_host__/i',$dolibarr_main_db_host,$conf->webcal->db->host);
|
||||
$webcalport=preg_replace('/__dolibarr_main_db_port__/i',$dolibarr_main_db_port,$conf->webcal->db->port);
|
||||
$webcaluser=preg_replace('/__dolibarr_main_db_user__/i',$dolibarr_main_db_user,$conf->webcal->db->user);
|
||||
$webcalpass=preg_replace('/__dolibarr_main_db_pass__/i',$dolibarr_main_db_pass,$conf->webcal->db->pass);
|
||||
$webcalname=preg_replace('/__dolibarr_main_db_name__/i',$dolibarr_main_db_name,$conf->webcal->db->name);
|
||||
|
||||
// On initie la connexion a la base Webcalendar
|
||||
require_once (DOL_DOCUMENT_ROOT ."/lib/databases/".$webcaltype.".lib.php");
|
||||
$this->localdb = new DoliDb($webcaltype,$webcalhost,$webcaluser,$webcalpass,$webcalname,$webcalport);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Ajoute objet en tant qu'entree dans le calendrier de l'utilisateur
|
||||
\param[in] user Le login de l'utilisateur
|
||||
\return int 1 en cas de succes, -1,-2,-3 en cas d'erreur, -4 si login webcal non defini
|
||||
*/
|
||||
function add($user)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
dol_syslog("Webcal::add user=".$user->id);
|
||||
|
||||
// Test si login webcal defini pour le user
|
||||
if (! $user->webcal_login)
|
||||
{
|
||||
$langs->load("other");
|
||||
$this->error=$langs->transnoentities("ErrorWebcalLoginNotDefined","<a href=\"".DOL_URL_ROOT."/user/fiche.php?id=".$user->id."\">".$user->login."</a>");
|
||||
dol_syslog("Webcal::add ERROR ".$this->error, LOG_ERR);
|
||||
return -4;
|
||||
}
|
||||
|
||||
$this->localdb->begin();
|
||||
|
||||
// Recupere l'id max+1 dans la base webcalendar
|
||||
$id = $this->get_next_id();
|
||||
|
||||
if ($id > 0)
|
||||
{
|
||||
$cal_id = $id;
|
||||
$cal_create_by = $user->webcal_login;
|
||||
$cal_date = strftime('%Y%m%d', $this->date);
|
||||
$cal_time = strftime('%H%M%S', $this->date);
|
||||
$cal_mod_date = strftime('%Y%m%d', time());
|
||||
$cal_mod_time = strftime('%H%M%S', time());
|
||||
$cal_duration = round($this->duree / 60);
|
||||
$cal_priority = 2; // Medium avec 1.0, Haute avec 1.1
|
||||
// Rem: 1.0: 1=bas, 2=medium, 3=haut
|
||||
// 1.1: 1=haut, 2=haut, 3=haut, 4=medium ... 9=bas
|
||||
$cal_type = "E"; // Evenement de type "intemporel"
|
||||
$cal_access = "P"; // Acces publique
|
||||
$cal_name = $this->texte; // Title for event
|
||||
$cal_description = $this->desc; // Desc for event
|
||||
|
||||
$sql = "INSERT INTO webcal_entry (cal_id, cal_create_by,cal_date,cal_time,cal_mod_date, cal_mod_time,cal_duration,cal_priority,cal_type, cal_access, cal_name,cal_description)";
|
||||
$sql.= " VALUES ($cal_id, '$cal_create_by', '$cal_date', '$cal_time', '$cal_mod_date', '$cal_mod_time', $cal_duration, $cal_priority, '$cal_type', '$cal_access', '$cal_name','$cal_description')";
|
||||
|
||||
dol_syslog("Webcal::add sql=".$sql);
|
||||
$resql=$this->localdb->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$sql = "INSERT INTO webcal_entry_user (cal_id, cal_login, cal_status)";
|
||||
$sql .= " VALUES ($cal_id, '$cal_create_by', 'A')";
|
||||
|
||||
$resql=$this->localdb->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
// OK
|
||||
$this->localdb->commit();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->localdb->rollback();
|
||||
$this->error = $this->localdb->error() . '<br>' .$sql;
|
||||
dol_syslog("Webcal::add ERROR ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->localdb->rollback();
|
||||
$this->error = $this->localdb->error() . '<br>' .$sql;
|
||||
dol_syslog("Webcal::add ERROR ".$this->error, LOG_ERR);
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->localdb->rollback();
|
||||
$this->error = $this->localdb->error() . '<br>' .$sql;
|
||||
dol_syslog("Webcal::add ERROR ".$this->error, LOG_ERR);
|
||||
return -3;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Obtient l'id suivant dans le webcalendar
|
||||
\return int Retourne l'id suivant dans webcalendar, <0 si ko
|
||||
*/
|
||||
function get_next_id()
|
||||
{
|
||||
$sql = "SELECT max(cal_id) as id FROM webcal_entry";
|
||||
|
||||
$resql=$this->localdb->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$obj=$this->localdb->fetch_object($resql);
|
||||
return ($obj->id + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->localdb->error();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Export fichier cal depuis base webcalendar
|
||||
\param format 'ical' or 'vcal'
|
||||
\param type 'event' or 'journal'
|
||||
\param cachedelay Do not rebuild file if date older than cachedelay seconds
|
||||
\param filename Force filename
|
||||
\param filters Array of filters
|
||||
\return int <0 if error, nb of events in new file if ok
|
||||
*/
|
||||
function wbuild_calfile($format,$type,$cachedelay,$filename,$filters)
|
||||
{
|
||||
global $conf,$langs;
|
||||
|
||||
require_once (DOL_DOCUMENT_ROOT ."/lib/xcal.lib.php");
|
||||
|
||||
dol_syslog("webcal::wbuild_calfile Build cal file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".sizeof($filters), LOG_DEBUG);
|
||||
|
||||
// Check parameters
|
||||
if (empty($format)) return -1;
|
||||
|
||||
// Clean parameters
|
||||
if (! $filename)
|
||||
{
|
||||
$extension='vcs';
|
||||
if ($format == 'ical') $extension='ics';
|
||||
$filename=$format.'.'.$extension;
|
||||
}
|
||||
|
||||
create_exdir($conf->webcal->dir_temp);
|
||||
$outputfile=$conf->webcal->dir_temp.'/'.$filename;
|
||||
$result=0;
|
||||
|
||||
$buildfile=true;
|
||||
if ($cachedelay)
|
||||
{
|
||||
// \TODO Check cache
|
||||
}
|
||||
|
||||
if ($buildfile)
|
||||
{
|
||||
// Build event array
|
||||
$eventarray=array();
|
||||
|
||||
$sql = "SELECT cal_id, cal_create_by, ";
|
||||
$sql.= " cal_date, cal_time, cal_mod_date,";
|
||||
$sql.= " cal_mod_time, cal_duration, cal_priority, cal_type, cal_access, cal_name, cal_description";
|
||||
$sql.= " FROM webcal_entry";
|
||||
$sql.= " ORDER BY cal_date";
|
||||
|
||||
dol_syslog("Webcal::wbuild_vcal select events sql=".$sql);
|
||||
$resql=$this->localdb->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
while ($obj=$this->localdb->fetch_object($resql))
|
||||
{
|
||||
$qualified=true;
|
||||
|
||||
// 'eid','startdate','duration','enddate','title','summary','category','email','url','desc','author'
|
||||
$event=array();
|
||||
$event['uid']='dolibarrwebcal-'.$this->localdb->database_name.'-'.$obj->cal_id."@".$_SERVER["SERVER_NAME"];
|
||||
$event['type']=$type;
|
||||
$date=$obj->cal_date;
|
||||
$time=$obj->cal_time;
|
||||
if (preg_match('/^([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])$/',$date,$reg))
|
||||
{
|
||||
$year=$reg[1];
|
||||
$month=$reg[2];
|
||||
$day=$reg[3];
|
||||
if (! empty($filters['year']) && $year != $filters['year']) $qualified=false;
|
||||
if (! empty($filters['month']) && $year != $filters['month']) $qualified=false;
|
||||
if (! empty($filters['day']) && $year != $filters['day']) $qualified=false;
|
||||
}
|
||||
if (preg_match('/^([0-9]?[0-9])([0-9][0-9])([0-9][0-9])$/',$time,$reg))
|
||||
{
|
||||
$hour=sprintf("%02d",$reg[1]);
|
||||
$min=sprintf("%02d",$reg[2]);
|
||||
$sec=sprintf("%02d",$reg[3]);
|
||||
}
|
||||
$datestart=dol_mktime($hour,$min,$sec,$month,$day,$year);
|
||||
$event['startdate']=$datestart;
|
||||
//$event['duration']=$obj->cal_duration; // Not required with type 'journal'
|
||||
//$event['enddate']=''; // Not required with type 'journal'
|
||||
$event['summary']=$obj->cal_name;
|
||||
$event['desc']=$obj->cal_description;
|
||||
$event['author']=$obj->cal_create_by;
|
||||
$event['transparency']='TRANSPARENT'; // TRANSPARENT or OPAQUE
|
||||
$url=$conf->global->PHPWEBCALENDAR_URL;
|
||||
if (! preg_match('/\/$/',$url)) $url.='/';
|
||||
$url.='view_entry.php?id='.$obj->cal_id;
|
||||
$event['url']=$url;
|
||||
|
||||
if ($qualified)
|
||||
{
|
||||
$eventarray[$datestart]=$event;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog("webcal::wbuild_calfile ".$this->localdb->lasterror());
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Write file
|
||||
$title='Webcalendar events ';
|
||||
$desc='Webcalendar events for database '.$this->localdb->database_name.' - built by Dolibarr';
|
||||
$result=build_calfile($format,$title,$desc,$eventarray,$outputfile);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@ -1,68 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2004-2010 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.
|
||||
*/
|
||||
|
||||
/** \file htdocs/webcalendar/webcal.php
|
||||
\ingroup webcalendar
|
||||
\brief Page generant 2 frames, une pour le menu Dolibarr, l'autre pour l'affichage du calendrier
|
||||
\author Laurent Destailleur
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
require("../main.inc.php");
|
||||
|
||||
if (empty($conf->global->PHPWEBCALENDAR_URL))
|
||||
{
|
||||
llxHeader();
|
||||
print '<div class="error">Module Webcalendar was not configured properly.</div>';
|
||||
llxFooter('$Date$ - $Revision$');
|
||||
}
|
||||
|
||||
$mainmenu=isset($_GET["mainmenu"])?$_GET["mainmenu"]:"";
|
||||
$leftmenu=isset($_GET["leftmenu"])?$_GET["leftmenu"]:"";
|
||||
$idmenu=isset($_GET["idmenu"])?$_GET["idmenu"]:"";
|
||||
|
||||
print "
|
||||
<html>
|
||||
<head>
|
||||
<title>Dolibarr frame for Webcalendar</title>
|
||||
</head>
|
||||
|
||||
<frameset rows=\"".$heightforframes.",*\" border=0 framespacing=0 frameborder=0>
|
||||
<frame name=\"barre\" src=\"webcaltop.php?mainmenu=".$mainmenu."&leftmenu=".$leftmenu."&idmenu=".$idmenu."&nobackground=1\" noresize scrolling=\"NO\" noborder>
|
||||
<frame name=\"main\" src=\"".$conf->global->PHPWEBCALENDAR_URL."\">
|
||||
<noframes>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</noframes>
|
||||
</frameset>
|
||||
|
||||
<noframes>
|
||||
<body>
|
||||
<br><center>
|
||||
Sorry, your browser is too old or not correctly configured to view this area.<br>
|
||||
Your browser must support frames.<br>
|
||||
</center>
|
||||
</body>
|
||||
</noframes>
|
||||
|
||||
</html>
|
||||
";
|
||||
|
||||
|
||||
?>
|
||||
@ -1,127 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2008 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.
|
||||
*/
|
||||
|
||||
/** \file htdocs/webcalendar/webcalexport.php
|
||||
\ingroup webcalendar
|
||||
\brief Page export webcalendar
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
// This is to make Dolibarr working with Plesk
|
||||
set_include_path($_SERVER['DOCUMENT_ROOT'].'/htdocs');
|
||||
|
||||
require("../main.inc.php");
|
||||
require_once(DOL_DOCUMENT_ROOT.'/webcalendar/class/webcal.class.php');
|
||||
|
||||
// C'est un wrapper, donc header vierge
|
||||
function llxHeader() { print '<html><title>Export cal</title><body>'; }
|
||||
function llxFooter() { print '</body></html>'; }
|
||||
|
||||
// Security check
|
||||
if (! $conf->webcal->enabled)
|
||||
accessforbidden();
|
||||
|
||||
// Check config
|
||||
if (empty($conf->global->PHPWEBCALENDAR_PASSWORD_VCALEXPORT))
|
||||
{
|
||||
$user->getrights();
|
||||
|
||||
llxHeader();
|
||||
print '<div class="error">Module Webcalendar was not configured properly.</div>';
|
||||
llxFooter('$Date$ - $Revision$');
|
||||
exit;
|
||||
}
|
||||
|
||||
// Connect to database
|
||||
$webcal=new WebCal();
|
||||
if (! $webcal->localdb->connected || ! $webcal->localdb->database_selected)
|
||||
{
|
||||
$langs->load("admin");
|
||||
llxHeader();
|
||||
if ($webcal->localdb->connected == 1 && $webcal->localdb->database_selected != 1)
|
||||
{
|
||||
print $webcal->localdb->error();
|
||||
print '<br>'.$langs->trans("WebCalCheckWebcalSetup");
|
||||
print "</div>";
|
||||
//$webcal->localdb->close(); Ne pas fermer car la conn de webcal est la meme que dolibarr si parametre host/user/pass identique
|
||||
}
|
||||
else
|
||||
{
|
||||
print $webcal->localdb->error();
|
||||
print '<br>'.$langs->trans("WebCalCheckWebcalSetup");
|
||||
print "</div>";
|
||||
}
|
||||
llxFooter('$Date$ - $Revision$');
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$mainmenu=isset($_GET["mainmenu"])?$_GET["mainmenu"]:"";
|
||||
$leftmenu=isset($_GET["leftmenu"])?$_GET["leftmenu"]:"";
|
||||
|
||||
// Define format, type, filename and filter
|
||||
$format='vcal';
|
||||
$type='event';
|
||||
$filename='';
|
||||
if (! empty($_GET["format"])) $format=$_GET["format"];
|
||||
if ($format == 'vcal') $filename='webcalendar.vcs';
|
||||
if ($format == 'ical') $filename='webcalendar.ics';
|
||||
if (! empty($_GET["type"])) $type=$_GET["type"];
|
||||
if (! $filename)
|
||||
{
|
||||
$langs->load("main");
|
||||
$langs->load("errors");
|
||||
llxHeader();
|
||||
print '<div class="error">'.$langs->trans("ErrorWrongValueForParameterX",'format').'</div>';
|
||||
llxFooter('$Date$ - $Revision$');
|
||||
exit;
|
||||
}
|
||||
$filters=array();
|
||||
if (! empty($_GET["year"])) $filters['year']=$_GET["year"];
|
||||
|
||||
// Build file
|
||||
$result=$webcal->wbuild_calfile($format,$type,0,$filename,$filters);
|
||||
if ($result >= 0)
|
||||
{
|
||||
$attachment = false;
|
||||
$encoding='UTF-8';
|
||||
$type='text/calendar';
|
||||
//$type='text/calendar';
|
||||
|
||||
if ($encoding) header('Content-Encoding: '.$encoding);
|
||||
if ($type) header('Content-Type: '.$type);
|
||||
if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"');
|
||||
|
||||
// Ajout directives pour resoudre bug IE
|
||||
//header('Cache-Control: Public, must-revalidate');
|
||||
//header('Pragma: public');
|
||||
|
||||
// Clean parameters
|
||||
$outputfile=$conf->agenda->dir_temp.'/'.$filename;
|
||||
$result=readfile($outputfile);
|
||||
if (! $result) print 'File '.$outputfile.' was empty.';
|
||||
|
||||
// header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=webcal&file='.urlencode($filename));
|
||||
exit;
|
||||
}
|
||||
|
||||
llxHeader();
|
||||
print '<div class="error">'.$webcal->error.'</div>';
|
||||
llxFooter('$Date$ - $Revision$');
|
||||
|
||||
?>
|
||||
@ -1,42 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/webcalendar/webcaltop.php
|
||||
* \ingroup webcalendar
|
||||
* \brief Top frame to show calendar
|
||||
* \version $Id$
|
||||
*/
|
||||
|
||||
require ("../main.inc.php");
|
||||
|
||||
top_htmlhead("");
|
||||
top_menu("","","_top");
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user