* Copyright (C) 2003,2005 Rodolphe Quiedeville * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2011 Regis Houssin * * 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, see . */ /** * \file htdocs/admin/external_rss.php * \ingroup external_rss * \brief Page d'administration/configuration du module ExternalRss * \version $Id: external_rss.php,v 1.48 2011/07/31 22:23:21 eldy Exp $ */ require("../main.inc.php"); require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php"); include_once(MAGPIERSS_PATH."rss_fetch.inc"); $langs->load("admin"); if (!$user->admin) accessforbidden(); $def = array(); $lastexternalrss=0; // positionne la variable pour le nombre de rss externes $sql ="SELECT MAX(".$db->decrypt('name').") as name FROM ".MAIN_DB_PREFIX."const"; $sql.=" WHERE ".$db->decrypt('name')." LIKE 'EXTERNAL_RSS_URLRSS_%'"; $result=$db->query($sql); if ($result) { $obj = $db->fetch_object($result); preg_match('/([0-9]+)$/i',$obj->name,$reg); if ($reg[1]) $lastexternalrss = $reg[1]; } else { dol_print_error($db); } if ($_POST["action"] == 'add' || $_POST["modify"]) { $external_rss_urlrss = "external_rss_urlrss_" . $_POST["norss"]; if(isset($_POST[$external_rss_urlrss])) { $boxlabel='(ExternalRSSInformations)'; $external_rss_title = "external_rss_title_" . $_POST["norss"]; //$external_rss_url = "external_rss_url_" . $_POST["norss"]; $db->begin(); if ($_POST["modify"]) { // Supprime boite box_external_rss de definition des boites /* $sql = "UPDATE ".MAIN_DB_PREFIX."boxes_def"; $sql.= " SET name = '".$boxlabel."'"; $sql.= " WHERE file ='box_external_rss.php' AND note like '".$_POST["norss"]." %'"; $resql=$db->query($sql); if (! $resql) { dol_print_error($db,"sql=$sql"); exit; } */ } else { // Ajoute boite box_external_rss dans definition des boites $sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (file, note)"; $sql.= " VALUES ('box_external_rss.php','".$db->escape($_POST["norss"].' ('.$_POST[$external_rss_title]).")')"; if (! $db->query($sql)) { dol_print_error($db); $err++; } } $result1=dolibarr_set_const($db, "EXTERNAL_RSS_TITLE_" . $_POST["norss"],$_POST[$external_rss_title],'chaine',0,'',$conf->entity); if ($result1) $result2=dolibarr_set_const($db, "EXTERNAL_RSS_URLRSS_" . $_POST["norss"],$_POST[$external_rss_urlrss],'chaine',0,'',$conf->entity); if ($result1 && $result2) { $db->commit(); //$mesg='
'.$langs->trans("Success").'
'; header("Location: ".$_SERVER["PHP_SELF"]); exit; } else { $db->rollback(); dol_print_error($db); } } } if ($_POST["delete"]) { if(isset($_POST["norss"])) { $db->begin(); // Supprime boite box_external_rss de definition des boites $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."boxes_def"; $sql.= " WHERE file = 'box_external_rss.php' AND note LIKE '".$_POST["norss"]." %'"; $resql=$db->query($sql); if ($resql) { $num = $db->num_rows($resql); $i=0; while ($i < $num) { $obj=$db->fetch_object($resql); $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes"; $sql.= " WHERE box_id = ".$obj->rowid; $resql=$db->query($sql); $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def"; $sql.= " WHERE rowid = ".$obj->rowid; $resql=$db->query($sql); if (! $resql) { $db->rollback(); dol_print_error($db,"sql=$sql"); exit; } $i++; } $db->commit(); } else { $db->rollback(); dol_print_error($db,"sql=$sql"); exit; } $result1=dolibarr_del_const($db,"EXTERNAL_RSS_TITLE_" . $_POST["norss"],$conf->entity); if ($result1) $result2=dolibarr_del_const($db,"EXTERNAL_RSS_URLRSS_" . $_POST["norss"],$conf->entity); if ($result1 && $result2) { $db->commit(); //$mesg='
'.$langs->trans("Success").'
'; header("Location: external_rss.php"); exit; } else { $db->rollback(); dol_print_error($db); } } } /* * Affichage page */ llxHeader(); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("ExternalRSSSetup"), $linkback, 'setup'); print '
'; // Formulaire ajout print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print '
'.$langs->trans("NewRSS").''.$langs->trans("Example").'
'.$langs->trans("Title").'April,
LinuxFR,
Lolix
URL du RSShttp://wiki.april.org/RecentChanges?format=rss
http://linuxfr.org/backend/news/rss20.rss
http://back.fr.lolix.org/jobs.rss.php3
'; print ''; print ''; print ''; print '
'; print '
'; print '
'; print ''; $sql ="SELECT rowid, file, note FROM ".MAIN_DB_PREFIX."boxes_def"; $sql.=" WHERE file = 'box_external_rss.php'"; $sql.=" ORDER BY note"; dol_syslog("external_rss select rss boxes sql=".$sql,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->note,$reg); $idrss = $reg[1]; //print "x".$idrss; $var=true; $rss = fetch_rss( @constant("EXTERNAL_RSS_URLRSS_".$idrss) ); // fetch_rss initialise les objets suivant: // print_r($rss->channel); // print_r($rss->image); // print_r($rss->items); print ""; print ''; print ""; print ""; print ""; $var=!$var; print ""; print ""; print ""; print ""; $var=!$var; print ""; print ""; print ""; print ""; $var=!$var; print ""; print ""; print ""; print ""; // Logo if (! $rss->ERROR && $rss->image['url']) { $var=!$var; print ""; print ""; print ''; print ""; } print ""; print ""; print ""; print ""; $i++; } } else { dol_print_error($db); } print '
".$langs->trans("RSS")." ".($i+1)."
".$langs->trans("Title")."
".$langs->trans("URL")."
".$langs->trans("Status").""; if (! $rss->ERROR) { print ''.$langs->trans("Online").''; } else { print ''.$langs->trans("Offline").''; } print "
".$langs->trans("Logo")."'; print ''; print '
"; print "trans("Modify")."\">"; print "   "; print "trans("Delete")."\">"; print ""; print "
'."\n"; $db->close(); llxFooter('$Date: 2011/07/31 22:23:21 $ - $Revision: 1.48 $'); ?>