Astuces Forumactif
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Membres connectés récemment
Voir tous les membres

[PhpBB3] Préfixes sur titre limité à une catégorie

Page 1 sur 2 1, 2  Suivant

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

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

Messagephotoclic Sam 23 Nov 2019 - 18:54

  • Version du forum :
    PhpBB3
  • Templates modifiés :
    oui
  • Navigateur :
    Firefox
Bonjour,

J'utilise ce script des prefixes peaufiné par Philippe sur les titres de sujets.

Serait-il possible de n'activer ce script que sur la catégorie "Les photos du clic"

Si cela est possible, serait-il possibleaussi d'obliger le membre à renseigner ce champ avec l'une des lignes du menu déroulant.
Et si le membre veut envoyer son message avec ce champ vide, avoir un message l'informant que ce champ est obligatoire.

Merci pour votre aide.

Le script utilisé:

Code:

//Préfixes sur titres nouveaux sujets ttes pages
        var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                var _pm = false;
                var chk = false;
                function toMenu(a) {
                  var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                  for (i in a)
                  htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                  htmlpre += '</select>';
                  return htmlpre;
                }
                function checkpre(ar, input) {
                  for (i in ar) {
                      var p = new RegExp("\\" + ar[i], "g");
                      var title = input.substr(0, input.indexOf(']'));
                      if (p.test(title)) return ar[i];
                  }
                  return "";
                }
                $(function () {
                  if (_pm) chk = /\privmsg/.test(location.href);
                  if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                      $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                      var mw = $("#prefix").width() + 5;
                      $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                      var t = $("[name=subject]").val();
                  

                      var cur = checkpre(prefixes, t);
                      if (cur != "") {
                        $("[value=" + cur + "]").attr("selected", "selected");
      
                        $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                      }
                      $("input[name=post]").click(function () {
        var texta=$('#text_editor_textarea').sceditor("instance").val();
        var sub = $("input[name=subject]").val().trim();
        if (sub != "" && $("#prefix").val() != "")
        $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
        var test=$("#prefix").val();
                        if(test)
                        {
        $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                        }
                      });
                  }
                });



Dernière édition par photoclic le Mer 27 Nov 2019 - 0:19, édité 2 fois
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 23 Nov 2019 - 18:56

Hello Serge,



Si cela est possible, serait-il possible d'obliger le membre à renseigner ce champ avec l'une des lignes du menu.
Et si le membre veut envoyer son message avec ce champ vise, avoir un message l'inforamt que ce champ est obligatoire.
Franchement, je ne pense pas que cela soit possible, mais qui sait!!!!



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

Messagephotoclic Sam 23 Nov 2019 - 18:59

Hello Philippe,

La première demande serait déjà bien.

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

Messagephotoclic Sam 23 Nov 2019 - 19:04

J'avais vu ce post il y a un moment:
https://forum.forumactif.com/t370254-prefixe-dans-les-sujets-critere-obligatoire-a-remplir-avant-de-poster

Je ne sais pas si ça peut aider.

Désolé pour le double post.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 23 Nov 2019 - 19:16

Ok , merci Serge,
je regarde cela demain matin Merci

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

Messagephotoclic Sam 23 Nov 2019 - 19:17

Pas de souci Phil.

Rien d'urgent.

Bonne soirée.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 23 Nov 2019 - 19:23

Bon ben en faite, le script sur le lien donné doit fonctionner juste sur la catégorie demandée Serge:
Les forums 1,4,5,6 et 19

Code:
location.pathname == "/post" && $(function() {
 
    var tags = {
        1: ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"],
        4: ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"],
        5: ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"],
        6: ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"],
        19: ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"]

    };
 
    var dont_add_space_if = /^[\s\[]/;
 
    var f = $('form[method="post"] input[name="f"]');
    if (f.length == 0) return;
    tags = tags[f.val()];
    if (!tags) return;
    var s = $("<select><option></option><option>" + tags.join("</option><option>") + "</option></select>").insertAfter('form[method="post"] input[name="subject"]').change(function() {
        var v = this.value,
            a = 1,
            t = $(this).prev().val();
        if (t.indexOf(v) != -1) a = 0;
        $("option", this).each(function() {
            t = t.replace($(this).val(), "")
        });
        if (a) t = v + (dont_add_space_if.test(t) ? "" : " ") +
            t;
        $(this).css('border', 'initial');
        $(this).prev().val(t);
        this.selectedIndex = 0;
        return false
    });
    
    s.closest('form').on('submit', function(){
        var v = $("input[name='subject']", this).val();
        for(var i= 0; i<tags.length; i++)
            if(v.indexOf(tags[i]) != -1)
                return true;
        alert("Il faut choisir un tag ;)");
        $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
        s.css('border', '3px dashed red');
        return false;
    });
 
});



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

Messagephotoclic Sam 23 Nov 2019 - 19:27

Je vais essayer.

Tu avais ajouté au script initial que j'ai remis en haut l'histoire du tag ajouté en bas du message.


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 23 Nov 2019 - 19:39

Je ne saisis pas trop ta question, mais j'ai repris le script de ce message:
https://www.milouze14.com/t32377-phpbb3-prefixes-sur-titre-limite-a-une-categorie#616168

En mentionnant les forums figurant dans la catégorie "Les photos du clic",
c'est à dire les forums 1,4,5,6 et 19


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

Messagephotoclic Sam 23 Nov 2019 - 19:44

Oui, j'ai bien compris Philippe, mais il est différent au niveau fonctionnement:

. La case préfixe est à droite du titre et non à gauche
. Le préfixe ajouté n'est pas entre crochets
. Et tu m'avais rajouté en début de semaine la géniale fonction supplémentaire qui ajoute le préfixe en bas du message sous forme de tag.



Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 23 Nov 2019 - 19:58


Voici le script sans le tag pour l'instant:
Code:
location.pathname == "/post" && $(function() {
 
    var tags = {
        1: ["[Paysages]","[Panoramas]","[Portraits]","[Instants_de_vie_et_rue]","[Studio]","[Petite_série]","[Nu_Charme]","[Concerts_et_spectacles]","[Animaux]","[Noir_et_Blanc]","[Flore]","[Macro_et_Proxy]","[Urbex_Engins_et_véhicules]","[Architecture_et_Graphisme]","[Sport]","[Inclassables]"],
        4: ["[Paysages]","[Panoramas]","[Portraits]","[Instants_de_vie_et_rue]","[Studio]","[Petite_série]","[Nu_Charme]","[Concerts_et_spectacles]","[Animaux]","[Noir_et_Blanc]","[Flore]","[Macro_et_Proxy]","[Urbex_Engins_et_véhicules]","[Architecture_et_Graphisme]","[Sport]","[Inclassables]"],
        5: ["[Paysages]","[Panoramas]","[Portraits]","[Instants_de_vie_et_rue]","[Studio]","[Petite_série]","[Nu_Charme]","[Concerts_et_spectacles]","[Animaux]","[Noir_et_Blanc]","[Flore]","[Macro_et_Proxy]","[Urbex_Engins_et_véhicules]","[Architecture_et_Graphisme]","[Sport]","[Inclassables]"],
        6: ["[Paysages]","[Panoramas]","[Portraits]","[Instants_de_vie_et_rue]","[Studio]","[Petite_série]","[Nu_Charme]","[Concerts_et_spectacles]","[Animaux]","[Noir_et_Blanc]","[Flore]","[Macro_et_Proxy]","[Urbex_Engins_et_véhicules]","[Architecture_et_Graphisme]","[Sport]","[Inclassables]"],
        19: ["[Paysages]","[Panoramas]","[Portraits]","[Instants_de_vie_et_rue]","[Studio]","[Petite_série]","[Nu_Charme]","[Concerts_et_spectacles]","[Animaux]","[Noir_et_Blanc]","[Flore]","[Macro_et_Proxy]","[Urbex_Engins_et_véhicules]","[Architecture_et_Graphisme]","[Sport]","[Inclassables]"]

    };
 
    var dont_add_space_if = /^[\s\[]/;
 
    var f = $('form[method="post"] input[name="f"]');
    if (f.length == 0) return;
    tags = tags[f.val()];
    if (!tags) return;
    var s = $("<select><option></option><option>" + tags.join("</option><option>") + "</option></select>").insertBefore('form[method="post"] input[name="subject"]').change(function() {
        var v = this.value,
            a = 1,
            t = $(this).prev().val();
        if (t.indexOf(v) != -1) a = 0;
        $("option", this).each(function() {
            t = t.replace($(this).val(), "")
        });
        if (a) t = v + (dont_add_space_if.test(t) ? "" : " ") +
            t;
        $(this).css('border', 'initial');
        $(this).prev().val(t);
        this.selectedIndex = 0;
        return false
    });
   
    s.closest('form').on('submit', function(){
        var v = $("input[name='subject']", this).val();
        for(var i= 0; i<tags.length; i++)
            if(v.indexOf(tags[i]) != -1)
                return true;
        alert("Il faut choisir un tag ;)");
        $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
        s.css('border', '3px dashed red');
        return false;
    });
 
});


Je regarde pour le tag demain matin Serge.


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

Messagephotoclic Sam 23 Nov 2019 - 21:45

Re Phil,

Alors, le menu est bien à gauche du titre et on a bien les crochets.
Mais ce serait bien si le script fonctionne comme le précédent.

. Manque les couleurs dans le menu déroulant. Faudrait ajouter id="prefix" au select pour que le css agisse.

.Sur ton dernier script en l'état, il manque le titre "Préfixe" en tête  du menu (quand le menu n'est pas déroulé),

. Il y a un  petit bug car quand on ne choisi pas de préfixe, on a bien la fenêtre avec le message "il faut choisir un tag" mais on a aussi ce message quand on en choisi un.
Il n'y a pas ce problème sur le script FA  avant ta reprise),
Je ne sais pas s'il est possible d'ajouter un style à cette fenêtre: couleur de police et fond.

. Quand on édite un message, on n'a plus le menu préfixe pour en ajouter un s'il n'y en a pas ou pour le changer; c'était le cas avant.

Et puis ta cerise, l'ajout du tag en bas de message.
Il ne faut pas que dans le tag ajouté se retrouvent les crochets :-)

