2
0
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:
Laurent Destailleur
2006-08-14 21:23:42 +00:00
parent 1ebda6f033
commit 957a6d2d29
5 changed files with 116 additions and 20 deletions

View File

@@ -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")."\"> &nbsp;";
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>";
}
?>

View File

@@ -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

View File

@@ -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"');
}
}

View File

@@ -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']:'';

View File

@@ -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 '';