Rechercher remplacer

Ce plugin permet de simplement rechercher une chaine dans les champs textes de la base de donnée, et éventuellement de la remplacer par une autre chaine.

Cet outil peut servir tant à l’administrateur d’un site, qu’à son rédacteur en chef.

Attention : les remplacements affectent tous les objets sélectionnés et ne peuvent pas être annulés. En cas de risques de maladresse, faites une sauvegarde complète de la BDD avant d’utiliser le remplacement.

L’installation et l’activation du plugin se font comme pour tout plugin.

Une fois activé, le plugin propose une nouvelle entrée Recherche / Remplace dans le menu Maintenance de la partie privée, et permet de là :
-  de saisir une chaîne à rechercher,
-  de rechercher toutes les occurrences de cette chaîne dans les champs éditables (ou si non declarés, dans les champs versionnés) de type text ou varchar des objets SPIP [1],
-  affiche les résultats de la recherche par type d’objet avec : le nombre d’occurrences dans chaque objet.
-  présente le contexte de chaque occurrence avec les caractères juste avant et juste après
-  en option, de saisir une chaîne de remplacement, pour
-  demander le remplacement par la 2e chaîne de toutes les occurrences trouvées de la première chaîne,
Lors de la demande de confirmation, le remplacement est sélectionnable type par type (on peut ne remplacer que dans les articles par exemple).

Seuls les Administrateurs complets (non restreints) sont autorisés à utiliser ce plugin.

Paramétrage webmestre

-  Le webmestre peut personnaliser la longueur du texte contexte affiché pour chaque occurrence de la chaîne cherchée. Pour cela il définit la constante RECHREMP_CONTEXTE_NB_CHARS. Sa valeur indique la longueur du texte contexte présent avant et après chaque occurrence. Si elle vaut 0, le détail des occurrences n’est pas affiché du tout. Par défaut, 20 caractères avant et 20 caractères après sont affichés.

-  Le webmestre peut personnaliser l’affichage de chaque objet résultat en définissant la constante RECHREMP_INFO_RESULTAT_A_GENERER dans le fichier d’options du squelette ou d’un plugin. Pour cela, il spécifie un autre champ ’info’ que la valeur par défaut qui est ’titre’. Cette autre valeur peut être un champ existant ou bien ce peut être une info calculée par une fonction generer_${info}_${type_objet}($id, $objet) et/ou generer_$info_entite($id,$type,$objet) qu’il doit également définir.

Développements envisageables

Vos contributions sont bienvenues si vous voulez étendre les possibilités de ce petit outil bien pratique :
-  paramétrer plus finement le champ d’application de la recherche ou du remplacement : dans telle rubrique seulement ou dans telle liste de rubrique seulement...
-  permettre à un administrateur partiel d’accéder à l’outil et de faire des remplacements dans ses rubriques seulement.
-  permettre une recherche par expression régulière : fait par Marcimat en mars 23.

Notes

[1Sont exclus : messages, dépôts, paquets et plugins..

L’icone était diffusée sous licence LGPL par everaldo.com

Discussion

9 discussions

  • 5
    liberte

    Bonjour,
    Sous Spip 4.2 Rechercher-remplacer trouve 1456 occurrences de <media
    mais lorsque je demande de remplacer par <doc , après validation, je reçois comme résultat :

    Résultat du remplacement« <media »
    Aucun remplacement sur les Articles

    Rien n’a été remplacé.

    Que puis-je faire ?

    • Je ne reproduis pas.
      Tu coche bien la case « Articles » avant de demander le remplacement ?

    • Tout marche bien en fait.

      J’avais bien coché la case article mais pas celle qui sélectionne tous les résultats trouvés et que je n’avais pas remarquée. Je validais directement et comme rien n’était sélectionné...
      J’aurai une demande d’amélioration (trop tard pour moi et mes 134 occurrences). Y aurait-il un moyen de revenir en cas d’erreur une fois le remplacement finalisé ?

    • Pour annuler le remplacement, il faut avoir fait une sauvegarde de la BDD juste avant, pour la réinstaller juste après. Mais il est plus simple de ne pas faire le remplacement si c’est ça le but.

    • Il faut donc être très prudent et ne jamais faire d’erreur, oubli, faute de frappe dans le choix du mot de remplacement.
      Ma BD dépasse la limite de sauvegarde de la BD interne à Spip. De plus s’il faut faire une sauvegarde pour chaque changement, c’est assez lourd.

      Quoi qu’il en soit, c’est un bon outil pour mes besoins.

    • Je n’ai jamais eu de pb en faisant des remplacements mais effectivement il faut faire attention à ne pas faire d’erreur vu que c’est un changement global, qui peut impacter plusieurs articles.
      Fort heureusement, la sauvegarde de la BDD zipée se fait en 2 clics une fois que phpMyAdmin est ouvert.

    Répondre à ce message

  • 2
    Gilles Caffiaux

    Bonjour,
    Je suis passé en PHP 7.3.26 du coup j’ai désactivé le couteau suisse pour que cela fonctionne suite à cela toutes mes photos étaient en portfolio doc et n’apparaissent plus en public. Avec récupérer - remplacer j’ai converti en img mais les fichiers PDF qui doivent rester en doc sont passés en img Avez vous une combine pour remettre tous ces PDF en doc ? svp.
    Cordialement
    Gilles
    https://cgsebdeb.fr/

    • Salut, pourquoi donc est ce que passer à PHP 7.3 a nécessité tout ça ? Pour le CS je peux comprendre mais ça devrait pas changer la manière avec laquelle les image sont gérées. Ou peut être tu es passé à SPIP 3.3 aussi ? Et dans ce cas il y a un tout nouveau plugin pour assurer la compatibilité des images : https://git.spip.net/spip-contrib-extensions/historique_spip32_documents (je sais pas s’il est fini et prêt à l’usage)... mais il faudrait restorer la version originale des textes. Là pour gérer tes textes modifiés, il faudrait chercher par regexp : /<img([^>]+)\.pdf/i et remplacer par <doc$1.pdf" mais rechremp le fait pas...

    • Merci pour ta réponse ! Non je ne suis pas passé en SPIP 3.3 je suis tjrs en 3.2.8, mes images sont liés à mes articles « <doc2...|...> » par exemple avant les images étaient déposées dans le portfolio, depuis que j’ai désactivé le couteau suisse il a fallu que je sorte toutes les images du portfolio et les passer en img, je le fais actuellement en manuel, mais c’est un bouleau laborieux, à suivre...

    Répondre à ce message

  • 1

    Bonjour,

    C’est nouveau, cela vient de sortir.... et cela m’aurait bien servi !

    J’ai complètement refondu (à la mano) la structuration d’un site :
    -  changement de rubriques, de secteurs....
    -  déplacement d’articles, de logos,

    Je ne connaissais pas ; dommage pour moi.
    Merci JLuc

    • Cette fois-ci, je m’en suis souvenu : bien pratique pour revenir à la définition traditionnelle des inscrustions d’images embarquées dans les textes d’articles, après un détour un peu trop hatif vers une SPIP 3.3-dev, qui les écrivait <mediaXXX|insert|center>.

      Pas la peine de modifier le reste de la chaine, les filtres (en particulier ici |insert sont simplement ignorés par SPIP !

      Merci

    Répondre à ce message

  • Nouveau : affichage du contexte des occurrences

    Le contexte de chaque chaîne trouvée s'affiche aussi, avec les caractères immédiatement à gauche et à droite.
    
    Le webmestre peut personnaliser la longueur du texte contexte affiché pour chaque occurrence de la chaîne cherchée. Pour cela il définit la constante RECHREMP_CONTEXTE_NB_CHARS. Sa valeur indique la longueur du texte contexte présent avant et après chaque occurrence. Si elle vaut 0, le détail des occurrences n’est pas affiché du tout. Par défaut, 20 caractères avant et 20 caractères après sont affichés.

    Répondre à ce message

  • Nouveau : paramétrage de l’affichage

    Dans un fichier d'options on peut personnaliser l'affichage de chaque ligne de résultats via la constante RECHREMP_INFO_RESULTAT_A_GENERER en spécifiant un autre champ que le titre ou avec une 'info' calculée par une fonction generer_${info}_${type_objet}($id, $objet) et/ou generer_$info_entite($id,$type,$objet)

    Répondre à ce message

  • 1

    Je voudrais remplacer <p>&nbsp;</p> par :

    ~

    Donc, avec un retour à la ligne avant et après le ~

    Comment puis-je faire ?

    • Il faudrait ajouter une option « avec caractères d’échappements » ?

    Répondre à ce message

  • Hello,

    Depuis quelques semaines avec ce plugin à jour en SPIP 3.1.6 j’ai toujours ce message d’erreur en haut du formulaire après avoir lancé une recherche :
    « Il y a 1 erreur dans votre saisie, veuillez vérifier les informations. »
    Mais sinon ça fonctionne quand même (j’ai des résultats).

    Répondre à ce message

  • 4

    Bonjour,

    Un développement prévu pour spip 3 ?

    Merci

    Répondre à ce message

  • 1

    Bonjour,

    Dans base/rechremp_upgrade.php ligne 17

    include_spip(’rechremp_pipelines.php’) ;

    Où est ce fichier ?

    Merci et bonne journée !

    • Oups, ce fichier n’existe pas.

      Cette ligne est donc inutile...

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom