pncUserPoints zappe des utilisateurs, et module EZComments
Auteur Sujet

Post 
Salut la foule,

J'utilise le module pncUserPoints depuis un moment, et ça motive pas mal les utilisateurs à participer, mine de rien.
Seulement il y a un petit soucis, il zappe certains utilisateurs... Certains membres actifs voir très actifs n'apparaissent purement et simplement pas dans le listing... Très étrange, non?

D'autre part, j'ai essayé de récupérer le module pour EZComments, mais le lien sur le site pnConcept est mort. Alors si qqn a ça sous le coude, ce serait tip top de me le faire parvenir, voir de le mettre ici en "Code". Merci d'avance.

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Alors j'ai finalement essayé d'adapter un module pour EZComments. Je précise qu'il sagit d'une vieille version d'EZComments, pas sur que les colonnes de tables portent le même nom... Ceci dit ça ne marche pas, le compte reste désespérément vide... EZComments stocque les noms d'utilisateurs sous forme de nombre, et non de texte ($uid et nom $uname), et la colonne dans EZComments s'appelle "uid", et la colonne de date "date". J'ai l'impression que le lien entre uid et uname n'ait pas fait, d'ou le compteur à 0. Si queuqu'un voit une erreur, welcome (coucou Chestnut ;) ).

  1. <?php 
  2.   
  3. function pncUserPoints_userapi_ezcomments($args) 
  4.   
  5.     extract($args); 
  6.   
  7.     if (!pnModAvailable('EZComments')) { 
  8.   
  9.         return $up; 
  10.   
  11.     } 
  12.   
  13.     list($dbconn) = pnDBGetConn(); 
  14.     $pntable = pnDBGetTables(); 
  15.      
  16.     $prefix = pnConfigGetVar('prefix'); 
  17.     $pctbl = $prefix.'_ezcomments'; 
  18.  
  19.     $ucolumn = &$pntable[ 'users_column' ]; 
  20.   
  21.     if ($dateoveride == 1) { 
  22.         if ($usestartdate == 1) { 
  23.              $datesql = "AND date > '".pnVarPrepForStore($startdate)."' "; 
  24.          } else { 
  25.              $datesql = ""; 
  26.          } 
  27.     } else { 
  28.         if ($usestartdate == 1) { 
  29.             $datesql = "AND date > '".pnVarPrepForStore($startdate)."' "; 
  30.         } else { 
  31.             $datesql = "AND date > '".pnVarPrepForStore($lastupdate)."' "; 
  32.         } 
  33.     } 
  34.   
  35.     $sql = "SELECT   $ucolumn[uid], 
  36.                      $ucolumn[uname], 
  37.                      count(*) as ncount 
  38.             FROM     $pctbl, 
  39.                      $pntable[users] 
  40.             WHERE    uid = $ucolumn[uid] 
  41.                      $sqlexclude 
  42.                      $datesql 
  43.             GROUP BY uid 
  44.             ORDER BY ncount DESC, date ASC"; 
  45.   
  46.     $result = $dbconn->Execute($sql); 
  47.   
  48.     if ($dbconn->ErrorNo() <> 0) { 
  49.         $ezcomments['ERRMSG'] = "DB Error: ".$dbconn->ErrorNo().": ".$dbconn->ErrorMsg(); 
  50.         $ezcomments['ACTION'] = false; 
  51.   
  52.         return $ezcomments; 
  53.   
  54.     } else { 
  55.   
  56.         while(list($uid, $uname, $ncount) = $result->fields) { 
  57.   
  58.             $result->MoveNext(); 
  59.   
  60.             $points = $ncount * $value; 
  61.   
  62.             $up[$uname]['uid']    = $uid; 
  63.             $up[$uname]['ezcomments'] = $ncount; 
  64.             $up[$uname]['TOTAL']  = $up[$uname]['TOTAL'] + $points; 
  65.   
  66.         } 
  67.   
  68.     } 
  69.   
  70.     $result->Close(); 
  71.   
  72.     return $up; 
  73.   
  74.   
  75. ?> 


Sinon le pb de membres zappés reste entier...
Merci d'avance pour toute piste.

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
http://noc.postnuke.com/projects/ezcomments

