Comparaison variable javascript et {variable_template}
2 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1 • Partagez
Comparaison variable javascript et {variable_template}
Bonjour,
J'aimerais comparer une variable javascript (l'un des _userdata[qqch1]) avec une "variable" de template {qqch2} dans un script javascript.
Est-ce possible, et si oui avec quelle syntaxe ?
J'ai comme l'impression que ce sont des entités de niveau très différent, mais je sais qu'on peut y avoir accès via le js.
J'ai essayé des choses du genre
Pourriez-vous m'aider à avancer ?
J'aimerais comparer une variable javascript (l'un des _userdata[qqch1]) avec une "variable" de template {qqch2} dans un script javascript.
Est-ce possible, et si oui avec quelle syntaxe ?
J'ai comme l'impression que ce sont des entités de niveau très différent, mais je sais qu'on peut y avoir accès via le js.
J'ai essayé des choses du genre
- Code:
if(_userdata["qqch1"] == {qqch2})
- Code:
if(_userdata["qqch1"] == '{qqch2}')
Pourriez-vous m'aider à avancer ?
Dernière édition par curiosity le Mer 2 Juil 2014 - 21:34, édité 4 fois
curiosity- Nouveau membre
- Messages : 18
Inscrit(e) le : 23/06/2014
Re: Comparaison variable javascript et {variable_template}
PS : J'ai supposé implicitement que les deux variables étaient des chaînes de caractères et qu'il n'y a pas de problème de "type".
curiosity- Nouveau membre
- Messages : 18
Inscrit(e) le : 23/06/2014
Re: Comparaison variable javascript et {variable_template}
J'ai ajouté une description à ma question pour préciser le but de ma question initiale. Si quelqu'un s'est déjà penché sur le problème, ça m'intéresse d'avoir des avis et des idées.
Concrètement, je cherche à savoir, sur la page de consultation d'un sujet, si l'utilisateur est la personne qui a créé le sujet ou pas...
Quelqu'un sait-il faire cela ?
Concrètement, je cherche à savoir, sur la page de consultation d'un sujet, si l'utilisateur est la personne qui a créé le sujet ou pas...
Quelqu'un sait-il faire cela ?
curiosity- Nouveau membre
- Messages : 18
Inscrit(e) le : 23/06/2014
Re: Comparaison variable javascript et {variable_template}
Bonjour,
Et vous avez cette donnée où ?
Dans le cas où vous n'êtes pas sur la première page et que le premier message du sujet n'est pas répété sur chaque page, l'information n'est pas disponible.
Dans le cas contraire, c'est juste le premier pseudo sur la page donc on peut mettre un script :
pour faire comme vous indiquez, il faudrait avoir un script par post et juste le premier agira ( grâce à une variable du style "var premier_post_passe = false;" qui sera mis à true après le premier post et testée pour l'exécuter ).
Cela me semble mieux de faire comme j'indique au dessus.
Cordialement.
Et vous avez cette donnée où ?
Dans le cas où vous n'êtes pas sur la première page et que le premier message du sujet n'est pas répété sur chaque page, l'information n'est pas disponible.
Dans le cas contraire, c'est juste le premier pseudo sur la page donc on peut mettre un script :
- Code:
/^\/t[0-9]+(p[0-9]+)?-/.test(location.pathname) && $(function(){
if($('.postprofile dt a').first().attr('href') == "/u"+_userdata["user_id"]) {
$("body").append("YOU ARE THE OP!");
}
});
pour faire comme vous indiquez, il faudrait avoir un script par post et juste le premier agira ( grâce à une variable du style "var premier_post_passe = false;" qui sera mis à true après le premier post et testée pour l'exécuter ).
Cela me semble mieux de faire comme j'indique au dessus.
Cordialement.
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Comparaison variable javascript et {variable_template}
Merci beaucoup, ça a l'air de correspondre à ce que je cherche.
Pour répondre à la question : c'est justement ce que je cherche à savoir, où récupérer cette donnée !
Je vais explorer cette piste parce qu'il y a aussi du boulot à faire pour comprendre l'imbrication template/javascript et comment faire interagir les deux, notamment comment modifier une classe CSS dont on ne connaît pas le div, etc.
Pour répondre à la question : c'est justement ce que je cherche à savoir, où récupérer cette donnée !
Je vais explorer cette piste parce qu'il y a aussi du boulot à faire pour comprendre l'imbrication template/javascript et comment faire interagir les deux, notamment comment modifier une classe CSS dont on ne connaît pas le div, etc.
curiosity- Nouveau membre
- Messages : 18
Inscrit(e) le : 23/06/2014
Re: Comparaison variable javascript et {variable_template}
Ea a écrit:Dans le cas contraire, c'est juste le premier pseudo sur la page donc on peut mettre un script :
- Code:
/^\/t[0-9]+(p[0-9]+)?-/.test(location.pathname) && $(function(){
if($('.postprofile dt a').first().attr('href') == "/u"+_userdata["user_id"]) {
$("body").append("YOU ARE THE OP!");
}
});
J'ai essayé d'analyser le code proposé et j'ai deux questions à son sujet :
1) Vous parlez de "pseudo sur la page", mais c'est user_id qui est utilisé, cad l'id de l'utilisateur qui regarde la page. Ai-je mal compris ?
2) C'est le test "$('.postprofile dt a').first().attr('href') == "/u"+_userdata["user_id"]" qui me semble le plus intéressant ici pour progresser. D'après ce que j'ai compris, le $ équivaut à la chaîne document.getElementById. Donc on va chercher (mes souvenirs sont un peu vieux alors j'ai vérifié sur internet mais sans doute il y a encore des lacunes...), dans le "class" .postprofile, la liste de définition et l'ancre (??), le premier élément ayant pour attribut "href" et on le compare à la chaine /uxxxxx où xxxx est l'id de l'utilisateur.
Hein ? Ca voudrait dire qu'on a accès par l'intermédiaire du CSS a de telles informations ? Mais si c'est le cas, comment peut-on savoir tout cela ? Où est-ce écrit ?
Et sinon, qu'est-ce que j'ai loupé ?
Pourriez-vous m'en dire plus, svp ?
curiosity- Nouveau membre
- Messages : 18
Inscrit(e) le : 23/06/2014
Re: Comparaison variable javascript et {variable_template}
Bonjour !
Je fais un petit UP parce qu'on m'a donné un poisson et j'ai pu me nourrir, mais j'aimerais beaucoup apprendre à pêcher ...
:thanks:
Je fais un petit UP parce qu'on m'a donné un poisson et j'ai pu me nourrir, mais j'aimerais beaucoup apprendre à pêcher ...
:thanks:
curiosity- Nouveau membre
- Messages : 18
Inscrit(e) le : 23/06/2014
Re: Comparaison variable javascript et {variable_template}
Le $ sur forumactif correspond à la librairie javascript jQuery et utilisé comme cela ça permet de sélectionner les éléments qui correspondent à un sélecteur CSS.
Le sélecteur CSS ".postprofile dt a" sélectionnera les éléments <a> dans un élément <dt> dans un élément avec la class="postprofile", cela correspondra donc aux liens de pseudos dans les sujets pour phpbb3 : https://i.imgur.com/4dIYeWh.png
Donc $('.postprofile dt a') nous donne une liste de liens avec le pseudo et menant aux profils.
Ensuite .first() prend le premier élément de la liste ( le lien du premier posteur de la page sur laquelle on se trouve ).
Et puis .attr('href') nous fournit la valeur de l'attribut "href" de l'élément courant ( l'url du lien ).
J'utilise du jQuery car dans ce cas-ci ça facilite les choses, en javascript de base ça ressemblerait à ceci, qui est plus long et moins performant :
Pour la documentation, il y a un site en anglais ( et plusieurs sites de traduction en français qu'on peut trouver sur google ) :
- documentation sur les sélecteurs : http://api.jquery.com/category/selectors/
- documentation sur $() équivalent de jQuery() : http://api.jquery.com/jQuery/
- documentation sur .first() : http://api.jquery.com/first/
- documentation sur .attr() : http://api.jquery.com/attr/
- documentation sur .append() : http://api.jquery.com/append/
Cordialement.
Le sélecteur CSS ".postprofile dt a" sélectionnera les éléments <a> dans un élément <dt> dans un élément avec la class="postprofile", cela correspondra donc aux liens de pseudos dans les sujets pour phpbb3 : https://i.imgur.com/4dIYeWh.png
Donc $('.postprofile dt a') nous donne une liste de liens avec le pseudo et menant aux profils.
Ensuite .first() prend le premier élément de la liste ( le lien du premier posteur de la page sur laquelle on se trouve ).
Et puis .attr('href') nous fournit la valeur de l'attribut "href" de l'élément courant ( l'url du lien ).
J'utilise du jQuery car dans ce cas-ci ça facilite les choses, en javascript de base ça ressemblerait à ceci, qui est plus long et moins performant :
- Code:
/^\/t[0-9]+(p[0-9]+)?-/.test(location.pathname) && (function(){
var prev_load = window.load;
if(prev_load === undefined)
prev_load = function(){};
window.onload=function(){
prev_load();
var pp = document.getElementsByClassName('postprofile');
if(pp.length==0) return;
var dts = pp[0].getElementsByTagName('DT');
if(dts.length==0) return;
var as = dts[0].getElementsByTagName('A');
if(as.length==0) return;
if(as[0].getAttribute('href') == "/u"+_userdata["user_id"]) {
document.body.appendChild(document.createTextNode("YOU ARE THE OP!"));
}
};
})();
Pour la documentation, il y a un site en anglais ( et plusieurs sites de traduction en français qu'on peut trouver sur google ) :
- documentation sur les sélecteurs : http://api.jquery.com/category/selectors/
- documentation sur $() équivalent de jQuery() : http://api.jquery.com/jQuery/
- documentation sur .first() : http://api.jquery.com/first/
- documentation sur .attr() : http://api.jquery.com/attr/
- documentation sur .append() : http://api.jquery.com/append/
Cordialement.
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Comparaison variable javascript et {variable_template}
Merci beaucoup, c'était très clair et j'ai tout compris .
curiosity- Nouveau membre
- Messages : 18
Inscrit(e) le : 23/06/2014
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum