Welcome Guest! To enable all features please Connexion ou Inscription.

Notification

Icon
Error

Options
Aller au dernier message Aller au dernier message non-lu
Offline Mandar  
#1 Envoyé le : dimanche 8 janvier 2017 14:54:15(UTC)
Mandar
Rang : Habitué
Mécène: Merci de ton soutien !
Inscrit le : 29/06/2011(UTC)
Messages : 4,067
Un bidouillage permettant de n'afficher que certaines parties

J'en ai eu marre de parcourir l'ensemble des sous-forums à chaque fois que je voulais jeter un coup d'œil à mes parties en ligne, alors j'ai créé un script.

Par exemple, je souhaitais n'afficher que les parties 12, 85 et 164.

Voilà le résultat final :


Et le code qui permet d'y arriver :
Code :
var parties = '12|85|164';

Array.prototype.slice.call(document.getElementsByClassName("forumheading")).forEach(function(node){if (node.innerText.match(/Partie/)) { if(node.innerText.match(new RegExp('Partie .*-('+parties+')[^0-9]?$'))) { console.log(node.innerText); } else { node.parentNode.parentNode.parentNode.removeChild(node.parentNode.parentNode);}}});


Faire un test

Ce script est plutôt destiné aux utilisateurs à l'aise avec l'informatique. Il n'est cependant pas dangereux et ne pose pas de problème de sécurité.

Vous pouvez tester ce code dans la console JavaScript de votre navigateur. Il faut pour cela charger la page d'accueil du forum, ouvrir la console de votre navigateur (par exemple sur Chrome, Outils de développement > onglet console), et copier-coller l'extrait de code ci-dessus.

Je vous suggère évidemment de modifier la liste des parties à afficher dans la première ligne. Le symbole | signifie "ou", si vous n'avez qu'une seule partie, vous pouvez simplement mettre son numéro :

Code :
var parties = '26';

Array.prototype.slice.call(document.getElementsByClassName("forumheading")).forEach(function(node){if (node.innerText.match(/Partie/)) { if(node.innerText.match(new RegExp('Partie .*-('+parties+')[^0-9]?$'))) { console.log(node.innerText); } else { node.parentNode.parentNode.parentNode.removeChild(node.parentNode.parentNode);}}});


Installation permanente

L'extension Tampermonkey, accessible au moins sur Chrome et Firefox, permet d'exécuter un script automatiquement lorsqu'une page est chargée.

A. Installer l'extension
Liens : pour Chrome, pour Firefox.

B. Installer le script
  1. Rendez-vous sur la page d'accueil du forum
  2. Cliquez sur la petite icône de Tampermonkey (une paire de jumelles). Choisissez "Ajouter un nouveau script" dans le menu déroulant
  3. Remplacez l'intégralité du code sur la page par celui-ci :

    Code :
    // ==UserScript==
    // @name         Pathfinder-FR
    // @namespace    http://tampermonkey.net/
    // @version      0.2.1
    // @description  N'affiche que certains sous-forums Pathfinder-FR
    // @author       Mandar
    // @match        http://www.pathfinder-fr.org/forum/
    // @match        http://www.pathfinder-fr.org/Forum/
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        // La ligne suivante doit être modifiée en fonction de vos besoins :
        var parties = '12|85|164';
    
        Array.prototype.slice.call(document.getElementsByClassName("forumheading")).forEach(function(node){if (node.innerText.match(/Partie/)) { if(node.innerText.match(new RegExp('Partie .*-('+parties+')[^0-9]?$'))) { console.log(node.innerText); } else { node.parentNode.parentNode.parentNode.removeChild(node.parentNode.parentNode);}}});
    })();


  4. Sauvegardez votre script grâce à l'icône "disquette" (Enregistrer).
  5. Rafraichissez la page d'accueil du forum, la liste des parties devrait être filtrée et un chiffre 1 devrait s'afficher par dessus l'icône de Tampermonkey.


Désinstallation

Si vous êtes perdu ou si vous souhaitez supprimer le script, désinstallez simplement l'extension Tampermonkey.

Les écueils

  • Le code est très basique et est susceptible de casser à chaque mise-à-jour du site.
  • Il ne masque les forums que lors du premier chargement de la page, du coup si vous interagissez avec la page d'accueil, par exemple pour masquer ou afficher un forum, la liste des parties affichée sera de nouveau non filtrée.

Modifié par un utilisateur lundi 9 janvier 2017 23:56:54(UTC)  | Raison: Non indiquée

thanks 4 utilisateur ont remercié Mandar pour l'utilité de ce message.
Annonce
Offline Dalvyn  
#2 Envoyé le : dimanche 8 janvier 2017 16:10:42(UTC)
Dalvyn
Rang : Référent
Inscrit le : 15/12/2009(UTC)
Messages : 18,213
J'ai enlevé l'anomalie de la partie AU... donc tu peux simplifier ton code (un peu).

Note aussi que, a priori, jQuery est automatiquement chargé avec la page principale du forum, ce qui peut permettre de raccourcir/simplifier certaines parties de ton code.

Merci pour l'idée et le partage !
thanks 1 utilisateur a remercié Dalvyn pour l'utilité de ce message.
Offline Mandar  
#3 Envoyé le : dimanche 8 janvier 2017 21:13:22(UTC)
Mandar
Rang : Habitué
Mécène: Merci de ton soutien !
Inscrit le : 29/06/2011(UTC)
Messages : 4,067
Merci Dalvyn ! J'ai mis à jour le code en conséquence. Smile

En ce qui concerne jQuery, je ne suis pas super à l'aise avec... je pense qu'il y a moyen de faire plus court avec, mais je pense que je vais me contenter de ce que je maîtrise. Normalement, je n'utilise que des fonctions implémentées par tous les navigateurs qui respectent les standards.
Utilisateurs actuellement sur ce sujet
Vous ne pouvez pas poster de nouveaux sujets dans ce forum.
Vous ne pouvez pas répondre aux sujets de ce forum.
Vous ne pouvez pas effacer vos messages dans ce forum.
Vous ne pouvez pas éditer vos messages dans ce forum.
Vous ne pouvez pas créer des sondages dans ce forum.
Vous ne pouvez pas voter dans les sondages de ce forum.

| Pathfinder-fr v2 Theme by Styx31, with some icons from fugue
Propulsé par YAF.NET | YAF.NET © 2003-2024, Yet Another Forum.NET