Encore un exercice complexe que je te demande là pasvuT

Merci pour ton travail.

Je ne pense pas pouvoir repasser avant demain soir, donc pas d'urgence  Phil.


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Dim 24 Nov 2019 - 7:56

Coucou Serge,

alors voilà une compilation des deux scripts:
Code:
location.pathname=="/post" && /^\?f=(1|4|5|6|19)&mode=newtopic$/.test(location.search) && $(function(){
    //Préfixes sur titres nouveaux sujets ttes pages
            var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                    var _pm = false;
                    var chk = false;
                    function toMenu(a) {
                      var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                      for (i in a)
                      htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                      htmlpre += '</select>';
                      return htmlpre;
                    }
                    function checkpre(ar, input) {
                      for (i in ar) {
                          var p = new RegExp("\\" + ar[i], "g");
                          var title = input.substr(0, input.indexOf(']'));
                          if (p.test(title)) return ar[i];
                      }
                      return "";
                    }
                    $(function () {
                      if (_pm) chk = /\privmsg/.test(location.href);
                      if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                          $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                          var mw = $("#prefix").width() + 5;
                          $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                          var t = $("[name=subject]").val();
                     

                          var cur = checkpre(prefixes, t);
                          if (cur != "") {
                            $("[value=" + cur + "]").attr("selected", "selected");
         
                            $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                          }
$("input[name=post]").click(function () {
  var s=$('select#prefix');
  if ($('select#prefix').val().length == 0) {
 alert("Il faut choisir un tag");
        $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
        $('select#prefix').css('border', '3px dashed red');
        return false;
                                   
                              }
            var texta=$('#text_editor_textarea').sceditor("instance").val();
            var sub = $("input[name=subject]").val().trim();
            if (sub != "" && $("#prefix").val() != "")
            $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
            var test=$("#prefix").val();
                            if(test)
                            {
            $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                            }
                          });
                      }
                    });
});


On autorise seulement sur les forums:1,4,5,6 et 19

