Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck 
Index du Forum » » Le coin des codeurs » » Statistiques inscriptions-newsletter discussions-posts
AuteurStatistiques inscriptions-newsletter discussions-posts
freud
113     

freud
  Posté : 09-12-2011 15:49

Salut la communauté,

J'ajoute sur mon site (version sable) quelques statistiques qui ne sont pas inintéressantes et que l'on ne peut avoir via Analytics ou autre:
- nombre d'inscriptions journalières avec proportion de gens qui s'inscrivent à la newsletter
- nombre de discussions créées par jour et nombre de posts, permettant aussi de déterminer le nombre moyen de posts par discussions.

Voici ce que ça donne sur 30 jours :



Graph 1 on a en bleu clair et en noir le nbr d'inscriptions, et en bleu foncé le nbr d'inscrits à la newsletter parmi ces nouveaux membres. A droite les totaux sur 30 jours avec le pourcentage d'inscrits à la newsletter.
Graph 2 en bleu clair et en noir le nbr de posts journaliers tous forums confondus, et en bleu foncé écriture blanche le nbr de topics créés. A droite les totaux et la moyenne de posts par topic.

Je compte faire de même avec des stats mensuelles pour comparer les tendances d'un mois à l'autre et éventuellement d'une année à l'autre.

Pour éviter à chaque affichage des stats de multiplier les requêtes (recherches sur la totalité des membres ou des posts, etc) j'ai créé une routine exécutée à heure fixe tous les jours par une tâche Cron sur serveur Unix (cela suppose d'avoir un hébergement qui le permette).

J'ai donc une fonction sur un fichier baptisé 'routine.php' qui tous les jours fera le bilan de la veille et enregistrera les données dans la BDD (nouvelle table).

Pour visualiser les stats je n'ai plus qu'à aller chercher les infos sur les 30 derniers jours et afficher le tout sous forme de graphique (simples div imbriqués dans un tableau).

Voilà, pour ceux que ça intéresse je joins une archive contenant la procédure (fichier au format PHP pour faciliter la lecture des codes) et une copie de ma table de statistiques.

Lien vers l'archive (.rar)



Attention (Edit du 15/12/2011): Les fonctions d'affichage on été modifiées. Prendre connaissance des messages suivant avant de tester.


Quelques précisions :

Le format actuel des dates d'inscriptions dans la table 'users' ne facilite pas les recherches pour ce genre de données. J'ai ajouté une colonne à la table 'users' au format 'datetime' pour les stats et conservé l'ancienne par soucis de compatibilité avec les fonctions natives.
Cela suppose de modifier le fichier user.php pour enregistrer les dates dans cette nouvelle colonne.

Je me suis amusé à retourner l'historique des inscriptions passées (30 derniers jours) vers la table de statistiques pour tester le code. La procédure n'est pas fournie car c'est facultatif. Il suffit d'attendre 1 mois pour avoir de premières données.

Peut-être que cela donnera des idées pour les prochaines versions d'NPDS, ou peut-être aussi avez-vous déjà inclut ou prévu ce genre de chose.

++

Message édité par : freud / 09-12-2011 15:52



Message édité par : freud / 15-12-2011 13:47


  Profil  www  
developpeur
24581       
 

developpeur
  Posté : 09-12-2011 22:10

merci !!!!!

  Profil  E-mail  www  
freud
113     

freud
  Posté : 11-12-2011 10:24

Re,

Petite anomalie dans la fonction journalière EveryDay() de routine.php
Le champ recherché de la deuxième requête est 'lnl' alors qu'il devrait être 'user_lnl'



SELECT count(user_dateinscr) FROM users WHERE user_l nl=1 AND user_dateinscr BETWEEN DATE_SUB(CURDATE(), IN TERVAL 1 DAY) AND CURDATE()



Je modifierais l'archive lorsque j'aurais inclut les stats mensuelles. Pas trop le temps tout de suite maintenant.

++

  Profil  www  
freud
113     

freud
  Posté : 13-12-2011 11:18

Grr, pas moyen de poster mon message. J'ai beau modifier ou supprimer du contenu je suis tjrs envoyé sur la page d'accueil sans aucune explication sur ce qui ne lui plait pas.

Je remarque ça à chaque fois que je tente de poster un message assez conséquent. 10 minutes de rédaction et au moins autant à chercher ce qui cloche...
Ce message étant simple ça devrait aller, voyons si ça passe plus facilement en éditant.

Edit :

Salut,

Quelques améliorations et ajout des stats mensuelles.

Aperçu des statistiques journalières



Sur les 30 derniers jours par défaut avec possibilité de choisir la date de début et le nombre de jours (max 31).
A droite du 1er graphique nous avons le total d'inscriptions et d'inscrits à la newsletter avec la moyenne entre parenthèses. En dessous le pourcentage d'inscrits à la newsletter, et encore en dessous la variance des inscriptions.
La variance permet de mettre en évidence les écarts excessifs. Dans l'exemple elle est de 13 (Vi). Si pour une raison ou pour une autre le nombre d'inscriptions chute le dernier jour la variance va considérablement augmenter. Nous pouvons alors définir un seuil max (19 pour moi) en la calculant tous les jours via une routine Cron/php et se faire alerter par email passé ce seuil.

On pourrait imaginer la même chose avec le nbr de messages, le trafic ou les sessions à condition de les archiver au jour le jour. Bref ..

Aperçu des statistiques mensuelles



Les 12 derniers mois par défaut avec possibilité de modifier les dates d'analyse. 12 mois max mais ça peut être allongé.
Pour chaque mois on a respectivement le pourcentage d'inscrits à la newsletter et le nbr moyen de posts par discussions, avec à droite les totaux et moyenne globales sur l'année.

Un lien figure en haut à droite de chacune des pages pour basculer en stats mensuelles ou journalières.

J'ai mis le tout sur une page php spécifique. Vous pouvez tester ici encore quelques jours après quoi je verrouillerais son accès (admin).

Pour finir je vous livre mon fichier php
Je l'ai hébergé en .txt, il suffit donc de modifier l'extension.

Pour info les données absentes de la table de statistiques lors de l'affichage sont automatiquement calculées et enregistrées dans la BDD afin de ne pas avoir à relancer l'opération à chaque fois. Ca permet de s'affranchir de la routine journalière. Naturellement il faudra tout de même créer la nouvelle table, ajouter la colonne de date dans la table 'users' et mettre à jour le fichier user.php.

Attention toute-fois pour les premiers chargements de stats mensuelles car la table de stats étant vide le serveur ne va pas trop apprécier. Il va devoir récolter tous les membres inscrits, posts et discussions créées par jours, les enregistrer et ce pour 12 mois. Soit 365 recherches multiplié par 3(users, forumtopics, posts), calculs et 365 enregistrements simultanés.

Préférez faire des stats journalières mois par mois dans un 1er temps, au moins pour 2011. Ensuite allez sur stats mensuelles, et faites vos stats sur des faibles intervalles (1 mois, 2 voir 3). Après tout dépend aussi du nombre d'enregistrements auxquels vous êtes confronté.

Edit 2: Bingo ! Je n'ai rien changé au contenu initial et ça passe.

Message édité par : freud / 13-12-2011 11:20


  Profil  www  
Jireck
8502       

Jireck
  Posté : 13-12-2011 14:03

Bonjour,
C'est l'anti-sapm sur les URL...

Super Sympa

Bravo

  Profil  
freud
113     

freud
  Posté : 13-12-2011 14:29

Bonjour Jireck,

Merci
J'ajoute tout de même qu'il y a forcément matière à optimiser tout ça.
Je me débrouille mais je suis loin d'être expert en développement. Je pioche ci et là au fil des besoins et adapte comme beaucoup.
Mon code n'a pas la prétention d'être parfait donc toutes les remarques d'éventuels testeurs seront les bienvenues ...

  Profil  www  
Jireck
8502       

Jireck
  Posté : 13-12-2011 21:05

bonsoir Freud,

Je viens de regarder rapidement ton code ...

Il faut passer les requetes sql via la lib sql de npds mais pas obligatoirement .... cela marche sans.

Il faut mieux segmenter le code avec des classes et id et la CSS avec ...

et le dernier truc c'est de mettre un fichier langue french et mettre la fonction pour traduire si on rajoute le fichier...

Je vois aussi de petites ameliorations mais on s'en fout...

TRES BON TRAVAIL !!!!!!

  Profil  
freud
113     

freud
  Posté : 15-12-2011 13:09

Bonjour,

Merci d'avoir pris le temps d'y jeter un oeil.
Je tourne avec un vieille version d'NPDS et ne peux la mettre à jour. Je l'ai trop personnalisée et ai supprimé des fonctions qui me sont inutiles, les langues notamment.

Pour le CSS je suis tout à fait d'accord. Je l'ai précisé dans mon 1er post. L'idée était d'en faire là une version fonctionnelle pour tous avec un minimum de manipulations. Il appartient ensuite à chacun de créer ses styles.pour alléger le code.

"Je vois aussi de petites ameliorations mais on s'en fout... "
Bah non pourquoi ? Toute idée est bonne à entendre, pour moi ou d'autres.


Nouvelle mise à jour

Si pour les périodes recherchées il y a des entrées manquantes dans la table de statistiques les données étaient automatiquement calculées et enregistrées dans celle-ci.

Seulement voilà, les recherches peuvent aussi s'effectuer sur une plage comprenant des dates futures, et elles étaient elle aussi enregistrées (valeurs 0 donc).

J'ai modifier les fonctions php pour limiter les recherches dans la bdd aux dates antérieures ou au jour en cours, et l'enregistrement des nouvelles données ne s'effectue plus que pour les dates antérieures, donc au minimum J-1.

Cela vaut pour les stats journalières comme pour les stats mensuelles.

Nouveau fichier php (hébergé format .txt) :

http://f-electricite.fr/att-7644_stat_insc_forum.htm




Ayant effectué des modifs dans ma base de données hier j'ai dû modifier le code en conséquence et n'ai donc pas pu testé le fichier que je viens de vous fournir. C'est une adaptation du miens et ça devrait fonctionner.

Depuis hier soir j'ai ajouté une procédure d'activation par email aux nouvelles inscriptions pour vérifier que l'adresse fournie est correcte.
Ma table users comporte de fait deux colonnes supplémentaires, une pour le statut activé/non-activé et une pour la clé d'activation.

J'exploite maintenant ces données dans mes statistiques (c'est tout frais donc je n'a pas d'historique) :



Apparaît en rouge les comptes en attente d'activation ou simplement restés non-activés.
Chaque fois que je charge les stats, chaque jour ou le nombre de comptes activés ne correspond pas au nombre d'inscrits je relance la recherche pour vérifier s'ils ont été activés depuis.
Ceux restés inactivés passé 2 jours donne lieu à l'envoi d'un nouveau mail d'activation.
Passé 7 jours le compte est supprimé avec mail d'information au titulaire du compte.


Message édité par : freud / 15-12-2011 13:48


  Profil  www  
Jireck
8502       

Jireck
  Posté : 16-12-2011 12:20

Tu veux le faire ne module ou autre ...???

  Profil  
developpeur
24581       
 

developpeur
  Posté : 16-12-2011 21:18

C'est top ce travail !

  Profil  E-mail  www  
colonelwog
2044       
 

colonelwog
  Posté : 21-12-2011 10:07

de base ce serai mieux non ?
dans la prochaine version ?

  Profil  E-mail  www  
Jireck
8502       

Jireck
  Posté : 21-12-2011 11:34

en module ca serait bien

  Profil  
colonelwog
2044       
 

colonelwog
  Posté : 21-12-2011 12:43

en module c'est sur que la pas besoin d'attendre la prochaine version ...

  Profil  E-mail  www  
freud
113     

freud
  Posté : 21-12-2011 18:02

Salut,

Je suis mal placé pour travailler sur la création d'un module, à moins de travailler sur une version vierge d'NPDS mais je n'ai aucune expérience en matière de modules. Pas trop le temps non plus.
Mais je veux bien collaborer avec quelqu'un qui maîtrise mieux la chose que moi (meta lang, etc.).

Ma version de stats plante depuis ma dernière mise à jour faut que je regarde ça.
Comme je l'ai dit plus haut j'ai ajouter à mon formulaire d'inscription une procédure d'activation du compte par email, et j'ai ajouté ce rapport compte créé / activé dans mes stats. Une fois un compte activé je n'ai plus besoin dans ma base de la clé d'activation. Je mets à la place la date et l'heure d'activation ce qui me permet de comparer avec la date d'inscription initiale, mais ça beug ...

  Profil  www  
Sauter à :

Temps : 0.02 seconde(s)