Souci sur le script de préfixe de Ea

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

Résolu Souci sur le script de préfixe de Ea

Message par Gae67 le Mar 19 Aoû 2014 - 21:37

Bonsoir,

Je viens sur ce forum pour un souci sur le script de préfixe que j'ai demandé et qui a été réalisé par Ea.
Au départ j'ai eu ce code de préfixe avec possibilité d'éditer justement ce préfixe par ce script :

Code:
location.pathname=="/post"&&$(function(){
 
  var tags= {  4 : ["[En cours]"], 9 : ["[En cours] (Simple achat)","[En cours] (Multiples achats)"], 19 : ["[En cours] (Simple vente)","[En cours] (Multiples ventes)"], 29 : ["[En cours] (Simple estimation)","[En cours] (Multiples estimations)"], 12 : ["[En cours]","[Prévue]"], 31 : ["[Commentaires]","[Contenu]"], 5 : ["- SP","- Acte","- Tutoriel","- Raid","- Divers","- Nosmate","- Compagnon","- Equipement","- TS","- Nosmall","- Mini-Pays"] };
 
  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;$("<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).prev().val(t);this.selectedIndex=0;return false})
 
});
 
location.pathname=="/post"&&$(function(){
 
  var tags=["[En cours]","[Accepté]","[Essai]","[Refusé]","[Terminée]","[Terminée] (Simple achat)","[Terminée] (Multiples achats)","[Terminée] (Simple vente)","[Terminée] (Multiples ventes)","[Terminée] (Simple estimation)","[Terminée] (Multiples estimations)","[Commentaires]"];
 
  var dont_add_space_if=/^[\s\[]/;
 
  if($('form[method="post"] input[name="f"]').length)return;$("<select><option></option><option>"+tags.join("</option><option>")+"</option></select>").insertAfter('form[method="post"] input[name="modif_topic_title"]').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).prev().val(t);this.selectedIndex=0;return false})
 
});

Ce script a très bien marché mais certains de mes membres ne l'utilisaient pas du coup j'ai demandé à ce qu'il soit obligatoire de l'utiliser et voici le script que j'ai actuellement :

Code:
location.pathname == "/post" && $(function() {
 
    var tags = {
        4: ["[En cours]"],
        9: ["[En cours] (Simple achat)", "[En cours] (Multiples achats)"],
        19: ["[En cours] (Simple vente)", "[En cours] (Multiples ventes)"],
        29: ["[En cours] (Simple estimation)", "[En cours] (Multiples estimations)"],
        12: ["[En cours]", "[Prévue]"],
        31: ["[Commentaires]", "[Contenu]"],
        5: ["- SP", "- Acte", "- Tutoriel", "- Raid", "- Divers", "- Nosmate", "- Compagnon", "- Equipement", "- TS", "- Nosmall", "- Mini-Pays"]
    };
 
    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;
    });
 
});

Malheureusement depuis que j'ai ce script il n'est plus possible de modifier le préfixe lorsqu'on édite le sujet...
J'aimerais donc qu'il soit possible de modifier le préfixe lorsqu'on édite le sujet tout en gardant l'obligation de l'utiliser lors de la création d'un nouveau post...

Merci d'avance !


Dernière édition par Gae67 le Sam 6 Sep 2014 - 12:16, édité 1 fois

Gae67
*****

Masculin
Messages : 789
Inscrit(e) le : 23/03/2009

http://famille-pandora.forumgratuit.org
Gae67 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Souci sur le script de préfixe de Ea

Message par Ea le Mar 19 Aoû 2014 - 21:50

Bonjour,


Dans le premier code il y a une partie pour la création de sujet :

Code:
location.pathname=="/post"&&$(function(){
 
  var tags= {  4 : ["[En cours]"], 9 : ["[En cours] (Simple achat)","[En cours] (Multiples achats)"], 19 : ["[En cours] (Simple vente)","[En cours] (Multiples ventes)"], 29 : ["[En cours] (Simple estimation)","[En cours] (Multiples estimations)"], 12 : ["[En cours]","[Prévue]"], 31 : ["[Commentaires]","[Contenu]"], 5 : ["- SP","- Acte","- Tutoriel","- Raid","- Divers","- Nosmate","- Compagnon","- Equipement","- TS","- Nosmall","- Mini-Pays"] };
 
  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;$("<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).prev().val(t);this.selectedIndex=0;return false})
 
});

et une partie pour l'édition de message :

Code:
location.pathname=="/post"&&$(function(){
 
  var tags=["[En cours]","[Accepté]","[Essai]","[Refusé]","[Terminée]","[Terminée] (Simple achat)","[Terminée] (Multiples achats)","[Terminée] (Simple vente)","[Terminée] (Multiples ventes)","[Terminée] (Simple estimation)","[Terminée] (Multiples estimations)","[Commentaires]"];
 
  var dont_add_space_if=/^[\s\[]/;
 
  if($('form[method="post"] input[name="f"]').length)return;$("<select><option></option><option>"+tags.join("</option><option>")+"</option></select>").insertAfter('form[method="post"] input[name="modif_topic_title"]').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).prev().val(t);this.selectedIndex=0;return false})
 
});

dans le deuxième script il n'y a que la partie pour la création de sujet.

Il faut donc ajouter la partie pour l'édition.

Ea
Aidactif
Aidactif

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

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

Résolu Re: Souci sur le script de préfixe de Ea

Message par Gae67 le Mar 19 Aoû 2014 - 22:26

Je viens d'ajouter la partie pour l'édition de message dans le deuxième script et effectivement cela ne marche pas...
J'ai bien essayé justement avant que poster un nouveau sujet.

Gae67
*****

Masculin
Messages : 789
Inscrit(e) le : 23/03/2009

http://famille-pandora.forumgratuit.org
Gae67 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Souci sur le script de préfixe de Ea

Message par Gae67 le Jeu 21 Aoû 2014 - 18:30

up

Gae67
*****

Masculin
Messages : 789
Inscrit(e) le : 23/03/2009

http://famille-pandora.forumgratuit.org
Gae67 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Souci sur le script de préfixe de Ea

Message par Gae67 le Lun 25 Aoû 2014 - 23:17

UP

Gae67
*****

Masculin
Messages : 789
Inscrit(e) le : 23/03/2009

http://famille-pandora.forumgratuit.org
Gae67 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Souci sur le script de préfixe de Ea

Message par Chacha le Mar 2 Sep 2014 - 11:05

..Bonjour,

Attention, cela fait 8 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir délester votre sujet, merci de poster dans les 24h qui suivent ce message.

Si votre sujet est résolu, dans ce cas, :editer: votre premier message et cochez l'icône résolu

A bientôt sur ForumActif Smile


Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe

Chacha
Modéractif
Modéractif

Masculin
Messages : 49807
Inscrit(e) le : 21/08/2010

http://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Souci sur le script de préfixe de Ea

Message par Gae67 le Mar 2 Sep 2014 - 13:21

UP

Gae67
*****

Masculin
Messages : 789
Inscrit(e) le : 23/03/2009

http://famille-pandora.forumgratuit.org
Gae67 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Souci sur le script de préfixe de Ea

Message par Ea le Ven 5 Sep 2014 - 22:11

Si je l'exécute sur ce forum-ci ça marche : http://i.imgur.com/KvXmdis.png

Et j'imagine qu'il marchait les fois précédente où il était sur votre forum.

Donc je ne vois pas comment il serait possible qu'il ne fonctionne plus maintenant

Cordialement.

Ea
Aidactif
Aidactif

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

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

Résolu Re: Souci sur le script de préfixe de Ea

Message par Gae67 le Ven 5 Sep 2014 - 23:11

Voici le code que j'ai actuellement, quand vous me dites d'ajouter la partie de l'édition :

Code:
location.pathname == "/post" && $(function() {
 
    var tags = {
        4: ["[En cours]"],
        9: ["[En cours] (Simple achat)", "[En cours] (Multiples achats)"],
        19: ["[En cours] (Simple vente)", "[En cours] (Multiples ventes)"],
        29: ["[En cours] (Simple estimation)", "[En cours] (Multiples estimations)"],
        12: ["[En cours]", "[Prévue]"],
        31: ["[Commentaires]", "[Contenu]"],
        5: ["- SP", "- Acte", "- Tutoriel", "- Raid", "- Divers", "- Nosmate", "- Compagnon", "- Equipement", "- TS", "- Nosmall", "- Mini-Pays"]
    };
 
    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 préfixe/tag en début de sujet avant de pouvoir poster ;)");
        $("html, body").animate({scrollTop:s.offset().top-$(window).height()/2}, '500', 'swing');
        s.css('border', '3px dashed red');
        return false;
    });