Pour ce qui est du zapping, voir les exclusions (groupes et utilisateurs).

A suivre...


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Quand je parle de module EZComments, c'est du module POUR pncUserPoints ;) . J'aurais peut-être du parler de plugin?

Ceci dit je n'utilise pas la 1.3 d'EZComments, mais une vieille 0.2 pour PN0.750 (je sais, je sais :) ). Mais de toutes façons les colonnes concernées portent le même nom.

Quant aux exclusions, il y a juste 1 membre paramétré, et ça marche impec pour celui ci. Mais d'autres ne font pas partie des exclusions, et n'apparaissent pas. On avait déjà eu une discussion sur le sujet il y a 1 an ou 2, sans trouver d'issue IIRC.

Sinon Chestnut, le code du dessus te parait il correct? Ou mieux, si quelqu'un a encore le plugin qu'on trouvait sur pnConcept à l'époque, je suis preneur!

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Réduire le nombre d'utilisateurs de 50 à 40 ou 30...

Voir la section date de celui-ci, cela me semble être le même cas...

http://noc.postnuke.com/plugins/scm...137&view=markup


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Merci Chestnut, j'ai essayé d'adapter le plugin suscité pour EZComments, ça donne ça:

  1. <?php 
  2. // File : $Id$ 
  3. // ---------------------------------------------------------------------- 
  4. // POST-NUKE Content Management System 
  5. // Copyright (C) 2001 by the Post-Nuke Development Team. 
  6. // http://www.postnuke.com/ 
  7. // ---------------------------------------------------------------------- 
  8. // Based on: 
  9. // PHP-NUKE Web Portal System - http://phpnuke.org/ 
  10. // Thatware - http://thatware.org/ 
  11. // ---------------------------------------------------------------------- 
  12. // LICENSE 
  13. // 
  14. // This program is free software; you can redistribute it and/or 
  15. // modify it under the terms of the GNU General Public License (GPL
  16. // as published by the Free Software Foundation; either version 2 
  17. // of the License, or (at your option) any later version. 
  18. // 
  19. // This program is distributed in the hope that it will be useful, 
  20. // but WITHOUT ANY WARRANTY; without even the implied warranty of 
  21. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  22. // GNU General Public License for more details. 
  23. // 
  24. // To read the license please visit http://www.gnu.org/copyleft/gpl.html 
  25. // ---------------------------------------------------------------------- 
  26. // Original Author of file: Chestnut ! 
  27. // http://www.pnconcept.com 
  28. // Purpose of file: pnForum plugin for the pncUserPoints Mod ! grumpfish 
  29. // ---------------------------------------------------------------------- 
  30.  
  31. function pncUserPoints_userapi_EZComments($args) 
  32.  
  33.     extract($args); 
  34.  
  35.     if (!pnModAvailable('EZComments')) { 
  36.  
  37.         return $up; 
  38.  
  39.     } 
  40.  
  41.     pnModDBInfoLoad('EZComments'); 
  42.     list($dbconn) = pnDBGetConn(); 
  43.     $pntable = pnDBGetTables(); 
  44.  
  45.     $bbtbl = $pntable['nuke_ezcomments']; 
  46.     $ucolumn = &$pntable['users_column']; 
  47.  
  48.     if ($dateoveride == 1) { 
  49.         if ($usestartdate == 1) { 
  50.             $vardate = date("Y-m-d H:i:s", $startdate); 
  51.             $datesql = "AND date > '".pnVarPrepForStore($vardate)."' "; 
  52.              //$datesql = "AND date > '0'"; 
  53.          } else { 
  54.              $datesql = ""; 
  55.          } 
  56.     } else { 
  57.         if ($usestartdate == 1) { 
  58.             $vardate = date("Y-m-d H:i:s", $startdate); 
  59.             $datesql = "AND date > '".pnVarPrepForStore($vardate)."' "; 
  60.         } else { 
  61.             $vardate = date("Y-m-d H:i:s", $lastupdate); 
  62.             $datesql = "AND date > '".pnVarPrepForStore($vardate)."' "; 
  63.         } 
  64.     } 
  65.  
  66.     $sql = "SELECT   $ucolumn[uid], 
  67.                      $ucolumn[uname], 
  68.                      count(*) as ncount 
  69.             FROM     $bbtbl, 
  70.                      $pntable[users] 
  71.             WHERE    uid = $ucolumn[uid] 
  72.                      $sqlexclude 
  73.                      $datesql 
  74.             GROUP BY uid 
  75.             ORDER BY ncount DESC, post_time ASC"; 
  76.  
  77.     $result = $dbconn->Execute($sql); 
  78.  
  79.     if ($dbconn->ErrorNo() <> 0) { 
  80.  
  81.         $register_error = pnModAPIFunc('pncUserPoints', 
  82.                                        'user', 
  83.                                        'register_error', 
  84.                                        array('plugin' => 'EZComments', 
  85.                                              'error'  => 'DB Error: '.$dbconn->ErrorNo().': '.$dbconn->ErrorMsg())); 
  86.  
  87.         return $up; 
  88.  
  89.     } else { 
  90.  
  91.         for( ; !$result->EOF; $result->MoveNext()) { 
  92.  
  93.             list($uid, $uname, $ncount) = $result->fields; 
  94.  
  95.             $points = $ncount * $value; 
  96.  
  97.             $up[$uname]['EZComments'] = $ncount; 
  98.             $up[$uname]['uid']     = $uid; 
  99.             $up[$uname]['TOTAL']   = $up[$uname]['TOTAL'] + $points; 
  100.         } 
  101.  
  102.     } 
  103.  
  104.     $result->Close(); 
  105.  
  106.     $unregister_error = pnModAPIFunc('pncUserPoints', 
  107.                                      'user', 
  108.                                      'unregister_error', 
  109.                                      array('plugin' => 'EZComments')); 
  110.  
  111.      return $up; 
  112.  
  113.  
  114. ?> 


Mais le compteur pour les Commentaires reste toujours à zéro, et pire, j'ai maintenant l'erreur...
EZComments : DB Error: 1064: You have an error in your SQL syntax near ' nuke_users WHERE uid = nuke_users.pn_uid ' at line 4
...sur la page principale de pncUserPoints, et même si j'efface le plugin fraichement ajouté dans l'admin (y compris physiquement sur le serveur) et même si j'efface les caches pnRender...
Là je ne comprend plus bien ce qui se passe, alors que le plugin EZComments n'existe plus, et que tout marchait bien avant... Help!

Pour voir l'erreur, cf http://www.sounddesigners.org/index...Points&detail=1 .

Bye.

modifié par : Yuku, 06 Oct 2006 - 14:45

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
mmm là j'espère que t'as fait une sauvegarde parce que tu t'éloignes.

Ton truc d'avant était plus près et il ne s'agissait que de reprendre la section du
  1. if ($dateoveride == 1) {  
  2. ...... 


icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
J'ai bien sur des backups, et je viens de restaurer les tables pncup*. Mais même erreur.. Faut il aussi restaurer la partie modules_vars.pncUserPoints? A priori, pncUserPoints ne touche à rien d'autre, si?

Sinon j'ai essayé d'intégrer la partie dont tu parles juste au dessus, dans la deuxième mouture, mais ça passe pas, je crois que je ne suis décidément pas doué en PHP :) .

Donc si qqn a le plugin pour EZComments, je prend.

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Je ne parlais pas de tes tables mais du plugin...

  1. <?php 
  2.   
  3. function pncUserPoints_userapi_ezcomments($args) 
  4.   
  5.     extract($args); 
  6.   
  7.     if (!pnModAvailable('EZComments')) { 
  8.   
  9.         return $up; 
  10.   
  11.     } 
  12.   
  13.     list($dbconn) = pnDBGetConn(); 
  14.     $pntable = pnDBGetTables(); 
  15.      
  16.     $prefix = pnConfigGetVar('prefix'); 
  17.     $pctbl = $prefix.'_ezcomments'; 
  18.  
  19.     $ucolumn = &$pntable[ 'users_column' ]; 
  20.   
  21.     if ($dateoveride == 1) {  
  22.         if ($usestartdate == 1) {  
  23.             $vardate = date("Y-m-d H:i:s", $startdate);  
  24.             $datesql = "AND $pctbl.date > '".pnVarPrepForStore($vardate)."' "; 
  25.          } else {  
  26.              $datesql = "";  
  27.          }  
  28.     } else {  
  29.         if ($usestartdate == 1) {  
  30.             $vardate = date("Y-m-d H:i:s", $startdate);  
  31.             $datesql = "AND $pctbl.date > '".pnVarPrepForStore($vardate)."' "; 
  32.         } else {  
  33.             $vardate = date("Y-m-d H:i:s", $lastupdate);  
  34.             $datesql = "AND $pctbl.date > '".pnVarPrepForStore($vardate)."' "; 
  35.         }  
  36.     } 
  37.   
  38.     $sql = "SELECT   $ucolumn[uid], 
  39.                      $ucolumn[uname], 
  40.                      count(*) as ncount 
  41.             FROM     $pctbl, 
  42.                      $pntable[users] 
  43.             WHERE    $pctbl.uid = $ucolumn[uid] 
  44.                      $sqlexclude 
  45.                      $datesql 
  46.             GROUP BY $pctbl.uid 
  47.             ORDER BY ncount DESC, date ASC"; 
  48.   
  49.     $result = $dbconn->Execute($sql); 
  50.   
  51.     if ($dbconn->ErrorNo() <> 0) { 
  52.         $ezcomments['ERRMSG'] = "DB Error: ".$dbconn->ErrorNo().": ".$dbconn->ErrorMsg(); 
  53.         $ezcomments['ACTION'] = false; 
  54.   
  55.         return $ezcomments; 
  56.   
  57.     } else { 
  58.   
  59.         while(list($uid, $uname, $ncount) = $result->fields) { 
  60.   
  61.             $result->MoveNext(); 
  62.   
  63.             $points = $ncount * $value; 
  64.   
  65.             $up[$uname]['uid']    = $uid; 
  66.             $up[$uname]['ezcomments'] = $ncount; 
  67.             $up[$uname]['TOTAL']  = $up[$uname]['TOTAL'] + $points; 
  68.   
  69.         } 
  70.   
  71.     } 
  72.   
  73.     $result->Close(); 
  74.   
  75.     return $up; 
  76.   
  77.   
  78. ?> 



Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Ca ne passe pas, désolé de te faire perdre ton temps Chestnut :/ ...

Ce qui m'inquiète c'est vraiment l'apparition de cette erreur...
EZComments : DB Error: 1064: You have an error in your SQL syntax near ' nuke_users WHERE uid = nuke_users.pn_uid ' at line 4
... même en l'absence totale du plugin... D'ou mon interrogation sur les tables, notamment modules_vars/pncUserPoints...

J'espère que j'ai pas tout cassé...

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Corrections apportées au message précédent en rouge...

Cette version fonctionne parfaitement chez moi...



Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Encore merci, mais toujours rien (compteur à zéro pour EZComments), enfin plutot toujours l'erreur SQL suscitée... Je désépère... Je vais tenter une réparation/optimisation des tables avec phpMyAdmin... Et au pire, un effacement/réinit/réactivation du module pncUserPoints...

Merci pour ton aide en tout cas. Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Pour info, sur mon site test en PN0.7.6.2 et EZComments 1.3, l'erreur SQL n'apparait pas, mais le compteur EZComments est également vide.

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Suite de la saga...

Finalement, j'ai désactiver/enlever/réinitialiser/activer le module pncUserPoints, reconfigurer l'ensemble des plugins externes, et j'ai toujours la même erreur, mais avec en plus deux erreurs concernant le module Downloads, qui n'existe plus sur le site concerné (remplacé par CmodsDownload):

EZComments : DB Error: 1064: You have an error in your SQL syntax near ' nuke_users WHERE uid = nuke_users.pn_uid ' at line 4
downloads : DB Error: 1146: Table 'sdo.nuke_downloads_downloads' doesn't exist
downloadsvotes : DB Error: 1146: Table 'sdo.nuke_downloads_votedata' doesn't exist


Il y a donc un soucis quelquepart dans la database (modules_vars?), alors comment supprimer ces erreurs, sachant que je me ferai une raison pour le plugin EZComments?

