forked from Wavyzz/dolibarr
Fix: Correction bugs sur flux RSS.
New: Ajout de la date sur les box RSS New: Ajout du logo et test si flux RSS online sur page config RSS.
This commit is contained in:
@@ -31,6 +31,8 @@
|
||||
*/
|
||||
|
||||
require("./pre.inc.php");
|
||||
include_once(MAGPIERSS_PATH."rss_fetch.inc");
|
||||
|
||||
|
||||
$langs->load("admin");
|
||||
|
||||
@@ -53,13 +55,26 @@ if ($_POST["action"] == 'add' || $_POST["modify"])
|
||||
{
|
||||
$external_rss_urlrss = "external_rss_urlrss_" . $_POST["norss"];
|
||||
|
||||
if(isset($_POST[$external_rss_urlrss])) {
|
||||
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 d<>finition des boites
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
|
||||
$sql.= " WHERE file ='box_external_rss.php' AND note like '".$_POST["norss"]." %'";
|
||||
if (! $db->query($sql))
|
||||
{
|
||||
dolibarr_print_error($db,"sql=$sql");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Ajoute boite box_external_rss dans d<>finition des boites
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (name, file, note) VALUES ('".$boxlabel."','box_external_rss.php','".addslashes($_POST["norss"].' ('.$_POST[$external_rss_title]).")')";
|
||||
if (! $db->query($sql))
|
||||
@@ -74,7 +89,8 @@ if ($_POST["action"] == 'add' || $_POST["modify"])
|
||||
{
|
||||
$db->commit();
|
||||
//$mesg='<div class="ok">'.$langs->trans("Success").'</div>';
|
||||
header("Location: external_rss.php");
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -86,7 +102,8 @@ if ($_POST["action"] == 'add' || $_POST["modify"])
|
||||
|
||||
if ($_POST["delete"])
|
||||
{
|
||||
if(isset($_POST["norss"])) {
|
||||
if(isset($_POST["norss"]))
|
||||
{
|
||||
$db->begin();
|
||||
|
||||
// Supprime boite box_external_rss de d<>finition des boites
|
||||
@@ -134,13 +151,13 @@ print '</tr>';
|
||||
print '<tr class="impair">';
|
||||
print '<td width="100">'.$langs->trans("Title").'</td>';
|
||||
print '<td><input type="text" name="external_rss_title_'.$nbexternalrss.'" value="'.@constant("EXTERNAL_RSS_TITLE_" . $nbexternalrss).'" size="64"></td>';
|
||||
print '<td>April,<br>LinuxFR,<br>Lolix,<br>Parinux</td>';
|
||||
print '<td>April,<br>LinuxFR,<br>Lolix</td>';
|
||||
print '</tr>';
|
||||
?>
|
||||
<tr class="pair">
|
||||
<td>URL du RSS</td>
|
||||
<td><input type="text" name="external_rss_urlrss_<?php echo $nbexternalrss ?>" value="<?php echo @constant("EXTERNAL_RSS_URLRSS_" . $nbexternalrss) ?>" size="64"></td>
|
||||
<td>http://wiki.april.org/RecentChanges?format=rss,<br>http://www.linuxfr.org/backend.rss,<br>http://back.fr.lolix.org/jobs.rss.php3,<br>http://parinux.org/backend.rss</td>
|
||||
<td>http://wiki.april.org/RecentChanges?format=rss<br>http://linuxfr.org/backend/news/rss20.rss<br>http://back.fr.lolix.org/jobs.rss.php3
|
||||
</tr>
|
||||
<tr><td colspan="3" align="center">
|
||||
<input type="submit" class="button" value="<?php echo $langs->trans("Add") ?>">
|
||||
@@ -159,25 +176,68 @@ print '</tr>';
|
||||
|
||||
for($i = 0; $i < $nbexternalrss; $i++)
|
||||
{
|
||||
print "<tr class=\"liste_titre\"><form name=\"externalrssconfig\" action=\"external_rss.php\" method=\"post\">";
|
||||
$var=true;
|
||||
|
||||
$rss = fetch_rss( @constant("EXTERNAL_RSS_URLRSS_".$i) );
|
||||
// fetch_rss initialise les objets suivant:
|
||||
// print_r($rss->channel);
|
||||
// print_r($rss->image);
|
||||
// print_r($rss->items);
|
||||
|
||||
print "<form name=\"externalrssconfig\" action=\"external_rss.php\" method=\"post\">";
|
||||
|
||||
print "<tr class=\"liste_titre\">";
|
||||
print "<td colspan=\"2\">Syndication du flux num<75>ro " . ($i+1) . "</td>";
|
||||
print "</tr>";
|
||||
print "<tr class=\"impair\">";
|
||||
|
||||
$var=!$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
print "<td width=\"100\">".$langs->trans("Title")."</td>";
|
||||
print "<td><input type=\"text\" class=\"flat\" name=\"external_rss_title_" . $i . "\" value=\"" . @constant("EXTERNAL_RSS_TITLE_" . $i) . "\" size=\"64\"></td>";
|
||||
print "</tr>";
|
||||
print "<tr class=\"pair\">";
|
||||
print "<td>URL du RSS</td>";
|
||||
|
||||
$var=!$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
print "<td>".$langs->trans("URL")."</td>";
|
||||
print "<td><input type=\"text\" class=\"flat\" name=\"external_rss_urlrss_" . $i . "\" value=\"" . @constant("EXTERNAL_RSS_URLRSS_" . $i) . "\" size=\"64\"></td>";
|
||||
print "</tr>";
|
||||
|
||||
$var=!$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
print "<td>".$langs->trans("Status")."</td>";
|
||||
print "<td>";
|
||||
if (! $rss->ERROR)
|
||||
{
|
||||
print '<font class="ok">'.$langs->trans("Online").'</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<font class="error">'.$langs->trans("Offline").'</div>';
|
||||
}
|
||||
print "</td>";
|
||||
print "</tr>";
|
||||
|
||||
// Logo
|
||||
if (! $rss->ERROR && $rss->image['url'])
|
||||
{
|
||||
$var=!$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
print "<td>".$langs->trans("Logo")."</td>";
|
||||
print '<td>';
|
||||
print '<img height="32" src="'.$rss->image['url'].'">';
|
||||
print '</td>';
|
||||
print "</tr>";
|
||||
}
|
||||
|
||||
print "<tr>";
|
||||
print "<td colspan=\"2\" align=\"center\">";
|
||||
print "<input type=\"submit\" class=\"button\" name=\"modify\" value=\"".$langs->trans("Modify")."\"> ";
|
||||
print "<input type=\"submit\" class=\"button\" name=\"delete\" value=\"".$langs->trans("Delete")."\">";
|
||||
print "<input type=\"hidden\" name=\"norss\" value=\"$i\">";
|
||||
print "</td>";
|
||||
print "</form>";
|
||||
print "</tr>";
|
||||
|
||||
print "</form>";
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
@@ -396,9 +396,12 @@ class Conf
|
||||
}
|
||||
|
||||
// Format de la date
|
||||
// \todo Mettre format dans fichier langue
|
||||
$this->format_date_text_short="%d %b %Y";
|
||||
// \todo Mettre les 4 formats dans fichier langue
|
||||
$this->format_date_short="%d/%m/%Y";
|
||||
$this->format_date_text_short="%d %b %Y";
|
||||
$this->format_date_hour_short="%d/%m/%Y %H:%M";
|
||||
$this->format_date_hour_text_short="%d %b %Y %H:%M";
|
||||
|
||||
$this->format_date_short_java="dd/MM/yyyy";
|
||||
|
||||
/* \todo Ajouter une option Gestion de la TVA dans le module compta qui permet de d<>sactiver la fonction TVA
|
||||
|
||||
@@ -88,18 +88,37 @@ class box_external_rss extends ModeleBoxes {
|
||||
$this->info_box_head = array('text' => $title);
|
||||
}
|
||||
|
||||
// Titre du channel
|
||||
$channel=$rss->channel['tagline'];
|
||||
|
||||
for($i = 0; $i < $max ; $i++)
|
||||
{
|
||||
$item = $rss->items[$i];
|
||||
$href = $item['link'];
|
||||
$result = $this->utf8_check(urldecode($item['title']));
|
||||
|
||||
// Magpierss common fields
|
||||
$href = $item['link'];
|
||||
$title = urldecode($item['title']);
|
||||
$date = $item['date_timestamp']; // date will be empty if conversion into timestamp failed
|
||||
if ($rss->is_rss()) // If RSS
|
||||
{
|
||||
if (! $date && isset($item['pubdate'])) $date=$item['pubdate'];
|
||||
if (! $date && isset($item['dc']['date'])) $date=$item['dc']['date'];
|
||||
//$item['dc']['language']
|
||||
//$item['dc']['publisher']
|
||||
}
|
||||
if ($rss->is_atom()) // If Atom
|
||||
{
|
||||
if (! $date && isset($item['issued'])) $date=$item['issued'];
|
||||
if (! $date && isset($item['modified'])) $date=$item['modified'];
|
||||
//$item['issued']
|
||||
//$item['modified']
|
||||
//$item['atom_content']
|
||||
}
|
||||
if (is_numeric($date)) $date=dolibarr_print_date($date,"dayhour");
|
||||
$result = $this->utf8_check($title);
|
||||
if ($result)
|
||||
{
|
||||
$title = utf8_decode(urldecode($item['title']));
|
||||
}
|
||||
else
|
||||
{
|
||||
$title = (urldecode($item['title']));
|
||||
$title=utf8_decode($title);
|
||||
}
|
||||
$title=ereg_replace("([[:alnum:]])\?([[:alnum:]])","\\1'\\2",$title); // G<>re probl<62>me des apostrophes mal cod<6F>e/d<>cod<6F>e par utf8
|
||||
$title=ereg_replace("^\s+","",$title); // Supprime espaces de d<>but
|
||||
@@ -108,7 +127,12 @@ class box_external_rss extends ModeleBoxes {
|
||||
'logo' => $this->boximg,
|
||||
'text' => $title,
|
||||
'url' => $href,
|
||||
'maxlength' => 64,
|
||||
'target' => 'newrss');
|
||||
$this->info_box_contents[$i][1] = array('align' => 'right',
|
||||
'text' => $date,
|
||||
'td' => 'nowrap="1"');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -99,6 +99,7 @@ class ModeleBoxes
|
||||
if (isset($contents[$i][$j]['width'])) $tdparam.=' width="'. $contents[$i][$j]['width'].'"';
|
||||
if (isset($contents[$i][$j]['colspan'])) $tdparam.=' colspan="'. $contents[$i][$j]['colspan'].'"';
|
||||
if (isset($contents[$i][$j]['class'])) $tdparam.=' class="'. $contents[$i][$j]['class'].'"';
|
||||
if (isset($contents[$i][$j]['td'])) $tdparam.=' '.$contents[$i][$j]['td'];
|
||||
|
||||
if (!$contents[$i][$j]['text']) $contents[$i][$j]['text']="";
|
||||
$texte=isset($contents[$i][$j]['text'])?$contents[$i][$j]['text']:'';
|
||||
|
||||
@@ -413,7 +413,10 @@ function dolibarr_time_plus_duree($time,$duration_value,$duration_unit)
|
||||
/**
|
||||
\brief Formattage de la date en fonction de la langue $conf->langage
|
||||
\param time Date 'timestamp' ou format 'YYYY-MM-DD' ou 'YYYY-MM-DD HH:MM:SS'
|
||||
\param format Format d'affichage de la date ("%d %b %Y", "%d/%m/%Y %h:%M:%s", ...)
|
||||
\param format Format d'affichage de la date
|
||||
"%d %b %Y",
|
||||
"%d/%m/%Y %h:%M:%s",
|
||||
"day", "daytext", "dayhour", "dayhourtext"
|
||||
\return string Date format<61>e ou '' si time null
|
||||
*/
|
||||
function dolibarr_print_date($time,$format='')
|
||||
@@ -423,6 +426,11 @@ function dolibarr_print_date($time,$format='')
|
||||
// Si format non d<>fini, on prend $conf->format_date_text_short
|
||||
if (! $format) $format=$conf->format_date_text_short;
|
||||
|
||||
if ($format == 'day') $format=$conf->format_date_short;
|
||||
if ($format == 'daytext') $format=$conf->format_date_text_short;
|
||||
if ($format == 'dayhour') $format=$conf->format_date_hour_short;
|
||||
if ($format == 'dayhourtext') $format=$conf->format_date_hour_text_short;
|
||||
|
||||
// Si date non d<>finie, on renvoie ''
|
||||
if (! $time) return '';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user