Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 3
0
 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));
 }
Exemplo n.º 4
0
 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));
 }