La pétition « Sauvons la recherche » a recueilli près de 30 000 signatures et suite à un plantage du site se retrouve avec des signatures en double dans sa base. Pour recompter les signatures en éliminant les doublons, voici le filtre utilisé :
<?php
// [(#ID_ARTICLE|compter_signatures) signatures distinctes]
function compter_signatures($id_article) {
$t = spip_query("SELECT COUNT(DISTINCT(ad_email)) AS c FROM spip_signatures WHERE id_article=$id_article AND statut='publie'");
$r = spip_fetch_array($t);
return $r['c'];
}
?>
Ce filtre — à placer dans le fichier mes_fonctions.php
— récupère l’identifiant de l’article portant la pétition, envoie directement la requête MySQL qui convient, et retourne le résultat. Simplissime !
Pour l’installer dans un squelette :
[(#ID_ARTICLE|compter_signatures) signatures distinctes]
Discussions par date d’activité
3 discussions
Bonjour,
On peut tricher : un même utilisateur peut disposer de plusieurs adresses électroniques. Sur une même boite, des pseudos sont possibles, avec gmail, ils peuvent prendre la forme nom.utilisateur+nimportequoi@gmail.com.
Dans ce cas ( dites-moi si je me trompe ) la solution est plus délicate :
Bref la validité d’une pétition en ligne est encore peu fiable avec SPIP tel quel.
( exemple de pétition dans un cadre associatif ou institutionnel, voire aux autorités et aux élus )
Mais peut-être suis-je hors sujet ici
Merci à tous
Répondre à ce message
Je le ferai comme ça
Et oui c’est bien un filtre, il suffit de mettre le code dans mes_fonctions.php3
et ensuite dans un squelette (#ID_ARTICLE affichera le nombre de signatures
Répondre à ce message
Tellement simplissime qu’on a l’impression d’être con en essayant votre truc :-). M’enfin !!! Ce serait sympa de donner plus de détails sur le compteur, par exemple où on place le code donné ? Il y a très d’articles consacré aux pétitions sur ce site donc si vous donnez des détails ca nous simplifiera la vie. Merci beaucoup !!!
ouais... :p lol
moi aussi j’ai l’impression d’être con tout à coup :p
+1
Je pense qu’il s’agit d’un filtre. Copie-colle le code dans un fichier mes_fonctions.php (à placer dans le dossier squelette) puis dans ton squelette appelle la balise (#ID_ARTICLE
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |