function index() { $data = array(); $data['nbMembre'] = $this->membre->findFirst(array('champs' => 'DISTINCT COUNT(mem_id) as nbMembre', 'tables' => 'membre', 'conditions' => 'mem_etat = 1', 'fecthMethod' => PDO::FETCH_ASSOC)); $data['nbReseau'] = $this->reseau->findFirst(array('champs' => 'DISTINCT COUNT(net_id) as nbReseau', 'tables' => 'reseau', 'fecthMethod' => PDO::FETCH_ASSOC)); $data['nbGroupe'] = $this->groupe->findFirst(array('champs' => 'DISTINCT COUNT(gr_id) as nbGroupe', 'tables' => 'groupe', 'fecthMethod' => PDO::FETCH_ASSOC)); $data['nbDocs'] = $this->groupe->findFirst(array('champs' => 'DISTINCT COUNT(doc_id) as nbDocs', 'tables' => 'document', 'fecthMethod' => PDO::FETCH_ASSOC)); $data['nbHits'] = $this->groupe->findFirst(array('champs' => 'DISTINCT SUM(hits) as nbHits', 'tables' => 'openu_files', 'fecthMethod' => PDO::FETCH_ASSOC)); //derniers fichiers ajoutés $data['fichiers'] = $this->document->find(array('tables' => 'openu_files', 'champs' => '*', 'limit' => '0,5', 'order' => 'upload_date DESC', 'fecthMethod' => PDO::FETCH_ASSOC)); //matières les plus demandées $matieres = $this->document->find(array('tables' => 'reseau_membre', 'champs' => 'DISTINCT net_id', 'fecthMethod' => PDO::FETCH_ASSOC)); if (!empty($matieres)) { $data['nbInscrits'] = 0; $i = 0; foreach ($matieres as $value) { $tmp = $this->document->findFirst(array('tables' => 'reseau_membre', 'champs' => 'COUNT(mem_id) as nbInscrits', 'conditions' => 'net_id = ' . $value['net_id'], 'fecthMethod' => PDO::FETCH_ASSOC)); $matieres[$i]['nbInscrits'] = (int) $tmp['nbInscrits']; $i++; } //tri des matières $matieresPlusDemandees = array(); $max1 = 0; $max2 = 0; for ($k = 0; $k < count($matieres); $k++) { for ($j = 0; $j < count($matieres); $j++) { if ($matieres[$j]['nbInscrits'] >= $max1) { $matieresPlusDemandees[0] = $matieres[$j]; $max1 = $matieres[$j]['nbInscrits']; } elseif ($matieres[$j]['nbInscrits'] > $max2) { $matieresPlusDemandees[1] = $matieres[$j]; $max2 = $matieres[$j]['nbInscrits']; } } } $data['matieres'] = $this->document->find(array('tables' => 'reseau', 'champs' => '*', 'conditions' => 'net_id = ' . $matieresPlusDemandees[0]['net_id'] . ' OR net_id =' . $matieresPlusDemandees[1]['net_id'], 'fecthMethod' => PDO::FETCH_ASSOC)); } $list = Script::_multi_script(array(array('action' => 'keyup', 'element' => '#searchBar', 'name' => '', 'code' => " var valeur=\$('#searchBar').val(); if(valeur.length>4) searchFiles(valeur); "))); /*Les champs obligatoires pour le type _query : toReload, "query, #element, #reponse , "method, "url*/ $data['mesScripts'] = $list['s']; //définitions des fonctions => dans le header $data['mesScriptsFunc'] = $list['d']; // appels des fonctions définis => dans le footer $this->myrender(array('menu' => 'menu', 'title' => constant('site_i_name'), 'view' => 'index', 'variables' => $data)); }
function profil($param) { if (!$this->session->islogged()) { $this->redirect("?membre/login/"); } //changement de layout pour les tests $this->layout = 'default'; //récupération des infos de sessions $variables['user'] = $_SESSION['membre']; //récupération des données $variables['reseaux'] = $this->reseau->find(array('tables' => ' reseau r NATURAL JOIN reseau_membre rm ', 'conditions' => "rm.mem_id = " . $_SESSION['membre']['mem_id'], 'fecthMethod' => PDO::FETCH_ASSOC)); $variables['groupes'] = $this->groupe->find(array('tables' => ' groupe g NATURAL JOIN groupe_membre gm ', 'conditions' => "gm.mem_id = " . $_SESSION['membre']['mem_id'], 'fecthMethod' => PDO::FETCH_ASSOC)); $id = $_SESSION['membre']['mem_id']; $variables['contacts'] = $this->membre->find(array('tables' => ' membre NATURAL JOIN (SELECT * FROM contact_membre WHERE ( mem_id_1 = ' . $id . ' OR mem_id_2 = ' . $id . ') ) as c', 'champs' => 'mem_id, mem_login', 'conditions' => "cm_valid = 1 AND (mem_id=c.mem_id_1 OR mem_id=c.mem_id_2) AND mem_id != " . $id, 'fecthMethod' => PDO::FETCH_ASSOC)); $variables['lastComers'] = $this->membre->find(array('order' => 'mem_date_joined DESC ', 'limit' => '5', 'fecthMethod' => PDO::FETCH_ASSOC)); $variables['activite'] = $this->membre->findFirst(array('tables' => 'activite_membre', 'conditions' => ' id_user = '******'membre']['mem_id'], 'fecthMethod' => PDO::FETCH_ASSOC)); //création des scripts $list = Script::_multi_script(array(array('type' => '_script', 'action' => 'click', 'element' => '#btn_change_year', 'name' => 'btn_change_year', 'code' => " var year = \$('#input_change_year').val(); \$.ajax({ type : 'GET', url : '?ajax/profil/', data : 'year:'+year,success : function(server_response){ \$('#result_change_year').html(server_response).fadeIn(2000);} });\n "), array('type' => '_script', 'action' => 'click', 'element' => '#btn_change_ue', 'name' => 'btn_change_ue', 'code' => " var ue = \$('#input_change_ue').val(); \$.ajax({ type : 'GET', url : '?ajax/profil/', data : 'ue:'+ue,success : function(server_response){ \$('#result_change_ue').html(server_response).fadeIn(2000);} });\n "), array('type' => '_script', 'action' => 'click', 'element' => '#btn_change_temperament', 'name' => 'btn_change_temperament', 'code' => " var temperament = \$('#input_change_temperament').val(); \$.ajax({type : 'GET', url : '?ajax/profil/', data : 'temperament:'+temperament, success : function(server_response){ \$('#result_change_temperament').html(server_response).fadeIn(2000);} });\n "))); /*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']; // appels des fonctions définis => dans le footer $this->myrender(array('menu' => 'menu', 'title' => 'Accueil', 'view' => 'profil', 'variables' => $variables)); }
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)); }
function view($id) { //si pas connecté on redirige vers la page de connexion if (!$this->session->islogged()) { $this->redirect("?membre/login/"); } // si les paramètres sont pas bon on génère une erreur if (!$this->controlParam()) { $this->error(Conf::DEBUG ? "Erreur [" . get_class($this) . " " . __LINE__ . "] : Un des paramètres n'a pas le bon type ou est mal configuré, ou l'utilisateur n'existe pas." : "L'url spécifiée n'existe pas."); } //on vérifie si la connexion est celle d'un admin $compteAdmin = $this->session->isloggedAsAdmin(); $variables['compteAdmin'] = $compteAdmin; //on récupère l'utilisateur qu'on veut visualiser $user = $this->membre->findFirst(array('tables' => 'membre', 'conditions' => 'mem_id = ' . $id, 'fecthMethod' => PDO::FETCH_ASSOC)); //si l'utilisateur à visualiser est l'utilisateur lui-même $monCompte = $user['mem_login'] == $_SESSION['membre']['mem_login']; $variables['monCompte'] = $monCompte; /* Données sensibles : à ne montrer qu'à l'intéressé ou aux admins * Si celui qui regarde n'est pas autorisé, on modifie ces infos */ if (!($compteAdmin || $monCompte)) { $user['mem_mail'] = '--Information non publique--'; //à reconsidérer en fonction des souhaits de l'user $user['mem_etat'] = $user['mem_etat'] == 0 ? '--Compte non validé.--' : '--Compte validé.--'; } $variables['user'] = $user; /* On récupère les réseaux et groupes du concerné */ $variables['sesReseaux'] = $this->reseau->find(array('tables' => 'reseau r NATURAL JOIN reseau_membre rm', 'conditions' => 'rm.mem_id = ' . $user['mem_id'], 'fecthMethod' => PDO::FETCH_ASSOC)); $variables['sesGroupes'] = $this->groupe->find(array('tables' => 'groupe g NATURAL JOIN groupe_membre gm', 'conditions' => 'gm.mem_id = ' . $user['mem_id'], 'fecthMethod' => PDO::FETCH_ASSOC)); $interaction = $this->contact_membre->findFirst(array('tables' => 'contact_membre', 'conditions' => "(mem_id_1 =" . $user['mem_id'] . " AND mem_id_2 =" . $_SESSION['membre']['mem_id'] . " ) OR " . "(mem_id_2 =" . $user['mem_id'] . " AND mem_id_1 =" . $_SESSION['membre']['mem_id'] . " )", 'fecthMethod' => PDO::FETCH_ASSOC)); $variables['interaction'] = $interaction; //Functions::debug($interaction); //si vous avez une interaction sous la forme d'échange de contacts, alors ne plus proposer le bouton mail|phone|facebook $variables['contactMe'] = $interaction === false ? true : false; //génération du token //ca permettra de vérifier que l'utilisateur est bien passé par la page view et non par un autre moyen comme le lien Session::addToken(array('name' => 'vueUtilisateurenCours' . $user['mem_id'], 'limit_time' => Conf::SESSION_TIME, 'time' => time(), 'erase' => true)); $list = Script::_multi_script(array(array('action' => 'click', 'element' => '#', 'name' => '', 'code' => ""), array('type' => '_query', 'action' => 'click', 'element' => '#send_mail', 'name' => 'send_mail', 'code' => 'window.location.reload();', 'toReload' => '#rien', 'query' => urlencode('mode:mail' . '|user:'******'mem_id'] . '|username:'******'mem_login'] . '|concerne:' . $_SESSION['membre']['mem_login'] . '|resume:' . $_SESSION['membre']['mem_login'] . " veut entrer en contact avec vous. Voici son mail " . $_SESSION['membre']['mem_mail']), 'reponse' => '#reponse', 'method' => 'GET', 'url' => '?ajax/send/', 'time' => '3000'), array('type' => '_query', 'action' => 'click', 'element' => '#accepte_demande', 'name' => 'accepte_demande', 'code' => 'window.location.reload();', 'toReload' => '#rien', 'query' => urlencode($interaction['mem_id_1'] . ':' . $interaction['mem_id_2']), 'reponse' => '#reponse_accepte_demande', 'method' => 'GET', 'url' => '?ajax/accepte_demande/', 'time' => '3000'))); /*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']; // appels des fonctions définis => dans le footer $this->myrender(array('menu' => 'menu', 'title' => $user['mem_login'], 'view' => 'view', 'variables' => $variables)); }