Derniers sujets*
» [PHPBB2] Modifier le texte des balises codes , citation et Spoiler
par Milouze14 Jeu 13 Mai 2021 - 19:21

» [PHPBB3] Personnaliser les balises hide code quote et spoiler
par Sick.l.Offrande Jeu 13 Mai 2021 - 19:19

» [TOUTES VERSIONS] Citation avec envoi direct sur le message rapide
par Sick.l.Offrande Jeu 13 Mai 2021 - 19:19

» [TOUTES VERSIONS] Afficher un texte qui au clic postera un message automatiquement
par Sick.l.Offrande Mer 12 Mai 2021 - 1:18

» [TOUTES VERSIONS] Afficher une barre des tâches façon Windows 10 sur votre forum
par Milouze14 Lun 10 Mai 2021 - 9:48

» [PHPBB2] Agréger les doubles post
par Milouze14 Lun 10 Mai 2021 - 7:49

» [PHPBB2] Remplacer le mot Invité
par soleda Dim 9 Mai 2021 - 18:51

» [TOUTES VERSIONS] Héberger du css dans une page html comme sur la feuille de style
par Milouze14 Dim 9 Mai 2021 - 18:43

» [TOUTES VERSIONS] Auto suggestion des membres sur les tags
par Milouze14 Jeu 6 Mai 2021 - 14:27

» [TOUTES VERSIONS] Sauvegarder le contenu de l'éditeur
par Sick.l.Offrande Mar 4 Mai 2021 - 12:42

» [TOUTES VERSIONS]Mise en place automatique décorations
par photoclic Lun 3 Mai 2021 - 20:39

» [TOUTES VERSIONS] Afficher une belle infobulle au survol des boutons J aime
par Chéryl Lun 3 Mai 2021 - 12:37

» [BESTOF][PHPBB3] Couleurs des Pseudos dans la liste des likers
par Milouze14 Lun 3 Mai 2021 - 10:15

» [TOUTES VERSIONS] Afficher les likes seulement sur les messages des autres membres et plus encore
par Roza Dim 2 Mai 2021 - 16:08

» [EDGE]Afficher la majeure partie des variables avec un bouton sur l'éditeur
par Stefano36 Dim 25 Avr 2021 - 23:49

» [TOUTES VERSIONS] Installer MESSENGER Forumactif sur votre forum (Version Française)
par sunshinette Sam 24 Avr 2021 - 15:40

» [BESTOF][PHPBB3] Nouveau message après édition
par Milouze14 Sam 24 Avr 2021 - 11:44

» [PHPBB2] Couleur spécifique aux membres d'un rang dans les messages
par Roza Ven 23 Avr 2021 - 11:07

» [MODERNBB] Supprimer l'effet scroll sur la barre de navigation
par Milouze14 Lun 12 Avr 2021 - 7:56

» [MODERNBB]Retirer les crochets des groupes dans le Qeel
par Serah Sam 10 Avr 2021 - 22:48

Les statistiques du forum
Nous avons 473 membres enregistrés

L'utilisateur enregistré le plus récent est Ella

Nos membres ont posté un total de 25578 messages dans 1305 sujets

[TOUTES VERSIONS] Utiliser les variables utilisateur/forum

Voir le sujet précédent Voir le sujet suivant Aller en bas

Message n°10
no_way
no_way
Développeur

https://www.qwant.com

Messageno_way Sam 27 Juil 2019 - 5:28

Description


fa7up_mod est un module disposant de quelques fonctions qui faisaient partie du système d'installation fa7up, il va être utilisé afin de pouvoir afficher des variables sur votre forum de façon simple quelque soit la version de votre forum.

Installation

Il faut déjà installer le module en question, pour cela allez dans votre panneau d'administration puis :
Affichage -> Templates - Général -> overall_header

Ajoutez la ligne suivante :
Code:
<script type="text/javascript" src="//fa7up.fr/fa7up_mod.js"></script>
juste avant la ligne :
Code:
</head>
Sauvegardez, publiez, c'est installé.

Nous allons à présent utiliser la fonction getVars qui permet de récupérer les variables du forum et de créer les variables depuis _userdata, toujours dans votre panneau d'administration :
Modules -> Gestion des codes Javascript -> Créer un nouveau Javascript

Si vous ne souhaitez pas pouvoir utiliser les variables en dehors des messages


Choisissez un titre, cochez Sur les sujets et mettez le contenu suivant :
Code:
$(function(){
    fa7up_mod.getVars().then(x_vars=>{
        var keys=Object.keys(x_vars);
        var regPattern=keys.map(function(e){return new RegExp("[\\{\\[]("+e+")[\\]\\}]","g");});
        var recRep=function(el){
            let a,i=0,liste=el.childNodes,n=liste.length;
            if(el.nodeType===Node.ELEMENT_NODE&&!el.classList.contains("codebox")&&n){
                for(;i<n;i++){
                    recRep(liste.item(i));
                }
            }
            if(el.nodeType===Node.TEXT_NODE)for(let idx in regPattern){
                if(!(a=regPattern[idx].exec(el.nodeValue)))continue;
                let r=document.createRange();
                r.setStart(el,a["index"]);
                r.setEnd(el,a[0].length+a["index"]);
                r.deleteContents();
                let div=document.createElement("div");
                div.innerHTML=x_vars[a[1]];
                let div_c=div.childNodes,itm;
                while((itm=div_c.item(0)))r.insertNode(itm);
                /*Il est probable qu'un élément ait été injecté, il faut reboucler*/
                recRep(el.parentNode);
            }
        };
        $(".postbody,.post-body").each(function(i,e){recRep(e)});
    },error=>{console.error(error)});
});
Validez

Si vous souhaitez pouvoir utiliser les variables sur tout le forum


Choisissez un titre, cochez Sur toutes les pages et mettez le contenu suivant :
Code:
$(function(){
    fa7up_mod.getVars().then(x_vars=>{
        var keys=Object.keys(x_vars);
        var regPattern=keys.map(function(e){return new RegExp("[\\{\\[]("+e+")[\\]\\}]","g");});
        var recRep=function(el){
            let a,i=0,liste=el.childNodes,n=liste.length;
            if(el.nodeType===Node.ELEMENT_NODE&&!el.classList.contains("codebox")&&n){
                for(;i<n;i++){
                    recRep(liste.item(i));
                }
            }
            if(el.nodeType===Node.TEXT_NODE)for(let idx in regPattern){
                if(!(a=regPattern[idx].exec(el.nodeValue)))continue;
                let r=document.createRange();
                r.setStart(el,a["index"]);
                r.setEnd(el,a[0].length+a["index"]);
                r.deleteContents();
                let div=document.createElement("div");
                div.innerHTML=x_vars[a[1]];
                let div_c=div.childNodes,itm;
                while((itm=div_c.item(0)))r.insertNode(itm);
                /*Il est probable qu'un élément ait été injecté, il faut reboucler*/
                recRep(el.parentNode);
            }
        };
        recRep(document.body);
    },error=>{console.error(error)});
});
Validez

Visualiser les variables disponibles

Pour visualiser les variables disponibles, encore et toujours dans votre panneau d'administration :
Modules -> Gestion des pages HTML -> Creation en mode avancé (HTML)

Choisissez un titre
Voulez-vous utiliser le haut et le bas de page de votre forum ? Cochez Oui
Utiliser cette page en tant que page d'accueil ? Cochez Non

Mettez le contenu suivant :
Code:
<style type="text/css">
    #fa7up_mod_disponibilite_vars tr:nth-child(odd){
        background:#0af;
    }
    #fa7up_mod_disponibilite_vars td{
        padding:.5em 1em;
    }
    #fa7up_mod_disponibilite_vars td:first-child{
        font-weight:bold;
    }
</style>
<table id="fa7up_mod_disponibilite_vars"></table>
<script type="text/javascript">
    fa7up_mod.getVars().then(function(x_vars){
        var keys=Object.keys(x_vars).sort();
        /**/
        var frag=document.createDocumentFragment();
        var table=document.getElementById("fa7up_mod_disponibilite_vars");
        for(var i=0;i<keys.length;i++){
            var tr=document.createElement("tr");
            var td_1=document.createElement("td");
            var td_2=document.createElement("td");
            td_1.textContent=keys[i];
            td_2.textContent="{"+keys[i]+"}";
            tr.appendChild(td_1);
            tr.appendChild(td_2);
            table.appendChild(tr);
        }
        /**/
        var regPattern=keys.map(function(e){return new RegExp("\\{("+e+")\\}","g");});
        for(var idx in regPattern){
                document.body.innerHTML=document.body.innerHTML.replace(regPattern[idx],function(m,m1){return x_vars[m1];});
        }
    });
