web designer

Claudio Caciagli
web designer
claudio@caciagli.it

Drupal: come avere più informazioni sugli utenti

Nella sezione "Visite recenti" di Drupal 5.x, gestita dal modulo dedicato alle statistiche del sito, si hanno delle informazioni sulle pagine viste e sugli IP degli utenti che si sono connessi.
Se desiderate avere delle informazioni ulteriori riguardanti gli IP (da dove vengono? è un motore di ricerca o un utente? è un utente che mi cercava oppure è arrivato per sbaglio?) è sufficiente apportare alcune piccole modifiche al modulo statistico.

Come fare

Connettersi via FTP al vostro sito Drupal (queste istruzioni valgono esclusivamente per la versione 5.x), andate nella cartella "modules", poi in quella "statistics"e scaricate il file "statistics.module", fatene una copia backup.

Aprite il file con un editor di testo qualunque, e andate alla righe 266-275, che presentano questo codice:
$sql = 'SELECT a.aid, a.path, a.title, a.uid, u.name, a.timestamp FROM {accesslog} a LEFT JOIN {users} u ON u.uid = a.uid' . tablesort_sql($header);
$result = pager_query($sql, 30);
while ($log = db_fetch_object($result)) {
$rows[] = array(
array('data' => format_date($log->timestamp, 'small'), 'class' => 'nowrap'),
_statistics_format_item($log->title, $log->path),
theme('username', $log),
l(t('details'), "admin/logs/access/$log->aid"));
}

e sostitutelo con il seguente:

$sql = 'SELECT a.aid, a.path, a.title, a.uid, u.name, a.timestamp, a.hostname FROM {accesslog} a LEFT JOIN {users} u ON u.uid = a.uid' . tablesort_sql($header);
$result = pager_query($sql, 30);
while ($log = db_fetch_object($result)) {
$rows[] = array(
array('data' => format_date($log->timestamp, 'small'), 'class' => 'nowrap'),
_statistics_format_item($log->title, $log->path),
theme('username', $log).", ". l(check_plain($log->hostname), "http://www.ip2location.com/$log->hostname", array('target'=> '_BLANK')),
l(t('details'), "admin/logs/access/$log->aid"));
}

Attraverso questa modifica, il sistema si collega al sito www.ip2location.com e vi mostra dei dettagli sugli IP dei vostri utenti.

Attenzione: se non siete registrati, potete visualizzare "solo" 20 IP al giorno.