SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

51 visiteurs en ce moment

[14 commentaires]

Syndiquer par mot-clef (spip 1.7)

samedi 25 décembre 2004, par romain (aka LeJamaisContent !)

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati

la distrib standard offre la possibilité de syndiquer des sites rubrique par rubrique. Au prix d’une courte modif, on peut avoir une syndication en fonction d’un mot-clef...

situation :

Je gère un site "maman_poule" dans lequel je souhaite faire apparaître les productions de sites "poussins".


Problème : les contenus des différentes rubriques de ces sites ne sont pas tous exempts de... scories (les productions des poussins en difficultés sont parfois surprenantes... dans leur diversité) et le nombre de rubriques y est volontairement restreint.
Dans ces conditions, décider de syndiquer c’est donc choisir entre tout-ou-rien et/ou bloquer-débloquer les liens un par un tous les soirs...

solution proposée : syndiquer les mot-clef

  1. sur chaque site poussins, je duplique backend.php3 et backend-dist.html

  2. je renomme les copies en backend-mot.php3 et backend-mot.html
  3. j’édite backend-mot.php3 pour qu’il appèle backend-mot.html :

    $fond = "backend-mot";
  1. ensuite, j’édite backend-mot.html :
    // je remplace
            <BOUCLE_10recents(ARTICLES){lang ?}{branche ?}... >
    // par
            <BOUCLE_10recents(ARTICLES){lang ?}{id_mot ?}... >

• Dans la version d’origine, le critère branche retourne l’ensemble des articles de la rubrique ET de ses sous-rubriques. Comme il n’est pas possible d’appeler directement une branche en faisant par exemple branche=42 on passe la valeur de branche via l’environnement lors de l’appel de la fonction.
• Dans la version modifiée, s’agissant de mots-clefs et plus de rubriques, on pourrait écrire l’ID du mot clef qui nous intéresse "en dur" mais ça ne serait guère souple. Il est bien plus facile d’utiliser là encore le " ?", c’est à dire de faire une boucle générique puis, lors de l’appel de celle-ci, d’indiquer la valeur à mettre dans notre variable d’environnement.

  1. enfin, je sauvegarde le tout et l’uploade en ftp sur le site poussins
  2. Là, je note le numéro d’id (xxx) du mot que je veux syndiquer (www.le_site_poussin.net/mot.php3 ?id_mot=xxx)
  3. puis, dans le site "maman_poule", je syndique le site poussin avec un lien sur le backend-mot.php3
    // je remplace xxx par l'id du mot-clef que je souhaite remonter
    www.leSitePoussin/backend-mot.php3?id_mot=xxx

Dès lors, le site "maman_poule" verra s’afficher les articles du site poussin affublés du mot-clef choisi et non plus tous les articles de telle ou telle rubrique. Il suffira donc au webmestre du site "poussin" de créer un mot-clef "ça_remonte" ou "notre_best_of" pour choisir lui-même ce qu’il fera publier vers le site "maman_poule".

pour aller un chouillat plus loin

- rendre la sélection de ces nouveaux backend accessibles aux rédacteurs sans avoir à noter de n° d’id sur un bout de papier...


Maintenant que mes deux nouveaux fichiers (backend-mot.html et backend-mot.php3 sont sur chaque site "poussin" (et même sur le site "maman_poule"), il convient d’informer les rédacteurs de cette nouvelle possibilité. On va leur permettre de faire du copier/coller :

  1. J’édite donc maintenant le fichier ecrire/synchro.php3

  2. je repère la ligne "$activer_breves = lire_meta(’activer_breves’) ;"

  3. et juste au-dessus (ou en-dessous, c’est une affaire de goûts), je colle :

    /// suivi RSS par mot clef chez nous le groupe des mots-clefs syndiqué = groupe 8
    /// à faire : remplacer le blabla par une chaine dans le fichier lang
    echo "<p>"._L("Vous pouvez aussi limiter la syndication aux th&egrave;mes qui vous int&eacute;ressent :")."</p>";

    $query = "SELECT * FROM spip_mots WHERE id_groupe=\"8\" ORDER BY titre";
    $result = spip_query($query);

    if (spip_num_rows($result) > 0) {
      echo "<ul>";

      while($row=spip_fetch_array($result)){
         $id_mot=$row['id_mot'];
         $titre_mot = typo($row['titre']);
                           
         echo "<li><a href='$adresse_site/backend-mot.php3?id_mot=$id_mot'><img src='img_pack/xml.gif' border='0' align='middle'> &nbsp; $titre_mot</a>\n";
         }
      echo "</ul>";
    }
  1. enfin, je sauvegarde le tout et l’uploade en ftp sur les sites "poussins" et sur le site "maman_poule". Désormais, le rédacteur de passsage pourra accèder à la liste de nos "mots-clefs syndiqués" :

Retour en haut de la page

14 Messages de forum

Voir toute la discussion

1 | 2

  • Répondre à ce message

    26 septembre 2006 08:41 , par Birdy

    Bon, on approche du but : j’ai plus d’articles qui s’affichent, mais ça ne dépasse par le nombre de 10. Malgré que les critères soient tous avec "20" ou "tous".

  • Répondre à ce message

    25 septembre 2006 19:00 , par romain (aka LeJamaisContent !)

    en cadeau bonux, la possibilité de syndiquer les articles selon la langue dans laquelle ils ont été rédigés.

  • Répondre à ce message

    25 septembre 2006 17:34 , par romain (aka LeJamaisContent !)

    ça peut venir de backend-mots.html lui-même.

    Dedans, à la fin, on trouve normallement :

    Tu peux jouer sur les critères age< xx ou 0,10. Tu peux essayer tous (ou ’tout’,... voilà que j’ai un doute...) jusqu’à trouver le juste équilibre entre tout, trop et trop peu.

    bon règlages !

  • Répondre à ce message

    25 septembre 2006 10:00 , par Birdy

    Ben voilà, le problème est résolu : mon fichier backend-mots était dans le dossier squelettes et non dist... Par contre, j’en ai découvert un autre : j’ai environ un quinzaine d’article avec le mot clé en question et seuls trois de ces articles apparaissent sur le site récepteur. Pourquoi les autres restent-ils cachés ?

  • Répondre à ce message

    24 septembre 2006 16:12 , par romain (aka LeJamaisContent !)

    Comme je viens de comprendre (un peu) la création des plugins, j’ai adjoint à la contrib une version fonctionnelle à placer dans le répertoire _plugins_ à la racine du site.

    Ok, ça règle pas ton problème,
    mais bon... ça fonctionne en évitant pas mal de manip.

    rom

  • Répondre à ce message

    24 septembre 2006 15:51 , par ouloul

    Bon, je suis arrivé dans le saint des saints, j’ai tout modifié comme indiqué. Le gros problème, c’est que quand je veux syndiquer le site poussin à partir du site poule, seul le fichier backend de base apparaît. Backend-breves et backend-mots n’apparaissent jamais. Conclusion, j’ai chaque fois tous les articles de toutes les rubriques qui sont syndiqués...

    Où est le problème ?

  • Répondre à ce message

    23 septembre 2006 20:56 , par Birdy

    Ben je dois avoir un problème quelque part car j’ai beau vouloir me connecter, j’ai systématiquement un message d’erreur

    "Pour vous identifier de façon sûre sur ce site, vous devez accepter les cookies. Veuillez régler votre navigateur pour qu’il les accepte (au moins pour ce site)."

    Pourtant, je les acceptent ces cookies...

  • Répondre à ce message

    23 septembre 2006 20:20 , par romain (aka LeJamaisContent !)

    "ton lien file vers l’espace privé où je n’ai pas le droit d’aller."

    mais si,
    mais si !

    C’est simple, rapide, sans danger ;-)
    Et puis l’autre côté du miroir permet de s’affranchir des délais de publication qui sont parfois (euh... ont pu être ;-) "un peu long" (parfois).

    Sur la page d’accueil, un login (que tu inventes, plus de 5 lettres) et une adresse mail vailde pour récupérer ton password (que tu pourras modifier une fois à l’intérieur). C’est torché en cinq minutes.

    rom

  • Répondre à ce message

    23 septembre 2006 16:23 , par Birdy

    Bravo. Aussitôt dit... Vivement qu’il soit publié car pour l’instant ton lien file vers l’espace privé où je n’ai pas le droit d’aller...

    En tout cas merci, j’ai hâte d’essayer.

  • Répondre à ce message

    23 septembre 2006 16:01 , par romain (aka LeJamaisContent !)

    Pour une 1.9.1, il faut se référer à la nouvelle version de l’article : ici...

    Voir en ligne : pour une version 1.9, 1.9.1 ou 1.9.2 alpha c’est par ici...

1 | 2

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0