|
Nella parte precedente abbiamo visto come e' composto il file mod_nome_modulo.xml in questa vedremo come realizzare l' altro file, quello relativo al codice eseguibile vero e proprio, mod_nome_modulo.php di preciso vedremo il codice del file mod_rss_stat.php scritto per visualizzare nel lato amministratore del sito le statistiche su quante persone scaricano giornamente i feed rss e che agent (programma) usano per vederle
<?php /** * @version $Id: mod_jvtempo.php 2007-04-28 22:22:22Z Lisboa $ * @package Joomla * @copyright Copyright (C) 2006 Joao vieira. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */
// no direct access defined( '_VALID_MOS' ) or die( 'Restricted access' ); global $mosConfig_offset, $mosConfig_cachepath; //require_once( $mosConfig_absolute_path .'/administrator/includes/pageNavigation.php' );
// $primo_parametro = $params->def( 'primo_parametro' ); // $secondo_parametro = $params->def( 'secondo_parametro' );
// creazione della tabella // parametri in tabella rss_stat // data , conterra la data serializzata // ip conterra l' ip dell' utente // agent conterra l' agent dell' utente
$query = "CREATE TABLE IF NOT EXISTS #__rss_stat (id int(11) NOT NULL AUTO_INCREMENT, data int(11) NOT NULL , ip varchar(16) NOT NULL default '0.0.0.0', agent VARCHAR( 255 ) NOT NULL DEFAULT 'sconosciuto', PRIMARY KEY (`id`))"; $database->setQuery($query); $database->query();
//calcolo della data
$day = date('d'); $month = date('n'); $year = date('Y'); $daystart = mktime(0,0,0,$month,$day,$year); $data = time();
// quindi vanno contati gli ip per giorno , giorni e settimane // se si vuole si puo' aggiungere in altra tabella i totali per giorno, settimana e user agent // deve essere visualizzato la statistica contenente gli ip e gli user agent // deve essere visualizzata la statistica user agent piu' frequenti
// eliminazione dei record troppo vecchi (2 giorni) $temp=$daystart - 172800; $query = "DELETE FROM #__rss_stat WHERE data<'$temp'"; $database->setQuery($query); $database->query(); // rss visti 2 giorni fa' $temp=$daystart - 86400; $query = "select count(*) FROM #__rss_stat WHERE data<'$temp'"; $database->setQuery($query); $two_days = $database->loadResult();
// rss visti da 2 giorni fa' $query = "select count(*) FROM #__rss_stat"; $database->setQuery($query); $last_days = $database->loadResult();
$query = "select * FROM #__rss_stat order by id asc"; $database->setQuery( $query ); $rows = $database->loadObjectList();
?>
<table class="adminlist"> <tr><td> <?
echo "daystart ".$daystart."<br>"."data ".$data."<br>"."temp ".$temp."<br>"."due giorni fa' ".$two_days."<br>"."da due giorni fa' ".$last_days;
foreach ($rows as $row) { $indirizzo = '<br>IP: '. $row->ip; $user_agent= ' <br>Agent :'.$row->agent.'<br>';
echo $indirizzo.$user_agent; }
echo "</td></tr>";
echo "</table>";
?> <?php /** * @version $Id: mod_rss_stat.php 2008-05-10 Z Palermo-Italia $ * @package Joomla * @copyright Copyright (C) 2008 Davide Ammirata. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, */ // no direct access defined( '_VALID_MOS' ) or die( 'Restricted access' ); global $mosConfig_offset, $mosConfig_cachepath; //require_once( $mosConfig_absolute_path .'/administrator/includes/pageNavigation.php' ); // $primo_parametro = $params->def( 'primo_parametro' ); // $secondo_parametro = $params->def( 'secondo_parametro' ); // creazione della tabella // parametri in tabella rss_stat // data , conterra la data serializzata // ip conterra l' ip dell' utente // agent conterra l' agent dell' utente $query = "CREATE TABLE IF NOT EXISTS #__rss_stat (id int(11) NOT NULL AUTO_INCREMENT, data int(11) NOT NULL , ip varchar(16) NOT NULL default '0.0.0.0', agent VARCHAR( 255 ) NOT NULL DEFAULT 'sconosciuto', PRIMARY KEY (`id`))"; $database->setQuery($query); $database->query(); //calcolo della data $day = date('d'); $month = date('n'); $year = date('Y'); $daystart = mktime(0,0,0,$month,$day,$year); $data = time(); // quindi vanno contati gli ip per giorno , giorni e settimane // se si vuole si puo' aggiungere in altra tabella i totali per giorno, settimana e user agent // deve essere visualizzato la statistica contenente gli ip e gli user agent // deve essere visualizzata la statistica user agent piu' frequenti // eliminazione dei record troppo vecchi (2 giorni) $temp=$daystart - 172800; $query = "DELETE FROM #__rss_stat WHERE data<'$temp'"; $database->setQuery($query); $database->query(); // rss visti 2 giorni fa' $temp=$daystart - 86400; $query = "select count(*) FROM #__rss_stat WHERE data<'$temp'"; $database->setQuery($query); $two_days = $database->loadResult(); // rss visti da 2 giorni fa' $query = "select count(*) FROM #__rss_stat"; $database->setQuery($query); $last_days = $database->loadResult(); $query = "select * FROM #__rss_stat order by id asc"; $database->setQuery( $query ); $rows = $database->loadObjectList(); ?> <table class="adminlist"> <tr><td> <? echo "daystart ".$daystart."<br>"."data ".$data."<br>"."temp ".$temp."<br>"."due giorni fa' ".$two_days."<br>"."da due giorni fa' ".$last_days; foreach ($rows as $row) { $indirizzo = '<br>IP: '. $row->ip; $user_agent= ' <br>Agent :'.$row->agent.'<br>'; echo $indirizzo.$user_agent; } echo "</td></tr>"; echo "</table>"; ?> |