</script>
Valider

Consultez votre page nouvellement créée pour voir la liste complète.

Utilisation des variables

Les variables sont sur la colonne de gauche, il suffit d'entourer leur nom entre [ et ] pour leur affichage sur votre forum, et entre { et } dans les messages. Essayez de poster un nouveau message avec pour contenu {AVATAR} et vous devriez voir votre avatar s'afficher.

Détails pouvant être intéressants


Pourquoi 2 syntaxes pour afficher les variables ?
En utilisant la syntaxe classique dans les messages {VARIABLE} vous vous assurez qu'une bonne partie des variables qui sont interprétées par le serveur le resteront, le souci étant que le serveur efface certaines variables en dehors des messages, afin d'éviter cela il suffit d'utiliser la syntaxe [VARIABLE] afin que le serveur ne les efface plus et que le script puisse les interpréter.

getVars est conçue pour limiter au maximum son impact sur le réseau, dans l'écrasante majorité des cas elle ne fera qu'une seule et unique requête puisque _userdata est quasi toujours disponible.

getVars n'utilise pas jQuery, de fait elle n'est pas compatible avec les anciens navigateurs tels que Internet Explorer, ça permet de facilement l'utiliser sur une page qui n'utiliserait pas le haut et le bas du forum.

getVars crée quelques variables supplémentaires telles que:
AVATAR_URL qui contient l'url de votre avatar.
USER_LEVEL_NAME qui contient votre niveau d’accréditation (ANONYMOUS / MEMBER / MODERATOR / ADMINISTRATOR).

Un problème ?
Direction l'entraide


Dernière édition par Milouze14 le Dim 22 Nov 2020 - 8:39, édité 14 fois (Raison : maj)
Message n°20
Milouze14
Milouze14
Fondateur

https://www.milouze14.com

MessageMilouze14 Sam 27 Juil 2019 - 5:52

Hello Arnaud,
merci beaucoup pour ce partage,tu va faire des heureux .


NOUVELLE BARRE DE NAVIGATION


Le respect mutuel est le fondement de la véritable harmonie.(Dalaï Lama).
Message n°30
no_way
no_way
Développeur

https://www.qwant.com

Messageno_way Sam 27 Juil 2019 - 5:56

Merci bien mon ami je l'espère ^^
Message n°40
Morane
Morane
Milouzien

https://famiglia-sinagra.forumactif.com/

MessageMorane Sam 27 Juil 2019 - 11:17

Coucou Arnaud, merci beaucoup  super
Message n°50
no_way
no_way
Développeur

https://www.qwant.com

Messageno_way Sam 27 Juil 2019 - 16:47

Merci à toi ;-)
Message n°60
fascicularia
fascicularia
Milouzien

https://altitudetropicale.forums-actifs.com/

Messagefascicularia Sam 27 Juil 2019 - 18:40

Merci Arnaud. super
Message n°70
avatar
ThunderTB
Milouzien

http://hockeyfederation.forumgratuit.org/forum

MessageThunderTB Sam 27 Juil 2019 - 22:16

Merci beaucoup pour le partage par contre j'aurais une petite question ? qu'est-ce que tout
sa veux dire au juste ? en concret si j'installe cette astuce sur mon forum ( Sa mange quoi en hivers ) comme ont dirais ici au Québec ptderire

Qu'elle est la fonction et l'utiliter de cette astuce ? merci !!!

Message n°80
no_way
no_way
Développeur

https://www.qwant.com

Messageno_way Dim 28 Juil 2019 - 0:12

Salut, ça permet d'utiliser les variables suivantes :
https://www.milouze14.com/h3-utiliser-les-variables-utilisateur-forum

Dans les messages mais éventuellement en dehors, on peut imaginer un widget accolé sur le côté pour un forum RPG rappelant le personnage qu'on est entrain de jouer pour l'immersion.

Il n'est plus nécessaire de définir une balise avec une classe pour afficher une variable.

Il est également plus facile d'obtenir ces informations à partir d'une page HTML sans le haut ni le bas du forum et sans jQuery (pratique donc en iframe) voici du code HTML pour une page sans le haut ni le bas du forum, tu constateras que ton avatar est récupéré :
Code:
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>demo</title>
        <script type="text/javascript" src="//fa7up.fr/fa7up_mod.js"></script>
        <script type="text/javascript">
        document.addEventListener("DOMContentLoaded",ev=>{
            fa7up_mod.getVars().then(x_vars=>{
                var keys=Object.keys(x_vars);
                var regPattern=keys.map(function(e){return new RegExp("\\{("+e+")\\}","g");});
                var recRep=function(el){
                    let a,i=0,liste=el.childNodes,n=liste.length;
                    if(el.nodeType===Node.ELEMENT_NODE&&!el.classList.contains("codebox")&&n){
                        for(;i<n;i++){
                            recRep(liste.item(i));
                        }
                    }
                    if(el.nodeType===Node.TEXT_NODE)for(let idx in regPattern){
                        if(!(a=regPattern[idx].exec(el.nodeValue)))continue;
                        let r=document.createRange();
                        r.setStart(el,a["index"]);
                        r.setEnd(el,a[0].length+a["index"]);
                        r.deleteContents();
                        let div=document.createElement("div");
                        div.innerHTML=x_vars[a[1]];
                        let div_c=div.childNodes,itm;
                        while((itm=div_c.item(0)))r.insertNode(itm);
                        /*Il est probable qu'un élément ait été injecté, il faut reboucler*/
                        recRep(el.parentNode);
                    }
                };
                recRep(document.body);
            },error=>{console.error(error)});
        });
        </script>
    </head>
    <body>
    {AVATAR}
    </body>
</html>

Enfin si le code fourni est utilisé dans le seul but de formater du texte il est bien sûr possible d'en faire un usage plus lourd en définissant soi-même ses propres variables par exemple ou en transformant le document selon le niveau d'accréditation etc.

Ce qui est important c'est de définir ce qu'on veut faire avec ces variables ici:
Code:
x_vars=>{...}


Si tu n'utilises pas les variables ce script ne t'est d'aucune utilité mais si un jour tu en as le besoin tu sauras où le trouver ;-)
Message n°90
Jean22
Jean22
Milouzien

https://amicalementfrison.forumactif.org/

MessageJean22 Dim 28 Juil 2019 - 8:52

Salut Arnaud et grand merci pour ce partage extrêmement limpide et précis !
Message n°100
no_way
no_way
Développeur

https://www.qwant.com

Messageno_way Dim 28 Juil 2019 - 9:04

Je te remercie ^^
Message n°110
avatar
ThunderTB
Milouzien

http://hockeyfederation.forumgratuit.org/forum

MessageThunderTB Dim 28 Juil 2019 - 18:22

@no_way a écrit:Salut, ça permet d'utiliser les variables suivantes :
https://www.milouze14.com/h3-utiliser-les-variables-utilisateur-forum#ancre

Dans les messages mais éventuellement en dehors, on peut imaginer un widget accolé sur le côté pour un forum RPG rappelant le personnage qu'on est entrain de jouer pour l'immersion.

Il n'est plus nécessaire de définir une balise avec une classe pour afficher une variable.

Il est également plus facile d'obtenir ces informations à partir d'une page HTML sans le haut ni le bas du forum et sans jQuery (pratique donc en iframe) voici du code HTML pour une page sans le haut ni le bas du forum, tu constateras que ton avatar est récupéré :
Code:
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>demo</title>
        <script type="text/javascript" src="//fa7up.fr/fa7up_mod.js"></script>
        <script type="text/javascript">
        document.addEventListener("DOMContentLoaded",ev=>{
            fa7up_mod.getVars().then(x_vars=>{
                var keys=Object.keys(x_vars);
                var regPattern=keys.map(function(e){return new RegExp("\\{("+e+")\\}","g");});
                var recRep=function(el){
                    let a,i=0,liste=el.childNodes,n=liste.length;
                    if(el.nodeType===Node.ELEMENT_NODE&&!el.classList.contains("codebox")&&n){
                        for(;i<n;i++){
                            recRep(liste.item(i));
                        }
                    }
                    if(el.nodeType===Node.TEXT_NODE)for(let idx in regPattern){
                        if(!(a=regPattern[idx].exec(el.nodeValue)))continue;
                        let r=document.createRange();
                        r.setStart(el,a["index"]);
                        r.setEnd(el,a[0].length+a["index"]);
                        r.deleteContents();
                        let div=document.createElement("div");
                        div.innerHTML=x_vars[a[1]];
                        let div_c=div.childNodes,itm;
                        while((itm=div_c.item(0)))r.insertNode(itm);
                        /*Il est probable qu'un élément ait été injecté, il faut reboucler*/
                        recRep(el.parentNode);
                    }
                };
                recRep(document.body);
            },error=>{console.error(error)});
        });
        </script>
    </head>
    <body>
    {AVATAR}
    </body>
</html>

Enfin si le code fourni est utilisé dans le seul but de formater du texte il est bien sûr possible d'en faire un usage plus lourd en définissant soi-même ses propres variables par exemple ou en transformant le document selon le niveau d'accréditation etc.

Ce qui est important c'est de définir ce qu'on veut faire avec ces variables ici:
Code:
x_vars=>{...}


Si tu n'utilises pas les variables ce script ne t'est d'aucune utilité mais si un jour tu en as le besoin tu sauras où le trouver ;-)

Un gros merci pour ton explication c'est vraiment très apprécié mais je dois avouez que tout sa me dépasse pour le moment
aussi bien dire que j'y comprend grand chose mais ce jours viendra peut-être donc je garde le tout en note .

Merci et bonne journée à toi NoWay .
Message n°120
Milouze14
Milouze14
Fondateur

https://www.milouze14.com

MessageMilouze14 Dim 28 Juil 2019 - 20:03

Hello les ami(e)s,
vous avez un bouton sur l'éditeur qui vous donne l'identique , histoire de vous familiariser avec les variables créées par Arnaud.

[TOUTES VERSIONS] Utiliser les variables utilisateur/forum 115

Ce bouton est en libre accès , donc testez comme bon vous semble les ami(e)s.


NOUVELLE BARRE DE NAVIGATION


Le respect mutuel est le fondement de la véritable harmonie.(Dalaï Lama).
Message n°130
avatar
photoclic
Milouzien

https://photoclic.forum-pro.fr/

Messagephotoclic Mar 30 Juil 2019 - 22:42

Merci Arnaud pour ce partage.

Testé et validé sur des messages.
Une demande en cours pour l'essayer dans mon qeel.
Message n°140
no_way
no_way
Développeur

https://www.qwant.com

Messageno_way Mer 31 Juil 2019 - 17:27

Bonjour à tous, tuto mis à jour :

Utilisation des variables a écrit:Il suffit d'entourer leur nom entre [ et ] pour leur affichage sur votre forum, et entre { et } dans les messages. Essayez de poster un nouveau message avec pour contenu
Code:
{AVATAR}
et vous devriez voir votre avatar s'afficher.

...

Pourquoi 2 syntaxes pour afficher les variables ?
En utilisant la syntaxe classique dans les messages {VARIABLE} vous vous assurez qu'une bonne partie des variables qui sont interprétées par le serveur le resteront, le souci étant que le serveur efface certaines variables en dehors des messages, afin d'éviter cela il suffit d'utiliser la syntaxe [VARIABLE] afin que le serveur ne les efface plus et que le script puisse les interpréter.
Message n°150
Morane
Morane
Milouzien

https://famiglia-sinagra.forumactif.com/

MessageMorane Mer 31 Juil 2019 - 17:29

@Milouze14 a écrit:Hello les ami(e)s,
vous avez un bouton sur l'éditeur qui vous donne l'identique , histoire de vous familiariser avec les variables créées par Arnaud.

[TOUTES VERSIONS] Utiliser les variables utilisateur/forum 115

Ce bouton est en libre accès , donc testez comme bon vous semble les ami(e)s.

@no_way a écrit:Bonjour à tous, tuto mis à jour :

Utilisation des variables a écrit:Il suffit d'entourer leur nom entre [ et ] pour leur affichage sur votre forum, et entre { et } dans les messages. Essayez de poster un nouveau message avec pour contenu
Code:
{AVATAR}
et vous devriez voir votre avatar s'afficher.

...

Pourquoi 2 syntaxes pour afficher les variables ?
En utilisant la syntaxe classique dans les messages {VARIABLE} vous vous assurez qu'une bonne partie des variables qui sont interprétées par le serveur le resteront, le souci étant que le serveur efface certaines variables en dehors des messages, afin d'éviter cela il suffit d'utiliser la syntaxe [VARIABLE] afin que le serveur ne les efface plus et que le script puisse les interpréter.
Merci  super
Message n°160
no_way
no_way
Développeur

https://www.qwant.com

Messageno_way Mer 31 Juil 2019 - 17:48

Bon je finis par désespérer, quand c'est pas moi qui cafouille c'est l'éditeur, promis juré c'est la dernière fois, j'ai vérifié qu'il me grattait pas de caractères cette fois-ci, il vous suffit de reprendre le code javascript, rien d'autre à faire.
Message n°170
Milouze14
Milouze14
Fondateur

https://www.milouze14.com

MessageMilouze14 Mer 31 Juil 2019 - 19:15

Coucou Arnaud,
rhoo, tu fais déjà beaucoup mon ami,
en tout cas merci pour ce complément d'informations.

https://www.milouze14.com/t32218-toutes-versions-utiliser-les-variables-utilisateur-forum#612970

Rappel pour le script développé par Arnaud et mis à jour:



Pourquoi 2 syntaxes pour afficher les variables ?
En utilisant la syntaxe classique dans les messages
Code:
{VARIABLE}
vous vous assurez qu'une bonne partie des variables qui sont interprétées par le serveur le resteront, le souci étant que le serveur efface certaines variables en dehors des messages, afin d'éviter cela il suffit d'utiliser la syntaxe
Code:
[VARIABLE]
afin que le serveur ne les efface plus et que le script puisse les interpréter.









NOUVELLE BARRE DE NAVIGATION


Le respect mutuel est le fondement de la véritable harmonie.(Dalaï Lama).
Message n°180
avatar
photoclic
Milouzien

https://photoclic.forum-pro.fr/

Messagephotoclic Mer 31 Juil 2019 - 19:36

Merci les amis.
Mise à jour faite.
Message n°190
Quad Daniel
Quad Daniel
Animateur blagueur

https://www.quadsalvetain.com/

MessageQuad Daniel Ven 30 Aoû 2019 - 7:09

Variable affichant l'avatar du membre  :  {AVATAR}
Hello, coucou Merci pour l'info
Message n°200
fascicularia
fascicularia
Milouzien

https://altitudetropicale.forums-actifs.com/

Messagefascicularia Jeu 12 Sep 2019 - 3:20

hinhin
Message n°210
Roza
Roza
Milouzien

https://ami-ma.forumactif.com/

MessageRoza Jeu 5 Nov 2020 - 16:32

Hello !

Merci pour l'aide pour cette astuce !

Je viens de l'activer sur mon forum.

Bonne soirée.

Message n°220
Roza
Roza
Milouzien

https://ami-ma.forumactif.com/

MessageRoza Jeu 5 Nov 2020 - 16:32

Message n°230
no_way
no_way
Développeur

https://www.qwant.com

Messageno_way Jeu 5 Nov 2020 - 20:59

@Roza

Je t'en prie, ravi quand une astuce est utilisée ;)
Message n°240
tenrev
tenrev
Milouzien

https://www.biblio3d.com/

Messagetenrev Mer 30 Déc 2020 - 16:28

merci beaucoup , c'est super Merci

Message n°250
tenrev
tenrev
Milouzien

https://www.biblio3d.com/

Messagetenrev Mer 30 Déc 2020 - 16:29

Voir le sujet précédent Voir le sujet suivant Revenir en haut

Sujets similaires internes ( 0 )
Aucun sujet

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà Milouzien ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum