Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

Nicolas30
2011-06-14 13:42:17

ddtddt a écrit:

Réaliser un page html dans lequel  il s'affiche

C'est ce que j'ai fait... (html renommé en php)

ddtddt a écrit:

et utiliser le plugin statistique pour le faire apparaitre sur ta galerie

Je l'ai mis dans une Frame, dans le Footer...

ddtddt
2011-06-14 07:22:16

je dirais que le problème viens de l'ouverture de la connexion à la base de données qui ferme celle de Piwigo.

Dans ce cas je dirais qu'il te faut plutôt 'laisser' vivre ton scipt a coté.
Réaliser un page html dans lequel  il s'affiche

et utiliser le plugin statistique pour le faire apparaitre sur ta galerie

Nicolas30
2011-06-13 22:43:13

ddtddt a écrit:

il y a quoi dans visite.php ?

Code:

<?
include("./visite/connect_visite.php") ;

//on recupere l adresse ip du visiteur
if($_SERVER)   {
        if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
              $adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
          elseif(isset($_SERVER['HTTP_CLIENT_IP']))
              $adress = $_SERVER['HTTP_CLIENT_IP'];
          else
              $adress = $_SERVER['REMOTE_ADDR'];
      }
 else     {
          if(getenv('HTTP_X_FORWARDED_FOR'))
              $adress = getenv('HTTP_X_FORWARDED_FOR');
          elseif(getenv('HTTP_CLIENT_IP'))
              $adress = getenv('HTTP_CLIENT_IP');
          else
              $adress = getenv('REMOTE_ADDR');
      }

//on verifie si on a pas changé de jour et on recupere le chiffre du compteur
$sql="select * from compteur_visite where ip='compteur'";
$res=mysql_query($sql, $db);
$ligne = mysql_fetch_object ($res);
$date = date("Y-m-d");

//on convertit l heure courante en minute d une journee
$time=(date("H") * 60) + date("i");

//on recupere le compteur courant et le temps t
$compteur=$ligne->compteur;
$t=$ligne->time; //temps de connexion de reference
$d=$ligne->duree; //duree de renouvellement de reference

//on test si on a changé de jour
if ($date!="$ligne->date")
{
  //on vide toutes les addresses ip enregistrées dans la table lors du changement de jour
  $sql="delete from compteur_visite where ip!='compteur'";
  $res=mysql_query($sql, $db) or die ("requete invalide supp ip");
  //on met a jour la nouvelle date dans la table
  $sql="update compteur_visite set date='$date'";
  $res=mysql_query($sql, $db) or die ("requete invalide maj date");
}

//on verifie l adresse ip du visiteur et aussi son heure de passage
$sql="select * from compteur_visite where ip='$adress'";
$res=mysql_query($sql, $db) or die ("requete invalide verif ip");
$ligne = mysql_fetch_object ($res);
$num_rows =mysql_numrows ($res);
if ($num_rows==0)
{
  //on enregistre l adresse ip si elle est inconnu et on incremente le compteur
  $sql="insert into compteur_visite (ip,time,duree) values ('$adress','$time','$time')";
  $res=mysql_query($sql, $db)or die ("requete invalide enr ip");
  $compteur+=1;
  $sql="update compteur_visite set compteur=$compteur where ip='compteur'";
  $res=mysql_query($sql, $db) or die ("requete invalide up compt");
}
else
{
  //si l'adresse ip est connu alors verifie si sa connexion precedente est superieur a la durée
  //de renouvellement et si son heure de passage precedente incremente ou pas les connectés
  $time1=$ligne->time; //on recupere l'heure de sa precedente connexion de notre connecté
  $duree1=$ligne->duree; //on recupere l'heure de sa precedente connexion de notre connecté
  
  // on verifie si sa derniere connexion ne date pas de plus que la duree de reference
  if ($d*60<($time - ($duree1)))
  {
    //si la duree de reference est depassé alors notre connecté est comptablisé 
    //comme nouvelle visite et on met a jour sa nouvelle heure de passage
    $sql="update compteur_visite set time=$time,duree=$time where ip='$adress'";
    $res=mysql_query($sql, $db) or die ("requete invalide maj time");
    
    //on cree une ligne fictive pour pouvoir le comptabilisé dans les connectés de jour
    $adress1=$adress.".".$compteur;
    $sql="insert into compteur_visite (ip,time,duree) values ('$adress1','$time','$time')";
    $res=mysql_query($sql, $db)or die ("requete invalide enr ip");
    
    //et on increment le compteur de visite
    $compteur+=1;
    $sql="update compteur_visite set compteur=$compteur where ip='compteur'";
    $res=mysql_query($sql, $db) or die ("requete invalide up compt");
  }
  else
  {
    //on met a jour son heure de passage si elle est superieure a t
    if ($time>(($time1)-$t))
    {
      $sql="update compteur_visite set time=$time where ip='$adress'";
      $res=mysql_query($sql, $db) or die ("requete invalide maj time");
    }
  }
}


//on compte le nb de connecté de la journée
$sql="select * from compteur_visite";
$res=mysql_query($sql, $db) or die ("requete invalide compte visiteur journee");
$compteur_j=(mysql_numrows ($res))-1;

