/** * 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'); }