Activer un script uniquement dans la page d'édition "Nouveau sujet"
3 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1 • Partagez
Activer un script uniquement dans la page d'édition "Nouveau sujet"
Bonjour,
J'ai un script (fourni par Milouze il y a quelques mois) qui ajoute des préfixes aux sujets.
J'aimerais savoir comme je pourrais faire pour qu'un script, celui-ci dans ce cas, ne soit actif que sur les pages des nouveaux post et non les pages d'éditions des messages.
J'aimerais savoir comment je pourrais faire pour ajouter une condition grâce au lien :
/post?f=1&mode=newtopic
Merci d'avance
J'ai un script (fourni par Milouze il y a quelques mois) qui ajoute des préfixes aux sujets.
J'aimerais savoir comme je pourrais faire pour qu'un script, celui-ci dans ce cas, ne soit actif que sur les pages des nouveaux post et non les pages d'éditions des messages.
J'aimerais savoir comment je pourrais faire pour ajouter une condition grâce au lien :
/post?f=1&mode=newtopic
Merci d'avance
Re: Activer un script uniquement dans la page d'édition "Nouveau sujet"
Bonjour !
Urrrgh j'avais écrit tout un message et il s'est volatilisé par la magie de la technologie @_@ Bon, on va faire plus simple, du moins je vais essayer XD
Je n'ai pas encore pris le temps d'apprendre le javascript de façon saine et normale (plutôt que sur le tas XD) donc j'ai fait quelques recherches à propos de la récupération de paramètres en javascript. On a d'une part la documentation MDN sur window.location qui t'explique comment manipuler l'url d'une page, et d'autre part j'ai trouvé la page d'un certain Kevin Leary en anglais, qui donne quelques pistes sur la récupération de paramètres d'une URL en javascript, aussi proprement que possible.
Je ne sais pas à quoi ressemble le script que tu utilises, du coup ça serait utile de le partager (en hide si nécessaire) pour savoir comment il est personnalisable, mais grosso modo de ce que je comprends :
Voilà voilà =D
Urrrgh j'avais écrit tout un message et il s'est volatilisé par la magie de la technologie @_@ Bon, on va faire plus simple, du moins je vais essayer XD
Je n'ai pas encore pris le temps d'apprendre le javascript de façon saine et normale (plutôt que sur le tas XD) donc j'ai fait quelques recherches à propos de la récupération de paramètres en javascript. On a d'une part la documentation MDN sur window.location qui t'explique comment manipuler l'url d'une page, et d'autre part j'ai trouvé la page d'un certain Kevin Leary en anglais, qui donne quelques pistes sur la récupération de paramètres d'une URL en javascript, aussi proprement que possible.
Je ne sais pas à quoi ressemble le script que tu utilises, du coup ça serait utile de le partager (en hide si nécessaire) pour savoir comment il est personnalisable, mais grosso modo de ce que je comprends :
- Soit tu n'as besoin que d'avoir des pages avec l'url EXACTE que tu as indiquée, auquel cas la solution est plutôt simple :
- Code:
var url = window.location.pathname + window.location.search;
if(url === "/post?f=1&mode=newtopic") {
// Faire des trucs
};
- Soit tu as besoin d'utiliser ce script à d'autres endroits et là par contre tu as l'option de faire des millions de if (ou des switch) pour chaque zone de ton forum concernée, ou bien de faire des conditions plus souples, et là par contre il va falloir détecter deux choses :
- D'une part que tu es bien dans une page pour poster (aka /post et pas /privmsg) et ça peut se vérifier avec le window.location.pathname que j'ai déjà mentionné.
- D'autre part que le paramètre mode est bien présent et vaut "newtopic" et là tu as besoin de la page en anglais que je t'ai mise en lien. Celle ci te donne plusieurs solutions au problème, personnellement j'ai testé celle dans la partie Regex Approach mais apparemment le premier est le plus "propre", il faut juste savoir quoi en faire XD En tout cas avec l'approche que j'ai utilisée (qui a le défaut d'être en jquery, donc plus lourd) tu as juste à copier sa fonction et pour ton script proprement dit utiliser un code de ce genre :
- Code:
var getMode = $.getQuery('mode');
if(getMode && getMode=="newtopic") { // Faire des trucs ;}
Voilà voilà =D
Re: Activer un script uniquement dans la page d'édition "Nouveau sujet"
Ah un grand merci
Voici mon code, pourriez-vous m'indiquer où dois-je le placer :
Voici mon code, pourriez-vous m'indiquer où dois-je le placer :
- Code:
/*globals jQuery*/
/**
* @name Sistema de Prefixos.
* @version 1.0
* @author Luiz
* @see {@link http://ajuda.forumeiros.com/}
* @licence MIT
*/
$(function ($) {
'use strict';
var config = {
prefixes: [
'Prologue','Partie 1','Partie 2','Partie 3','Partie 4','Partie 5','Partie 6','Partie 7','Partie 8','Partie 9','Partie 10','Fin'
],
lang: {
all: 'Faites votre choix'
},
engine: {
/**
* @name Inicializador.
* @desc Usado para iniciar o script.
* @param {object} input - Corresponde ao seletor do input-alvo do script.
*/
init: function (input) {
var self = this;
var $input = $(input);
var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
if (!/^\/post$/g.test(location.pathname) && $input) {
return false;
}
var $select = $('<select>', {
'class': 'fa-prefix-select',
'title':'PHPBB2 - PHPBB3 - PUNBB - INVISION - MODERNBB - AWESOMEBB - EDGE - TOUTES VERSIONS '
});
$dummy
.clone()
.text(config.lang.all)
.attr('value', '')
.attr('selected', true)
.appendTo($select)
;
$.each(config.prefixes, function (index, prefix) {
$dummy
.clone()
.text('[' + prefix + ']')
.attr('value', '[' + prefix + ']')
.attr('id', 'fa-prefix-item-' + index)
.appendTo($select)
;
});
$select
.insertBefore($input)
.on('change', function () {
var $this = $(this);
var value = $this.val();
self.prefix(value, $this.next());
})
;
},
/**
* @name Prefixador.
* @desc Usada para colocar o prefixo no input.
* @param {string} value - Corresponde ao prefixo que será colocado.
* @param {object} input - Corresponde ao seletor do input que será prefixado.
*/
prefix: function (value, input) {
var $input = $(input);
if (/^\[.*\]/g.test($input.val())) {
$input.val($.trim($input.val().replace(/^\[.*\]/, '')));
}
$input.val($.trim(value + ' ' + $input.val()));
}
}
};
$(function () {
var $input = $('input[name="subject"]');
config.engine.init($input);
});
}(jQuery));
Re: Activer un script uniquement dans la page d'édition "Nouveau sujet"
Hello
Déjà, inutile de me vouvoyer :p
Ensuite pour ce qui concerne l'endroit à éditer, c'est sans doute autour de la ligne 92, à la fin, le config.engine.init($input);. Grosso modo, c'est cette ligne qui lance le script écrit dans les lignes précédentes. Donc si tu peux rajouter des conditions avant, ça ne s'exécutera que sur la ou les pages que tu souhaites.
Par contre, j'ai pour principe de ne pas donner de codes tout faits, je préfère donner des pistes Donc à moins que quelqu'un ne te vienne en aide sur ce plan, je t'encourage à faire tes propres tests, c'est une bonne occasion d'apprentissage.
Déjà, inutile de me vouvoyer :p
Ensuite pour ce qui concerne l'endroit à éditer, c'est sans doute autour de la ligne 92, à la fin, le config.engine.init($input);. Grosso modo, c'est cette ligne qui lance le script écrit dans les lignes précédentes. Donc si tu peux rajouter des conditions avant, ça ne s'exécutera que sur la ou les pages que tu souhaites.
Par contre, j'ai pour principe de ne pas donner de codes tout faits, je préfère donner des pistes Donc à moins que quelqu'un ne te vienne en aide sur ce plan, je t'encourage à faire tes propres tests, c'est une bonne occasion d'apprentissage.
Re: Activer un script uniquement dans la page d'édition "Nouveau sujet"
D'accord merci
Je vais chercher de mon coté
Merci a toi ^^
Je vais chercher de mon coté
Merci a toi ^^
Re: Activer un script uniquement dans la page d'édition "Nouveau sujet"
Bonsoir
Pour compléter la réponse de Christa et alimenter la piste en utilisant ce tutoriel de @ea
https://forum.forumactif.com/t310825-executer-un-code-javascript-sous-certaines-conditions
Regardez du coté des expressions régulières (c'est pas vraiment ma tasse de thé ;-)
En modifiant ce code cela devrait être faisable..
Cdt.
Pour compléter la réponse de Christa et alimenter la piste en utilisant ce tutoriel de @ea
https://forum.forumactif.com/t310825-executer-un-code-javascript-sous-certaines-conditions
Regardez du coté des expressions régulières (c'est pas vraiment ma tasse de thé ;-)
En modifiant ce code cela devrait être faisable..
- Code:
if(document.location.pathname=="/post" && /^\?f=[789]&mode=newtopic$/.test(document.location.search))
{
ICI IL FAUDRA METTRE VOTRE CODE DONNE PLUS HAUT
}
Cdt.
Re: Activer un script uniquement dans la page d'édition "Nouveau sujet"
Merci, je vais regarder à tout ça ^^
Sujets similaires
» Ajout d'un bouton pour ouvrir une page html (script fait mais erreur dans l'ouverture de la page)
» Script qui repère le bouton nouveau sujet et envoie vers page web
» Texte et Titre qui empiètre sur icone dans sujet uniquement
» ce-script-affiche-dans-la-barre-de-statut-le-temps-passe-sur-la-page-et-une-alerte-au-moment-ou-la-page-se-ferme
» [résolu] Ce script affiche dans la barre de statut le temps passé sur la page et une alerte au moment ou la page se ferme
» Script qui repère le bouton nouveau sujet et envoie vers page web
» Texte et Titre qui empiètre sur icone dans sujet uniquement
» ce-script-affiche-dans-la-barre-de-statut-le-temps-passe-sur-la-page-et-une-alerte-au-moment-ou-la-page-se-ferme
» [résolu] Ce script affiche dans la barre de statut le temps passé sur la page et une alerte au moment ou la page se ferme
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum