systeme de vote placé par forum/catégorie
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
systeme de vote placé par forum/catégorie
Détails techniques
Version du forum : phpBB3
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Mozilla Firefox
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://planetez-2018.forumactif.com/
Description du problème
Bonjourhttps://forum.forumactif.com/t392578-ameliorer-le-systeme-de-vote-des-messages-sous-forme-de-like?highlight=syst%C3%A8me+de+vote
merci pour ce tutoriel , qui fonctionne très bien au passage,
seulement, j'aimerais que le "système de vote" soit actif seulement sur tel ou tel forum pour ne pas l'avoir partout...
(et ne pas l'avoir sur le forum principal)
je n'ai trouvé à ce sujet & je ne sais pas si c'est possible...
merci d'avance
Re: systeme de vote placé par forum/catégorie
Hello adminplanetez,
peut être avec cette modification apportée au script:
Comment trouver le chiffre ou le nombre du forum en image:
Dans cette partie, on autorise les votes:
J'ai autorisé les votes sur le forum f9 et f13
tu peux ajouter autant de fofos que tu souhaites en prenant soin de recopier l'identique en séparant par
une virgule et de changer le forum concerné.
Admettons que tu souhaites ajouter le forum 60, la variable sera:
Ensuite on dit au script si ma variable est différente de e on cache les votes:
Le script dans sa totalité:
a++
peut être avec cette modification apportée au script:
Comment trouver le chiffre ou le nombre du forum en image:
Dans cette partie, on autorise les votes:
- Code:
//ON AFFICHE LES VOTES SUR LES FORUMS CI DESSOUS en séparant par une virgule
var e=$('a.nav[href^="/f9-"],a.nav[href^="/f13-"]').length;
J'ai autorisé les votes sur le forum f9 et f13
- Code:
a.nav[href^="/f9-"]
a.nav[href^="/f13-"]
- Code:
$('a.nav[href^="/f9-"],a.nav[href^="/f13-"]')
tu peux ajouter autant de fofos que tu souhaites en prenant soin de recopier l'identique en séparant par
une virgule et de changer le forum concerné.
Admettons que tu souhaites ajouter le forum 60, la variable sera:
- Code:
var e=$('a.nav[href^="/f9-"],a.nav[href^="/f13-"],a.nav[href^="/f60-"]').length;
Ensuite on dit au script si ma variable est différente de e on cache les votes:
- Code:
if(!e) {$('.postbody').find('.vote').hide();}
Le script dans sa totalité:
- Code:
$(function() {
//ON AFFICHE LES VOTES SUR LES FORUMS CI DESSOUS en séparant par une virgule
var e=$('a.nav[href^="/f9-"],a.nav[href^="/f13-"]').length;
//SINON ON CACHE LES VOTES
if(!e) {$('.postbody').find('.vote').hide();}
if(e) {
// General Configuration of the plugin
var config = {
position_left : true, // true for left || false for right
mobile_position_left: false, // true for left || false for right
negative_vote : true, // true for negative votes || false for positive only
vote_bar : true, // display a small bar under the vote buttons
// button config
icon_plus : '<img src="http://i18.servimg.com/u/f18/18/21/41/30/plus10.png" alt="+"/>',
icon_minus : '<img src="http://i18.servimg.com/u/f18/18/21/41/30/minus10.png" alt="-"/>',
// language config
title_plus : 'J\'aime',
title_minus : 'Je n\'aime pas',
error_limit : 'Vous ne pouvez plus voter aujourd\'hui',
title_like_singular : '%{VOTES} personne aime le message de %{USERNAME}',
title_like_plural : '%{VOTES} personnes aiment le message de %{USERNAME}',
title_dislike_singular : '%{VOTES} personne n\'aime pas le message de %{USERNAME}',
title_dislike_plural : '%{VOTES} personnes n\'aiment pas le message de %{USERNAME}',
title_vote_bar : '%{VOTES} personne(s) aime(nt) le message de %{USERNAME} %{PERCENT}'
},
// function bound to the onclick handler of the vote buttons
submit_vote = function() {
var next = this.nextSibling, // the counter next to the vote button that was clicked
box = this.parentNode,
bar = box.getElementsByTagName('DIV'),
vote = box.getElementsByTagName('A'),
mode = /eval=plus/.test(this.href) ? 1 : 0,
i = 0, j = vote.length, pos, neg, percent;
// submit the vote asynchronously
$.get(this.href, function(res) {
if( res.search("Vous ne pouvez plus") == -1 ) {
next.innerHTML = +next.innerHTML + 1; // add to the vote count
next.title = next.title.replace(/(\d+)/, function(M, $1) { return +$1 + 1 });
pos = +vote[0].nextSibling.innerHTML;
neg = vote[1] ? +vote[1].nextSibling.innerHTML : 0;
percent = pos == 0 ? '0%' : pos == neg ? '50%' : Math.round(pos / (pos + neg) * 100) + '%';
if (bar[0]) {
bar[0].style.display = '';
bar[0].firstChild.style.width = percent;
box.title = box.title.replace(/\d+\/\d+/, pos + '/' + ( pos + neg )).replace(/\(\d+%\)/, '(' + percent + ')');
}
} else {
alert( config.error_limit );
}
});
// revoke voting capabilities on the post once the vote is cast
for (; i < j; i++) {
vote[i].href = '#';
vote[i].className = vote[i].className.replace(/fa_vote/, 'fa_voted');
vote[i].onclick = function() { return false };
}
return false;
},
vote = $('.vote'), i = 0, j = vote.length,
version = $('.bodylinewidth')[0] ? 0 :
document.getElementById('phpbb') ? 1 :
$('.pun')[0] ? 2 :
document.getElementById('ipbwrapper') ? 3 :
document.getElementById('modernbb') ? 4 :
document.getElementById('mpage-body-modern') ? 5 :
'badapple', // version check
// version data so we don't have to redefine these arrays during the loop
vdata = {
tag : ['SPAN', 'LI', 'SPAN', 'LI', 'LI', 'LI'][version],
name : ['.name', '.postprofile dt > strong', '.username', '.popmenubutton', '.postprofile-name', '.poster_name'][version],
actions : ['.post-options', '.profile-icons', '.post-options', '.posting-icons', '.profile-icons', '.post-buttons'][version]
},
post, plus, minus, n_pos, n_neg, title_pos, title_neg, li, ul, bar, button, total, percent, span, pseudo, vote_bar; // startup variables for later use in the loop
// prevent execution if the version cannot be determined
if (version == 'badapple') {
if (window.console) console.warn('This plugin is not optimized for your forum version. Please contact the support for further assistance.');
return;
}
for (; i < j; i++) {
post = $(vote[i]).closest('[class*="post--"]')[0];
bar = $('.vote-bar', vote[i])[0]; // vote bar
button = $('a[href*="p_vote"]', vote[i]); // plus and minus buttons
pseudo = $(vdata.name, post).text() || 'MISSING_STRING'; // username of the poster
ul = $(vdata.actions, post)[0]; // post actions
li = document.createElement(vdata.tag); // vote system container
li.className = 'fa_reputation';
if (li.tagName == 'SPAN') li.style.display = 'inline-block';
// calculate votes
if (bar) {
total = +bar.title.replace(/.*?\((\d+).*/, '$1');
percent = +bar.title.replace(/.*?(\d+)%.*/, '$1');
n_pos = Math.round(total * (percent / 100));
n_neg = total - n_pos;
} else {
n_pos = 0;
n_neg = 0;
}
// set up negative and positive titles with the correct grammar, votes, and usernames
title_pos = (n_pos <= 1 ? config.title_like_singular : config.title_like_plural).replace(/%\{USERNAME\}/g, pseudo).replace(/%\{VOTES\}/g, n_pos);
title_neg = (n_neg <= 1 ? config.title_dislike_singular : config.title_dislike_plural).replace(/%\{USERNAME\}/g, pseudo).replace(/%\{VOTES\}/g, n_neg);
// define the vote counts
li.innerHTML = '<span class="fa_count fa_positive" title="' + title_pos + '">' + n_pos + '</span>' + (config.negative_vote ? ' <span class="fa_count fa_negative" title="' + title_neg + '">' + n_neg + '</span>' : '');
span = li.getElementsByTagName('SPAN'); // get the vote count containers for use as insertion points
// create positive vote button
plus = document.createElement('A');
plus.href = button[0] ? button[0].href : '#';
plus.onclick = button[0] ? submit_vote : function() { return false };
plus.className = 'fa_vote' + (button[0] ? '' : 'd') + ' fa_plus';
plus.innerHTML = config.icon_plus;
plus.title = (button[0] ? config.title_plus : title_pos).replace(/%\{USERNAME\}/g, pseudo);
span[0] && li.insertBefore(plus, span[0]);
// create negative vote button
if (config.negative_vote) {
minus = document.createElement('A');
minus.href = button[1] ? button[1].href : '#';
minus.onclick = button[1] ? submit_vote : function() { return false };
minus.className = 'fa_vote' + (button[1] ? '' : 'd') + ' fa_minus';
minus.innerHTML = config.icon_minus;
minus.title = (button[1] ? config.title_minus : title_neg).replace(/%\{USERNAME\}/g, pseudo);
span[1] && li.insertBefore(minus, span[1]);
}
// create vote bar
if (config.vote_bar) {
vote_bar = document.createElement('DIV');
vote_bar.className = 'fa_votebar';
vote_bar.innerHTML = '<div class="fa_votebar_inner" style="width:' + percent + '%;"></div>';
vote_bar.style.display = bar ? '' : 'none';
li.title = config.title_vote_bar.replace(/%\{USERNAME\}/, pseudo).replace(/%\{VOTES\}/, n_pos + '/' + (n_pos + n_neg)).replace(/%\{PERCENT\}/, '(' + percent + '%)');
li.appendChild(vote_bar);
}
// finally insert the vote system and remove the default one
if(version != 4)
config.position_left ? ul.insertBefore(li, ul.firstChild) : ul.appendChild(li);
else
config.mobile_position_left ? ul.insertBefore(li, ul.firstChild) : ul.appendChild(li);
vote[i].parentNode.removeChild(vote[i]);
}
}
});
a++
Invité- Invité
Re: systeme de vote placé par forum/catégorie
Bonjour Milouze14
j'ai adapté le script
ça marche nickel, t'es un chef...
je voulais essayer en récupérant le titre du forum/catégorie
et faire un test avec mais je ne connais pas la variable sous phpbb3...
Merci beaucoup
j'ai adapté le script
ça marche nickel, t'es un chef...
je voulais essayer en récupérant le titre du forum/catégorie
et faire un test avec mais je ne connais pas la variable sous phpbb3...
Merci beaucoup
Re: systeme de vote placé par forum/catégorie
Re,
de rien,
a++
de rien,
c'est plus simple ainsi avec cette méthode .je voulais essayer en récupérant le titre du forum/catégorie
a++
Invité- Invité
Sujets similaires
» Changer de place mes sous forum ainsi qu'une image dans mes catégorie.
» Problèmes sur mon système de vote sur mon forum
» Systeme de vote, modifier le code pour limité le vote au premier post d'un sujet
» Améliorer le systéme de vote sur PunnB
» Mon forum mal placé dans sa catégorie (nombre de sujet)
» Problèmes sur mon système de vote sur mon forum
» Systeme de vote, modifier le code pour limité le vote au premier post d'un sujet
» Améliorer le systéme de vote sur PunnB
» Mon forum mal placé dans sa catégorie (nombre de sujet)
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