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:
parent
1ebda6f033
commit
957a6d2d29
@ -31,6 +31,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require("./pre.inc.php");
|
require("./pre.inc.php");
|
||||||
|
include_once(MAGPIERSS_PATH."rss_fetch.inc");
|
||||||
|
|
||||||
|
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
|
|
||||||
@ -53,13 +55,26 @@ if ($_POST["action"] == 'add' || $_POST["modify"])
|
|||||||
{
|
{
|
||||||
$external_rss_urlrss = "external_rss_urlrss_" . $_POST["norss"];
|
$external_rss_urlrss = "external_rss_urlrss_" . $_POST["norss"];
|
||||||
|
|
||||||
if(isset($_POST[$external_rss_urlrss])) {
|
if(isset($_POST[$external_rss_urlrss]))
|
||||||
|
{
|
||||||
$boxlabel='(ExternalRSSInformations)';
|
$boxlabel='(ExternalRSSInformations)';
|
||||||
$external_rss_title = "external_rss_title_" . $_POST["norss"];
|
$external_rss_title = "external_rss_title_" . $_POST["norss"];
|
||||||
//$external_rss_url = "external_rss_url_" . $_POST["norss"];
|
//$external_rss_url = "external_rss_url_" . $_POST["norss"];
|
||||||
|
|
||||||
$db->begin();
|
$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
|
// 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]).")')";
|
$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))
|
if (! $db->query($sql))
|
||||||
@ -74,7 +89,8 @@ if ($_POST["action"] == 'add' || $_POST["modify"])
|
|||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
//$mesg='<div class="ok">'.$langs->trans("Success").'</div>';
|
//$mesg='<div class="ok">'.$langs->trans("Success").'</div>';
|
||||||
header("Location: external_rss.php");
|
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -86,7 +102,8 @@ if ($_POST["action"] == 'add' || $_POST["modify"])
|
|||||||
|
|
||||||
if ($_POST["delete"])
|
if ($_POST["delete"])
|
||||||
{
|
{
|
||||||
if(isset($_POST["norss"])) {
|
if(isset($_POST["norss"]))
|
||||||
|
{
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
// Supprime boite box_external_rss de définition des boites
|
// Supprime boite box_external_rss de définition des boites
|
||||||
@ -134,13 +151,13 @@ print '</tr>';
|
|||||||
print '<tr class="impair">';
|
print '<tr class="impair">';
|
||||||
print '<td width="100">'.$langs->trans("Title").'</td>';
|
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><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>';
|
print '</tr>';
|
||||||
?>
|
?>
|
||||||
<tr class="pair">
|
<tr class="pair">
|
||||||
<td>URL du RSS</td>
|
<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><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>
|
||||||
<tr><td colspan="3" align="center">
|
<tr><td colspan="3" align="center">
|
||||||
<input type="submit" class="button" value="<?php echo $langs->trans("Add") ?>">
|
<input type="submit" class="button" value="<?php echo $langs->trans("Add") ?>">
|
||||||
@ -159,25 +176,68 @@ print '</tr>';
|
|||||||
|
|
||||||
for($i = 0; $i < $nbexternalrss; $i++)
|
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éro " . ($i+1) . "</td>";
|
print "<td colspan=\"2\">Syndication du flux numéro " . ($i+1) . "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
print "<tr class=\"impair\">";
|
|
||||||
|
$var=!$var;
|
||||||
|
print "<tr ".$bc[$var].">";
|
||||||
print "<td width=\"100\">".$langs->trans("Title")."</td>";
|
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 "<td><input type=\"text\" class=\"flat\" name=\"external_rss_title_" . $i . "\" value=\"" . @constant("EXTERNAL_RSS_TITLE_" . $i) . "\" size=\"64\"></td>";
|
||||||
print "</tr>";
|
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 "<td><input type=\"text\" class=\"flat\" name=\"external_rss_urlrss_" . $i . "\" value=\"" . @constant("EXTERNAL_RSS_URLRSS_" . $i) . "\" size=\"64\"></td>";
|
||||||
print "</tr>";
|
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 "<tr>";
|
||||||
print "<td colspan=\"2\" align=\"center\">";
|
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=\"modify\" value=\"".$langs->trans("Modify")."\"> ";
|
||||||
print "<input type=\"submit\" class=\"button\" name=\"delete\" value=\"".$langs->trans("Delete")."\">";
|
print "<input type=\"submit\" class=\"button\" name=\"delete\" value=\"".$langs->trans("Delete")."\">";
|
||||||
print "<input type=\"hidden\" name=\"norss\" value=\"$i\">";
|
print "<input type=\"hidden\" name=\"norss\" value=\"$i\">";
|
||||||
print "</td>";
|
print "</td>";
|
||||||
print "</form>";
|
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
|
print "</form>";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|||||||
@ -396,9 +396,12 @@ class Conf
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Format de la date
|
// Format de la date
|
||||||
// \todo Mettre format dans fichier langue
|
// \todo Mettre les 4 formats dans fichier langue
|
||||||
$this->format_date_text_short="%d %b %Y";
|
|
||||||
$this->format_date_short="%d/%m/%Y";
|
$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";
|
$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
|
/* \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);
|
$this->info_box_head = array('text' => $title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Titre du channel
|
||||||
|
$channel=$rss->channel['tagline'];
|
||||||
|
|
||||||
for($i = 0; $i < $max ; $i++)
|
for($i = 0; $i < $max ; $i++)
|
||||||
{
|
{
|
||||||
$item = $rss->items[$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)
|
if ($result)
|
||||||
{
|
{
|
||||||
$title = utf8_decode(urldecode($item['title']));
|
$title=utf8_decode($title);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$title = (urldecode($item['title']));
|
|
||||||
}
|
}
|
||||||
$title=ereg_replace("([[:alnum:]])\?([[:alnum:]])","\\1'\\2",$title); // Gère problème des apostrophes mal codée/décodée par utf8
|
$title=ereg_replace("([[:alnum:]])\?([[:alnum:]])","\\1'\\2",$title); // Gère problème des apostrophes mal codée/décodée par utf8
|
||||||
$title=ereg_replace("^\s+","",$title); // Supprime espaces de début
|
$title=ereg_replace("^\s+","",$title); // Supprime espaces de début
|
||||||
@ -108,7 +127,12 @@ class box_external_rss extends ModeleBoxes {
|
|||||||
'logo' => $this->boximg,
|
'logo' => $this->boximg,
|
||||||
'text' => $title,
|
'text' => $title,
|
||||||
'url' => $href,
|
'url' => $href,
|
||||||
|
'maxlength' => 64,
|
||||||
'target' => 'newrss');
|
'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]['width'])) $tdparam.=' width="'. $contents[$i][$j]['width'].'"';
|
||||||
if (isset($contents[$i][$j]['colspan'])) $tdparam.=' colspan="'. $contents[$i][$j]['colspan'].'"';
|
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]['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']="";
|
if (!$contents[$i][$j]['text']) $contents[$i][$j]['text']="";
|
||||||
$texte=isset($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
|
\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 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ée ou '' si time null
|
\return string Date formatée ou '' si time null
|
||||||
*/
|
*/
|
||||||
function dolibarr_print_date($time,$format='')
|
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
|
// Si format non défini, on prend $conf->format_date_text_short
|
||||||
if (! $format) $format=$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 ''
|
// Si date non définie, on renvoie ''
|
||||||
if (! $time) return '';
|
if (! $time) return '';
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user