No debería ser difícil crear un módulo personalizado para esto.
La consulta que se ejecuta el módulo de estadísticas es:
db_query('UPDATE {node_counter} SET daycount = daycount + 1, totalcount = totalcount + 1, timestamp = %d WHERE nid = %d', time(), arg(1));
// If we affected 0 rows, this is the first time viewing the node.
if (!db_affected_rows()) {
// We must create a new row to store counters for the new node.
db_query('INSERT INTO {node_counter} (nid, daycount, totalcount, timestamp) VALUES (%d, 1, 1, %d)', arg(1), time());
}
Lo único que tenemos que hacer, es reemplazar arg(1)
con el identificador de nodo que queremos añadir un recuento a esto se podría hacer en una costumbre módulo algo así.
function custom_module_menu() {
$items['custom/ajax/%node'] = array(
'title' => 'Update count',
'page callback' => 'custom_module_update_counter',
'page arguments' => array(2),
'access callback' => array('custom_module_access_control'),
);
function custom_module_update_counter($node) {
db_query('UPDATE {node_counter} SET daycount = daycount + 1, totalcount = totalcount + 1, timestamp = %d WHERE nid = %d', time(), $node->nid);
// If we affected 0 rows, this is the first time viewing the node.
if (!db_affected_rows()) {
// We must create a new row to store counters for the new node.
db_query('INSERT INTO {node_counter} (nid, daycount, totalcount, timestamp) VALUES (%d, 1, 1, %d)', $node->nid, time());
}
}
Todo lo que queda es la implementación de una función de control de acceso personalizado, se puede comprobar si la solicitud es ajax o hacer lo que sea te gusta el control, la función debe simplemente devolver VERDADERO o FALSO. También necesita hacer un evento ajax con la identificación del nodo en su configuración, pero eso tampoco debería ser demasiado difícil.
usted tenga que pulsar la url custom/ajax/2
para actualizar el nodo con id 2, etc.
Gracias mucho por su respuesta detallada. Obtendrá grietas en el módulo personalizado. – wiifm
Mi módulo está ahora disponible para descargar en d.o http://drupal.org/project/statistics_ajax - en caso de que alguien más necesite una funcionalidad similar – wiifm