Visto che nessuno mi rispondeva ho provato a fare una cosa "casereccia" e ha funzionato.
Scrivo qui di seguito il codice e i passaggi se dovesse servire a qualcuno:
1 - Aggiungere 2 colonne alla tabella #_users del database, una che contenga il contatore e l'altra che contenga la data dell'ultimo controllo. Questo serve per evitare che se un utente nello stesso giorno si logga 3 volte, ne conti 3. io le ho chiamate counter (di tipo intero) e lastcounterdata (di tipo datatime, mettere come valore predefinito 0000-00-00 00:00:00).
2 - Nella cartella " /htdocs/plugins/authentication/joomla/" aprire il file joomla.php. qui ci sono tutte le operazioni che vengono eseguite al momento dell'autenticazione dell'utente.
All'interno dell' if (if ($crypt == $testcrypt)) inserite il seguente codice
// controllo differenza fra ora e data attuale e ultimo controllo
if( (strtotime(date("Y-m-d H:i:s")) - strtotime($user->lastcounterdata)) > 86400 )
{
//query per incrementare il contatore e per aggiornare la data
$query2 = $db->getQuery(true);
$query2->update('#__users');
$query2->set('counter=counter+1,lastcounterdata=NOW()');
$query2->where('id=' . $user->id);
$db->setQuery($query2);
$db->query();
}
La mia intenzione era di quella di mostrare un modulo con la classifica dei 5 utenti più assidui. se il vostro obiettivo è lo stesso questo è il codice da inserire.
--------------------------------------------------------------------------------------------------------------------------------------
<?php
require_once("mysqlfunctions.php");
$mysql = new MysqlClass();
$mysql ->connetti();
$queryres=$mysql->query("SELECT name, counter FROM #_users ORDER BY counter DESC LIMIT 0 , 5");
$i=1;
while($row = $mysql->estrai($queryres)) {
$nome[$i]=$row->name;
$punti[$i]=$row->counter;
[size=78%]echo "<font size=2 color=silver align=letf>"; [/size][/color]
[/size][size=78%] [/size][/size][size=78%]echo "<p>";;[/size]
echo $i;
echo ". ";
echo $nome[$i];
$i++;
}
?>
[/size][size=78%]--------------------------------------------------------------------------------------------------------------------------------------[/size]
[/size]Io ho messo i risultati in un array con il progetto di poi far qualcos'altro, ma si può anche saltare il passaggio e fare direttamente l'echo su "$row->name".Come potete notare la prima riga fa riferimento ad una pagina "mysqlfunctions.php"[size=78%]
[/size]create quindi una pagina con questo nome e inserite all'interno questo codice:[size=78%]
--------------------------------------------------------------------------------------------------------------------------------------
<?php
class MysqlClass
{
// parametri per la connessione al database
private $connessione;
private $nomehost = "sql.miosito.it";
private $nomeuser = "pippo";
private $password = "password";
private $database= "database";
// controllo sulle connessioni attive
private $attiva = false;
// funzione per la connessione a MySQL
public function connetti()
{
if(!$this->attiva)
{
$connessione = mysql_connect($this->nomehost ,$this->nomeuser,$this->password) or die( "Impossibile selezionare il database.");
}else{
return true;
}
}
//disconnettiti
public function disconnetti()
{
if($this->attiva)
{
if(mysql_close())
{
$this->attiva = false;
return true;
}else{
return false;
}
}
}
//ottienti tutti i rows
public function get_all()
{
$query="SELECT * SELECT *
FROM `db_tool`
LIMIT 0 , 30";
$res = $this->query($query);
return $res;
}
//funzione per l'esecuzione delle query
public function query($sql)
{
if(isset($this->attiva))
{
mysql_select_db($this->database);
$sql = mysql_query($sql) or die (mysql_error());
return $sql;
}else{
return false;
}
}
// funzione per l'estrazione dei record
public function estrai($risultato)
{
if(isset($this->attiva))
{
$r = mysql_fetch_object($risultato);
return $r;
}else{
return false;
}
}
}
?>
--------------------------------------------------------------------------------------------------------------------------------------
Spero di essere stato utilie a qualcuno, se avete qualche dubbio, idea, suggerimento, proposta, contattatemi senza problemi.
Buona joomlata a tutti