Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Identifiez-vous Inscrivez-vous Accueil du forum Aide sur le forum

pagexl.com pour la création gratuite et facile de sites "one page" (page unique)

IMPORTANT: Avant de poster un message sur le forum n'oubliez pas :
1. d'effectuer une recherche sur le forum ainsi que dans l'aide en ligne TOWeb
2. de consulter les tutoriels vidéo sur YouTube et les dernières informations du blog de TOWeb
3. de consulter les tutoriels de Frangin62
Forum TOWeb|-TOWeb| |-Scripts & astuces pour votre site| | |-[RESOLU] Afficher la liste de vos derniers articles - afficher VOTRE flux RSS « sujet précédent | | sujet suivant »
Pages: [1] Bas de page Imprimer
Auteur Fil de discussion: [RESOLU] Afficher la liste de vos derniers articles - afficher VOTRE flux RSS  (Lu 5381 fois)
cicinelle
Sr. Member
****

Nombre de "j'aime" : 17
Messages: 286



WWW
« le: 11 Février 2012 à 17h38 »

Ce script vous permet d'afficher dans un paragraphe la liste des derniers articles que vous avez publié.

Il s'agit de l'exploitation de votre fichier XML que TOWeb fabrique pour générer les flux RSS.

Vous savez, le fameux flux RSS, auquel vous pouvez vous abonner.

Pour générer un flux RSS dans TOWeb, dans le logiciel TOWeb,  vous allez sur une RUBRIQUE de votre site .

Dans le dernier onglet tout à droite vous voyez RSS

Vous avez alors le choix d'activer les flux pour cette rubrique



à chaque fois que vous modifierez cette rubrique, TOWeb remettra à jour vos petites modifications dans le fichier XML

Ce fichier XML se trouve pour info dans _frame   feed.xml

- - - -

REVENONS AU SCRIPT ci dessous qui va afficher ce fichier  :

Vous pouvez choisir le nombre d'article à afficher

$compteurarticle<3

et le nombre de caractères du texte du paragraphe

$nbrcaract = 100

Cela ressemblera donc à ceci :

Histoire du jour
Je me demandais l'autre jour si ...
Recette de gateau
Pour cette recette vous aurez besoin ...

- - - -
Ce programme nécessite l'utilisation du PHP

PRE-REQUIS pour l'utilisation du PHP

- - - -

Voici le programme à copier dans un paragraphe

VERSION 01

LIT LE FICHIER XML dans l'ordre ou il est sauvé, ne montrera que les premiers articles d'une catégorie (d'une rubrique)

11/02/2012
- - - -

<html>
<h2>Derniers Articles du site</h2>
<?php
// Adaptation pour TOWeb du programme de php facile http://www.phpfacile.com/creer_un_site_web_en_php/parser_un_document_xml_2.php5 / Cs 2012
//Fichier
$fichier = "../_frame/feed.xml";

// fonction de traitement des balises ouvrantes
function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
{
   // mémorisation nom de la balise pour la fonction "fonctionTexte"
   global $derniereBaliseRencontree;
   global $flagdebut;
   $derniereBaliseRencontree = $nomBalise;
   if ($nomBalise=="ITEM"){$flagdebut=1;}
}

// fonction de traitement des balises fermantes
function fonctionBaliseFermante($parseur, $nomBalise)
{
   global $derniereBaliseRencontree;
   global $titre;
   global $lien;
   global $textearticle;
   global $compteurarticle;
   switch ($nomBalise)
   {
      case "ITEM" :
      
      // On quitte un bloc item, affiche le titre de l'article
      
      //mise en forme
      $meftitre ='<span style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; background-color: #FFFFFF; font-weight: bold; color: #000000;">';
      $meftextearticle ='<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: italic;">';
      
      echo $meftitre."<a href=".$lien.">".$titre."</a></span><br/>";
      // enleve les balises de mise en forme
      $textearticle=strip_tags($textearticle);
      //On choisis le nombre de caractères à afficher pour les paragraphes
      $nbrcaract = 800;
      
      $textearticle=substr($textearticle, 0, $nbrcaract );
      echo $meftextearticle.$textearticle."...</span><br />";
      
      $titre = "";
      $lien = "";
      $textearticle="";
      $compteurarticle++;
      
      break;
   }
   $derniereBaliseRencontree = "";
}

// fonction de traitement du texte qui est appelée par le "parseur"
function fonctionTexte($parseur, $texte)
{
   global $derniereBaliseRencontree;
   global $titre;
   global $lien;
   global $textearticle;
   global $flagdebut;

   // Le texte ou lien directement n'est pas affiché de suite
   // nous attendrons de rencontrer la balise fermante
   // Par défaut les noms des balises sont mises en majuscules
   if ($flagdebut==1)
   {

      switch ($derniereBaliseRencontree)
      {
         case "TITLE":
         $titre = $texte;
         break;
         case "LINK":
         $lien = $texte;
         break;
         case "DESCRIPTION":
         $textearticle .= $texte;
         break;
      }
   }   
}

// Création du parseur XML
$parseurXML = xml_parser_create();

// fonctions à appeler lorsque des balises ouvrantes ou fermantes sont rencontrées
xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
               , "fonctionBaliseFermante");

// nom de la fonction à appeler lorsque du texte est rencontré
xml_set_character_data_handler($parseurXML, "fonctionTexte");

// Ouverture du fichier
$fp = fopen($fichier, "r");
if (!$fp) die("Impossible d'ouvrir le fichier XML");

// Lecture ligne par ligne
while ( ($ligneXML = fgets($fp, 1024))and ($compteurarticle<3))
{
   // Analyse de la ligne
   // REM: feof($fp) retourne TRUE s'il s'agit de la dernière
   //      ligne du fichier.
   xml_parse($parseurXML, $ligneXML, feof($fp)) or die("Erreur XML");
}

xml_parser_free($parseurXML);
fclose($fp);
?>

</html>

« Dernière édition: 18 Février 2012 à 19h24 par cicinelle » Journalisée

ToWeb version PRO 3.1
cicinelle
Sr. Member
****

Nombre de "j'aime" : 17
Messages: 286



WWW
« Répondre #1 le: 11 Février 2012 à 22h23 »

Le fichier XML est rangé dans l'ordre des rubriques puis dans l'ordre des paragraphes

Si l'on demande à mon programme d'afficher les 3 dernières rubriques, il prendra les 3 premières du fichier XML.

Explication de l'architecture du fichier XML

Admettons que j'ai 2 rubriques :

- MES RECETTES

- MES CHANSONS

Je coche pour ces 2 rubriques  d'exploiter le flux RSS, c'est à dire d'indiquer le moindre changement que je fais à ces 2 rubriques.

J'avais déjà fait HIER 3 recettes nommées

Tarte à la boue
Flanc aux sardines à la fraise
Pâtes au chocolat et parmesan


Je crée aujourd'hui 1 nouvelle recette MAIS JE LA PLACE DANS LE DERNIER PARAGRAPHE TOUT EN BAS


Dorade de banane à la parisienne


Et bien inspirée je créé 2 nouvelles chansons, UN PARAGRAPHE à la suite de L'AUTRE

Mourir d'aimer mortellement d'amour létal
Mélodie lancinante du lundi en sdb


Le fichier XML les rangera ainsi :

<MES RECETTES>
                            
                            1 Tarte à la boue
                            2 Flanc aux sardines à la fraise
                            3 Pâtes au chocolat et parmesan
                            4 Dorade de banane à la parisienne

</MES RECETTES>


<MES CHANSONS>
                            1 Mourir d'aimer mortellement d'amour létal
                            2 Mélodie lancinante du lundi en sdb
</MES CHANSONS>

DONC

si je demande à mon premier programme VERSION01  d'afficher les 2 dernières création du jour

Il ne m'affichera pas mes 2 dernières création du jour :

Dorade de banane à la parisienne et Mourir d'aimer mortellement d'amour létal

Mais les 2 premières entrée du fichier XML

 1 Tarte à la boue
 2 Flanc aux sardines à la fraise

C'est dommage hein ? enfin non, c'est logique en fait.

Donc, je vous propose bientôt un autre programme qui va CLASSER un peu tout cela

- - -

« Dernière édition: 12 Février 2012 à 11h26 par cicinelle » Journalisée

ToWeb version PRO 3.1
cicinelle
Sr. Member
****

Nombre de "j'aime" : 17
Messages: 286



WWW
« Répondre #2 le: 12 Février 2012 à 20h45 »

Voici donc la version 02 du lecteur FEED XML du flux RSS

Cela donnera pour votre site quelque chose comme cela :

RUBRIQUE CUISINE

Recette de flan au poires
Pour cette recette vous aurez besoin de...

Recette de clafoutis
Je ne sais pas qui n'aime pas le clafoutis, tout le monde aime le clafoutis (l'âne)...


RUBRIQUE AÉROSPATIALE

Fabriquons une fusée
Pour cette recette vous aurez besoin d'un réacteur, d'oxygène liquide...

Marchons sur Mars
Je ne sais pas qui n'aime pas marcher sur mars, tout le monde aime...


- - - -
Vous l'aurez compris, l'affichage est ainsi structuré

RUBRIQUE 1
                     PARAGRAPHE 1
                             TEXTE 1
                     PARAGRAPHE 2
                             TEXTE 2
                     PARAGRAPHE 3
                             TEXTE 3
RUBRIQUE 2
                     PARAGRAPHE 1
                             TEXTE 1
                     PARAGRAPHE 2
                             TEXTE 2
                     PARAGRAPHE 3
                             TEXTE 3
- - - -

Ce que vous pouvez changer rapidement dans le programme :

NE PAS AFFICHER LES TITRES DES RUBRIQUES

Supprimez la ligne :

echo($mefcategory.$linkcategory.$scategory[$itc].$linkcategoryend."</span><br/>");


- - - - - -


AFFICHER LES TITRES DES RUBRIQUES ET METTRE UN LIEN SUR CES TITRES VERS LES RUBRIQUES

Supprimez les doubles barres // (et uniquement ces 2 doubles barres //) suivantes :


      //   $linkcategory = $slien[$itc];
      //   $posdiese = strrpos($linkcategory, "#");
      //   $linkcategory = "<a href='".substr($linkcategory, 0,$posdiese)."'>";
      //   $linkcategoryend =  "</a>";

- - - - -

CHOISIR LE NOMBRE DE PARAGRAPHES AFFICHÉS PAR RUBRIQUE

$nbrarticle_cat=4;

- - - - -

CHOISIR LE NOMBRE DE CARACTÈRES DE TEXTE DU PARAGRAPHE

$nbrcaract = 50;

- - - - -

LAISSER LA MISE EN FORME(les balises html) AGIR POUR LES PARAGRAPHES

supprimez cette ligne :

$texteartepure=strip_tags($stextearticle[$itc]);

- - - -

CHOISIR LA MISE EN FORME DE LA POLICE DE LA RUBRIQUE

$mefcategory ='<span style="font-family: Arial, Helvetica, sans-serif; font-size: 20px; font-weight: normal; ">';

CHOISIR LA MISE EN FORME DE LA POLICE DU PARAGRAPHE

$meftitre ='<span style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight: normal; color: #000000;">';


CHOISIR LA MISE EN FORME DE LA POLICE DU TEXTE

$meftextearticle ='<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: italic;">';



- - - - -

VOICI LE CODE A COPIER COLLER DANS UN PARAGRAPHE

- - - -

<html>
<?php
// cs20120212   
//Fichier
$fichier = "../_frame/feed.xml";

$compt=0;
$scategory[0]="";

// fonction de traitement des balises ouvrantes
function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
{
   // mémorisation nom de la balise pour la fonction "fonctionTexte"
   global $der_bal_renc;
   global $flagdebut;
   global $compt;
   $der_bal_renc = $nomBalise;
   if ($nomBalise=="ITEM")
   {
      $flagdebut=1;
      $compt++;
   }
}

// fonction de traitement des balises fermantes
function fonctionBaliseFermante($parseur, $nomBalise)
{
        global $der_bal_renc;
   $der_bal_renc = "";
}

// fonction de traitement du texte qui est appelée par le "parseur"
function fonctionTexte($parseur, $texte)
{
   global $der_bal_renc;
   global $titre;
   global $lien;
   global $textearticle;
   global $flagdebut;
   global $compt;
   global $scategory;
   global $stitre;
   global $slien;
   global $stextearticle;
   
   // Par défaut les noms des balises sont mises en majuscules

   if ($flagdebut==1)
   {

      switch ($der_bal_renc)
      {
         case "CATEGORY":
         $scategory[$compt]=$texte;
         break;
         
         case "TITLE":
         $stitre[$compt]=$texte;
         break;
         
         case "LINK":
         $slien[$compt] = $texte;
         break;
         
         case "DESCRIPTION":
         $stextearticle[$compt] .= $texte;
         break;
      }
   }   
}

// Création du parseur XML
$parseurXML = xml_parser_create();

// fonctions à appeler lorsque des balises ouvrantes ou fermantes sont rencontrées
xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
               , "fonctionBaliseFermante");

// nom de la fonction à appeler lorsque du texte est rencontré
xml_set_character_data_handler($parseurXML, "fonctionTexte");

// Ouverture du fichier
$fp = fopen($fichier, "r");
if (!$fp) die("Impossible d'ouvrir le fichier XML");

// Lecture ligne par ligne
while ( $ligneXML = fgets($fp, 1024))
{
   // Analyse de la ligne feof($fp) retourne TRUE s'il s'agit de la dernière ligne du fichier.
   xml_parse($parseurXML, $ligneXML, feof($fp)) or die("Erreur XML");
}

xml_parser_free($parseurXML);
fclose($fp);

// traitement des données

//mise en forme
$mefcategory ='<span style="font-family: Arial, Helvetica, sans-serif; font-size: 20px; font-weight: normal; ">';
$meftitre ='<span style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight: normal; color: #000000;">';
$meftextearticle ='<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: italic;">';

$flagcategory ="";
$nbrarticle_cat=4;

for ($itc=1 ; $itc <=$compt ; $itc++)
{
   //N'afficher qu'une fois la "category"
   if ($flagcategory<>$scategory[$itc])
   {
   
      //version avec lien pour la rubrique /extrait le lien
      //$linkcategory = $slien[$itc];
      //$posdiese = strrpos($linkcategory, "#");
      //$linkcategory = "<a href='".substr($linkcategory, 0,$posdiese)."'>";
      //$linkcategoryend =  "</a>";
      
      echo($mefcategory.$linkcategory.$scategory[$itc].$linkcategoryend."</span><br/>");
      $flagcategory=$scategory[$itc];
      $comptcategory =0;
   }
   if ($comptcategory < $nbrarticle_cat)
   {
      echo($meftitre."<a href='".$slien[$itc]."'>".$stitre[$itc]."</a></span><br/>");
      // enleve les balises de mise en forme
      $texteartepure=strip_tags($stextearticle[$itc]);
      //On choisis le nombre de caractères à afficher pour les paragraphes
      $nbrcaract = 50;
      $texteartepure=substr($texteartepure, 0, $nbrcaract );
      echo($meftextearticle.$texteartepure." ...</span><br/>");
      
      $comptcategory++;
   }
}

?>

</html>
« Dernière édition: 12 Février 2012 à 21h11 par cicinelle » Journalisée

ToWeb version PRO 3.1
cicinelle
Sr. Member
****

Nombre de "j'aime" : 17
Messages: 286



WWW
« Répondre #3 le: 15 Avril 2012 à 08h46 »

Correctif d'un BUG

l'apostrophe provoquait un bug et l'affichage partiel du titre

correctif à ajouter (ligne en gras)

// Lecture ligne par ligne
while ( $ligneXML = fgets($fp, 1024))
{
   $ligneXML=str_replace("&#39;", "´",$ligneXML);
   // Analyse de la ligne feof($fp) retourne TRUE s'il s'agit de la dernière ligne du fichier.
   xml_parse($parseurXML, $ligneXML, feof($fp)) or die("Erreur XML");
}
Journalisée

ToWeb version PRO 3.1
joglo
Newbie
*

Nombre de "j'aime" : 0
Messages: 19


WWW
« Répondre #4 le: 01 Mai 2012 à 12h03 »

Bonjour,

Est-ce que l'affichage fonctionne sans publier le site ?

Car en affichage, le code reste visible dans le paragraphe. Peut-être que le chemin de feed.xml n'est pas trouvé....ou autre ?

@ vous lire...
Journalisée
cicinelle
Sr. Member
****

Nombre de "j'aime" : 17
Messages: 286



WWW
« Répondre #5 le: 02 Mai 2012 à 05h48 »


Bonjour,
non cela ne marchera pas sans publier le site car il s'agit de php

Pré-requis pour recopier un script PHP
Journalisée

ToWeb version PRO 3.1
joglo
Newbie
*

Nombre de "j'aime" : 0
Messages: 19


WWW
« Répondre #6 le: 02 Mai 2012 à 10h55 »

C'est bien ce que je me disais, mais je préférai demander.

Je teste, car c'est très intéressant. Merci.  Cool
Journalisée
RaiVig
Sr. Member
****

Nombre de "j'aime" : 6
Messages: 273



WWW
« Répondre #7 le: 09 Avril 2014 à 04h37 »

Bonjour,
Peut-on adapter ce script pour la version 5 de Toweb ?
J'ai tenté un copier/coller tel quel, mais ça ne donne absolument rien ....
Merci   Clin d'oeil
Journalisée

cicinelle
Sr. Member
****

Nombre de "j'aime" : 17
Messages: 286



WWW
« Répondre #8 le: 09 Avril 2014 à 06h57 »

est ce que le feed.xml est toujours au même endroit dans l'arborescence du serveur ?

$fichier = "../_frame/feed.xml";

Ou encore, est ce que votre site supporte le php ?

est ce que version 5 permet l'insertion de code entouré de <html></html> ?

Je ne peux pas tester la version5 qui s'oriente à mon goût vers plus de clef en main gadget et moins de mise en page vraiment adaptable. J'entends vraiment, vraiment adaptable,

 je veux des icônes dans le menu en bas à droite qui ne bouge pas quand je descend la page ....
Journalisée

ToWeb version PRO 3.1
RaiVig
Sr. Member
****

Nombre de "j'aime" : 6
Messages: 273



WWW
« Répondre #9 le: 09 Avril 2014 à 09h17 »

Bonjour,
Merci pour la réponse...
Oui le PHP est supporté.

Quant à mon fichier:   $fichier = "../_frame/feed.xml";
il se trouve sur mon site: (hébergeur) : /www/rss.xml

Oui, je peux insérer des codes entourés de <html> </html>

Je n'y connais rien en programmation ....  Clin d'oeil
« Dernière édition: 09 Avril 2014 à 11h04 par RaiVig » Journalisée

jacmgt
Hero Member
*****

Nombre de "j'aime" : 60
Messages: 2020



WWW
« Répondre #10 le: 16 Avril 2014 à 07h09 »

... Je ne peux pas tester la version5 qui s'oriente à mon goût vers plus de clef en main gadget et moins de mise en page vraiment adaptable...

  Huh?  (on peut l'utiliser telle quelle pour faire un site pas trop mal foutu, sans connaissance spécifique, mais on peut aussi intervenir un peu partout comme avec les anciennes versions, au détriment parfois de son aspect "responsive", ce qui est un de ses gros avantages).

   Toi qui n'es pas une débutante dans le domaine, tu devrais arriver à te faire plaisir et à sortir des réalisations intéressantes ... (dès que j'ai un moment, je vais tester ton script de flux rss, qui m'intéresse pour un futur site).
Journalisée

RaiVig
Sr. Member
****

Nombre de "j'aime" : 6
Messages: 273



WWW
« Répondre #11 le: 27 Avril 2014 à 03h58 »

je reviens à la charge... faisable ou non sur V5 ??
j'ai fait des copier/coller mais évidemment tel quel, ça ne marche pas
N'y connaissant rien en langage de programmation...

Pourtant, c'est un script qui me plairait bien...et qui serait bien utile

Merci pour vos lumières
 
Journalisée

wubijacq
Full Member
***

Nombre de "j'aime" : 2
Messages: 130


newbie or not newbie


WWW
« Répondre #12 le: 21 Octobre 2019 à 21h19 »

Bonjour cicinelle et merci pour ton tuto
Mon site est wubijacq.com et je peux voir mes flux en allant à
wubijacq.com/_frame/feed.xml
Pourquoi voir mes flux dans un paragraphe de mon site alors que ce lien m'affiche proprement mes flux?
Mon site fonctionne tjs avec TOWeb 4 où j' ai créé un dossier /rwd   responsive.
j' aimerai bien que certaines de ses rubriques apparaissent dans le fichier xml.
Cordialement
 Jacques
Journalisée

hébergement:Runpark (VOX)-version4-Firefox-Opera-Vivaldi-IE-w7-Ubuntu
wubijacq
Full Member
***

Nombre de "j'aime" : 2
Messages: 130


newbie or not newbie


WWW
« Répondre #13 le: 19 Janvier 2020 à 19h19 »

Bonjour cicinelle et merci pour ton tuto
Mon site est wubijacq.com et je peux voir mes flux en allant à
wubijacq.com/_frame/feed.xml
Pourquoi voir mes flux dans un paragraphe de mon site alors que ce lien m'affiche proprement mes flux?
Mon site fonctionne tjs avec TOWeb 4 où j' ai créé un dossier /rwd   responsive.
j' aimerai bien que certaines de ses rubriques apparaissent dans le fichier xml.
Cordialement
 Jacques
Oops, j' ai compris:
 Le code est bon. Il faut le mettre dans une page PHP à part, par exemple rss.php et faire un lien vers cette page depuis une ou plusieurs de vos rubriques.
Journalisée

hébergement:Runpark (VOX)-version4-Firefox-Opera-Vivaldi-IE-w7-Ubuntu
Pages: [1] Haut de page Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  


Cliquez ici pour vous abonner au flux RSS du forum  -  
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines