Notizie flash
Statistiche rss per joomla 1.0.x Stampa
Valutazione attuale: / 0
ScarsoOttimo 
Scritto da Administrator   
Lunedì 25 Maggio 2009 23:17

Ho da poco scoperto i feed rss, qualcosa che finche non li conosci non te ne puoi innamorare.

avendo quindi abilitato i feed rss sia su questo sito che su quelli che gestisco, mi e' subito venuta la curiosita' di sapere se ci sono utenti che li utilizzano o meno, ma cercando in giro non sono riuscito a trovare niente (o forse non ho cercato bene?!?) quindi l' unica via era quella di scrivermi il codice.

Scrivere il codice vuol dire prima di tutto capire quale porzione di codice gia' fornisce i feed rss, in modo da poterci aggiungere il conteggio , e poi una volta effettuato il conteggio , bisogna realizzare tutta la parte di codice relativa alla visualizzazione del conteggio, quindi avremo bisogno di un modulo da inserire nella parte di backend (amministrazione)

 Se noi clicchiamo sull' icona dei feed rss, vedremo che ci viene indicato quale parte di codice ci fornisce i feed, e quindi dove dovremo andare a lavorare, infatti il link e'

http://www.davidea.it/index.php/component/option,com_rss/feed,RSS2.0/no_html,1/ 

 dove possiamo vedere come e' un componente standard di joomla a darci il feed e si chiama com_rss, quindi lo troviamo dentro la directory /components/ del nostro sito, basta aprirlo con un normale editor php , trovare le righe

 

        // loads item info into rss array
        $rss->addItem( $item );
    }
 


che sono quasi alla fine del file ed inserire la nostra porzione di codice, ho inserito anche parte di codice scritto da altri riadattandolo , grazie Giovanni Marigi anche se non ti conosco!

 //inizio modifiche davide ammirata

        //recupera l' ip dell' utente

        $ip = getenv("REMOTE_ADDR") ;
       
        //recupera l' user agent dell' utente

        $agent = $_SERVER['HTTP_USER_AGENT'];

        //recupera la data odierna

        $now     =    time();


/* RICONOSCIMENTO USER AGENT DELL'UTENTE
        di Giovanni Marigi
      
*/


/* La funzione permette di verificare se il browser che ha richiesto la pagina
   e' presente nella lista di bot conosciuti
   In caso affermativo restituisce il valore 1
   In caso negativo restituisce il valore 0

   @ param $chiave --> indica la chiave di ricerca all'interno del vettore
   @ param $vettore --> il vettore con i browser noti
*/
function presenza_user($chiave,$vettore) {
    $contatore = 0;
    /* Restituzione di un array con le chiavi dell'originario array
           associativo
        */
    $temp = array_keys($vettore);
    $conteggio = count($temp);       
    while($contatore < $conteggio) {
                /* Confronto fra la chiave di ricerca e l'elemento corrente
                   del vettore delle chiavi
                */
        
        if (strstr($chiave, $temp[$contatore])) {
            // Ricerca a buon fine
       
            return 1;
           }       
        $contatore++;
       }
       // Browser non presente nella lista          

       return 0;

}

/* Array associativi per i browser.
   Puo' essere aggiornato con nuove corrispondenze se ne conoscete
*/
$u_agenti = array(
'TwengaBot/1.1' => 'motore di ricerca twenga',
'Yahoo!' => 'motore di ricerca Yahoo!',
'Googlebot' => 'motore di ricerca Google',
'msnbot' => 'motore di ricerca msnbot',
'altri motori di ricerca' => 'motore di ricerca '
);

        $day             =    date('d');
        $month             =    date('n');
        $year             =    date('Y');
        $daystart         =    mktime(0,0,0,$month,$day,$year);
   
        // bisogna memorizzare ogni volta che viene prelevato un feed la tripletta data + ip + user agent, controllando che quel giorno non sia gia' stato inserito

        $query     =    "SELECT COUNT(*) FROM #__rss_stat WHERE ip='$ip' AND  ($daystart + 86400) > '$now'";
        $database->setQuery($query);
        $items     =    $database->loadResult();

if (empty($items))
{
$esito = presenza_user($agent,$u_agenti);

if ($esito == 0 ) {
    $query = "INSERT INTO #__rss_stat (id, data, ip, agent) VALUES ('', '$now', '$ip', '$agent')";
        $database->setQuery($query);
        $database->query();
        $e = $database->getErrorMsg();
}
}

//fine modifiche davide ammirata
 

 

 

$esito = presenza_user($agent,$u_agenti);

if ($esito == 0 ) {
    $query = "INSERT INTO #__rss_stat (id, data, ip, agent) VALUES ('', '$now', '$ip', '$agent')";
        $database->setQuery($query);
        $database->query();
        $e = $database->getErrorMsg();
}

 

a questo punto bisogna evidenziare un po' una cosa, avendo modificato un componente standard, ad ogni aggiornamento che facciamo di joomla, ad esempio passando da una versione a quella successiva, bisogna controllare di non andare a sovrascrivere il compnente da noi modificato, in tal caso bisognerebbe reinserire il nostro codice all' interno del componente nuova versione.

 

 
Make Text Bigger Make Text Smaller Reset Text Size
Home Informatica Joomla Statistiche rss per joomla 1.0.x

JoomlaWatch Visitors



Nazione di provenienza

89.2%ITALY ITALY
2.2%UNITED STATES UNITED STATES
1.6%GERMANY GERMANY
0.9%JAPAN JAPAN
0.8%UNITED KINGDOM UNITED KINGDOM

Numero di visitatori

Oggi: 1
Ieri: 32
Questa settimana: 123
Scorsa settimana: 213
Questo mese: 840
Scorso mese: 689
Totale: 2683


JoomlaWatch Stats 1.2.9 by Matej Koval
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counteroggi8
mod_vvisit_counterieri50
mod_vvisit_counterquesta settimana205
mod_vvisit_counterQuesto mese1198
mod_vvisit_counterdal 08/08/200912041
Visitors Counter 1.0.3
davidea.it