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


2 participants

Page 2 sur 2 Précédent  1, 2

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

Rappel du premier message :

  • 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

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

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 25 Nov 2019 - 15:35

De rien Serge,
Nettement mieux quand je m'exprime mieux :-)

N’est-ce pas mdr .

Je tâcherais d’éplucher un peut plus le mode édition et je te contacterais en MP si je trouve une solution.


Attend avant de clôturer Serge, j'ai peut être une idée.
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Lun 25 Nov 2019 - 15:39

Ok Merci

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 26 Nov 2019 - 16:52

Hello Serge,

tu peux tester ce script mais juste pour l'édition donc a remplacer:

Il faudra aussi donner le même style que le select :

Code:
#prefix

Car ce script à le select avec l'id:

Code:
#prefixesedit

Donc la c.s.s sera:

Code:
#prefix , #prefixesedit{TA CSS}


Mais avant tout ajouter la variable affichant le forum dans le template:posting_body

Affichage/Templates/Poster et messages privés/posting_body

Juste après la variable:
Code:
{ERROR_BOX}
Déposes ceci:
Code:
<a href="{U_VIEW_FORUM}"class="M14_forumname"style="display:none;">{FORUM_NAME}</a>


Penses a enregistrer puis à valider en cliquant respectivement sur   Enregistr puis Ajout





Code:
 if(location.href.match(/mode=editpost/))
{
//Préfixes sur titres nouveaux sujets

  $(function(){
  var test1=$('a.M14_forumname[href^="/f1-"]').length;
  var test2=$('a.M14_forumname[href^="/f4-"]').length;
  var test3=$('a.M14_forumname[href^="/f5-"]').length;
  var test4=$('a.M14_forumname[href^="/f6-"]').length;
  var test5=$('a.M14_forumname[href^="/f19-"]').length;
if((test1)||(test2)||(test3)||(test4)||(test5))
{  


 

  
    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="prefixesedit" 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 = $("#prefixesedit").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 != "" && $("#prefixesedit").val() != "")
    $("input[name=subject]").val("[" + $("#prefixesedit").val() + "] " + sub);
    var test=$("#prefixesedit").val();
                    if(test)
                    {
    $('#text_editor_textarea').sceditor("instance").val(''+texta+'"\n#'+test+'');
                    }
                  });
              }
            });
}
});
}





Ou les deux cumulés:
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+'');
                        }
                      });
                  }
                });

        }
     if(location.href.match(/mode=editpost/))
    {
    //Préfixes sur titres nouveaux sujets

      $(function(){
      var test1=$('a.M14_forumname[href^="/f1-"]').length;
      var test2=$('a.M14_forumname[href^="/f4-"]').length;
      var test3=$('a.M14_forumname[href^="/f5-"]').length;
      var test4=$('a.M14_forumname[href^="/f6-"]').length;
      var test5=$('a.M14_forumname[href^="/f19-"]').length;
    if((test1)||(test2)||(test3)||(test4)||(test5))
    {  


    

      
        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="prefixesedit" 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 = $("#prefixesedit").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 != "" && $("#prefixesedit").val() != "")
        $("input[name=subject]").val("[" + $("#prefixesedit").val() + "] " + sub);
        var test=$("#prefixesedit").val();
                        if(test)
                        {
        $('#text_editor_textarea').sceditor("instance").val(''+texta+'"\n#'+test+'');
                        }
                      });
                  }
                });
    }
    });
    }
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 26 Nov 2019 - 23:04

Bonsoir Philippe,

Je crois que tu es arrivé au bout de ce script et j'en suis d'autant plus ravi, que tu pensais la chose impossible au début.
Bravo et un grand merci pour ce travail.

Cette fois tout fonctionne comme je l'imaginais au début  super

Merci encore Phil.
Je passe en résolu  tape la  

PS au cas où ce script intéresserait d'autres membres (et parce que je suis aussi puriste que Phil :-) ):
. tu as ajouté un pavé de trop dans les 2 cumulés.
. Il y a un " en trop avant le \n#' sur cette ligne en bas dans le mode édition.
Code:
$('#text_editor_textarea').sceditor("instance").val(''+texta+'"\n#'+test+'
. Dans le mode édition, dans var prefixes les _ pour remplacer les espaces n'ont pas été remis.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 27 Nov 2019 - 4:00

Coucou Serge,
merci pour le retour mon ami et de rien hinhin .


Hello


Sujet résolu et déplacé dans le forum adéquate

A bientôt pour une prochaine demande clin oeil




Page 2 sur 2 Précédent  1, 2

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