* Copyright (C) 2003,2005 Rodolphe Quiedeville * Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2011 Juanjo Menent * * 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 . */ /** * \file htdocs/admin/external_rss.php * \ingroup external_rss * \brief Page to setupe module ExternalRss */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/rssparser.class.php'; $langs->load("admin"); // Security check if (!$user->admin) accessforbidden(); $def = array(); $lastexternalrss=0; $action=GETPOST('action'); /* * Actions */ // 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 ($action == 'add' || GETPOST("modify")) { $external_rss_title = "external_rss_title_" . GETPOST("norss"); $external_rss_urlrss = "external_rss_urlrss_" . GETPOST("norss"); if (! empty($_POST[$external_rss_urlrss])) { $boxlabel='(ExternalRSSInformations)'; //$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(GETPOST("norss").' ('.GETPOST($external_rss_title)).")')"; if (! $db->query($sql)) { dol_print_error($db); $err++; } } $result1=dolibarr_set_const($db, "EXTERNAL_RSS_TITLE_" . GETPOST("norss"),GETPOST($external_rss_title),'chaine',0,'',$conf->entity); if ($result1) $result2=dolibarr_set_const($db, "EXTERNAL_RSS_URLRSS_" . GETPOST("norss"),GETPOST($external_rss_urlrss),'chaine',0,'',$conf->entity); if ($result1 && $result2) { $db->commit(); header("Location: ".$_SERVER["PHP_SELF"]); exit; } else { $db->rollback(); dol_print_error($db); } } } if ($_POST["delete"]) { if(GETPOST("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 '".GETPOST("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 entity = ".$conf->entity; $sql.= " AND 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_" . GETPOST("norss"),$conf->entity); if ($result1) $result2=dolibarr_del_const($db,"EXTERNAL_RSS_URLRSS_" . GETPOST("norss"),$conf->entity); if ($result1 && $result2) { $db->commit(); header("Location: external_rss.php"); exit; } else { $db->rollback(); dol_print_error($db); } } } /* * View */ llxHeader('',$langs->trans("ExternalRSSSetup")); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("ExternalRSSSetup"), $linkback, 'title_setup'); print '
'; // Formulaire ajout 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").''.$langs->trans('RSSUrlExample').'
'.$langs->trans('RSSUrl').'http://news.google.com/news?ned=us&topic=h&output=rss
http://www.dolibarr.org/rss
'; 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("select rss boxes", 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; $rssparser=new RssParser($db); $result = $rssparser->parser(@constant("EXTERNAL_RSS_URLRSS_".$idrss), 5, 300, $conf->externalrss->dir_temp); $var=true; print "
"; print "
"; print ''; 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 ($result > 0 && empty($rss->error)) { $var=!$var; print ""; print ""; print ''; print ""; } print '
".$langs->trans("RSS")." ".($i+1)."'; print "trans("Modify")."\">"; print "   "; print "trans("Delete")."\">"; print ""; print '
".$langs->trans("Title")."
".$langs->trans("URL")."
".$langs->trans("Status").""; if ($result > 0 && empty($rss->error)) { print ''.$langs->trans("Online").''; } else { print ''.$langs->trans("Offline"); $langs->load("errors"); if ($rssparser->error) print ' - '.$langs->trans($rssparser->error); print ''; } print "
".$langs->trans("Logo")."'; $imageurl=$rssparser->getImageUrl(); if ($imageurl) print ''; else print $langs->trans("None"); print '
'; print "
"; $i++; } } else { dol_print_error($db); } $db->close(); llxFooter();