cacheFolder = dirname(dirname(dirname(__FILE__))).'/promotools/cache/'; //echo "Cache Folder : ".$this->cacheFolder; //si le cache est trop vieux, on le reconstruit $fileName = $this->cacheFolder.'last.time'; if (file_exists($fileName)) { $handle = fopen($fileName, 'rb'); $time = fread($handle, filesize($fileName)); fclose($handle); //echo $time; } else { $time = "0000-00-00 00:00:00"; } $diff = strtotime(date("Y-m-d h:i:s")) - strtotime($time); //echo $diff; //cache > 2h if($diff >= 2*60*60) { $this->construct(); //echo "constructed"; } } /*//id d'un user en fction du user_tracker //$sql="select id from user where user_tracker = '".$idaff."'"; function get_id_user($idaff) { $users_id = $this->read('users_id.cache'); //echo print_r($users_id, 1); foreach($users_id as $line) { if($line['user_tracker'] == $idaff) return $line['id']; } }*/ /*//random sur les catégories de l'utilisateur //$sql = "select id_categorie from `user-categorie` where id_user = '".$id_user."'"; function get_categories($id_user) { $users_categories = $this->read('users_categories.cache'); //echo print_r($users_categories, 1); $aCat = array(); foreach($users_categories as $line) { if($line['id_user'] == $id_user) $aCat[] = $line['id_categorie']; } //echo print_r($aCat, 1); return $aCat; }*/ /*//random sur tous les jeux dispo pour une categorie //$sql = "select id from jeu where cetegorie <= $categorie"; function get_jeux($categorie) { $jeux = $this->read('jeux.cache'); //echo print_r($jeux, 1); $ajeux = array(); foreach($jeux as $line) { if($line['categorie_id'] <= $categorie) $ajeux[] = $line['id']; } //echo print_r($ajeux, 1); return $ajeux; }*/ /*//on récupère les tailles en fonctions des critères ci-dessus et on fait un random dessus //$sql = "select taille from `outil-promo` where type = 'banniere' AND id_jeu = '".$jeuAleatoire."' AND categorie <= ". function get_tailles($jeu, $categorie) { $outils_promo = $this->read('bannieres.cache'); //echo print_r($outils_promo, 1); $aTaille = array(); foreach($outils_promo as $line) { if($line['id_jeu'] == $jeu && $line['categorie'] <= $categorie) $aTaille[] = $line['taille']; } //echo print_r($ajeux, 1); return $aTaille; }*/ //récupérer le jeu aléatoire : function get_jeu_aleatoire($aJeux, $taille, $categorie) { $outils_promo = $this->read('bannieres.cache'); $aBanniere = array(); $i = 0; foreach($outils_promo as $line) { //si bonne catégorie et bonne taille if($line['categorie'] == $categorie && $line['taille'] == $taille) { if(sizeof($aJeux) > 0) { //et un des bon jeux if(in_array($line['id_jeu'], $aJeux)) { $aBanniere[$i] = $line['id_jeu']; $i++; } } else //pas de jeux souhaité, on les prend tous { $aBanniere[$i] = $line['id_jeu']; $i++; } } } //echo print_r($aBanniere); //on recupère les jeux disponibles avec ces critères $jeux_dispo = array_keys(array_flip($aBanniere)); if ($jeux_dispo) { return $jeux_dispo[rand(0, sizeof($jeux_dispo)-1)]; } else return -1; } function get_banniere_aleatoire($jeu, $taille, $categorie) { $outils_promo = $this->read('bannieres.cache'); $aBannieres = array(); $i=0; foreach($outils_promo as $line) { if($line['id_jeu'] == $jeu && $line['categorie'] == $categorie && $line['taille'] == $taille) { $aBannieres[$i]['url_image'] = $line['url_image']; $aBannieres[$i]['taille'] = $line['taille']; $aBannieres[$i]['id'] = $line['id']; $i++; } } //echo print_r($ajeux, 1); return $aBannieres[rand(0, sizeof($aBannieres)-1)]; } //récupération des bannieres //$sql = "SELECT * FROM `outil-promo` where type = 'banniere' AND id_jeu = '".$jeuAleatoire."' AND taille = '".$taille."' AND categorie = '".$categorieAleatoire."' AND actif = 1;"; function get_bannieres($jeu, $taille, $categorie) { $outils_promo = $this->read('bannieres.cache'); //echo print_r($outils_promo, 1); $aBanniere = array(); $i=0; foreach($outils_promo as $line) { if($line['id_jeu'] == $jeu && $line['categorie'] == $categorie && $line['taille'] == $taille) { $aBanniere[$i]['url_image'] = $line['url_image']; $aBanniere[$i]['taille'] = $line['taille']; $aBanniere[$i]['id'] = $line['id']; $i++; } } //echo print_r($ajeux, 1); return $aBanniere; } //recupération des liens des jeux //$sql = "SELECT lien FROM `jeu` WHERE id = $jeuAleatoire"; function get_lien($jeu) { $liens = $this->read('liens_jeux.cache'); //echo print_r($liens); foreach($liens as $line) { if($line['id'] = $jeu) return $line['lien']; } return ''; } function get_ldid($idban) { $outils_promo = $this->read('bannieres.cache'); //echo print_r($outils_promo, 1); foreach($outils_promo as $line) { if($line['id'] == $idban) { return $line['ldid']; } } //echo print_r($ajeux, 1); return -1; } function construct() { //ecriture de la date de naissance du cache exec('echo "'.date("Y-m-d h:i:s").'" > '.$this->cacheFolder.'last.time'); $bdd = DatabaseConnect::getConnection(); /*//on récupère les id users $sql="select id, user_tracker from user"; $requete = $bdd->prepare($sql); $requete->execute(); $users_id = $requete->fetchAll(PDO::FETCH_ASSOC); $this->write('users_id.cache', $users_id);*/ //echo print_r($users_id,1); /*//on récupère les catégories des users $sql = "select id_user, id_categorie from `user-categorie`"; $requete = $bdd->prepare($sql); $requete->execute(); $users_categories = $requete->fetchAll(PDO::FETCH_ASSOC); $this->write('users_categories.cache', $users_categories);*/ //echo print_r($users_categorie,1); //on récupère les jeux disponibles //TODO : mettre les jeux de l'utilisateur une fois le changement de BD effectué /*$sql = "select id, categorie_id from jeu where actif = 1"; $requete = $bdd->prepare($sql); $requete->execute(); $jeux = $requete->fetchAll(PDO::FETCH_ASSOC); $this->write('jeux.cache', $jeux);*/ //echo print_r($jeux,1); //on récupère les bannières $sql = "SELECT * FROM `outil-promo` where type = 'banniere'"; $requete = $bdd->prepare($sql); $requete->execute(); $bannieres = $requete->fetchAll(PDO::FETCH_ASSOC); //echo print_r($bannieres, 1); $this->write('bannieres.cache', $bannieres); //on récupère les liens des jeux $sql = "SELECT id, lien FROM `jeu`"; $requete = $bdd->prepare($sql); $requete->execute(); $liens_jeux = $requete->fetchAll(PDO::FETCH_ASSOC); $this->write('liens_jeux.cache', $liens_jeux); } function read($fileName) { $fileName = $this->cacheFolder.$fileName; if (file_exists($fileName)) { $handle = fopen($fileName, 'rb'); $variable = fread($handle, filesize($fileName)); fclose($handle); return unserialize($variable); } else { return null; } } function write($fileName,$variable) { $fileName = $this->cacheFolder.$fileName; $handle = fopen($fileName, 'a'); fwrite($handle, serialize($variable)); fclose($handle); } function delete($fileName) { $fileName = $this->cacheFolder.$fileName; @unlink($fileName); } } ?>