function load($age, $eix, $ue, $dir = null, $paramtoken = null) { if (!$this->session->islogged()) { $this->redirect("?membre/login"); } if (!isset($paramtoken)) { $message = "Vous tentez d'accéder à un répertoire inexistant."; $this->error($message); exit; } $dir = urldecode(str_replace('~', '/', $dir)); $path = $age == 'a' ? 'filesOld' : 'files'; //a ancien $path .= strtolower(DS . 'ei' . $eix . DS . $ue . DS . (!empty($dir) ? $dir != 'dir' ? $dir . DS : '' : '')); //$file = BASE_URL.DS.$path.Session::getReverseToken($paramtoken); if ($age == 'a') { $token = Session::getReverseToken($paramtoken); $filename = $token; } elseif ($age == 'n') { $get = $this->document->findFirst(array('conditions' => " doc_code = " . Functions::squote($paramtoken))); $path = $get->doc_path; $filename = $get->doc_name; } $file = '..' . DS . $path . $filename; if (file_exists($file)) { $size = filesize($file); $erreurs = $this->force_telechargement(array('filename' => $filename, 'type' => 'application/octet-stream', 'size' => $size, 'dir' => $path, 'complete_name' => $file)); if ($erreurs[0] && $age == 'a') { Session::delToken($token); Session::addToken($token); $tmpFile = $this->document->findFirst(array('tables' => " openu_oldfiles ", 'conditions' => " path LIKE '%" . $file . "%'", 'fecthMethod' => PDO::FETCH_ASSOC)); // enregistrement du nombre de téléchargement if (!empty($tmpFile)) { $this->document->upDate(array('tables' => " openu_oldfiles ", 'affectations' => "hits = hits+1", 'conditions' => " path LIKE '%" . $file . "%'", 'fecthMethod' => PDO::FETCH_ASSOC)); } /** Enregistrement de l'activité sur les OldFiles */ //l'activité est créée automatiquement à la connexion $this->document->upDate(array('tables' => 'activite_membre', 'affectations' => "nb_down = nb_down+1", 'conditions' => ' id_user = '******'membre']['mem_id'])); } else { $this->error($erreurs[1]); return false; } } $list = Script::_multi_script(array(array('action' => 'ready', 'element' => 'body', 'name' => 'body', 'code' => "setTimeout('self.close()',10000);"))); /*Les champs obligatoires pour le type _query : toReload, "query, #element, #reponse , "method, "url*/ $variables['mesScripts'] = $list['s']; //définitions des fonctions => dans le header $variables['mesScriptsFunc'] = $list['d']; $variables['file'] = $file; $this->myrender(array('menu' => 'menu', 'title' => 'Telechargement de la ressource en cours', 'view' => 'load', 'variables' => $variables)); }