Code:
location.pathname=="/post" && /^\?f=(1|4|5|6|19)&mode=newtopic$/.test(location.search) && $(function(){


Si le préfixe n'est pas sélectionné, le membre aura cette alerte:
"Il faut choisir un tag".
que tu retrouveras sous cette forme dans le script:

Code:
alert("Il faut choisir un tag");


En images:

Si on ne sélectionnes pas le sélect et que l'on cliques sur envoyer:

[PhpBB3] Préfixes sur titre limité à une catégorie 120

Puis une petite animation remontera vers le select avec une bordure rouge que tu
pourras modifier dans le script ici:
Code:
$('select#prefix').css('border', '3px dashed red');


[PhpBB3] Préfixes sur titre limité à une catégorie 211

Et voilou mon ami.


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

Messagephotoclic Dim 24 Nov 2019 - 9:33

Bonjour Philippe,

Super boulot réalisé. Merci.

IL resterait si cela est possible:
. ajouter un style couleur de police et fond à la fenêtre disant "il faut choisir un tag": .
. Quand on édite un message, avoir le menu préfixe pour en ajouter un s'il n'y en a pas ou pour le changer.  

Le reste est top.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Dim 24 Nov 2019 - 9:41

Re Serge,

. ajouter un style couleur de police et fond à la fenêtre disant "il faut choisir un tag": .

C'est une alerte , donc non modifiable, c'est le navigateur qui donne l'aspect.


. Quand on édite un message, avoir le menu préfixe pour en ajouter un s'il n'y en a pas ou pour le changer.

Hum, tu demandes pour des forums spécifiques donc création, si tu désires l'avoir aussi sur l'édition, ce sera tout bonnement impossible car on n'a plus de trace du forum Serge mais simplement du sujet.



Je peux voir pour remplacer l'alerte par un message identique au dessus du select!!
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Dim 24 Nov 2019 - 9:50

Re- Phil,

Ah mince dommage pour l'édition.
Où l'avoir sur tout les forums alors. ce serait mieux que de ne pas l'avoir.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Dim 24 Nov 2019 - 10:00

Pour tout les forums, ce serait ce script :

J'ai supprimé l'alerte pour afficher une cellule au dessous du préfixe qui s'affichera et au bout de 3 secondes s'estompera .

Code:
 //Préfixes sur titres nouveaux sujets ttes pages
            var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                    var _pm = false;
                    var chk = false;
                    function toMenu(a) {
                      var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                      for (i in a)
                      htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                      htmlpre += '</select>';
                      return htmlpre;
                    }
                    function checkpre(ar, input) {
                      for (i in ar) {
                          var p = new RegExp("\\" + ar[i], "g");
                          var title = input.substr(0, input.indexOf(']'));
                          if (p.test(title)) return ar[i];
                      }
                      return "";
                    }
                    $(function () {
                      if (_pm) chk = /\privmsg/.test(location.href);
                      if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                          $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                          var mw = $("#prefix").width() + 5;
                          $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                          var t = $("[name=subject]").val();
                     

                          var cur = checkpre(prefixes, t);
                          if (cur != "") {
                            $("[value=" + cur + "]").attr("selected", "selected");
         
                            $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                        }
 $("input[name=subject]").closest('dl').after('<dl class="M14_info_Prefixe"style="display:none;"><dt><label style="color:darkred;"><b>Information</b></label><dd style="color:darkred;text-align:center;"><b>Il faut choisir un tag dans le menu déroulant.</b></dd></dl>');                         
$("input[name=post]").click(function () {
  var s=$('select#prefix');
  if ($('select#prefix').val().length == 0) {
$('.M14_info_Prefixe').slideDown().delay(3000).slideUp();
        $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
        $('select#prefix').css('border', '3px dashed red');
        return false;
                                   
                              }
            var texta=$('#text_editor_textarea').sceditor("instance").val();
            var sub = $("input[name=subject]").val().trim();
            if (sub != "" && $("#prefix").val() != "")
            $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
            var test=$("#prefix").val();
                            if(test)
                            {
            $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                            }
                          });
                      }
                    });


La cellule ajoutée :
Code:
 $("input[name=subject]").closest('dl').after('<dl class="M14_info_Prefixe"style="display:none;"><dt><label style="color:darkred;"><b>Information</b></label><dd style="color:darkred;text-align:center;"><b>Il faut choisir un tag dans le menu déroulant.</b></dd></dl>'); 

L'effet d'ouverture/fermeture:
Code:
$('.M14_info_Prefixe').slideDown().delay(3000).slideUp();

Les 3000 correspond à 3 secondes.
Si tu désires laisser cette cellule affichée, modifies ainsi:
Code:
$('.M14_info_Prefixe').slideDown();


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Dim 24 Nov 2019 - 10:14

Ou alors ce script, qui affichera les préfixes lors d'une création de sujet sur les forums mentionnés
et un autre qui affichera les préfixes sur tous les forums mais seulement en édition:
Code:
location.pathname=="/post" && /^\?f=(1|4|5|6|19)&mode=newtopic$/.test(location.search) && $(function(){
    //Préfixes sur titres nouveaux sujets ttes pages
            var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                    var _pm = false;
                    var chk = false;
                    function toMenu(a) {
                      var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                      for (i in a)
                      htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                      htmlpre += '</select>';
                      return htmlpre;
                    }
                    function checkpre(ar, input) {
                      for (i in ar) {
                          var p = new RegExp("\\" + ar[i], "g");
                          var title = input.substr(0, input.indexOf(']'));
                          if (p.test(title)) return ar[i];
                      }
                      return "";
                    }
                    $(function () {
                      if (_pm) chk = /\privmsg/.test(location.href);
                      if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                          $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                          var mw = $("#prefix").width() + 5;
                          $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                          var t = $("[name=subject]").val();
                     

                          var cur = checkpre(prefixes, t);
                          if (cur != "") {
                            $("[value=" + cur + "]").attr("selected", "selected");
         
                            $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                        }
 $("input[name=subject]").closest('dl').after('<dl class="M14_info_Prefixe"style="display:none;"><dt><label style="color:darkred;"><b>Information</b></label><dd style="color:darkred;text-align:center;"><b>Il faut choisir un tag dans le menu déroulant.</b></dd></dl>');                         
$("input[name=post]").click(function () {
  var s=$('select#prefix');
  if ($('select#prefix').val().length == 0) {
$('.M14_info_Prefixe').slideDown().delay(3000).slideUp();
        $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
        $('select#prefix').css('border', '3px dashed red');
        return false;
                                   
                              }
            var texta=$('#text_editor_textarea').sceditor("instance").val();
            var sub = $("input[name=subject]").val().trim();
            if (sub != "" && $("#prefix").val() != "")
            $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
            var test=$("#prefix").val();
                            if(test)
                            {
            $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                            }
                          });
                      }
                    });
});
if(location.href.match(/mode=editpost/))
{
  //Préfixes sur titres nouveaux sujets ttes pages
            var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                    var _pm = false;
                    var chk = false;
                    function toMenu(a) {
                      var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                      for (i in a)
                      htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                      htmlpre += '</select>';
                      return htmlpre;
                    }
                    function checkpre(ar, input) {
                      for (i in ar) {
                          var p = new RegExp("\\" + ar[i], "g");
                          var title = input.substr(0, input.indexOf(']'));
                          if (p.test(title)) return ar[i];
                      }
                      return "";
                    }
                    $(function () {
                      if (_pm) chk = /\privmsg/.test(location.href);
                      if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                          $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                          var mw = $("#prefix").width() + 5;
                          $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                          var t = $("[name=subject]").val();
                     

                          var cur = checkpre(prefixes, t);
                          if (cur != "") {
                            $("[value=" + cur + "]").attr("selected", "selected");
         
                            $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                        }
 $("input[name=subject]").closest('dl').after('<dl class="M14_info_Prefixe"style="display:none;"><dt><label style="color:darkred;"><b>Information</b></label><dd style="color:darkred;text-align:center;"><b>Il faut choisir un tag dans le menu déroulant.</b></dd></dl>');                         
$("input[name=post]").click(function () {
  var s=$('select#prefix');
  if ($('select#prefix').val().length == 0) {
$('.M14_info_Prefixe').slideDown().delay(3000).slideUp();
        $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
        $('select#prefix').css('border', '3px dashed red');
        return false;
                                   
                              }
            var texta=$('#text_editor_textarea').sceditor("instance").val();
            var sub = $("input[name=subject]").val().trim();
            if (sub != "" && $("#prefix").val() != "")
            $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
            var test=$("#prefix").val();
                            if(test)
                            {
            $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                            }
                          });
                      }
                    });
}



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

