Contar descargas e impresiones

Sencillo contador de descargas de los archivos que spip coloca de forma automática al subirlos, y de los clics sobre un enlace a una versión imprimir de artículos y/o breves.

Estos scripts y esqueletos en realidad recogen en una tabla los clics que se hacen sobre archivos que se van a descargar, y los clics que se hacen sobre un enlace a una versión imprimir de un artículo o una breve. Permiten ver todos los documentos imprimidos y las descargas realizadas.

Ejemplo de como se muestran las descargas: descargas (el archivo que subo sólo tiene la tabla de las descargas sin el resto del esqueleto)

Ejemplo de como se muestran los documentos imprimidos: impresiones

Recogen el número del documento (id_document, id_article o id_breve), la fecha y hora, la persona que lo realiza si está registrada en el sitio, la dirección y la IP desde la que se realiza la descarga o la impresión, y el navegador empleado. Yo sólo utilizo el id_document, id_article o id_breve para contabilizar las descargas e impresiones, pero los otros campos de la tabla quedan ahí para un posible aprovechamiento posterior.

Inconvenientes :(

-  sólo guardan los clics que se realizan sobre los archivos colocados por spip automáticamente, NO sobre los que incluimos nosotras en sitios concretos dentro del artículo.

-  guardan cuando se hace clic en el enlace, se termine la descarga o no.

-  no se realizan las descargas con el botón derecho pues el enlace no es estándar.

-  no diferencia si se imprime o no, sólo si se cliquea sobre el enlace para ver la versión imprimir

Ventajas :)

-  no se hackea spip con lo que no presenta problemas de actualización de los esqueletos originales

-  no es necesario indicarle expresamente los archivos que tiene que contabilizar (uno a uno) por lo que funciona por los procedimientos normales de spip a la hora de escribir artículos o subir archivos sin tener que hacer nada especial.

PARA INSTALARLO

1. Abrir el archivo conectar.php de la carpeta contar y completar los datos de conexión

2. Subir la carpeta contar y todos los archivos [1] al directorio raíz del sitio.

3. Lanzar el archivo instalar.php de la carpeta contar con http://tu_sitio/contar/instalar.php

MODIFICACIONES SI QUIERES CONTAR LAS DESCARGAS

Al comienzo del esqueleto artículo:

<?
$persona=$GLOBALS['auteur_session']['id_auteur'];
?>

para coger la persona si está registrada

En el enlace al documento a descargar:

cambiar

<a href="#URL_DOCUMENT">

por

<a href="contar/contar.php?id_doc=#ID_DOCUMENT&url_doc=#URL_DOCUMENT&persona=<? echo $persona; ?>">

MODIFICACIONES SI QUIERES CONTAR LAS VECES QUE SE CLIQUEA SOBRE UN ENLACE VERSIÓN IMPRIMIR [2]

En mes_fonctions.php3 o al comienzo de article.html, breve.html, o en el esqueleto donde se vaya a colocar el enlace de versión imprimir:

<script type="text/javascript">
function ventanaImprimir(URL){ 
window.open(URL,"","left=48, top=0, width=700, height=475, scrollbars=yes, menubar=yes, location=no, resizable=yes") 
}
/ -->
</script>

En el enlace para versión imprimir si es un artículo:

<a href="javascript:ventanaImprimir ('imprimir.php3?id_article=#ID_ARTICLE')" title="Abre una ventana con el art&iacute;culo y los comentarios para imprimirlos mejor desde men&uacute; Archivo>Imprimir">versi&oacute;n imprimir</a>

En el enlace para versión imprimir si es una breve:

<a href="javascript:ventanaImprimir ('imprimirbre.php3?id_breve=#ID_BREVE')" title="Abre una ventana con el art&iacute;culo y los comentarios para imprimirlos mejor desde men&uacute; Archivo>Imprimir">versi&oacute;n imprimir</a>

Footnotes

[1Si ya tienes esqueletos diferenciados para imprimir artículos y breves no hace falta que subas los esqueletos de imprimir. Sólo tienes que añadir al comienzo de tus esqueletos:

<?
// ----- cuenta las veces que se entra en esta página -------
include('contar/conectar.php');

// -----------PREPARAMOS LOS DATOS A INSERTAR ------------------
$id_articulo = $HTTP_GET_VARS['id_article'];
$tipo = "a";
$direccion = gethostbyaddr("$REMOTE_ADDR");
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$navegador = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$persona= $HTTP_GET_VARS['persona'];

// -----------INSERTAMOS UN REGISTRO ----------------
$insertar = "INSERT INTO $tabla (id_doc, tipo, fecha, id_persona, ip, direccion, navegador)";
$insertar .= "VALUES ('$id_articulo', '$tipo', NOW(), '$persona', '$ip', '$direccion', '$navegador')";
@mysql_db_query($base, $insertar, $conexion);

// --------------------------- CERRAMOS LA CONEXIÓN ----------------
@mysql_close();

?>

en el de los artículos y

<?
// ----- cuenta las veces que se entra en esta página -------
include('contar/conectar.php');

// -----------PREPARAMOS LOS DATOS A INSERTAR ------------------
$id_breve = $HTTP_GET_VARS['id_article'];
$tipo = "b";
$direccion = gethostbyaddr("$REMOTE_ADDR");
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$navegador = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$persona= $HTTP_GET_VARS['persona'];

// -----------INSERTAMOS UN REGISTRO ----------------
$insertar = "INSERT INTO $tabla (id_doc, tipo, fecha, id_persona, ip, direccion, navegador)";
$insertar .= "VALUES ('$id_breve', '$tipo', NOW(), '$persona', '$ip', '$direccion', '$navegador')";
@mysql_db_query($base, $insertar, $conexion);

// --------------------------- CERRAMOS LA CONEXIÓN ----------------
@mysql_close();

?>

para el de breves.

[2Este código abre una ventana nueva con javascript. Si no se quiere abrir esa ventana no hace falta colocar el script de javascript con la función ventanaImprimir, y los enlaces se pueden escribir normales (sin el javascript:ventanaImprimir ni los paréntesis)

updated on 14 June 2005

Discussion

Aucune discussion

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom