Flux RSS des articles
Baroque Cafe
Member
Salut,
Il faudrait pouvoir configurer une limitation de la description item pour le flux rss des articles. Genre dans l'admin/Option d'affichage.
Perso j'ai fait un petit hack mais bon ...
Function truncate ajoutée + $entry .= "\t\t".'<description>'.plxUtils::strCheck(truncate(strip_tags(plxUtils::rel2abs($this->racine,$content)),120,'...',true)).'</description>'."\n";
Il faudrait pouvoir configurer une limitation de la description item pour le flux rss des articles. Genre dans l'admin/Option d'affichage.
Perso j'ai fait un petit hack mais bon ...
[== PHP ==]
public function getRssArticles() {
function truncate($string, $max_length = 100, $replacement = '...', $trunc_at_space = false)
{
$max_length -= strlen($replacement);
$string_length = strlen($string);
if($string_length <= $max_length)
return $string;
if( $trunc_at_space && ($space_position = strrpos($string, ' ', $max_length-$string_length)) )
$max_length = $space_position;
return substr_replace($string, $replacement, $max_length);
}
# Initialisation
$last_updated = '197001010100';
$entry_link = '';
$entry = '';
if($this->mode == 'tag') {
$title = $this->aConf['title'].' - '.L_PAGETITLE_TAG.' '.$this->cible;
$link = $this->urlRewrite('?tag/'.$this->cible);
}
elseif($this->cible) { # Articles d'une catégorie
$catId = $this->cible + 0;
$title = $this->aConf['title'].' - '.$this->aCats[ $this->cible ]['name'];
$link = $this->urlRewrite('?categorie'.$catId.'/'.$this->aCats[ $this->cible ]['url']);
} else { # Articles globaux
$title = $this->aConf['title'];
$link = $this->urlRewrite();
}
# On va boucler sur les articles (si il y'en a)
if($this->plxRecord_arts) {
while($this->plxRecord_arts->loop()) {
# Traitement initial
if($this->aConf['feed_chapo']) {
$content = $this->plxRecord_arts->f('chapo');
if(trim($content)=='') $content = $this->plxRecord_arts->f('content');
} else {
$content = $this->plxRecord_arts->f('chapo').$this->plxRecord_arts->f('content');
}
$content .= $this->aConf['feed_footer'];
$artId = $this->plxRecord_arts->f('numero') + 0;
$author = $this->aUsers[$this->plxRecord_arts->f('author')]['name'];
# On check la date de publication
if($this->plxRecord_arts->f('date') > $last_updated)
$last_updated = $this->plxRecord_arts->f('date');
# On affiche le flux dans un buffer
$entry .= "\t<item>\n";
$entry .= "\t\t".'<title>'.plxUtils::strCheck($this->plxRecord_arts->f('title')).'</title> '."\n";
$entry .= "\t\t".'<link>'.$this->urlRewrite('?article'.$artId.'/'.$this->plxRecord_arts->f('url')).'</link>'."\n";
$entry .= "\t\t".'<guid>'.$this->urlRewrite('?article'.$artId.'/'.$this->plxRecord_arts->f('url')).'</guid>'."\n";
$entry .= "\t\t".'<description>'.plxUtils::strCheck(truncate(strip_tags(plxUtils::rel2abs($this->racine,$content)),120,'...',true)).'</description>'."\n";
$entry .= "\t\t".'<pubDate>'.plxDate::dateIso2rfc822($this->plxRecord_arts->f('date')).'</pubDate>'."\n";
$entry .= "\t\t".'<dc:creator>'.plxUtils::strCheck($author).'</dc:creator>'."\n";
# Hook plugins
eval($this->plxPlugins->callHook('plxFeedRssArticlesXml'));
$entry .= "\t</item>\n";
}
}
# On affiche le flux
header('Content-Type: text/xml; charset='.PLX_CHARSET);
echo '<?xml version="1.0" encoding="'.PLX_CHARSET.'" ?>'."\n";
echo '<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">'."\n";
echo '<channel>'."\n";
echo "\t".'<title>'.plxUtils::strCheck($title).'</title>'."\n";
echo "\t".'<link>'.$link.'</link>'."\n";
echo "\t".'<language>' . $this->aConf['default_lang'] . '</language>'."\n";
echo "\t".'<description>'.plxUtils::strCheck($this->aConf['description']).'</description>'."\n";
echo '<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="'.$this->urlRewrite('feed.php?rss').'" />'."\n";
$last_updated = plxDate::dateIso2rfc822($last_updated);
echo "\t".'<lastBuildDate>'.$last_updated.'</lastBuildDate>'."\n";
echo "\t".'<generator>PluXml</generator>'."\n";
echo $entry;
echo '</channel>'."\n";
echo '</rss>';
}
Function truncate ajoutée + $entry .= "\t\t".'<description>'.plxUtils::strCheck(truncate(strip_tags(plxUtils::rel2abs($this->racine,$content)),120,'...',true)).'</description>'."\n";
Connectez-vous ou Inscrivez-vous pour répondre.