Toute aide sera la bienvenue, et encore désolé Chestnut pour tout ça...

Petites questions au passage, la version CVS est elle différente de la version sur pnConcept? Et le développement de pncUserPoints est il abandonné?

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
J'ai oublié de dire qu'il y a quand même un gros mieux depuis la réinitialisation de pncUP, c'est que maintenant les ezcommentaires sont bien pris en compte!!! C'est vraiment étrange tout ça...

Donc à part les erreurs, ça marche bien, merci Chestnut pour ton plugin!

Bye.

modifié par : Yuku, 08 Oct 2006 - 14:40

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Citation :
  1. downloads : DB Error: 1146: Table 'sdo.nuke_downloads_downloads' doesn't exist 
  2. downloadsvotes : DB Error: 1146: Table 'sdo.nuke_downloads_votedata' doesn't exist 

Le nouveau module "CmodsDownload" utilise surement une autre structure de tables... c'est pourquoi ces erreurs.

Je ne connais absolument pas ce module, mais je pense qu'il faut soit désactiver la prise en compte du module soit aller dans le code et retirer la recherche des propositions de download. Je sais pas !


Bon courage !


Gilles  ><>°
Données personnelles Accueil

Post 
Le plugin CmodsDownload fonctionne impeccable, mais c'est celui du classique module Downloads (Core dans pncUP, et non externe) qui coince, puisque le module Donwloads (et donc ses tables) n'est plus présent sur mon site...
Ce qui est étrange aussi, c'est que le plugin Core pour le module Web_Links (lui aussi remplacé par CmodsWeblinks) lui, ne génère pas d'erreur...
J'ai regardé dans le fichier pnuserapi.php de pncUP, et il n'y a effectivement pas de test de présence des modules Core. Mais alors pourquoi une erreur sur le plugin Core Donwloads et pas sur celui de Web_Links? Mystère, je n'y comprend plus rien...

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Mmm... s'agit simplement de désactiver les plugins dans l'administration des plugins (case à cocher).


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
C'est bien évidemment le cas...

Bye.

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Je comprend tout à fait que ces soucis ne te passionnent pas Chestnut ;) .
Pour info j'ai remis le module standard Donwload, init et activer, et le pb subsiste (effacement préalable des caches etc.)...

Mais juste une question, le développement de pncUP est il interrompu? Ou reprendra t'il quand PN0.8 sera stabilisé?

Bye.

modifié par : Yuku, 09 Oct 2006 - 15:23

http://www.sounddesigners.org - Communauté d'amoureux des bandes son
Données personnelles Accueil

Post 
Ce n'est pas une question de passion mais de temps et de logique...

Si je ne peux pas reproduire le problème, il est très difficile (parfois impossible) d'aider.

Les tables du module standard de téléchargements ne sont appelées QUE SI le plugin est actif (tu l'as remarqué). S'il ne l'est pas (case décochée dans l'administration pncUP - Plugins), tu ne devrais pas avoir l'erreur. J'ai délibérément renommé les tables du module Downloads et je n'ai toujours pas les erreurs que tu affiches.

Je ne sais que faire d'une telle situation... ça fonctionne pour moi, pas pour toi... Je sais une chose, c'est que le module manque de précision sur les erreurs. Il affiche parfois une erreur d'une page précédente et non de la page courante. Il faut recharger la page habituellement. (Si un thème Xanthia, ajouter pncUserPoints dans la section "Modules à exclure de la mise en cache").

Mais pour le reste...

Aucun développement n'est à prévoir dans un futur proche, le module avait été mis dans mon SVN et j'avais commencé à le porter en templates mais... le blabla habituel (temps, autres préoccupations, etc).

Il va de soi que la version SVN ne fonctionne pas (au cas où c'est cette version que tu tentes d'utiliser).


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Puisque le tout semble fonctionner malgré les erreurs... tu peux toujours désactiver l'affichage des erreurs en changeant :

pnuser.php ligne 306
  1. $error_log = unserialize(pnModGetVar('pncUserPoints', 'error_log')); 

en
  1. //$error_log = unserialize(pnModGetVar('pncUserPoints', 'error_log')); 


Même chose pour la ligne 419...

Plus d'erreur affichée icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre