diff --git a/htdocs/admin/external_rss.php b/htdocs/admin/external_rss.php new file mode 100644 index 00000000000..703e6f4b03b --- /dev/null +++ b/htdocs/admin/external_rss.php @@ -0,0 +1,115 @@ + + * Copyright (C) 2003 Éric Seigne + * + * 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$ + */ +require("./pre.inc.php"); + +llxHeader(); + +if (!$user->admin) +{ + print "Forbidden"; + llxfooter(); + exit; +} + +$db = new Db(); + +$def = array(); + +// positionne la variable pour le test d'affichage de l'icone + +$phpwiki_url = EXTERNAL_RSS; + +if ($action == 'save') +{ + $sql = "REPLACE INTO llx_const SET name = 'EXTERNAL_RSS_URL_0', value='".$external_rss_url_0."', visible=0"; + $sql1 = "REPLACE INTO llx_const SET name = 'EXTERNAL_RSS_TITLE_0', value='".$external_rss_title_0."', visible=0"; + $sql2 = "REPLACE INTO llx_const SET name = 'EXTERNAL_RSS_URLRSS_0', value='".$external_rss_urlrss_0."', visible=0"; + + if ($db->query($sql) && $db->query($sql1) && $db->query($sql2)) + { + // la constante qui a été lue en avant du nouveau set + // on passe donc par une variable pour avoir un affichage cohérent + print "ok bien enregistré"; + } + else + print "erreur d'enregistement !"; +} +else { + + /* + * Affichage du formulaire de saisie + */ + + print_titre("Configuration du lien vers un site syndiqué"); + + print "\n

Attention, pour la récupération des données au format RSS, les urls en https ne marchent pas pour l'instant.

+

Exemples: +

+

+
+\n"; + + // Pour l'instant on fait un seul RSS externe, mais c'est sans soucis qu'on passe à plus ! + // ptet définir une variable pour NBMAX_RSS_EXTERNE ... modifier en fonction le fichier + // ../pre.inc.php3 + for($i = 0; $i < 1; $i++) { + print " + + + + + + + + + + + + + +\n"; + } + + clearstatcache(); + + print "
Titre
URL du site
URL du RSS
+ +
\n"; +} + +/* + * + * + */ + + +$db->close(); + +llxFooter(); +?> diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 645e3ed95c0..af14c297ac9 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -104,6 +104,16 @@ $modules["MAIN_MODULE_POSTNUKE"][1] = "MAIN_MODULE_POSTNUKE"; $modules["MAIN_MODULE_POSTNUKE"][2] = MAIN_MODULE_POSTNUKE; $modules["MAIN_MODULE_POSTNUKE"][3] = "Module de gestion de postnuke"; +$modules["MAIN_MODULE_WEBCALENDAR"][0] = "Module Webcalendar"; +$modules["MAIN_MODULE_WEBCALENDAR"][1] = "MAIN_MODULE_WEBCALENDAR"; +$modules["MAIN_MODULE_WEBCALENDAR"][2] = MAIN_MODULE_WEBCALENDAR; +$modules["MAIN_MODULE_WEBCALENDAR"][3] = "Module de gestion du calendrier"; + +$modules["MAIN_MODULE_EXTERNAL_RSS"][0] = "Module de syndication externe"; +$modules["MAIN_MODULE_EXTERNAL_RSS"][1] = "MAIN_MODULE_EXTERNAL_RSS"; +$modules["MAIN_MODULE_EXTERNAL_RSS"][2] = MAIN_MODULE_EXTERNAL_RSS; +$modules["MAIN_MODULE_EXTERNAL_RSS"][3] = "Module de gestion de syndication de sites externes"; + if ($action == 'set') { $sql = "REPLACE INTO llx_const SET name = '".$value."', value='1', visible = 0"; diff --git a/htdocs/admin/pre.inc.php b/htdocs/admin/pre.inc.php index 2e4b927ac60..bbedee03c36 100644 --- a/htdocs/admin/pre.inc.php +++ b/htdocs/admin/pre.inc.php @@ -49,6 +49,16 @@ function llxHeader($head = "", $urlp = "") { $menu->add_submenu("fichinter.php", "Fiches d'intervention"); } + if(defined("MAIN_MODULE_WEBCALENDAR") && MAIN_MODULE_WEBCALENDAR) + { + $menu->add_submenu("webcalendar.php", "Calendrier"); + } + + if(defined("MAIN_MODULE_EXTERNAL_RSS") && MAIN_MODULE_EXTERNAL_RSS) + { + $menu->add_submenu("external_rss.php", "Syndication"); + } + $menu->add("boxes.php", "Boites"); diff --git a/htdocs/admin/webcalendar.php b/htdocs/admin/webcalendar.php new file mode 100644 index 00000000000..22191d0bc44 --- /dev/null +++ b/htdocs/admin/webcalendar.php @@ -0,0 +1,118 @@ + + * Copyright (C) 2003 Éric Seigne + * + * 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$ + */ +require("./pre.inc.php"); + +llxHeader(); + +if (!$user->admin) +{ + print "Forbidden"; + llxfooter(); + exit; +} + +$db = new Db(); + +$def = array(); + +// positionne la variable pour le test d'affichage de l'icone +if ($action == 'save') +{ + if(trim($phpwebcalendar_pass) == trim($phpwebcalendar_pass2)) { + $sql = "REPLACE INTO llx_const SET name = 'PHPWEBCALENDAR_URL', value='".$phpwebcalendar_url."', visible=0"; + + $sql1 = "REPLACE INTO llx_const SET name = 'PHPWEBCALENDAR_HOST', value='".$phpwebcalendar_host."', visible=0"; + $sql2 = "REPLACE INTO llx_const SET name = 'PHPWEBCALENDAR_DBNAME', value='".$phpwebcalendar_dbname."', visible=0"; + $sql3 = "REPLACE INTO llx_const SET name = 'PHPWEBCALENDAR_USER', value='".$phpwebcalendar_user."', visible=0"; + $sql4 = "REPLACE INTO llx_const SET name = 'PHPWEBCALENDAR_PASS', value='".$phpwebcalendar_pass."', visible=0"; + + if ($db->query($sql) && $db->query($sql1) && $db->query($sql2) && $db->query($sql3) && $db->query($sql4)) + { + // la constante qui a été lue en avant du nouveau set + // on passe donc par une variable pour avoir un affichage cohérent + print "

ok bien enregistré

\n"; + print "

dans quelques jours je rajoute un test de connexion à la base de données de webcal pour être certain que tout est OK

\n"; + define("PHPWEBCALENDAR_URL", $phpwebcalendar_url); + } + else + print "erreur d'enregistement !"; + } + else + { + print "

erreur, votre mot de passe n'est pas vérifié, merci de retourner à la page de saisie pour corriger votre erreur

\n"; + } +} +else +{ + /* + * Affichage du formulaire de saisie + */ + + print_titre("Configuration du lien vers le calendrier"); + + print "\n
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +\n"; + + clearstatcache(); + + print "
Adresse URL d'accès au calendrier
Serveur où la base du calendrier est hébergée
Nom de la base de données
Identifiant d'accès à la base
Mot de passe d'accès à la base
Mot de passe (vérification)
+ +
\n"; +} + +/* + * + * + */ + + +$db->close(); + +llxFooter(); +?> diff --git a/htdocs/conf/conf.class.php b/htdocs/conf/conf.class.php index 6f994ca00bc..af4fdce8bbb 100644 --- a/htdocs/conf/conf.class.php +++ b/htdocs/conf/conf.class.php @@ -105,11 +105,13 @@ class WebcalConf { $this->enabled = 1; - $this->url = "http://webcalendar.lafrere.lan/"; + $this->url = PHPWEBCALENDAR_URL; $this->db = new DbConf(); - $this->db->user = "webcal"; - $this->db->name = "webcal"; + $this->db->host = PHPWEBCALENDAR_HOST; + $this->db->user = PHPWEBCALENDAR_USER; + $this->db->pass = PHPWEBCALENDAR_PASS; + $this->db->name = PHPWEBCALENDAR_DBNAME; } } diff --git a/htdocs/includes/menus/barre_top/default.php b/htdocs/includes/menus/barre_top/default.php index db39540ccbc..9ed20750861 100644 --- a/htdocs/includes/menus/barre_top/default.php +++ b/htdocs/includes/menus/barre_top/default.php @@ -82,11 +82,11 @@ else print '-'; } print ''; -if ($conf->webcal->enabled) + +if(defined("MAIN_MODULE_WEBCALENDAR") && MAIN_MODULE_WEBCALENDAR) { - print 'Calendrier'; + print 'Calendrier'; }; print ' '; - ?> diff --git a/htdocs/lib/webcal.class.php3 b/htdocs/lib/webcal.class.php3 index 7c7ceb5b3b4..9084fe3d116 100644 --- a/htdocs/lib/webcal.class.php3 +++ b/htdocs/lib/webcal.class.php3 @@ -94,3 +94,4 @@ class Webcal { } } ?> + diff --git a/htdocs/pre.inc.php3 b/htdocs/pre.inc.php3 index 200c9a3f5cf..d6c5ec9eab7 100644 --- a/htdocs/pre.inc.php3 +++ b/htdocs/pre.inc.php3 @@ -127,6 +127,20 @@ function llxHeader($head = "") { $menu->add(DOL_URL_ROOT."/postnuke/articles/", "Editorial"); } + // à modifier si on a plus d'un module RSS externe ! + if (defined("MAIN_MODULE_EXTERNAL_RSS") && MAIN_MODULE_EXTERNAL_RSS) + { + $menu->add(EXTERNAL_RSS_URL_0, EXTERNAL_RSS_TITLE_0); + require_once("includes/magpierss/rss_fetch.inc"); + $rss = fetch_rss( EXTERNAL_RSS_URLRSS_0 ); + + foreach ($rss->items as $item) { + $href = $item['link']; + $title = $item['title']; + $menu->add_submenu("$href","$title"); + } + } + $menu->add(DOL_URL_ROOT."/user/", "Utilisateurs"); if ($user->admin)