//on compte le nb de connecté
$time=$time-$t;
$sql="select * from compteur_visite where time>=$time and ip!='compteur'";
$res=mysql_query($sql, $db) or die ("requete invalide compte visisteur connecté");
$compteur_c=mysql_numrows ($res);
mysql_free_result($res);
mysql_close();
?>

Je vais voir ça demain...

Merci à bientot

ddtddt
2011-06-13 22:18:15

il y a quoi dans visite.php ?

flop25
2011-06-13 22:17:01

^^
c'est normal : alors petite explication
Php génère du html ça tu le sais ^^, mais piwigo utilise SMARTY un moteur de template qui va gérer lui même l'affichage. Piwigo lui passe des variables (regarde template->assign() ) et lui passe les fichiers tpl à "parser" -cad à interpréter-

Code:

$template->assign(array(
    'MA_VAR' => 'toto'  ));

ceci attribue au tag {$MA_VAR} la valeur toto
puis dans un tpl on mettra ce tag qui sera remplacé par toto donc.
Tu peux regarder Image Preview pour t'aider : il est très simple

Je te conseille plutot de prendre le plugin existant et de le modifier puis de publier ta version en tant que nouveau plugin.

Nicolas30
2011-06-13 21:32:16

ddtddt a écrit:

Quand j'ai découvert Piwigo je ne savais même pas que le php existait
En observant les plugin de mes petits camarades j'ai réussis à comprendre 2/3 trucs

Donc si tu te lance dans un plugin, on sera la pour t'aider ;-)

Ouais... bas y'a bien du boulot...

Parce que j'ai essayé en utilisant 'LocalFiles Editor' onglet 'plugin personnel', y mettre mon code PHP...
Ce qui donnais

Code:

<?php
/*
Plugin Name: Plugin Personnel
Version: 1.0
Description: Plugin Personnel
Plugin URI: http://piwigo.org
Author:
Author URI:
*/
include("./visite/visite.php");
print"Total visiteurs: $compteur&nbsp;&nbsp;&nbsp;~~&nbsp;&nbsp;";
print"$compteur_j visiteur(s) aujourdhui&nbsp;&nbsp;&nbsp;~~&nbsp;&nbsp;";
print"$compteur_c visiteur(s) actuellement";
?>

et pouf !!!
Plantage total de la galerie...

Alors y'a encore du boulot...
Mais je vais insister

Cdt

ddtddt
2011-06-13 20:03:13

Nicolas30 a écrit:

Si seulement je pouvais...
Je serais ravi de pouvoir programmer des plugins, mais ma connaissance en matière de dévellopement s’arrête ici ...

Quand j'ai découvert Piwigo je ne savais même pas que le php existait
En observant les plugin de mes petits camarades j'ai réussis à comprendre 2/3 trucs

Donc si tu te lance dans un plugin, on sera la pour t'aider ;-)

flop25
2011-06-13 20:02:37

juste sur la différence du nombre de "visite" : les deux ne comptent peut être pas de la même façon (ex un rafraichissement de la page compte double pour l'un et pas pour l'autre)

Nicolas30
2011-06-13 19:56:50

ddtddt a écrit:

Tu peux également faire un nouveau plugin pour la communauté :-)

Si seulement je pouvais...
Je serais ravi de pouvoir programmer des plugins, mais ma connaissance en matière de dévellopement s’arrête ici ...

Par contre j'ai un script PHP de compteur, si tu le veux, ça peux te donner une idée pour un plugin...

Cdt

ddtddt
2011-06-13 19:52:20

Nicolas30 a écrit:

Désolé de dire ça, mais il ne me plait pas...

Ne soit pas dsl chacun as le droit d'avoir ces propres gout ;-)

Ce que tu peux peux être faire c'est jouer avec le fichier du plugin pour présenter à ta façon
les données ont l'air identique

Tu peux également faire un nouveau plugin pour la communauté :-)

Nicolas30
2011-06-13 19:16:15

Gotcha a écrit:

Bonjour,
Il y a toujours le plugin : extension:279

Salut Gotcha,

Désolé de dire ça, mais il ne me plait pas...

Non un truc comme l'image jointe, quelque chose de simple, mais qu'il soit intégré ou en plugin...
De plus mon compteur me semble faux, si j'en crois le "résumé" de l'historique...
En effet mon compteur affiche 4 visiteurs (dont moi) et l'historique 7 (sans moi)...

Donc un petit truc, juste et plus propre que mon bibouillage...

Cdt

Gotcha
2011-06-13 18:57:34

Bonjour,
Il y a toujours le plugin : extension:279

Nicolas30
2011-06-13 18:39:56

Bonjour,

Pourquoi ne pas prévoir un compteur de visite tout simple ?

Ex :
- Nombre de connecté total
- Nombre de connecté aujourd'hui
- Nombre de connecté actuellement

J'en ai un actuellement sur ma galerie (script PHP), avec un bout de code dans un fichier PHP (compteur.php), qui lui même est inséré dans une frame dans le "footer.tpl"...
Mais pas très propre tout ça !!!

Cordialement

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact