Membres connectés récemment
[AWESOMEBB] Afficher une alerte aux membres dont un champ du profil est vide
Page 1 sur 1
- InvitéInvité
- Version du forum :AWESOMEBB
- Templates modifiés :non
- Navigateur :Firefox
Bonjour,
Je vais avoir à purger la valeur d'un champ de profil pour tous les utilisateurs.
Une fois que cela sera fait, j'aimerais que tous les membres pensent à le remplir de nouveau.
J'aimerais bien donc que lorsqu'un membre se connecte au forum, une vérification soit faite sur la valeur du champ, et que si le champ n'est pas rempli une alerte soit affichée au membre après connexion (sous la forme d'un alert en JS cela irait très bien) afin de l'inviter à se rendre sur son profil pour éditer le champ en question.
J'utilise le profil simple et le champ concerné est affiché sur les profils et porte l'id field_id1.
Aucune personnalisation ne touche au profil actuellement.
La cerise sur le gâteau serait de pouvoir proposer au membre un champ de saisie (il s'agit d'un champ de profil texte sur une ligne) directement dans le alert qui changerait la valeur du champ, mais déjà l'avertissement serait une grosse avancée
(Cette demande n'est pas sans lien avec mon autre demande en cours ^^)
Merci d'avance (en espérant que ce ne soit pas aussi difficile à faire que ma première demande ! )
Je vais avoir à purger la valeur d'un champ de profil pour tous les utilisateurs.
Une fois que cela sera fait, j'aimerais que tous les membres pensent à le remplir de nouveau.
J'aimerais bien donc que lorsqu'un membre se connecte au forum, une vérification soit faite sur la valeur du champ, et que si le champ n'est pas rempli une alerte soit affichée au membre après connexion (sous la forme d'un alert en JS cela irait très bien) afin de l'inviter à se rendre sur son profil pour éditer le champ en question.
J'utilise le profil simple et le champ concerné est affiché sur les profils et porte l'id field_id1.
Aucune personnalisation ne touche au profil actuellement.
La cerise sur le gâteau serait de pouvoir proposer au membre un champ de saisie (il s'agit d'un champ de profil texte sur une ligne) directement dans le alert qui changerait la valeur du champ, mais déjà l'avertissement serait une grosse avancée
(Cette demande n'est pas sans lien avec mon autre demande en cours ^^)
Merci d'avance (en espérant que ce ne soit pas aussi difficile à faire que ma première demande ! )
Hello chattigre,
tu peux essayer ceci, mais juste sur l'index car ce sera redondant sinon.
Je ne serais pas mettre en place juste une seule alerte après la connexion.
Le script va regarder si le champs contient un mot, dans le cas contraire (null) on affichera une confirmation ou tu pourras modifier les variables comme bon te semble(elles sont commentées).
Si le membre clique sur ok il aura un petit texte "je fonce le modifier" a modifier
et sera redirigé vers son profil.
Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript
Mettre un titre explicite.
Cocher sur l'index.
Déposer ceci:
Penser a cliquer sur le bouton
Message envoyé via la réponse rapide par: @Milouze14
tu peux essayer ceci, mais juste sur l'index car ce sera redondant sinon.
Je ne serais pas mettre en place juste une seule alerte après la connexion.
Le script va regarder si le champs contient un mot, dans le cas contraire (null) on affichera une confirmation ou tu pourras modifier les variables comme bon te semble(elles sont commentées).
Si le membre clique sur ok il aura un petit texte "je fonce le modifier" a modifier
et sera redirigé vers son profil.
Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript
Mettre un titre explicite.
Cocher sur l'index.
Déposer ceci:
- Code:
$(function(){
if(!_userdata["session_logged_in"])return;
$(function(){
var pseudo=_userdata["username"];
//premier texte
var texte=",\nmerci de renseigner le champs suivant dans votre profil:\n ";
var link=$('div[id="main-user-menu"]').find('ul li:first a[href^="/u"]').attr('href');
$.get(link , function(data){
var champ=$(data).find('.cp.advanced-profile #profile-tab-field-profil').find('dl#field_id1').find('dt').text();
var val=$(data).find('.cp.advanced-profile #profile-tab-field-profil').find('dl#field_id1').find('div.field_uneditable').text();
var nom =val.match(/\w+/);
//SI PAS DE MOTS ALORS...
if(nom==null)
{
//ON LANCE LES VARIABLES CI DESSUS
if ( confirm('Bonjour '+pseudo+texte+champ+'') )
{
//UN PETIT MOT SYMPA
alert('je fonce le modifier');
window.location.href='/profile?mode=editprofile';
}
else
{
//si on cliques sur annuler alors j affiche le texte ci dessous
alert(' je renonce');
}}});})});
Penser a cliquer sur le bouton
Message envoyé via la réponse rapide par: @Milouze14
- InvitéInvité
Merci Milouze !
J'ai juste modifié les sélecteurs puisque j'utilise le profil simple et que le code me semble prévu pour le profil avancé (résultat l'alerte s'affichait que le champ soit rempli ou non)
Y-a-t-il un moyen :
- De vérifier que plusieurs champs sont remplis (et d'afficher une seule alerte regroupant tout)
- D'exclure certains utilisateurs à partir de leur id ?
Voici où j'en suis pour le moment :
Merci beaucoup !
J'ai juste modifié les sélecteurs puisque j'utilise le profil simple et que le code me semble prévu pour le profil avancé (résultat l'alerte s'affichait que le champ soit rempli ou non)
Y-a-t-il un moyen :
- De vérifier que plusieurs champs sont remplis (et d'afficher une seule alerte regroupant tout)
- D'exclure certains utilisateurs à partir de leur id ?
Voici où j'en suis pour le moment :
- Code:
$(function(){
if(!_userdata["session_logged_in"])return;
$(function(){
var pseudo=_userdata["username"];
var texte=",\nmerci de renseigner le champ suivant dans votre profil:\n ";
var link=$('div[id="main-user-menu"]').find('ul li:first a[href^="/u"]').attr('href');
//var profil=$('div[id="main-user-menu"]').find('a[href="/profile?mode=editprofile"]');
$.get(link , function(data){
var champ=$(data).find('#profile').find('dl#field_id1').find('dt').text();
var val=$(data).find('#profile').find('dl#field_id1').find('div.field_uneditable').text();
var nom =val.match(/\w+/);
//SI PAS DE MOTS ALORS...
if(nom==null)
{
//ON LANCE LES VARIABLES CI DESSUS
if ( confirm('Bonjour '+pseudo+texte+champ+'') )
{
window.location.href= link;
}}});})});
Merci beaucoup !
Oups effectivement,
j'aurais penché pour .grid-2 au lieu de #profile
Comme ceci:
Pour bloquer certains id:
Tu peux utiliser ceci:
On bloque l'id 1 et 16
A placer en dessous de :
Vi mais ce sera sur la partie du profil donc la class .grid-2 (partie du milieu).
Mais je dois me sauver pour l'instant et je verrais tout cela en fin de journée.
Message envoyé via la réponse rapide par: @Milouze14
j'aurais penché pour .grid-2 au lieu de #profile
Comme ceci:
- Code:
$(function(){
if(!_userdata["session_logged_in"])return;
$(function(){
var pseudo=_userdata["username"];
var texte=",\nmerci de renseigner le champs suivant dans votre profil:\n ";
var link=$('div[id="main-user-menu"]').find('ul li:first a[href^="/u"]').attr('href');
$.get(link , function(data){
var champ=$(data).find('.grid-2').find('dl#field_id2').find('dt').text();
var val=$(data).find('.grid-2').find('dl#field_id2').find('div.field_uneditable').text();
var nom =val.match(/\w+/);
//SI PAS DE MOTS ALORS...
if(nom==null)
{
//ON LANCE LES VARIABLES CI DESSUS
if ( confirm('Bonjour '+pseudo+texte+champ+'') )
{
//UN PETIT MOT SYMPA
alert('je fonce le modifier');
window.location.href='/profile?mode=editprofile';
}
else
{
//si on clicques sur annuler alors j affiche le texte ci dessous
alert(' je renonce');
}}});})});
Pour bloquer certains id:
Tu peux utiliser ceci:
- Code:
if(_userdata["user_id"]== 1||16)return;
On bloque l'id 1 et 16
A placer en dessous de :
- Code:
if(!_userdata["session_logged_in"])return;
De vérifier que plusieurs champs sont remplis (et d'afficher une seule alerte regroupant tout)
Vi mais ce sera sur la partie du profil donc la class .grid-2 (partie du milieu).
Mais je dois me sauver pour l'instant et je verrais tout cela en fin de journée.
Message envoyé via la réponse rapide par: @Milouze14
@chattigre ,
alors pour cette demande:
L'actuel script va rechercher juste un contenu ayant du texte.
Je pense que tes autres champs ont autre valeur?
Message envoyé via la réponse rapide par: @Milouze14
alors pour cette demande:
Il faut savoir si tous les champs de profil sont du texte.chattigre a écrit:De vérifier que plusieurs champs sont remplis (et d'afficher une seule alerte regroupant tout)
L'actuel script va rechercher juste un contenu ayant du texte.
Je pense que tes autres champs ont autre valeur?
Message envoyé via la réponse rapide par: @Milouze14
- InvitéInvité
Bonjour Milouze,
Merci pour le nouveau code, je vais voir ça !
L'autre champ à vérifier est aussi textuel
C'est une liste déroulante, mais l'affichage sur le profil et la structure HTML / CSS à l'affichage est la même si je ne me trompe pas (L'autre champ a pour id field_id3).
L'objectif est donc de vérifier que ni un champ ni l'autre n'est vide, et que si l'un des deux l'est alors l'alerte s'affiche.
Merci !
Message envoyé via la réponse rapide par: @chattigre
Merci pour le nouveau code, je vais voir ça !
L'autre champ à vérifier est aussi textuel
C'est une liste déroulante, mais l'affichage sur le profil et la structure HTML / CSS à l'affichage est la même si je ne me trompe pas (L'autre champ a pour id field_id3).
L'objectif est donc de vérifier que ni un champ ni l'autre n'est vide, et que si l'un des deux l'est alors l'alerte s'affiche.
Merci !
Message envoyé via la réponse rapide par: @chattigre
Re,
ce n'est que pour un autre champ chattigre ?
Cela m’arrange .
Il faut donc si je saisis bien faire une condition pour les deux ?
Je verrais cela demain désormais cher ami .
Message envoyé via la réponse rapide par: @Milouze14
ce n'est que pour un autre champ chattigre ?
Cela m’arrange .
Il faut donc si je saisis bien faire une condition pour les deux ?
Je verrais cela demain désormais cher ami .
Message envoyé via la réponse rapide par: @Milouze14
- InvitéInvité
Re,
Mon modeste niveau en JS m'a suffit pour réadapter ton code à mes besoins
Je te transmets le résultat, vois-tu une erreur de syntaxe dedans ? ^^
Chez moi il est fonctionnel, mais bon, je préfère demander plutôt que de laisser un truc bancal
Merci beaucoup pour ton aide
Bonne journée
Mon modeste niveau en JS m'a suffit pour réadapter ton code à mes besoins
Je te transmets le résultat, vois-tu une erreur de syntaxe dedans ? ^^
- Code:
$(function(){
if(!_userdata["session_logged_in"])return;
if(_userdata["user_id"]== (1||47||77))return;
$(function(){
var pseudo=_userdata["username"];
var texte=",\nMerci de renseigner le(s) champ(s) suivant(s) dans ton profil:\n";
var link=$('div[id="main-user-menu"]').find('ul li:first a[href^="/u"]').attr('href');
$.get(link , function(data){
var champ1=$(data).find('.grid-2').find('dl#field_id1').find('dt').text()+'\n';
champ1 = champ1.replace(/\* :/g, '');
var val1=$(data).find('.grid-2').find('dl#field_id1').find('div.field_uneditable').text();
var champ2=$(data).find('.grid-2').find('dl#field_id3').find('dt').text()+'\n';
champ2 = champ2.replace(/\* :/g, '');
var val2=$(data).find('.grid-2').find('dl#field_id3').find('div.field_uneditable').text();
var bool1 =val1.match(/\w+/);
var bool2 =val2.match(/\w+/);
//SI PAS DE MOTS ALORS...
if((bool1===null) || (bool2===null)) {
var displayed = '';
if(bool1 === null) displayed+= ' - ' +champ1;
if(bool2 === null) displayed+= ' - ' +champ2;
//ON LANCE LES VARIABLES CI DESSUS
if ( confirm('Bonjour '+pseudo+texte+displayed) )
{
window.location.href=link;
}
}
});
});
});
Chez moi il est fonctionnel, mais bon, je préfère demander plutôt que de laisser un truc bancal
Merci beaucoup pour ton aide
Bonne journée
Hello chattigre,
bravo pour ce code, mais pourquoi venir chercher de l'aide
si tu maitrises ainsi ?
Message envoyé via la réponse rapide par: @Milouze14
bravo pour ce code, mais pourquoi venir chercher de l'aide
si tu maitrises ainsi ?
Message envoyé via la réponse rapide par: @Milouze14
- InvitéInvité
Salut,
Merci
En fait, je comprends le code, j'arrive à l'étendre ou le reproduire, mais j'ai encore beaucoup de mal à partir de zéro pour arriver à ce que je veux...
(Et puis je parle de codes simples, dès que c'est des codes plus complexes, c'est pas la même histoire )
Merci pour ton aide !
Message envoyé via la réponse rapide par: @chattigre
Merci
En fait, je comprends le code, j'arrive à l'étendre ou le reproduire, mais j'ai encore beaucoup de mal à partir de zéro pour arriver à ce que je veux...
(Et puis je parle de codes simples, dès que c'est des codes plus complexes, c'est pas la même histoire )
Merci pour ton aide !
Message envoyé via la réponse rapide par: @chattigre
Ok cher ami,
en tout cas bravo .
Message envoyé via la réponse rapide par: @Milouze14
en tout cas bravo .
Hello
Sujet résolu et déplacé dans le forum adéquate
A bientôt pour une prochaine demande
Sujet résolu et déplacé dans le forum adéquate
A bientôt pour une prochaine demande
Message envoyé via la réponse rapide par: @Milouze14
Sujets similaires
Créer un compte ou se connecter pour répondre
Vous devez être membre pour répondre.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum