Code jquery inactif pour les invités

3 participants

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

Résolu Code jquery inactif pour les invités

Message par Under the Moon Mer 28 Déc 2022 - 15:01

Détails techniques


Version du forum : ModernBB
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : https://testalohomora.forumactif.com/

Description du problème

Bonjour à tous !

Je me présente avec un problème que je n'arrive pas à résoudra malgré tout ce que j'ai pu tenter...

Essayant de faire fonctionner ce script :
Code:
$(function(){
  $(".ANO_cate_forum_list").attr("id", function(div) {return "ANO_cate_" +div})});

$(function(){
  $(".ANO_cate_forum").attr("id", function(div) {return "ANO_cate_forum" +div;})});

Sur la page d'accueil (et uniquement la page d'accueil), j'arrive effectivement à le faire... Dès lors que l'on est connecté. Pour les invités, la console m'indique une erreur js.
J'ai donc essayé de le changer de place et rien ne fonctionne, que ça soit dans le template ou dans le message d'accueil (savait on jamais !)

Pour que ça fonctionne, il faut que je le mette dans les pages JS mais avec "Toutes les pages" cochées. Sauf que si je fais ça, l'affichage des catégories plante, par ce fait, puisque l'affichage des différents forums est relié à des id uniques qui se remettent à 0 si je change de page :/

J'ai bien tenté de mettre une condition au Jquery avec une div présente uniquement sur la page d'accueil mais rien n'y a fait (je suppose que je n'ai pas réussi à écrire le code, c'est probable !) et je désespère un petit peu !

Alors si quelqu'un a une solution... Je serais toute ouïe !

PS : Actuellement, le script est dans le message d'accueil !

Merci beaucoup ♥
Under the Moon

Under the Moon
**

Messages : 62
Inscrit(e) le : 13/08/2019

https://testalohomora.forumactif.com/
Under the Moon a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code jquery inactif pour les invités

Message par Toryudo Mer 28 Déc 2022 - 17:04

Bonjour !
En JavaScript, quand un Script plante, les suivants peuvent aussi planter ou ne pas s'exécuter du tout. Pour Forumactif, tous les Scripts qui s'exécutent sur "Toutes les pages" se trouvent dans le même fichier, ce qui veut dire que si un Script qui est placé sur "Toutes les pages" plante, il peut potentiellement faire planter les autres Scripts qui sont placés sur "Toutes les pages".

Du coup, on va essayer de les corriger dans l'ordre, et voir si le vôtre finit par fonctionner (parce qu'à priori, pour le moment, je ne le vois pas poser problème).
Dans la console, pour le moment, c'est ce Script qui pose problème (il doit se trouver dans l'un de vos Templates) :
Code:
document.getElementById('list_current_members').innerHTML=document.getElementById('list_current_members').innerHTML.replace(/<br/>Utilisateurs enregistrés:/,'');

Les caractères / sont problématiques, vous pouvez le corriger comme ça :
Code:
document.getElementById('list_current_members').innerHTML = document.getElementById('list_current_members').innerHTML.replace('<br>Utilisateurs enregistrés : ', '');

On verra ensuite si un nouveau Script pose problème, et ainsi de suite !
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1372
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code jquery inactif pour les invités

Message par Under the Moon Mer 28 Déc 2022 - 18:00

Bonjour ♥

Merci pour votre réponse !
Alors du coup j'ai effectivement corrigé le script (qui fait partie d'un liste de script effectivement dans le template index_body). Par la même occasion, j'ai tenté d'enlever les caractères "/" des autres scripts en les remplaçant par les ' mais du coup les scripts ne fonctionnaient plus :')

Mais du coup... Comment est-ce que le script fonctionne pour les membres connectés mais pas pour les invités ? Ce n'est pas la même fichier qui s'exécute en fonction ?
Under the Moon

Under the Moon
**

Messages : 62
Inscrit(e) le : 13/08/2019

https://testalohomora.forumactif.com/
Under the Moon a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code jquery inactif pour les invités

Message par Toryudo Mer 28 Déc 2022 - 18:22

Si, c'est bien le même fichier qui s'exécute. Mais par exemple, le prochain problème, c'est celui-ci :
Code:
   if(_userdata.session_logged_in == 0){
      document.getElementById(fa_toolbar).style.display=none
   }

Là, avec le test _userdata.session_logged_in == 0, ce sont vraiment les invités qu'on cible. Le code entre { et } s'exécute uniquement pour les invités, et ce code plante parce que la variable "fa_toolbar" n'existe pas. Je pense que vous pouvez supprimer ces quelques lignes sereinement !
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1372
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code jquery inactif pour les invités

Message par Under the Moon Mer 28 Déc 2022 - 18:29

Et c'était effectivement ce souci qui plantait le reste !

J'avais écris cette ligne pour effacer, des invités, le "connexion" et "s'enregistrer" qui restait, mais je vais trouver une autre solution dans ce cas !

Un GRAND merci pour votre aide ! ♥
Under the Moon

Under the Moon
**

Messages : 62
Inscrit(e) le : 13/08/2019

https://testalohomora.forumactif.com/
Under the Moon a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Code jquery inactif pour les invités

Message par Self Mer 28 Déc 2022 - 18:46

Bonsoir !
Je me permet tant que le sujet n'est pas déplacé pour préciser que le code bogue à cause de guillemets manquantes et qu'il devrait plutôt être :
Code:
 if(_userdata.session_logged_in == 0){
      document.getElementById('fa_toolbar').style.display= 'none';
}

Bonne soirée Very Happy .
Self

Self
Membre actif

Masculin
Messages : 3853
Inscrit(e) le : 13/06/2013

https://selfback.forumactif.com/
Self a été remercié(e) par l'auteur de ce sujet.

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


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