Messagephotoclic Lun 25 Nov 2019 - 0:13

Hello Philippe,

Un grand merci.
2 excellents scripts concurrents. Me faut choisir maintenant :-)

J'aime bien le message traité ainsi et qui s'affiche durant 3 secondes. Cela permet d'y ajouter un style, contrairement à l'alerte.

Ta seconde proposition aurait ma préférence.
Mais, il ne faudrait pas que l'on soit obligé de choisir un préfixe en mode édition dans les forums autres que f=(1|4|5|7|19).
Si ce dernier point n'est pas possible, alors laisser en mode édition le choix d'un préfixe, et supprimer l'obligation du préfixe sur tous les forums


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 25 Nov 2019 - 6:26

Hello Serge,

photoclic a écrit:
Mais, il ne faudrait pas que l'on soit obligé de choisir un préfixe en mode édition dans les forums autres que f=(1|4|5|7|19).


comme expliqué plus haut c'est purement impossible mon ami..
Il n'y a rien dans le code source qui spécifie le forum en mode édition.

Pour laisser le script comme tu le mentionnes, ce sera :

Code:

        //Préfixes sur titres nouveaux sujets ttes pages
                var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                        var _pm = false;
                        var chk = false;
                        function toMenu(a) {
                          var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                          for (i in a)
                          htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                          htmlpre += '</select>';
                          return htmlpre;
                        }
                        function checkpre(ar, input) {
                          for (i in ar) {
                              var p = new RegExp("\\" + ar[i], "g");
                              var title = input.substr(0, input.indexOf(']'));
                              if (p.test(title)) return ar[i];
                          }
                          return "";
                        }
                        $(function () {
                          if (_pm) chk = /\privmsg/.test(location.href);
                          if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                              $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                              var mw = $("#prefix").width() + 5;
                              $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                              var t = $("[name=subject]").val();
                       

                              var cur = checkpre(prefixes, t);
                              if (cur != "") {
                                $("[value=" + cur + "]").attr("selected", "selected");
           
                                $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                            }
    $("input[name=subject]").closest('dl').after('<dl class="M14_info_Prefixe"style="display:none;"><dt><label style="color:darkred;"><b>Information</b></label><dd style="color:darkred;text-align:center;"><b>Il faut choisir un tag dans le menu déroulant.</b></dd></dl>');                       
    $("input[name=post]").click(function () {
      var s=$('select#prefix');
      if ($('select#prefix').val().length == 0) {
    $('.M14_info_Prefixe').slideDown().delay(3000).slideUp();
            $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
            $('select#prefix').css('border', '3px dashed red');
            return false;
                                     
                                  }
                var texta=$('#text_editor_textarea').sceditor("instance").val();
                var sub = $("input[name=subject]").val().trim();
                if (sub != "" && $("#prefix").val() != "")
                $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
                var test=$("#prefix").val();
                                if(test)
                                {
                $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                                }
                              });
                          }
                        });


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

Messagephotoclic Lun 25 Nov 2019 - 9:43

Bonjour Philippe,

Je pensais qu'en ayant les 2 scripts dans ta propostion ici:
https://www.milouze14.com/t32377-phpbb3-prefixes-sur-titre-limite-a-une-categorie#616197
le 1ier script était pour un nouveau post, l'autre pour l'édition.
Et qu'en retirant la dernière partie de ton second script je n'aurais plus d'obligation de choisir un tag en mode édition ainsi:

Code:

location.pathname=="/post" && /^\?f=(1|4|5|6|19)&mode=newtopic$/.test(location.search) && $(function(){
        //Préfixes sur titres nouveaux sujets ttes pages
                var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                        var _pm = false;
                        var chk = false;
                        function toMenu(a) {
                          var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                          for (i in a)
                          htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                          htmlpre += '</select>';
                          return htmlpre;
                        }
                        function checkpre(ar, input) {
                          for (i in ar) {
                              var p = new RegExp("\\" + ar[i], "g");
                              var title = input.substr(0, input.indexOf(']'));
                              if (p.test(title)) return ar[i];
                          }
                          return "";
                        }
                        $(function () {
                          if (_pm) chk = /\privmsg/.test(location.href);
                          if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                              $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                              var mw = $("#prefix").width() + 5;
                              $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                              var t = $("[name=subject]").val();
                        

                              var cur = checkpre(prefixes, t);
                              if (cur != "") {
                                $("[value=" + cur + "]").attr("selected", "selected");
            
                                $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                            }
     $("input[name=subject]").closest('dl').after('<dl class="M14_info_Prefixe"style="display:none;"><dt><label style="color:darkred;"><b>Information</b></label><dd style="color:darkred;text-align:center;"><b>Il faut choisir un tag dans le menu déroulant.</b></dd></dl>');                        
    $("input[name=post]").click(function () {
      var s=$('select#prefix');
      if ($('select#prefix').val().length == 0) {
    $('.M14_info_Prefixe').slideDown().delay(3000).slideUp();
            $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
            $('select#prefix').css('border', '3px dashed red');
            return false;
                                      
                                  }
                var texta=$('#text_editor_textarea').sceditor("instance").val();
                var sub = $("input[name=subject]").val().trim();
                if (sub != "" && $("#prefix").val() != "")
                $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
                var test=$("#prefix").val();
                                if(test)
                                {
                $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                                }
                              });
                          }
                        });
    });
 
 
    if(location.href.match(/mode=editpost/))
    {
      //Préfixes sur titres nouveaux sujets ttes pages
                var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                        var _pm = false;
                        var chk = false;
                        function toMenu(a) {
                          var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                          for (i in a)
                          htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                          htmlpre += '</select>';
                          return htmlpre;
                        }
                        function checkpre(ar, input) {
                          for (i in ar) {
                              var p = new RegExp("\\" + ar[i], "g");
                              var title = input.substr(0, input.indexOf(']'));
                              if (p.test(title)) return ar[i];
                          }
                          return "";
                        }
                        $(function () {
                          if (_pm) chk = /\privmsg/.test(location.href);
                          if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                              $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                              var mw = $("#prefix").width() + 5;
                              $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                              var t = $("[name=subject]").val();
                        

                              var cur = checkpre(prefixes, t);
                              if (cur != "") {
                                $("[value=" + cur + "]").attr("selected", "selected");
            
                                $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                            }

                          }
                        });
    }

