Génération automatique d'articles

Bonjour, je débute complètement dans SPIP et je n'ai peut-être pas
l'approche la plus simple pour mon problème.

  Voici ce que je veux faire. J'ai une rubrique "Pages persos" avec
une sous rubrique par personne. Dans chacune de ces sous-rubriques, il
n'y a qu'un seul article correspondant à la page personnelle (le
squelette est configuré pour afficher automatiquement l'intégralité de
l'article quand on visite la sous rubrique).

  J'ai une fonction php qui permet d'avoir la liste des publications
pour une personne donnée. Cette liste est beaucoup trop longue pour
être insérée à la fin de la page personnelle. Je voudrais donc
rajouter automatiquement dans le squelette de cette rubrique un lien
vers un article contenant cette liste en passant à cet article le nom
de l'auteur (extrait par exemple du titre de la page).

  Je me pose donc un certain nombre de questions pour lesquelles je
n'ai pas trouvé la réponse dans la documentation (j'ai sans doute mal
cherché):

_ Sous quelle forme doit être ce lien (et comment le construire) ?

_ Quel sera le fichier correspondant dans le répertoire squelette ?

_ En haut de la page, spip indique au visiteur rubrique et sous
rubrique. Quel est le moyen le plus simple pour que les informations
affichées soient cohérentes avec le reste du site ?

  Merci d'avance
  

Salut,

L'inconvénient d'une fonction php c'est qu'elle ne pourra pas bénéficier du cache spip. N'y a-t-il pas moyen de faire autrement pour récupérer les publications (p.ex. fil RSS) ?

Sinon au niveau conception je ferais autrement. Il existe un statut visiteur pour les auteurs. Le visiteur ne peut pas accéder à l'espace privé de Spip. Donc tu pourrais faire de chaque personne un auteur-visiteur.

Dans ta rubrique "pages persos", tu peux créer une page par personne, dont l'auteur serait le visiteur correspondant. Ce qui te permettra d'afficher la page perso à l'aide d'une boucle auteurs.
De plus tu pourras créer un squelette publications.html, qui afficherait les publications d'un auteur. Et donc afficher la page des publications avec le lien #URL_PAGE{publications, id_auteur=#ID_AUTEUR}

BMR

Fabrice a écrit :

Bonjour, je débute complètement dans SPIP et je n'ai peut-être pas
l'approche la plus simple pour mon problème.

  Voici ce que je veux faire. J'ai une rubrique "Pages persos" avec
une sous rubrique par personne. Dans chacune de ces sous-rubriques, il
n'y a qu'un seul article correspondant à la page personnelle (le
squelette est configuré pour afficher automatiquement l'intégralité de
l'article quand on visite la sous rubrique).

  J'ai une fonction php qui permet d'avoir la liste des publications
pour une personne donnée. Cette liste est beaucoup trop longue pour
être insérée à la fin de la page personnelle. Je voudrais donc
rajouter automatiquement dans le squelette de cette rubrique un lien
vers un article contenant cette liste en passant à cet article le nom
de l'auteur (extrait par exemple du titre de la page).

  Je me pose donc un certain nombre de questions pour lesquelles je
n'ai pas trouvé la réponse dans la documentation (j'ai sans doute mal
cherché):

_ Sous quelle forme doit être ce lien (et comment le construire) ?

_ Quel sera le fichier correspondant dans le répertoire squelette ?

_ En haut de la page, spip indique au visiteur rubrique et sous
rubrique. Quel est le moyen le plus simple pour que les informations
affichées soient cohérentes avec le reste du site ?

  Merci d'avance
  

BMR <bmr <at> ediweb.org> writes:

Salut,

L'inconvénient d'une fonction php c'est qu'elle ne pourra pas bénéficier
du cache spip. N'y a-t-il pas moyen de faire autrement pour récupérer
les publications (p.ex. fil RSS) ?

  Je ne sais pas comment adapter le fil RSS du gestionnaire de bibliographie
(wikindx), pour faire ce que je veux (et je ne suis pas sûr que ce soit très
simple). Le gestionnaire de bibliographie est sur un autre ordinateur. J'ai
vaguement bidouillé wikindx pour pouvoir appeler une page avec comme argument
auteur, groupe et années recherchées et qui en échange renvoie un fichier
html contenant la bibliographie associée. Mon script php fait essentiellement
un appel vers wget, puis une inclusion du fichier téléchargé.
  Par contre, j'ai mis le php dans un plugin (à la réflexion, j'aurais sans
doute dû utiliser un modèle).

Par souci de clarté sur ce que je veux réaliser, même si c'est un peu long,
voici un exemple de ce que j'ai déjà fait (et qui marche). J'ai créé une
rubrique pour chacun des trois groupes. Ensuite, j'ai adopté le squelette suivant
(mis dans rubrique-4.html et dérivé du kit SPIP CNRS):

«
<?php $type_page='rubrique'; ?>

<INCLURE{fond=entete}{id_rubrique}{lang}>

<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}>

<INCLURE{fond=rubrique_corps}{id_rubrique}{lang}>

<!-- Liste des articles eventuels de la rubrique

<BOUCLE_articles(ARTICLES){lang ?}{id_rubrique}{doublons}{par num titre}>
<div class="resume">
  [<span class="vignette">(#LOGO_ARTICLE)</span>]
  <h3><a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a></h3>
  [<p class="soustitre">(#SOUSTITRE)</p>]
  <p>[(#INTRODUCTION)]</p>
  <p class="suite"><a href="#URL_ARTICLE"><:lire_la_suite:></a></p>
</div>
</BOUCLE_articles>
-->
<!-- Liste des sous-rubriques eventuelles de la rubrique -->

<B_sous_rubriques>
<div class="autres">
  <p><:sous_rubriques:>&nbsp;:</p>
  <ul class="liste-liens">
    <BOUCLE_sous_rubriques(RUBRIQUES){id_parent}{par num titre}>
    <li><a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a></li>
    </BOUCLE_sous_rubriques>
  </ul>
</div>
</B_sous_rubriques>

</BOUCLE_rubrique_principal>
<p><:aucune_rubrique:></p>
<//B_rubrique_principal>

[(#TITRE|Affiche_Bibliographie{#ID_RUBRIQUE})]

<INCLURE{fond=pied}{lang}>
»
Le rendu donne quelque chose du genre
Bibliographie du groupe xxx

Année 2006
référence 1
référence 2
référence 3
..
Année 2005
...

  Je pensais qu'en procédant de la sorte le système de cache de SPIP pouvait
intervenir. Mais bon, s'il faut, je peux toujours faire mon propre système de
cache, ça fait partie des choses que je sais faire.

Sinon au niveau conception je ferais autrement. Il existe un statut
visiteur pour les auteurs. Le visiteur ne peut pas accéder à l'espace
privé de Spip. Donc tu pourrais faire de chaque personne un
auteur-visiteur.

Dans ta rubrique "pages persos", tu peux créer une page par personne,
dont l'auteur serait le visiteur correspondant. Ce qui te permettra
d'afficher la page perso à l'aide d'une boucle auteurs.
De plus tu pourras créer un squelette publications.html, qui afficherait
les publications d'un auteur. Et donc afficher la page des publications
avec le lien #URL_PAGE{publications, id_auteur=#ID_AUTEUR}

  J'aurais sans doute préféré une solution plus automatisée, mais ça devrait
faire l'affaire. Il faudra juste que je vérifie ce qui se passe lorsque la page
perso d'une personne n'est pas écrite par cette personne (on a quelques
personnes qui ne rempliront jamais leur page elle mêmes). En tous cas, merci
beaucoup pour ton aide.