From c1055c42928f6027e58d3b3e3fc4f113a6b09511 Mon Sep 17 00:00:00 2001
From: erics
Date: Tue, 22 Jul 2003 14:58:41 +0000
Subject: [PATCH] =?UTF-8?q?ajout=20du=20syst=E8me=20de=20syndication=20de?=
=?UTF-8?q?=20sites=20webs=20externes=20et=20de=20la=20configuration=20du?=
=?UTF-8?q?=20calendrier=20...?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
htdocs/admin/external_rss.php | 115 +++++++++++++++++++
htdocs/admin/modules.php | 10 ++
htdocs/admin/pre.inc.php | 10 ++
htdocs/admin/webcalendar.php | 118 ++++++++++++++++++++
htdocs/conf/conf.class.php | 8 +-
htdocs/includes/menus/barre_top/default.php | 6 +-
htdocs/lib/webcal.class.php3 | 1 +
htdocs/pre.inc.php3 | 14 +++
8 files changed, 276 insertions(+), 6 deletions(-)
create mode 100644 htdocs/admin/external_rss.php
create mode 100644 htdocs/admin/webcalendar.php
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 "\nAttention, pour la récupération des données au format RSS, les urls en https ne marchent pas pour l'instant.
+Exemples:
+
+ - WikiApril / http://wiki.april.org / http://wiki.april.org/RecentChanges?format=rss (et tous les sites phpwiki)
+ - LinuxFR / http://linuxfr.org / http://www.linuxfr.org/backend.rss
+ - WikiInterneRycks / ../wiki / ../wiki/RecentChanges?format=rss (ne marche pas, je suis en https et en plus y a un apache_auth)
+ - LoLix / http://back.fr.lolix.org/ /(ha ben non, ne marche pas, pfffff à faire chez lolix !)
+ - Parinux / http://parinux.org/ / http://parinux.org/backend.rss
+ - Docs d'AbulÉdu / http://docs.abuledu.org / http://docs.abuledu.org/backend.php3 (et tous les sites spip)
+
+
+\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";
+}
+
+/*
+ *
+ *
+ */
+
+
+$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 '';
-
?>
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)