/**
  * Affiche la fiche détaillée d'un utilisateur (login, nom, prénom...)
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2006/01/04
  * @param string $type Type de personne (USER_ELE, USER_ELE...)
  * @param integer $id Id
  */
 public function _createContent(&$toReturn)
 {
     $annuaireService =& CopixClassesFactory::Create('annuaire|AnnuaireService');
     $type = $this->getParam('type') ? $this->getParam('type') : NULL;
     $id = $this->getParam('id') ? $this->getParam('id') : NULL;
     $canWrite = $canView = false;
     if ($type && $id) {
         $usr = Kernel::getUserInfo($type, $id);
         $usr['type_nom'] = Kernel::Code2Name($usr['type']);
         //Kernel::myDebug($usr);
         $droits = Kernel::getUserInfoMatrix($usr);
         $canView = $droits['voir'];
         $canWrite = $droits['communiquer'];
         if ($canView) {
             // Avatar
             $avatar = '';
             if (isset($usr['user_id'])) {
                 $avatar = Prefs::get('prefs', 'avatar', $usr['user_id']);
             }
             $usr['avatar'] = $avatar ? CopixConfig::get('prefs|avatar_path') . $avatar : '';
             $parents = $enfants = array();
             if ($type == 'USER_ELE') {
                 // Pour un élève, on cherche ses parents
                 $parents = $annuaireService->getParentsFromEleve($id);
             } elseif ($type == 'USER_RES') {
                 // Pour un parent, on cherche ses enfants
                 $enfants = $annuaireService->getEnfantsFromParent($id);
             }
         } else {
             $usr = $parents = $enfants = false;
         }
         $tpl = new CopixTpl();
         $tpl->assign('usr', $usr);
         $tpl->assign('canWrite', $canWrite);
         $tpl->assign('parents', $parents);
         $tpl->assign('enfants', $enfants);
         $toReturn = $tpl->fetch('getuserprofilzone.tpl');
     }
     return true;
 }
 /**
  * Soumission du formulaire d'�criture d'un minimail (envoie le minimail)
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/10/18
  * @see getNewForm()
  * @param string $dest Logins du(des) destinataire(s)
  * @param string $title Titre du minimail
  * @param string $message Corps du minimail
  * @param string $go Forme de soumission : preview (pr�visualiser) ou send (enregistrer)
  */
 public function doSend()
 {
     $dest = _request("dest") ? _request("dest") : "";
     $title = _request("title") ? _request("title") : "";
     $message = _request("message") ? _request("message") : "";
     $format = _request("format") ? _request("format") : "";
     $go = _request("go") ? _request("go") : 'preview';
     $iReply = CopixRequest::getInt('reply');
     $iForward = CopixRequest::getInt('forward');
     $destTxt = $dest;
     $destTxt = str_replace(array(" "), "", $destTxt);
     $destTxt = str_replace(array(",", ";"), ",", $destTxt);
     $destin = array_unique(explode(",", $destTxt));
     $fromId = _currentUser()->getId();
     $errors = array();
     if (!$dest) {
         $errors[] = CopixI18N::get('minimail.error.typeDest');
     }
     if (!$title) {
         $errors[] = CopixI18N::get('minimail.error.typeTitle');
     }
     if (!$message) {
         $errors[] = CopixI18N::get('minimail.error.typeMessage');
     }
     if (!$format) {
         $errors[] = CopixI18N::get('minimail.error.typeFormat');
     }
     $tabDest = array();
     // On v�rifie que les destinataires existent
     while (list(, $login) = each($destin)) {
         if (!$login) {
             continue;
         }
         $userInfo = Kernel::getUserInfo("LOGIN", $login, array('strict' => true));
         //print_r("login=$login");
         //print_r($userInfo);
         if (!$userInfo) {
             $errors[] = CopixI18N::get('minimail.error.badDest', array($login));
         } elseif ($userInfo["user_id"] == $fromId) {
             $errors[] = CopixI18N::get('minimail.error.writeHimself');
         } else {
             $droits = Kernel::getUserInfoMatrix($userInfo);
             if ($droits['communiquer']) {
                 $tabDest[$userInfo["user_id"]] = $userInfo["user_id"];
             } else {
                 $errors[] = CopixI18N::get('minimail.error.cannotWrite', array($login));
             }
         }
     }
     // On v�rifie les pi�ces jointes
     CopixConfig::get('minimail|attachment_size');
     //print_r($_FILES);
     for ($i = 1; $i <= 3; $i++) {
         if (isset($_FILES['attachment' . $i]) && !is_uploaded_file($_FILES['attachment' . $i]['tmp_name'])) {
             switch ($_FILES['attachment' . $i]['error']) {
                 case 0:
                     //no error; possible file attack!
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_default', $i);
                     break;
                 case 1:
                     //uploaded file exceeds the upload_max_filesize directive in php.ini
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_toobig', $i);
                     break;
                 case 2:
                     //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_toobig', $i);
                     break;
                 case 3:
                     //uploaded file was only partially uploaded
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_partial', $i);
                     break;
                 case 4:
                     //no file was uploaded
                     break;
                 default:
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_default', $i);
                     break;
             }
         }
     }
     if (!$errors) {
         if (!$errors && $go == 'save') {
             $serv = CopixClassesFactory::create("MinimailService");
             $send = $serv->sendMinimail($title, $message, $fromId, $tabDest, $format);
             if (!$send) {
                 $errors[] = CopixI18N::get('minimail.error.send');
             }
         }
         if (!$errors && $go == 'save') {
             // Reponse ou forward ?
             if ($iReply) {
                 // On verifie qu'on est destinataire
                 if ($inDest = _ioDAO('minimail_to')->selectDestFromIdAndToUser($iReply, $fromId)) {
                     _doQuery("UPDATE module_minimail_to SET is_replied=1 WHERE id=:id", array(':id' => $inDest->id2));
                 }
             } elseif ($iForward) {
                 $message = _ioDAO('minimail_from')->get($iForward);
                 // Si on etait l'expediteur
                 if ($message && $message->from_id == $fromId) {
                     _doQuery("UPDATE module_minimail_from SET is_forwarded=1 WHERE id=:id", array(':id' => $iForward));
                     // Si on etait destinataire
                 } elseif ($message && ($inDest = _ioDAO('minimail_to')->selectDestFromIdAndToUser($iForward, $fromId))) {
                     _doQuery("UPDATE module_minimail_to SET is_forwarded=1 WHERE id=:id", array(':id' => $inDest->id2));
                 }
             }
             // Ajout des pieces jointes
             $attachments = array();
             $dataPath = realpath("../var/data");
             for ($i = 1; $i <= 3; $i++) {
                 if (isset($_FILES["attachment" . $i]) && isset($_FILES["attachment" . $i]["name"]) && $_FILES["attachment" . $i]["name"]) {
                     $name = $send . "_" . $_FILES["attachment" . $i]["name"];
                     $uploadFrom = $_FILES["attachment" . $i]["tmp_name"];
                     $uploadTo = $dataPath . "/minimail/" . $name;
                     if (move_uploaded_file($uploadFrom, $uploadTo)) {
                         $attachments[] = $name;
                     } else {
                         $errors[] = CopixI18N::get('minimail.error.send', array($i));
                     }
                 }
             }
             if (count($attachments) > 0) {
                 $DAOminimail_from = CopixDAOFactory::create("minimail_from");
                 $mp = $DAOminimail_from->get($send);
                 $mp->attachment1 = isset($attachments[0]) ? $attachments[0] : NULL;
                 $mp->attachment2 = isset($attachments[1]) ? $attachments[1] : NULL;
                 $mp->attachment3 = isset($attachments[2]) ? $attachments[2] : NULL;
                 $DAOminimail_from->update($mp);
             }
             //    update_message_pj ($res, $pj[0], $pj[1], $pj[2]);
             if (!$errors) {
                 $urlReturn = CopixUrl::get('|getListSend');
                 return new CopixActionReturn(COPIX_AR_REDIRECT, $urlReturn);
             }
         }
     }
     //_dump($message);
     return CopixActionGroup::process('minimail|minimail::getNewForm', array('dest' => $dest, 'title' => $title, 'message' => $message, 'format' => $format, 'errors' => $errors, 'preview' => $go == 'save' ? 0 : 1, 'reply' => $iReply, 'forward' => $iForward));
     //$url_return = CopixConfig::get('minimail|afterMsgSend');
     //$url_return = CopixUrl::get('minimail||getListSend');
 }