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

Last change on this file since 104848 was 104848, checked in by erational@…, 2 years ago

on vire les fermetures de php

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