Forum

Lecteur RSS : Personnalisation de l'affichage

03-06-2010 11:43:27

calame

Bonjour, Je souhaiterais pouvoir agir sur les balises du [b]channel <link> <title> <description>[/b] afin d'effectuer des modif de présentation / mise en forme. Mais voilà je n'arrive pas à trouver à quel moment l'affichage de ces infos se produisent :
foreach($recents as $article)
    {
        $type = $article["type"];
        
        if($type == 0)
        {
            if($chanopt != true) continue;
            if($opened == true)
            {
                //$page .="</ul>\n";
                $page .="";    // utilisation de <p> à la place de <li>
                $opened = false;
            }
            $page .="<b>";
        }
        else
        {
            if($opened == false && $chanopt == true) 
            {
                //$page .= "<ul>\n";
                $page .= "<br />";    // utilisation de <p> à la place de <li>
                $opened = true;
            }
        }
        
        $title = $article["title"];
        $link = $article["link"];
        $page .= "<".$Common_Style." id=\"ole\"><a rel=\"gb_page_fs[]\" href=\"$link\">$title</a>";
        
        if($descopt != false)
        {
            $description = $article["description"];
            if($description != false)
            {
                $page .= "<br>$description";
            }
        }    
        if($dateopt != false)
        {            
            $updated = $article["updated"];
            if($updated != false)
            {
                $page .= "<br /><font $Common_Date_Font>$updated</font>";
            }
        }    
        $page .= "</".$Common_Style.">\n";
Auparavant, j'utilisais Magpierss et je personnalisais chaque flux avec un simple switch testant un paramètre. Là, je sèche pour trouver où elles sont et comment elles sont affichées. Merci d'avance.
03-06-2010 20:17:39

webmaster

La mise en forme a été ajoutée dans la dernière version de rsslib. Une démonstration a été faite, c'est la quatrième dans la liste: http://www.scriptol.fr/rss/rss-direct.php Le code source montre comment associer un descripteur CSS à un élément de flux, tel que date, etc en agissant sur les noms des balises, ul, li, etc. Si vous avez quelque chose de plus élaboré en vue, n'hésitez pas à demander.
03-06-2010 20:46:25

calame

Pardon mais il ne s'agit pas de CSS. La question est : comment accéder aux balises <link> <title> <description> du [b]channel[/b] lui-même et non pas à celles des items. Merci.
04-06-2010 17:19:14

webmaster

En fait, c'est déjà fait par la fonction RSS_Tags. Cette fonction retourne un tableau associatif contenant pour clé le type, comme "title", "description", etc... On récupère ce tableau dans la fonction RSS_Channel:
function RSS_Channel($channel)
{
    global $RSS_Content;
    $items = $channel->getElementsByTagName("item");
    // Processing channel
    $y = RSS_Tags($channel, 0);
        ...
A ce moment on peut accéder à chaque élément, par exemple...
$desc = $y["description"];
"Je souhaiterais pouvoir agir sur les balises du channel <link> <title> <description> afin d'effectuer des modif de présentation / mise en forme." Cela se fait en CSS. "Mais voilà je n'arrive pas à trouver à quel moment l'affichage de ces infos se produisent." Tout est concaténé dans la variable $page qui est affichée globalement par une commande echo.
05-06-2010 15:25:58

calame

Merci, Je creuse ça et vous fournirai le code en partage et même pour inclusion dans le script si cela vous convient. Cordialement.
Forum

Personnaliser et paramétrer les affichages avec Lecteur RSS PHP

17-05-2010 13:43:51

didier_91

Bonjour, Tout d'abord un vrai merci pour ce script RSS et les explications en français. En étant "amateur", je suis arrivé à installer facilement ce script sur mon site et donc chez mon hébergeur. Je voudrais savoir s'il est possible (et comment?): 1- faire apparaitre la date (francisée) mais pas l'heure actuellement: 2010-05-12T15:12:45 idéalement: 12-05-2010 2- Description: n'afficher que les "x" premiers caractères de chaque description (par exemple les 120 premiers) 3- Agréger plusieurs sources plutôt qu'1 seule J'ai conscience que certaines questions peuvent dépasser le strict cadre de ce site, merci dans ce cas de m'indiquer des url pour y trouver des infos (cerise sur le gâteau: en français !) Cdt, Didier
17-05-2010 20:07:06

webmaster

Bonjour Pour convertir la date... Supprimer l'heure avec un substr: $date = substr($date, 0, 10); Réordonner les éléments, plus difficile:
  date = substr($date, 0, 10);
  $d = explode("-", $date);
  $date = $d[2]."-".$d[1]."-".$d[0];
Réduire la description, toujours avec substr:
$desc = substr($desc, 0, 120);
Pour les canaux multiples, le script les supporte s'ils sont intégrés dans un même flux, mais je ne l'ai pas vraiment testé. S'il y a plusieurs sources on appellera plutôt plusieurs fois la fonction RSS_display.
18-05-2010 12:23:03

didier_91

Un grand MERCI pour cette réponse rapide; ça marche nickel ! J'ai simplement changé $desc par $description puisque c'est ainsi que c'est "décrit" dans le rsslib téléchargé sur votre site. Pour le 2ème flux, j'ai écrit un 2ème appel dans la page web d'affichage rss-direct.php, ça fonctionne. Mais la date ne doit pas être formatée de la même façon au départ du flux, et donc le ré ordonnancement ne fait pas effet (et date en anglais !). Pourtant firefox me les affiche tous 2 de la même façon. http://www.lemoniteur.fr/cache/X_articles_rss2_121.xml http://feeds2.feedburner.com/Pixfan sauf recette "miracle" passe-partout, je ne vous demande pas de solution pour ces 2 flux, sachant que je souhaite "agréger" au moins 8 à 10 flux de sources différentes et que ces dates risquent à nouveau de mal s'afficher ... Merci encore Didier
Forum

Publier uniquement la description d'un flux

22-09-2008 08:01:06

tom

Bonjour J'utilise scriptol avec grand plaisr et cela fonctionne très bien. Grand merci. j'aimerais aujourd'hui adapter ce script pour pouvoir ne publier que le champ description du flux xml. Est-ce possible? J'imagine qu'il va falloir créer un rsslib_bis adapté et un appel spécial à une nouvelle fonction dans la page php malgré mes modestes tentatives, cela n'a évidement pas marché... :(( Pouvez-vous m'aider? Merci
25-09-2008 19:54:42

webmaster

Bonjour Effectivement, la librairie RSS lib, comporte une fonction pour n'afficher que le titre et le lien, et une autre pour afficher également la description, mais pour obtenir d'autres options il faut ajouter une fonction et supprimer les lignes de code correspondant à ce que l'on ne veut pas afficher. Le code de la fonction RSS_display() modifié devrait avoir les lignes suivantes:
$link = $article["link"];
$description = $article["description"];
$page .= "<li><a href=\"$link\">$description</a>";
Par ailleurs le lecteur RSS universel possède les mêmes fonctionnalités mais plus d'options.
05-10-2008 18:30:02

tom

Merci beaucoup Cela marche parfaitement

Photo dans un article RSS

07-11-2009 23:32:01

marcdenny

Bonjour j'ai installé l'exemple de fil RSS donné dans le tuto RSS. J'aimerai rajouter des photos dans les articles mais je n'y arrive pas. Merci de me bien vouloir m'aider. Cordialement Marc
08-11-2009 17:06:23

webmaster

Bonjour Est-ce que la balise image ne fonctionne pas?
 <channel>
    <title> </title>
    <link> </link> 
    <image>
        <url>http:///www.scriptol.fr/scriptol.gif</url>
        <link>http:///www.scriptol.fr/index.php</link>
    </image>
 </channel>
Sinon le moyen le plus simple serait d'avoir un simple lien d'image à l'intérieur de la description de l'article.
<img src="image.gif" />