Una piccola modifica al modulo statistics e un aiutino sulle form API

3 contenuti / 0 new
Ultimo contenuto
Una piccola modifica al modulo statistics e un aiutino sulle form API

Salve a tutti, vorrei un pò modificare il modulo statistics.. lo so, NON si modificano i moduli di drupal, ma forse si tratta du una cosa piccola... vorrei che nella lista delle visite recenti venga visualizzato l'ip anzicchè l'utente, il fatto è che i miei visitatori sono quasi tutti anonimi allora nelle statistiche non riesco a vedere subito se ci sono nuovi visitatori... con l'ip sarebbe più comodo :) ho trovato nel codice del modulo questo:
dove viene preso l'IP

<?php
   
// Log this page access.
   
db_query("INSERT INTO {accesslog} (title, path, url, hostname, uid, sid, timer, timestamp) values('%s', '%s', '%s', '%s', %d, '%s', %d, %d)", strip_tags(drupal_get_title()), $_GET['q'], referer_uri(), $_SERVER['REMOTE_ADDR'], $user->uid, session_id(), timer_read('page'), time());
  }
?>

e poi anche questa parte...
solo che non posso semplicemente sostituire hostname a u.name...
<?php
/**
* Menu callback; presents the "recent hits" page.
*/
function statistics_recent_hits() {
 
$header = array(
    array(
'data' => t('Timestamp'), 'field' => 'a.timestamp', 'sort' => 'desc'),
    array(
'data' => t('Page'), 'field' => 'a.path'),
    array(
'data' => t('User'), 'field' => 'u.name'),
    array(
'data' => t('Operations'))
  );
 
$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"));
  }
 
$output = theme('table', $header, $rows);
 
$output .= theme('pager', NULL, 30, 0);
  return
$output;
}
?>

Avete qualche suggerimento?
Grazie
E si ancora una cosa...
volevo provare a fare un a pagina con qualche form...
ho visto qui:
http://api.drupal.org/api/file/developer/topics/forms_api.html/5
ho provato a fare una pagina inserendo il codice che sta negli esempi, e come tipo di imput mettevo php, ma nella pagina non si visualizza niente...
Vabbhè, forse dovrei studiarmi un pò meglio le api... anzi... come funzionano :p

Gli IP sono dinamici, ogni volta che ci si connette cambiano, quindi non serve a nulla, potresti ovviare tracciando i cookies, ma la cosa credo esuli dalla tua domanda.
Per quanto riguarda le API di Form, prova ad inserire nel nodo, impostando il tipo di input a PHP code:

<?php
 
function test_form() {
   
$form['copy'] = array(
      
'#type' => 'checkbox',
      
'#title' => t('Send me a copy.'),
      );
 
$form['preview'] = array(
      
'#type' => 'button',
      
'#value' => t('Preview'),
      
'#weight' => 19,
    );
  return
$form;
}
return
drupal_get_form('test_form');
?>

Lascio a te il compito di capire cosa succede e come mai, se non tiè chiaro qualceh punto chiedi pure :)

Ciao
Marco
--
My blog
Working at @agavee

Grazie mille per la velocissima e completa risposta :) il mio errore era quello di incollare il codice "così come era",compresa la parte finale:

<?php
 
return $form;
}
function
test_page() {
  return
drupal_get_form('test_form');
}
?>

allora per vedere il form avevo bisogno di richiamare la funzione test page
ancora Grazie :)