location.pathname=="/post"&&$(function(){
 
  var tags=["[En cours]","[Accepté]","[Essai]","[Refusé]","[Terminée]","[Terminée] (Simple achat)","[Terminée] (Multiples achats)","[Terminée] (Simple vente)","[Terminée] (Multiples ventes)","[Terminée] (Simple estimation)","[Terminée] (Multiples estimations)","[Commentaires]"];
 
  var dont_add_space_if=/^[\s\[]/;
 
  if($('form[method="post"] input[name="f"]').length)return;$("<select><option></option><option>"+tags.join("</option><option>")+"</option></select>").insertAfter('form[method="post"] input[name="modif_topic_title"]').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).prev().val(t);this.selectedIndex=0;return false})
 
});

 
});

Cordialement.

Gae67
*****

Masculin
Messages : 789
Inscrit(e) le : 23/03/2009

http://famille-pandora.forumgratuit.org
Gae67 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Souci sur le script de préfixe de Ea

Message par Ea le Ven 5 Sep 2014 - 23:21

Il ne faut pas les imbriquer, mais soit les mettres chacun sur une page de script, soit les mettre à la suite l'un de l'autre :

Code:
location.pathname == "/post" && $(function() {

    var tags = {
        4: ["[En cours]"],
        9: ["[En cours] (Simple achat)", "[En cours] (Multiples achats)"],
        19: ["[En cours] (Simple vente)", "[En cours] (Multiples ventes)"],
        29: ["[En cours] (Simple estimation)", "[En cours] (Multiples estimations)"],
        12: ["[En cours]", "[Prévue]"],
        31: ["[Commentaires]", "[Contenu]"],
        5: ["- SP", "- Acte", "- Tutoriel", "- Raid", "- Divers", "- Nosmate", "- Compagnon", "- Equipement", "- TS", "- Nosmall", "- Mini-Pays"]
    };

    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 préfixe/tag en début de sujet avant de pouvoir poster ;)");
        $("html, body").animate({
            scrollTop: s.offset().top - $(window).height() / 2
        }, '500', 'swing');
        s.css('border', '3px dashed red');
        return false;
    });


});


location.pathname == "/post" && $(function() {

    var tags = ["[En cours]", "[Accepté]", "[Essai]", "[Refusé]", "[Terminée]", "[Terminée] (Simple achat)", "[Terminée] (Multiples achats)", "[Terminée] (Simple vente)", "[Terminée] (Multiples ventes)", "[Terminée] (Simple estimation)", "[Terminée] (Multiples estimations)", "[Commentaires]"];

    var dont_add_space_if = /^[\s\[]/;

    if ($('form[method="post"] input[name="f"]').length) return;
    $("<select><option></option><option>" + tags.join("</option><option>") + "</option></select>").insertAfter('form[method="post"] input[name="modif_topic_title"]').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).prev().val(t);
        this.selectedIndex = 0;
        return false
    })

});

en le mettant au milieu de l'autre script, ceci dans l'autre script :

Code:

    var f = $('form[method="post"] input[name="f"]');
    if (f.length == 0) return;

va, si on est pas sur une page de nouveau sujet, annuler la totalité du reste du code de la fonction ( le return termine la fonction sans faire la suite )

donc dans le cas d'une édition le script ( différent de création de nouveau sujet ) on sort de la fonction à cet endroit et le script pour l'édition n'est jamais exécuté.

Cordialement.

Ea
Aidactif
Aidactif

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

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

Résolu Re: Souci sur le script de préfixe de Ea

Message par Gae67 le Sam 6 Sep 2014 - 12:16

Merci beaucoup pour cette précieuse aide.

Dans votre explication je n'ai pas très bien compris (vous m'excuserez mais je suis d'une nullité dans les codes javascript que avec moi ca fait deux  Very Happy)  mais l'essentiel c'est que ca marche et je vous remercie une fois de plus.

Cordialement.

Gae67
*****

Masculin
Messages : 789
Inscrit(e) le : 23/03/2009

http://famille-pandora.forumgratuit.org
Gae67 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