Manuel:DeleteBatch.php
Version de MediaWiki : | ≥ 1.7 |
Fichier MediaWiki : deleteBatch.php | |
---|---|
Emplacement : | maintenance/ |
Code source : | master • 1.42.3 • 1.41.4 • 1.39.10 |
Classes : | DeleteBatch |
Détails
deleteBatch.php est un script de maintenance situé dans le maintenance
répertoire qui peut être utilisé pour supprimer plusieurs pages en même temps.
Options et arguments
Option/argument | Description | Nécessaire ? | Défaut |
---|---|---|---|
listfile | Un fichier où chaque ligne contient le titre d'une page à supprimer. | obligatoire | |
--u | Nom d'utilisateur qui sera montré dans les entrées de journal. Si laissé vide, les suppressions seront attribuées à un utilisateur appelé Script de suppression de pages. | optionnel | Delete page script |
--r | Motif des suppressions. Si vide, aucun motif n'est affiché dans les journaux. | optionnel | |
--i | Nombre de secondes à laisser passer après chaque suppression. | optionnel | 0 |
Utilisation
php maintenance/deleteBatch.php somepages.txt [ --u| --r| --i ]
(Ceci supprimera les pages contenues dans le fichier texte "somepages.txt")
$ php maintenance/deleteBatch.php deleteBatch.txt Page1 Deleted! Page2 Deleted! Page3 Deleted!
Sur un wiki avec des dossiers reliés, passer au dossier contenant LocalSettings.php et utiliser:
php ./maintenance/deleteBatch.php --conf ./LocalSettings.php --r "reason for deletion" ./deleteBatch.txt
Trucs et astuces
Si les titres des pages contiennent des caractères spéciaux (comme ä, ö, ü, etc.), veillez à enregistrer le fichier en encodage UTF-8. Sinon, le script risque de ne pas pouvoir trouver les noms de page correspondants dans la base de données !
Vous pouvez créer une liste de pages avec SQL ainsi :
mysql -e "select page_title from page where page_touched between 20150431000000 and 20150519000000 and page_namespace = 0 into outfile '/tmp/pagelist.csv'"
Ceci créerait une liste avec tous les titres de page touchés entre 2015-04-31 et 2015-05-19. Ceci pourrait être utile si votre wiki s'est fait attaquer par des spambots, et d'autres modifications ont été réalisées pendant cette période.
Autres espaces de noms
La commande ci-dessus ne couvre que l'Espace de noms principal. La base de données mysql pourrait ne pas connaitre le préfixe d'autres espaces de noms, donc il faut les faire un à un.
Par exemple, pour supprimer toutes les pages dans l'espace de noms Utilisateurs, avec la catégorie deleteme et pas d'autre texte:
mysql -e "select concat('User:',p.page_title) from page p INNER JOIN revision r ON p.page_latest = r.rev_id INNER JOIN text t ON r.rev_text_id = t.old_id where t.old_text = '{{deleteme}}' and p.page_namespace = 2 into outfile '/tmp/deleteme-user.csv'"
Voir aussi
- Extension:DeleteBatch – extension de page spéciale de ce script de maintenance.
- Manuel:DeleteRevision.php
- Manuel:DeleteOldRevisions.php