Comment rendre obligatoire la partie lier à un sujet ?

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

Résolu Comment rendre obligatoire la partie lier à un sujet ?

Message par Invité Mar 23 Oct 2018 - 16:19

Détails techniques

Version du forum : PunBB
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Mozilla Firefox
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : https://diamant-mandarin-evo.superforum.fr/

Description du problème

Bonjour à tous,


J'ai sur mon forum une rubriques qui regroupe les rassemblements. On peut les lier au calendrier grâce à la partie "Lier" que j'ai un peut retravaillé :

Comment rendre obligatoire la partie lier à un sujet ? Captur12

Le soucis est que les membres oublient souvent de la renseigner.
J'aimerais qu'au moment qu'ils appuient sur "envoyer", il ne soit pas possible de l'envoyer si ce n'est pas renseigné et qu'un message s'affiche "Merci de renseigner la date et durée de votre événement". Avec un déplacement vers cette zone en l'encadrant en rouge si possible et surtout que ce code ne soit valable que dans cette rubrique spécifique.


Merci d'avance de votre aide
Tony


Dernière édition par @To le Ven 2 Nov 2018 - 22:24, édité 1 fois
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Comment rendre obligatoire la partie lier à un sujet ?

Message par Invité Sam 27 Oct 2018 - 22:42

Bonsoir à tous,


Un petit Up pour ma demande d'aide.


Bonne soirée,
Tony
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Comment rendre obligatoire la partie lier à un sujet ?

Message par Ea Mer 31 Oct 2018 - 20:53

Bonjour,


Voici un script à mettre sur toutes les pages qui permettrait de faire cela:

Code:
location.pathname == '/post' && $(function () {
  if ($('[name="f"]').val() != 15) return;
  $('[name="post"][type="submit"]').click(function () {
    var res = true;
    ['day','month', 'year'].forEach(function (key) {
      var el = $('[name="topic_calendar_'+key+'"]');
      if(el.val()!=="0" && el.val()!=="") return el.css({'border-bottom': '', 'background-color': ''});
      el.css({'border-bottom': '3px solid #d77', 'background-color': '#eaa'});
      res = false;
    });
    return res;
  });
});

Si on souhaite que le nombre de jour soit aussi obligatoire, il faut changer:

Code:
['day','month', 'year']
en :

Code:
['day','month', 'year', 'duration_day']
Et pour spécifier sur quel forum on veut que ça agisse, il faut changer le 15 par l'identifiant du forum.

Cette identifiant est un chiffre dans la barre d'adresse après le /f, par exemple cette section a l'adresse:

https://forum.forumactif.com/f74-probleme-avec-un-script-un-code

et l'identifiant est 74.

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Comment rendre obligatoire la partie lier à un sujet ?

Message par Invité Jeu 1 Nov 2018 - 15:34

Bonjour Ea,


Merci pour ce code Very Happy , il fonctionne parfaitement.

Par contre si l'on ne descend pas pour voir la partie "Lier au calendrier", le membre peut risquer de ne pas comprendre pourquoi son post ne s'envoie pas.
Est-il possible d'ajouter un message d'alerte ou un déplacement vers cette partie quand elle n'est pas rempli svp ?


Cordialement,
Tony
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Comment rendre obligatoire la partie lier à un sujet ?

Message par Ea Ven 2 Nov 2018 - 11:18

Pour déplacer l'écran avec le champ au milieu, on peut faire:

Code:
location.pathname == '/post' && $(function () {
  if ($('[name="f"]').val() != 15) return;
  $('[name="post"][type="submit"]').click(function () {
    var res = true;
    ['day','month', 'year'].forEach(function (key) {
      var el = $('[name="topic_calendar_'+key+'"]');
      if(el.val()!=="0" && el.val()!=="") return el.css({'border-bottom': '', 'background-color': ''});
      el.css({'border-bottom': '3px solid #d77', 'background-color': '#eaa'});
      $('html').stop().animate({scrollTop: $('[name="topic_calendar_"+key]').offset().top - $('body').height()/2});
      res = false;
    });
    return res;
  });
});

Pour faire une alerte:

Code:
location.pathname == '/post' && $(function () {
  if ($('[name="f"]').val() != 15) return;
  $('[name="post"][type="submit"]').click(function () {
    var res = 0;
    ['day','month', 'year'].forEach(function (key) {
      var el = $('[name="topic_calendar_'+key+'"]');
      if(el.val()!=="0" && el.val()!=="") return el.css({'border-bottom': '', 'background-color': ''});
      el.css({'border-bottom': '3px solid #d77', 'background-color': '#eaa'});
      res++;
    });
    if (res) alert(res + " champ" + (res > 1 ? "s" : "") + " calendrier vides");
    return !res;
  });
});

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Comment rendre obligatoire la partie lier à un sujet ?

Message par Invité Ven 2 Nov 2018 - 22:24

Bonsoir Ea,

Super ! J'ai combiné les 2 codes et fait quelques modifications :

Code:
location.pathname == '/post' && $(function () {
  if ($('[name="f"]').val() != 6) return;
  $('[name="post"][type="submit"]').click(function () {
    var res = 0;
        ['day','month', 'year', 'duration_day'].forEach(function (key) {
      var el = $('[name="topic_calendar_'+key+'"]');
      if(el.val()!=="0" && el.val()!=="") return el.css({'border-bottom': '', 'background-color': ''});
      el.css({'border-bottom': '3px solid #B31010', 'background-color': ''});
      res++;
    });
    if (res) alert("Veuillez renseigner les " + res + " champ" + (res > 1 ? "s" : "") + " requis pour lier votre événement au calendrier du forum");
   
  return !res;
  });
});

location.pathname == '/post' && $(function () {
  if ($('[name="f"]').val() != 6) return;
  $('[name="post"][type="submit"]').click(function () {
    var res = true;
    ['day','month', 'year', 'duration_day'].forEach(function (key) {
      var el = $('[name="topic_calendar_'+key+'"]');
      $('html').stop().animate({scrollTop: $('[name="topic_calendar_'+key+'"]').offset().top - $('body').height()/4});
    });

    return res;
  });
});

Merci beaucoup pour cette aide Very Happy Very Happy .

Cordialement,
Tony
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

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

- Sujets similaires

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