Cela ne collerait pas à cette demande Phil : "laisser en mode édition le choix d'un préfixe, et supprimer l'obligation du préfixe sur tous les forums"


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 25 Nov 2019 - 14:45

Re Serge,
je ne comprends plus rien à tes demandes mon ami,
Si ce dernier point n'est pas possible, alors laisser en mode édition le choix d'un préfixe, et supprimer l'obligation du préfixe sur tous les forums

Tu veux quoi exactement car j'ai bien mentionné le fonctionnement distinct des scripts non ?

Donc , si je me réfère à ta dernière demande:

"laisser en mode édition le choix d'un préfixe, et supprimer l'obligation du préfixe sur tous les forums"

Tu n'as besoin que de celui-ci alors!!

Le mode édition:
Code:
    if(location.href.match(/mode=editpost/))
    {
      //Préfixes sur titres nouveaux sujets ttes pages
                var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                        var _pm = false;
                        var chk = false;
                        function toMenu(a) {
                          var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                          for (i in a)
                          htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                          htmlpre += '</select>';
                          return htmlpre;
                        }
                        function checkpre(ar, input) {
                          for (i in ar) {
                              var p = new RegExp("\\" + ar[i], "g");
                              var title = input.substr(0, input.indexOf(']'));
                              if (p.test(title)) return ar[i];
                          }
                          return "";
                        }
                        $(function () {
                          if (_pm) chk = /\privmsg/.test(location.href);
                          if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                              $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                              var mw = $("#prefix").width() + 5;
                              $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                              var t = $("[name=subject]").val();
                       

                              var cur = checkpre(prefixes, t);
                              if (cur != "") {
                                $("[value=" + cur + "]").attr("selected", "selected");
           
                                $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                            }
    $("input[name=subject]").closest('dl').after('<dl class="M14_info_Prefixe"style="display:none;"><dt><label style="color:darkred;"><b>Information</b></label><dd style="color:darkred;text-align:center;"><b>Il faut choisir un tag dans le menu déroulant.</b></dd></dl>');                       
    $("input[name=post]").click(function () {
      var s=$('select#prefix');
      if ($('select#prefix').val().length == 0) {
    $('.M14_info_Prefixe').slideDown().delay(3000).slideUp();
            $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
            $('select#prefix').css('border', '3px dashed red');
            return false;
                                     
                                  }
                var texta=$('#text_editor_textarea').sceditor("instance").val();
                var sub = $("input[name=subject]").val().trim();
                if (sub != "" && $("#prefix").val() != "")
                $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
                var test=$("#prefix").val();
                                if(test)
                                {
                $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                                }
                              });
                          }
                        });
    }







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

Messagephotoclic Lun 25 Nov 2019 - 15:10

Hello Philippe,

je crois que je ne m'exprime pas bien, alors je reformule :-)

. En création de post et uniquement sur les forums:1,4,5,6 et 19:
on présente le menu Préfixe et on oblige le membre à rentrer un préfixe

. En mode édition, quelque soit le forum on présente le menu Préfixe mais on n'oblige pas  le membre à rentrer un préfixe.

J'espère n'avoir rien omis.

Merci pour ta patience Philippe.


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 25 Nov 2019 - 15:20

Je comprends mieux ainsi Serge;) .

Alors ce sera ce script mon ami:
Code:
location.pathname=="/post" && /^\?f=(1|4|5|6|19)&mode=newtopic$/.test(location.search) && $(function(){
        //Préfixes sur titres nouveaux sujets ttes pages
                var prefixes = ["Paysages","Panoramas","Portraits","Instants_de_vie_et_rue","Studio","Petite_série","Nu_Charme","Concerts_et_spectacles","Animaux","Noir_et_Blanc","Flore","Macro_et_Proxy","Urbex_Engins_et_véhicules","Architecture_et_Graphisme","Sport","Inclassables"];
                        var _pm = false;
                        var chk = false;
                        function toMenu(a) {
                          var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
                          for (i in a)
                          htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
                          htmlpre += '</select>';
                          return htmlpre;
                        }
                        function checkpre(ar, input) {
                          for (i in ar) {
                              var p = new RegExp("\\" + ar[i], "g");
                              var title = input.substr(0, input.indexOf(']'));
                              if (p.test(title)) return ar[i];
                          }
                          return "";
                        }
                        $(function () {
                          if (_pm) chk = /\privmsg/.test(location.href);
                          if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                              $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                              var mw = $("#prefix").width() + 5;
                              $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                              var t = $("[name=subject]").val();
                       

                              var cur = checkpre(prefixes, t);
                              if (cur != "") {
                                $("[value=" + cur + "]").attr("selected", "selected");
           
                                $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                            }
    $("input[name=subject]").closest('dl').after('<dl class="M14_info_Prefixe"style="display:none;"><dt><label style="color:darkred;"><b>Information</b></label><dd style="color:darkred;text-align:center;"><b>Il faut choisir un tag dans le menu déroulant.</b></dd></dl>');                       
    $("input[name=post]").click(function () {
      var s=$('select#prefix');
      if ($('select#prefix').val().length == 0) {
    $('.M14_info_Prefixe').slideDown().delay(3000).slideUp();
            $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
            $('select#prefix').css('border', '3px dashed red');
            return false;
                                     
                                  }
                var texta=$('#text_editor_textarea').sceditor("instance").val();
                var sub = $("input[name=subject]").val().trim();
                if (sub != "" && $("#prefix").val() != "")
                $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
                var test=$("#prefix").val();
                                if(test)
                                {
                $('#text_editor_textarea').sceditor("instance").val(''+texta+'\n#'+test+'');
                                }
                              });
                          }
                        });
    });
    if(location.href.match(/mode=editpost/))
    {
          //Préfixes sur titres nouveaux sujets
    var prefixes = ["Paysages","Panoramas","Portraits","Instants de vie et rue","Studio","Petite série","Nu /Charme","Concerts et spectacles","Animaux","Noir et Blanc","Flore","Macro et Proxy","Urbex Engins et véhicules","Architecture et Graphisme","Sport","Inclassables"];
            var _pm = false;
            var chk = false;
            function toMenu(a) {
              var htmlpre = '<select style="margin-right:5px" id="prefix" size="1"><option value="">Préfixe</option>';
              for (i in a)
              htmlpre += '<option value="' + a[i] + '">' + a[i] + '</option>';
              htmlpre += '</select>';
              return htmlpre;
            }
            function checkpre(ar, input) {
              for (i in ar) {
                  var p = new RegExp("\\" + ar[i], "g");
                  var title = input.substr(0, input.indexOf(']'));
                  if (p.test(title)) return ar[i];
              }
              return "";
            }
            $(function () {
              if (_pm) chk = /\privmsg/.test(location.href);
              if (/\/post/.test(location.href)&&!$('form[name="post_ads"]').length || chk) {
                  $(toMenu(prefixes)).insertBefore("input[name=subject][type=text]");
                  var mw = $("#prefix").width() + 5;
                  $("input[name=subject]").css("width", $("input[name=subject]").width() - mw);
                  var t = $("[name=subject]").val();
                 

                  var cur = checkpre(prefixes, t);
                  if (cur != "") {
                    $("[value=" + cur + "]").attr("selected", "selected");
     
                    $("input[name=subject]").val(t.replace('[' + cur + ']', '').trim());
                  }
                  $("input[name=post]").click(function () {
    var texta=$('#text_editor_textarea').sceditor("instance").val();
    var sub = $("input[name=subject]").val().trim();
    if (sub != "" && $("#prefix").val() != "")
    $("input[name=subject]").val("[" + $("#prefix").val() + "] " + sub);
    var test=$("#prefix").val();
                    if(test)
                    {
    $('#text_editor_textarea').sceditor("instance").val(''+texta+'"\n#'+test+'');
                    }
                  });
              }
            });

    }


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

Messagephotoclic Lun 25 Nov 2019 - 15:32

Nettement mieux quand je m'exprime mieux :-)

C'est parfait Philippe, et un grand merci l'ami pour ton efficacité et ta patience tape la

Page 1 sur 2 1, 2  Suivant

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

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à membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

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