Je voulais que le statut « refusé » me permette d’archiver les articles périmés.
Je me suis servie de l’article suivant (troisième méthode) avec l’aide de spipeurs du forum. Voici les étapes.
Première façon
– D’abord modifier « article.html »
- 1) Ouvrir article.html
- 2) Modifier la première ligne.
Si celle-ci est :<BOUCLE_principale(ARTICLES) {id_article}>
il faut écrire :<BOUCLE_principale(ARTICLES) {id_article}{statut==refuse|publie}> - 3) Toujours dans article.html, ajouter un filtre « Si oui », par exemple après le titre de l’article.
Voici ce filtre :[(#STATUT|=={refuse}|? {"Cet article est périmé. Il ne reste en ligne que pour mémoire"})]
Cela veut dire que, si l’article est « refusé » (donc ici archivé), la phrase « Cet article est périmé. Il n’est en ligne que pour mémoire » sera écrite. Si l’article est publié en ligne, la phrase n’y sera pas.
- 4) Enregistrer le fichier article.html ainsi modifié et l’envoyer vers le site distant dans le dossier « squelettes »
(si ce dossier n’existe pas, il faut le créer)
– Ensuite modifier « recherche.html »
- 1) Ouvrir recherche.html
- 2) Ajouter quelque part (par exemple à la fin) juste avant
</div><!--#contenu-->
<div style="background-color:#ffff00; padding:3px;">Attention, les articles ci-dessous sont anciens. <br />Ils restent en ligne pour mémoire.</div>
<B_art_rub_archiv>
#ANCRE_PAGINATION
<ul class="search">
<BOUCLE_art_rub_archiv(ARTICLES){recherche}{statut=refuse}{par points} {inverse}{pagination 5}>
<li><a href="article.php?id_article=#ID_ARTICLE">#TITRE</a></li>
</BOUCLE_art_rub_archiv></ul>
[<p class="pagination">(#PAGINATION)</p>]
</B_art_rub_archiv>- 3) Enregistrer le fichier recherche.html ainsi modifié et l’envoyer vers le site distant dans le dossier « squelettes »
– Enfin créer le statut « archivé »
- 1) Créer le fichier nommé local_fr.php ainsi constitué :
<?php
if (!defined("_ECRIRE_INC_VERSION")) return; $GLOBALS[$GLOBALS['idx_lang']] = array
('texte_statut_refuse' => 'archivé',
'texte_statut_poubelle' => '............',
'info_refuses' => 'Vos articles archivés',
'texte_statut_refuses' => 'archivés',
'info_tous_articles_refuses' => 'Tous les articles archivés',
)
?>
- 2) Ce fichier « local_fr.php » est à placer dans /squelettes/lang/. Si le sous répertoire n’existe pas, il faut le créer.
Et voilà, tout fonctionne !
Merci aussi à Bobof, Sylvain, Beurt, Jean-Christophe et autres spipeurs et Freebsnet
Deuxième façon : en créant un fichier « archive.html »
– D’abord créer « archive.html »
- 1) Ouvrir article.html
- 2) Modifier la première ligne.
Si celle-ci est :<BOUCLE_principale(ARTICLES) {id_article}>
il faut écrire :<BOUCLE_principale(ARTICLES) {id_article}{statut=refuse}> - 3) Toujours dans article.html, ajouter un avertissement, par exemple après le titre de l’article. Par exemple :
<div> Cet article est périmé. Il n'est maintenu en ligne que pour mémoire </div> - 4) Enregistrer le fichier article.html ainsi modifié en lui donnant le nom « archive.html » et envoyer archive.html vers le site distant dans le dossier « squelettes » (si ce dossier n’existe pas, il faut le créer)
– Ensuite modifier « recherche.html »
- 1) Ouvrir recherche.html
- 2) Ajouter quelque part (par exemple à la fin) juste avant
</div><!--#contenu-->
<div style="background-color:#ffff00; padding:3px;">Attention, les articles ci-dessous sont anciens. <br />Ils restent en ligne pour mémoire.</div>
<B_art_rub_archiv>
#ANCRE_PAGINATION
<ul class="search">
<BOUCLE_art_rub_archiv(ARTICLES){recherche}{statut=refuse}{par points} {inverse}{pagination 5}>
<li><a href="article.php?id_article=#ID_ARTICLE">#TITRE</a></li>
</BOUCLE_art_rub_archiv></ul>
[<p class="pagination">(#PAGINATION)</p>]
</B_art_rub_archiv>3) Enregistrer le fichier recherche.html ainsi modifié et l’envoyer vers le site distant dans le dossier « squelettes »
– Enfin créer le statut « archivé »
1) Créer le fichier nommé local_fr.php ainsi constitué (qui supprime la ligne « à la poubelle » et remplace « refusé » par « archivé ») :
<?php
if (!defined("_ECRIRE_INC_VERSION")) return; $GLOBALS[$GLOBALS['idx_lang']] = array
('texte_statut_refuse' => 'archivé',
'texte_statut_poubelle' => '............',
'info_refuses' => 'Vos articles archivés',
'texte_statut_refuses' => 'archivés',
'info_tous_articles_refuses' => 'Tous les articles archivés',
)
?>
2) Ce fichier « local_fr.php » est à placer dans /squelettes/lang/. Si le sous répertoire n’existe pas, il faut le créer.
Et voilà, tout fonctionne !
Compléter rubrique.html
On peut souhaiter que la liste des articles archivés apparaisse dans la rubrique où ils se trouvent. Dan sce cas on peut ajouter ceci, juste avant : </div><!--#contenu-->
[(#REM) Articles archivés ]
<h3>♦ Articles en archive :</h3>
Attention, les articles ci-dessous, anciens, sont peut-être périmés. <br />
Ils ne restent en ligne que pour mémoire.
<B_archiv>
<ul>
<BOUCLE_archiv(ARTICLES){branche}{statut=refuse}{par date} {inverse}{pagination 3}>
<li>
<a href="spip.php?page=archive&id_article=#ID_ARTICLE">#TITRE</a>
</li>
</BOUCLE_archiv></ul>
<p style="text-align:center;">Autres articles en archive : #PAGINATION </p>
</B_archiv> Détourner le modèle pour en faire un lien
Il s’agit d’une question d’accessibilité. Un mal voyant ne pourra pas cliquer sur une petite vignette correspondant à un document pdf. Il faut donc trouver le moyen de signaler ce document par une url, qu’on puisse obtenir sans trop se casser la tête. Voir la méthode dans un autre article

