Avec
WikiNi, il est possible de supprimer une page sous quelques conditions :
- il faut que la page soit orpheline, c'est-à-dire qu'aucune page du Wiki ne fasse référence à cette page
- seul le propriétaire de la page peut la supprimer
Lorsque vous êtes propriétaire d'une page l'option "Supprimer" s'affiche alors en bas de page : un clic sur cette option supprime définitivement la page.
[Note : actuellement, les commentaires liés à une page ne sont pas supprimés.]
Il peut y avoir un problème pour effacer une page par laquelle on en a crée d'autres. Même après l'avoir rendu orpheline, il peut-être marqué qu'elle ne l'est pas. La solution que j'ai trouvé est bête est méchante : re-sauver (sans forcément modifier) toutes les pages qui ont ce lien d'héritage.
--
NoooZ
Discussions
[à effacer : j'ai déplacé et remanié le contenu pour plus de lisibilité]
Affichage conditionnel de l'option "Supprimer"
Serait-il possible de ne pas afficher "
Supprimer" en bas de la page quand elle n'est pas orpheline ? En effet, un message d'erreur (en anglais) nous l'indique ensuite, mais c'est inquiétant de le voir dans le bas quand on se promène dans nos propres pages, puisque cette opération est sans appel si on clique dessus par mégarde !
--
BernardMorineau
[...] c'est une bonne idée, mais qui risque d'augmenter la charge de travail pour l'affichage d'une page. Une solution serait d'ajouter une colonne
orphan à la table
wikini_pages qui serait mise à jour quand il faut (pas trivial, mais pas trop dur non plus je pense) et qui permettrait de tester cet état sans charge de travail supplémentaire, à l'affichage tout du moins.
--
ProgFou
Non affichage de l'option "supprimer" et action spéciale
Si le besoin de
BernardMorineau est d'éviter les bourdes, il est possible de ne jamais afficher l'option "Supprimer" et de réserver cette fonctionnalité à une action, où l'utilisateur renseignerai à la main le nom de la page à supprimer : la procédure est un peu plus lourde, mais la suppression de page est assez rare.
Avantages :
- pas de risque de suppression intempestive
- l'administrateur technique peut supprimer la possibilité de supprimer (en effaçant le fichier PHP correspondant à l'action)
Inconvénients :
- procédure un peu plus lourde
--
CharlesNepote
Suppression non définitive
Solution 1 : ajout de la date de suppression au modèle de données
Pour ma part je réfléchis à une solution simple qui consisterait à ne pas supprimer réellement les pages, mais les marquer effacées via une colonne
deleted dans la table
wikini_pages que l'on fixerait à
NOW() au moment du clic sur
Supprimer. Ainsi, même avec quelqu'un de mal-intentioné (on peut faire un script pour virer des pages en les rendant orpheline de force !), la base ne serait pas vraiment vidée. Ensuite, un nettoyage de la base serait possible (pour les administrateurs uniquement) via une fonction
PurgeDeleted($date) qui permettrait de purger toutes les pages effacées avant la date indiquée. Juste une idée comme ça, histoire d'augmenter un peu la sécurité sans ajouter de contrainte pour les utilisateurs
psp parts ...
--
ProgFou
Dans ce cas, il faut aussi penser au renommage d'une page. Puisque la solution actuelle est d'en créer une nouvelle en copiant son contenu, puis effacer l'ancienne quand les liens ont été mis a jour.
--
BernardMorineau
J'y réfléchis aussi vu que je viens de rencontrer le problème de renommage aussi ... Pour le moment je pense qu'une solution simple pourrait passer par la création d'un handler
/renamepage qui fonctionnerait exactement comme
/deletepage (test de l'accès puis test de page orpheline) mais qui renommerait au lieu de supprimer. À l'avenir il faudrait voir si ça vaut vraiment le coup d'implémenter quelque chose qui irait "toucher" le contenu des autres pages pour modifier tous les liens sur cette page (ouhlala, brulant comme sujet ça
ps3 parts), moi je suis pas trop pour ...
--
ProgFou
Solution 2 : sans modification du modèle de données : latest = 'N'
En ce qui concerne l'option de ne pas supprimer réellement une page, il suffit simplement de mettre la colonne
latest de la table wikini_pages à "N" .... et la page est "supprimée". Cela devrait donner l'équivalent sans modifier les tables. Et du coup on obtient la purge automatique des pages supprimer après un "certain temp" (comme pour les anciennes archives). Mais cela ne supprime pas le problème des pages non orpheline, car si tu supprime une page qui a des liens vers elle, tu casse des liens....et ca c'est surement pire que le reste ! --
GarfieldFr
J'y ai pensé aussi, mais ce qui m'embête dans ce cas là, c'est qu'on ne sait pas
quand la page a été effacée (depuis longtemps, ou aujourd'hui), et on risque donc d'effacer une très bonne page qui n'a pas été modifiée depuis longtemps, juste parce qu'on aura cliqué par mégarde sur
Supprimer et que le nettoyage automatique la déclarerait obsolète ; d'où mon idée de colonne
deleted qui conserverait cette précieuse information
console parts.
--
ProgFou
Pour reprendre la solution de
GarfieldFr, et pour que cette page ne subisse la purge qu'au bout du temps réglementaire, n'est-il pas possible de faire une nouvelle ligne dans la table wikini_pages (comme pour une modification), mais en mettant directement la colonne
latest de cette table à "N". Ainsi, cette page ne serait pas purgée trop rapidement. Une nouvelle ligne, c'est moins coûteux en espace qu'une nouvelle colonne. En ce qui concerne les liens sur cette page, on peut continuer à réserver cette procédure aux pages orphelines uniquement. Reste à voir la procédure de récupération de cette page.
--
BernardMorineau
C'est tout à fait possible, mais dans ce cas c'est l'information de dernière révision que l'on perd (ou plus exactement que l'on rend plus subtile à retrouver) !
--
ProgFou
Je suis plutôt favorable à la solution 2. J'admire le perfectionnisme de
ProgFou mais je pense qu'il faut être pragmatique : la solution 2 apporte presque tout ce que nous souhaitons... l'information de dernière révision ne me paraît pas fondamentale. --
CharlesNepote
Et c'est aussi plus simple à implémenter... :) C'est finalement ce que j'ai fait sur mon Wiki. --
ProgFou
bonsoir je cherche à savoir comment supprimer les comentairs d'une page ? et comment faire pour retirer l'option "commenter cette page" pour moi les commentaires sont plus que superflux et intenpestif sur mes pages... je n'arrive pas à les gerer donc je preferais supprimer l'option une bonne fois pour toute...
d'avance merci
-- crack4lod