Prérequis
Vous avez créé avec La Fabrique un plugin qui propose un objet éditorial.
Avertissement : dans la suite de cet article il est question de prefixe
du plugin et du nom de l’objet
à prendre en compte. Il faudra les remplacer par la bonne valeur. C’est souvent la même valeur mais pas toujours.
Exemple : on veut que Corbeille prenne en compte l’objet ’definition
’ présent dans le plugin Dictionnaires
.
- prefixe ->
dictionnaires
- objet ->
definition
1 - Déclarer l’objet
Cette déclaration se fait en créant le squelette /prive/listes/corbeille_objets.html
.
Ce squelette affichera la liste des occurrences de l’objet à supprimer dans la page Corbeille.
- dans votre plugin, créer le répertoire
/prive/listes
; - dans ce répertoire, créer le fichier
corbeille_objets.html
avec le code suivant :
<B_objets>
<div class="liste corbeille-objets">
[<h3 class="titrem">(#GRAND_TOTAL|singulier_ou_pluriel{corbeille:prefixe_corbeille_un,corbeille:prefixe_corbeille_tous})</h3>]
[<p class='pagination'>(#PAGINATION)</p>]
<ul class='liste-items checkables'>
<BOUCLE_objets(OBJETS){statut}{pagination 5}{!par date}{recherche ?}>
<li class='item'>
<label for='objet-#ID_OBJET'><:corbeille:selectionner:></label><input type='checkbox' name='elements[]' id="objet-#ID_OBJET" value='#ID_OBJET'[ (#ID_OBJET|in_any{#ENV{elements}}|oui)checked='checked']/>
<h4>[##ID_OBJET - (#TITRE|sinon{<:info_sans_titre:>})]</h4>
<small>[(#DATE|affdate)][ (#DATE|heures)]:[(#DATE|minutes)]</small>
- #INTRODUCTION
<p class='actions'>[<a href='#URL_ECRIRE{objet,id_objet=#ID_OBJET}'><:corbeille:voir_detail:></a>]</p>
</li>
</BOUCLE_objets>
</ul>
[<p class='pagination'>(#PAGINATION)</p>]
</div>
</B_objets>
…et remplacer toutes les occurrences du mot ’objet’ (au singulier, pluriel et lettres capitales) par le type de l’objet
-
objet
-> ex. : livre -
objets
-> ex. : livres -
id_objet
-> ex. : id_livre -
#ID_OBJET
-> ex. : #ID_LIVRE -
(OBJETS)
-> ex. : (LIVRES)
De plus les balises #TITRE et #INTRODUCTION présentes dans le code ci-dessus n’auront peut être pas de sens pour votre objet éditorial. À remplacer probablement.
Option : créer les chaines de langue
Si vous avez inséré des chaines de langues dans le fichier /prive/listes/corbeille_objets.html
, pensez à les déclarer dans vos fichiers /lang/prefixe_xx.php
.
2 - Définir l’action « Supprimer la sélection » pour cet objet
Le plugin Corbeille introduit le pipeline corbeille_table_infos
qui permet justement cela.
2.1 Déclarer le pipeline corbeille_table_infos
Comme pour tous les pipelines, son activation se fait dans le fichier paquet.xml
de votre plugin (voir aussi à ce propos Déclarer un nouveau pipeline).
<pipeline nom="corbeille_table_infos" inclure="prefixe_pipelines.php" />
2.2 Ajouter les paramètres correspondants aux spécificités de votre objet
Dans le fichier prefixe_pipelines.php
de votre plugin, ajouter la fonction suivante :
function prefixe_corbeille_table_infos($param) {
$param['objets'] = array(
'statut'=>'poubelle',
'tableliee'=> array('spip_documents_liens'),
);
return $param;
}
Cet exemple montre le cas le plus courant, celui d’un objet avec :
-
statut
-> le statut de l’objet à prendre en compte pour les suppressions (obligatoire) ; -
tableliee
-> les liaisons à supprimer en même temps (optionnel).
Un troisième paramètre « table » permet de prendre en compte, pour une même table, plusieurs statuts.
Exemple : pour le plugin Forum, prendre en compte les status ’off
’ et ’privoff
’ de la table ’’spip_forum
function prefixe_corbeille_table_infos($param) {
$param['forum'] = array(
"forums_publics" => array(
"statut" => "off",
"table"=>"forum",
),
"forums_prives" => array(
"statut" => "privoff",
"table"=>"forum",
),
);
return $param;
}
Plus d’exemples
Vous trouverez aussi des exemples dans le plugin Corbeille lui même :
- déclarations d’objets : dans le répertoire
/corbeille/prive/listes
- définir des actions : dans
/corbeille/action/corbeille_vider.php
.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |