source: spip-zone/_plugins_/analyclick/branches/V0.1/action/telecharger.php @ 107794

Last change on this file since 107794 was 107794, checked in by erational@…, 19 months ago

Compatiblité SPIP 3.2 (Spip contrib Damien)

File size: 2.5 KB
Line 
1<?php
2/**
3* Plugin Analyclick
4*
5* @author: Jean-Marc Viglino (ign.fr)
6*
7* Copyright (c) 2011
8* Logiciel distribue sous licence GNU/GPL.
9*
10* Fonction comptage + renvoie du document
11*
12**/
13if (!defined("_ECRIRE_INC_VERSION")) {
14        return;
15}
16include_spip("base/anaclic");
17
18function action_telecharger() 
19{       // Id du document
20        $id = intval(_request('arg'));
21       
22        if (isset($GLOBALS['meta']['anaclic_secure']))
23        {       $securiser_action = charger_fonction('securiser_action', 'inc');
24                $id = $securiser_action();
25        }
26
27        if (!autoriser('document', 'voir', $id)) 
28        {       http_status(404);
29                include_spip('inc/minipres');
30                echo minipres(_T('erreur').' 404',_T('info_document_indisponible'));
31                return;
32        }
33       
34        // DEBUG : echo "DATE : ".date("h:i:s")."<br/>";
35       
36        // Le document
37       
38        $doc = sql_fetsel("id_document, fichier, distant", "spip_documents", "id_document='$id'");
39        if ($doc)
40        {       // Adresse du document
41                /*
42                if($doc['distant'] == 'oui') $url = $doc['fichier'];
43                else $url = _DIR_IMG ."/". $doc['fichier'];
44                */
45                /*      Utiliser la procedure standard de SPIP
46                        au cas ou elle soit surchargee par un plugin (acces_restreint)
47                */
48                include_spip('urls/standard');
49                if (function_exists(generer_url_document)) $url = generer_url_document($id, 'document');
50                else
51                {       $generer_url_document = charger_fonction("generer_url_document","urls");
52                        $url = $generer_url_document($id);
53                }
54
55                // ip du visiteur
56                $ip = $_SERVER["REMOTE_ADDR"];
57                // Suprime les anciens clics
58                $delai = (isset($GLOBALS['meta']['anaclic_delai']) ? $GLOBALS['meta']['anaclic_delai'] : 3600 );
59
60                if ($delai >= 0)
61                {       $time = time() -$delai;
62                        sql_delete ("spip_doc_compteurs_fix", "time < $time");
63                }
64                $nb = 1;
65                // Pas de multi-clic (meme IP sur le meme document dans le laps de temps)
66                if (!sql_fetsel ("id_document","spip_doc_compteurs_fix","ip='$ip' AND id_document=$id"))
67                {       sql_insertq ("spip_doc_compteurs_fix", array("id_document"=>$id,"ip"=>$ip,"time"=>time()));
68                        $date = date("Y-m-d");
69                        // Incrementer le compteur
70                        if ($row = sql_fetsel ("telechargement","spip_doc_compteurs","id_document=$id AND date='$date'"))
71                        {       sql_updateq ("spip_doc_compteurs", array("telechargement"=>$row[telechargement]+1), "id_document=$id AND date='$date'");
72                                $nb = $row[telechargement]+1;
73                        }
74                        // Nouvelle journee
75                        else
76                        {       sql_insertq ("spip_doc_compteurs", array("id_document"=>$id, "date"=>$date, "telechargement"=>1) );
77                        }
78                }
79
80                $url = str_replace ('&amp;', '&', $url);
81                @header ("Location: $url"); 
82
83                echo "<a href='$url'>$url (".$nb.")</a>";
84        }
85}
Note: See TracBrowser for help on using the repository browser.