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>

Notes

[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)

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom