/**
     * @param string  $pContent le contenu à afficher
     */
    public function beforeDisplay(&$pContent)
    {
        $elapsedTime = $this->_timer->stop();
        switch ($this->config->trigger) {
            case 'url':
                if (CopixRequest::get('SpeedView') == 'show') {
                    $this->_speedprocess = true;
                }
                break;
            case 'display':
                $this->_speedprocess = true;
                break;
        }
        if ($this->_speedprocess) {
            switch ($this->config->target) {
                case 'comment':
                    $pContent = str_replace('<head>', '<head><!-- ' . $elapsedTime . ' -->
', $pContent);
                    break;
                case 'display':
                    $pContent = str_replace('</body>', $elapsedTime . '</body>', $pContent);
                    break;
                case 'log':
                    _log($elapsedTime, 'speedview', CopixLog::INFORMATION);
            }
        }
    }
 /**
  * Actiongroup qui permet de gérer la suppression
  *
  */
 public function processDelete()
 {
     $form = CopixFormFactory::get(_request('form_id'));
     $form->delete(CopixRequest::asArray());
     $url = _request('url');
     return _arRedirect(_url($url));
 }
 public function processSelectPage()
 {
     $tpl = new CopixTpl();
     $tpl->assign('TITLE_PAGE', CopixI18N::get('htmleditor.title.pageSelect'));
     $tpl->assignZone('MAIN', 'htmleditor|SelectPage', array('onlyLastVersion' => 1, 'editorName' => CopixRequest::get('editorName', null, true), 'popup' => CopixRequest::get('popup', null, true)));
     return new CopixActionReturn(CopixActionReturn::DISPLAY_IN, $tpl, '|blank.tpl');
 }
 public function processGetTable()
 {
     $ppo = new CopixPPO();
     // Si c'est pour de l'ajax
     if (CopixRequest::get('url') == null) {
         try {
             //Recup les données
             $id = CopixRequest::get('table_id');
             $table = CopixListFactory::get($id);
             if (CopixRequest::get('submit') !== 'false') {
                 $table->getFromRequest();
             }
             //On génère le HTML
             $ppo->MAIN = $table->generateTable();
         } catch (Exception $e) {
             //En cas d'erreur en etant en ajax, on renvoi l'erreur
             $ppo->MAIN = $e->getMessage();
             return _arDirectPPO($ppo, 'blank.tpl');
         }
         return _arDirectPPO($ppo, 'blank.tpl');
         //Si c'est pas en ajax
     } else {
         //On récup les données
         $id = CopixRequest::get('table_id');
         $table = CopixListFactory::get($id);
         if (CopixRequest::get('submit') !== 'false') {
             $table->getFromRequest();
         }
         //Et on redirige
         return _arRedirect(_url(CopixRequest::get('url')));
     }
 }
 /**
  * Retourne les données du chart
  *
  */
 public function processGetChartsDatas()
 {
     $cle = CopixRequest::get('cle');
     echo CopixSession::get("charts|datas|{$cle}");
     CopixSession::set("charts|datas|{$cle}", null);
     return _arNone();
 }
 /**
  * Formulaire de modification ou de création d'un élément en base de données
  * On édite soit a partir de données passées en paramètre
  */
 public function getEdit()
 {
     $ppo = new CopixPPO();
     $ppo->TITLE_PAGE = "Modification d'un élément";
     if (!($ppo->toEdit = _ioDAO('copixtestautodao')->get(CopixRequest::get('id_test', null, true)))) {
         throw new Exception("Impossible de retrouver l'élément demandé");
     }
     $ppo->errors = CopixRequest::get('errors', array(), true);
     return _arPpo($ppo, 'autodao.form.tpl');
 }
 /**
  * Fonction qui est appellée pour afficher l'aide
  */
 public function processDefault()
 {
     if (_request('id_sh', null) === null) {
         return CopixActionGroup::process('generictools|Messages::getError', array('message' => _i18n('simplehelp.error.missingParameters'), 'back' => _url('simplehelp|admin|listAide')));
     }
     $aide = _ioDAO('simplehelp')->get(_request('id_sh', null));
     $ppo = new CopixPPO(array('TITLE_PAGE' => $aide->title_sh));
     $ppo->MAIN = CopixZone::process('ShowAide', array('id_sh' => CopixRequest::get('id_sh', null)));
     return _arDirectPPO($ppo, 'popup.tpl');
 }
Example #8
0
function moduleContext($step = 'open', $title_page = '', $titleContext = '')
{
    $module = CopixRequest::get('module');
    $content = CopixZone::process('kernel|moduleContext', array('STEP' => $step, 'MODULE' => $module, 'TITLE_PAGE' => $title_page, 'TITLE_CONTEXT' => $titleContext));
    if (!$content) {
        trigger_error('Unable to process Module Context Frame', E_USER_WARNING);
    } else {
        echo $content;
    }
}
/**
* retour de l'url actuelle sous forme de tableau associatif.
* @return array
*/
function getUrlTab()
{
    $UrlNew = array();
    //$params = $_GET;
    $params = CopixRequest::asArray();
    foreach ($params as $param => $valeur) {
        $UrlNew[$param] = $valeur;
    }
    return $UrlNew;
}
 public function _createContent(&$toReturn)
 {
     $tpl = new CopixTpl();
     $kernel = _class("kernel");
     $toReturn = "";
     $arModulesPath = CopixConfig::instance()->arModulesPath;
     $display = false;
     foreach ($arModulesPath as $modulePath) {
         if (file_exists(COPIX_PROJECT_PATH . "themes/" . $kernel->getTheme() . "/kernel/footer.tpl")) {
             $tpl_file = COPIX_PROJECT_PATH . "themes/" . $kernel->getTheme() . "/kernel/footer.tpl";
         } else {
             $tpl_file = $modulePath . 'kernel/templates/footer.tpl';
         }
         if (!file_exists($tpl_file)) {
             continue;
         }
         $display = true;
         // Récupération des infos de géolocalisation.
         $whereami = Kernel::whereAmI();
         if (isset($whereami['BU_GRVILLE'])) {
             $tpl->assign('grville_id', $whereami['BU_GRVILLE']['id']);
             $tpl->assign('grville_nom', $whereami['BU_GRVILLE']['nom']);
         }
         if (isset($whereami['BU_VILLE'])) {
             $tpl->assign('ville_id', $whereami['BU_VILLE']['id']);
             $tpl->assign('ville_nom', $whereami['BU_VILLE']['nom']);
         }
         if (isset($whereami['BU_ECOLE'])) {
             $tpl->assign('ecole_id', $whereami['BU_ECOLE']['id']);
             $tpl->assign('ecole_nom', $whereami['BU_ECOLE']['nom']);
         }
         if (isset($whereami['BU_CLASSE'])) {
             $tpl->assign('classe_id', $whereami['BU_CLASSE']['id']);
             $tpl->assign('classe_nom', $whereami['BU_CLASSE']['nom']);
         }
         // Récupération des valeurs d'URL.
         if ($module = CopixRequest::get('module')) {
             $tpl->assign('module', $module);
         }
         if ($action = CopixRequest::get('action')) {
             $tpl->assign('action', $action);
         }
         // Récupération des valeurs de sessions (personne).
         if (_currentUser()->getExtra('type')) {
             $tpl->assign('user_type', _currentUser()->getExtra('type'));
             $tpl->assign('user_id', _currentUser()->getExtra('id'));
         }
     }
     // Si le fichier de template n'existe pas, pas d'erreur.
     if ($display) {
         $toReturn = $tpl->fetch('kernel|footer.tpl');
     }
     return true;
 }
 public function beforeProcess(&$pExecParams)
 {
     if ($theme = $this->config->getThemeFor(CopixRequest::get('module'))) {
         CopixTpl::setTheme($theme);
     }
     //Ajout d'une gestion de tpl par thème
     $config = CopixConfig::instance();
     $theme = CopixTpl::getThemeInformations(CopixTpl::getTheme());
     if ($theme->tpl != null) {
         $config->mainTemplate = $theme->tpl;
     }
 }
 /**
  * Permet d'exporter les classes des modukes
  *
  * @return CopixActionReturn
  */
 public function processExportClass()
 {
     $pModuleName = CopixRequest::get('moduleName');
     $pClassFileName = CopixRequest::get('classFileName');
     // si on a confirmé l'ajout
     if (CopixRequest::get('confirm')) {
         $pServiceName = trim(CopixRequest::get('serviceName'));
         $pClassName = CopixRequest::get('className');
         $pClassFileName = _request('classFileName');
         $pModuleName = _request('moduleName');
         // nom de service vide
         if ($pServiceName == '') {
             return _arRedirect(_url('admin|ExportClass', array('error' => 'serviceEmpty', 'moduleName' => $pModuleName, 'classFileName' => $pClassFileName)));
         }
         // verification si on n'a pas déja un service de ce nom
         $wsservices = _ioDao('wsservices')->findBy(_daoSP()->addCondition('name_wsservices', '=', $pServiceName));
         if (count($wsservices) > 0) {
             return _arRedirect(_url('admin|ExportClass', array('error' => 'serviceExists', 'moduleName' => $pModuleName, 'classFileName' => $pClassFileName)));
         }
         CopixDB::getConnection()->doQuery("insert into wsservices (name_wsservices, module_wsservices, file_wsservices, class_wsservices) values ('" . $pServiceName . "','" . $pModuleName . "','" . $pClassFileName . "', '" . $pClassName . "')");
         $res = 'Url du Webservice  : <a href="' . _url('wsserver||', array('wsname' => $pServiceName)) . '">' . _url('wsserver||', array('wsname' => $pServiceName)) . '</a><br/>' . "\n";
         $res .= 'Url du fichier wsdl : <a href="' . _url('wsserver|default|wsdl', array('wsname' => $pServiceName)) . '">' . _url('wsserver|default|wsdl', array('wsname' => $pServiceName)) . '</a><br/>' . "\n";
         $res .= '<br />';
         $res .= '<input type="button" value="' . _i18n('wsserver.back') . '" onclick="javascript: document.location=\'' . _url('admin|manageWebServices') . '\';" />';
         $tpl = new CopixTpl();
         $tpl->assign('MAIN', $res);
         return new CopixActionReturn(CopixActionReturn::DISPLAY, $tpl);
         // si on doit afficher le formulaire d'ajout
     } else {
         $ppo = new CopixPPO();
         $ppo->TITLE_PAGE = _i18n('wsserver.title.manageWebServices');
         $ppo->classFileName = $pClassFileName;
         $ppo->arErrors = array();
         // erreur "service existant" passée en paramètre
         if (_request('error') !== null) {
             $ppo->arErrors[] = _i18n('wsserver.error.' . _request('error'));
         }
         $ppo->ModuleName = $pModuleName;
         $arBefore = get_declared_classes();
         include CopixModule::getPath($pModuleName) . COPIX_CLASSES_DIR . $pClassFileName;
         $arAfter = get_declared_classes();
         $arClass = array_diff($arAfter, $arBefore);
         sort($arClass);
         if (count($arClass) == 0) {
             throw new Exception('Pas de classe à exporter');
         }
         $ppo->arClass = $arClass;
         return _arPPO($ppo, 'wsservices.add.php');
     }
 }
 /**
  * Supression d'un plugin de la liste des plugins enregistrés
  */
 public function processRemovePlugin()
 {
     //on regarde si le plugin fait parti des plugins déja enregistrés
     $arPluginsConfiguration = array();
     if (in_array($pluginName = CopixRequest::get('plugin'), $arPlugins = CopixConfig::instance()->plugin_getRegistered())) {
         foreach ($arPlugins as $plugin) {
             if ($plugin != $pluginName) {
                 $arPluginsConfiguration[] = $plugin;
             }
         }
         _class('PluginsConfigurationFile')->write($arPluginsConfiguration);
     }
     return _arRedirect(_url('plugin|'));
 }
 public function request($iName, $iType = 'other', $default = null)
 {
     $oReturn = CopixRequest::get($iName, $default);
     switch ($iType) {
         case 'str':
             return (string) $oReturn;
             break;
         case 'int':
             return $oReturn * 1;
             break;
         case 'other':
             return $oReturn;
             break;
     }
 }
 /**
  * Supression d'une variable de session.
  */
 public function processRemove()
 {
     $namespace = CopixRequest::get('for_namespace');
     $key = CopixRequest::get('key');
     if ($namespace !== null) {
         if ($key !== null) {
             unset($_SESSION['COPIX'][$namespace][$key]);
         } else {
             unset($_SESSION['COPIX'][$namespace]);
         }
     } else {
         if (isset($_SESSION[$key])) {
             unset($_SESSION[$key]);
         }
     }
     return _arRedirect(_url(CopixRequest::get('popup') ? 'admin|session|popup' : 'admin|session|'));
 }
 /**
  * Retourne la page "autofermée" qui va rajouter le mail crypté demandé dans l'éditeur HTML
  */
 public function processdoCryptMailto()
 {
     $tpl = new CopixTpl();
     $tplInterieur = new CopixTpl();
     $address = CopixRequest::get('mailAdress');
     $encodedAddress = '';
     for ($i = 0; $i < strlen($address); $i++) {
         if (preg_match('!\\w!', $address[$i])) {
             $encodedAddress .= '%' . bin2hex($address[$i]);
         } else {
             $encodedAddress .= $address[$i];
         }
     }
     $tplInterieur->assign('mailto', $encodedAddress);
     $tpl->assign('TITLE_PAGE', CopixI18N::get('htmleditor.titlePage.mailcrypt'));
     $tpl->assign('MAIN', $tplInterieur->fetch('cryptmailto.tpl'));
     return new CopixActionReturn(CopixActionReturn::DISPLAY_IN, $tpl, '|blank.tpl');
 }
 /**
  * Ajout d'un commentaire dans la base après vérification des droits d'écriture
  * et que l'on a bien la bonne session
  */
 public function processAddComment()
 {
     //Vérifie que l'on a bien un paramètre id
     CopixRequest::assert('id');
     if (($informations = _ioClass('commentsservices')->getEnabled(_request('id'))) === false) {
         throw new Exception(_i18n('comments.error.badidsession'));
     }
     //_log ('FROMPAGE: '.$informations['fromPage']);
     //_log ('POUR ID: '._request ('id'));
     //vérifie les droits d'écriture
     if ($informations['writeCredential'] != "") {
         CopixAuth::getCurrentUser()->assertCredential($informations['writeCredential']);
     }
     //Ajout du commentaire
     $objComment = _record('comments');
     $objComment->content_comment = _request('content');
     $objComment->format_comment = 'TEXT';
     //aujourd'hui on ne supporte que le format text pour les commentaires
     $objComment->authorlogin_comment = _request('author');
     $objComment->authoremail_comment = _request('mail');
     $objComment->authorsite_comment = _request('site');
     $objComment->page_comment = $informations['id'];
     $objComment->date_comment = date('YmdHis');
     if (CopixConfig::get('comments|captcha') != 0) {
         $objComment->captcha_id = _request('captcha_id');
         $objComment->captcha_answer = _request('captcha_answer');
     }
     try {
         if (_request('preview') === null) {
             _ioDAO('comments')->insert($objComment);
             _ioClass('commentsservices')->removeEnabled($informations['id']);
             _notify('Content', array('id' => $informations['id'], 'kind' => 'comment', 'keywords' => null, 'title' => $informations['id'], 'summary' => null, 'content' => $objComment->content_comment, 'url' => $informations['fromPage']));
             return _arRedirect($informations['fromPage']);
         } else {
             _ioClass('commentsservices')->updateEnabled($objComment);
             return _arRedirect(_url($informations['fromPage'], array('preview' => 1, 'comments' => 'list')));
         }
     } catch (CopixDAOCheckException $e) {
         _ioClass('commentsservices')->updateEnabled($objComment);
         return _arRedirect(_url($informations['fromPage'], array('errors' => 1, 'comments' => 'list')));
     }
 }
 public function processQuiz()
 {
     $pId = CopixRequest::getInt('id', false);
     if (!$pId) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.noQuiz'), 'back' => CopixUrl::get('quiz|admin|')));
     }
     //get the quiz's informations
     $QuizData = _ioDAO('quiz_quiz')->get($pId);
     if ($QuizData == null || count($QuizData) == 0) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.noQuiz'), 'back' => CopixUrl::get('quiz||')));
     }
     $author = Kernel::getUserInfo('ID', $QuizData->id_author, array('link_data' => true));
     $ppo = new CopixPPO();
     $ppo->quiz = $QuizData;
     $ppo->author = $author;
     $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.listActive'), 'type' => 'list-active', 'url' => $this->url('quiz|default|default', array('qaction' => 'list')));
     $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.listAll'), 'type' => 'list', 'url' => $this->url('quiz|admin|list'));
     $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.new'), 'type' => 'create', 'url' => $this->url('quiz|admin|modif', array('qaction' => 'new')));
     return _arPPO($ppo, 'admin.quiz.tpl');
 }
 /**
  * Vérifie que l'on est bien authentifié (A voir).
  */
 public function beforeAction()
 {
     $pServiceName = CopixRequest::get('wsname');
     $this->_path = CopixModule::getPath('wsserver');
     if (isset($pServiceName)) {
         $this->_wsname = $pServiceName;
         $arRes = _ioDAO('wsservices')->findBy(_daoSP()->addCondition('name_wsservices', '=', $pServiceName));
         if (count($arRes) == 0) {
             throw new CopixException('Service introuvable ' . htmlentities($pServiceName));
         }
         $wsServiceInfo = $arRes[0];
         $this->_exportModule = $wsServiceInfo->module_wsservices;
         $this->_exportClass = $wsServiceInfo->class_wsservices;
         $this->_exportClassFilename = CopixModule::getPath($this->_exportModule) . COPIX_CLASSES_DIR . strtolower($wsServiceInfo->file_wsservices);
     } else {
         $this->_exportModule = CopixConfig::get('wsserver|exportedModule');
         $this->_exportClass = CopixConfig::get('wsserver|exportedClass');
         $this->_exportClassFilename = CopixModule::getPath($this->_exportModule) . COPIX_CLASSES_DIR . strtolower(CopixConfig::get('wsserver|exportedClassFile'));
     }
 }
 /**
  * Enregistre les droits séléctionné
  */
 public function processRecord()
 {
     CopixRequest::assert('id_group', 'handler_group');
     $bool = _request('bool', array());
     foreach (_request('value', array()) as $value) {
         $arValue = explode('|', $value);
         $result = _dao('dynamiccredentialsgroups')->findBy(_daoSP()->addCondition('id_dc', '=', $arValue[0])->addCondition('id_dcv', '=', isset($arValue[1]) ? $arValue[1] : null)->addCondition('id_group', '=', _request('id_group'))->addCondition('handler_group', '=', _request('handler_group')));
         if (!isset($bool[$value]) && isset($result[0])) {
             _dao('dynamiccredentialsgroups')->delete($result[0]->id_dcg);
         } elseif (isset($bool[$value]) && !isset($result[0])) {
             $record = _record('dynamiccredentialsgroups');
             $record->id_group = _request('id_group');
             $record->handler_group = _request('handler_group');
             $record->id_dc = $arValue[0];
             $record->id_dcv = isset($arValue[1]) ? $arValue[1] : null;
             _dao('dynamiccredentialsgroups')->insert($record);
         }
     }
     return _arRedirect(_url('auth|dynamic|list', array('id_group' => _request('id_group'), 'handler_group' => _request('handler_group'), 'url_return' => _request('url_return'))));
 }
 public function set($data = null)
 {
     $dao = _dao("logs|logs");
     $nouveau = _record("logs|logs");
     $types = array('ERROR', 'DEBUG', 'INFO', 'ALERT', 'LOG', 'AUTO', 'GO');
     if (isset($data['type']) && in_array($data['type'], $types)) {
         $nouveau->logs_type = $data['type'];
     } else {
         $nouveau->logs_type = 'UNKNOWN';
     }
     if (isset($data['message'])) {
         $nouveau->logs_message = $data['message'];
     }
     $module = CopixRequest::get('module', 'kernel');
     $action = CopixRequest::get('action', 'default');
     $nouveau->logs_mod_name = $module;
     $nouveau->logs_mod_action = $action;
     $user = Kernel::getSessionBU();
     if (sizeof($user) && isset($user['id'])) {
         $nouveau->logs_user_id = $user['id'];
         $nouveau->logs_user_login = $user['login'];
     }
     // Node
     $nouveau->logs_date = date("Y-m-j H:i:s", time());
     $nouveau->logs_user_ip = $_SERVER['REMOTE_ADDR'];
     $nouveau->logs_url = $_SERVER['QUERY_STRING'];
     // Kernel::MyDebug( $nouveau );
     if (isset($data['node_type'])) {
         $nouveau->logs_node_type = $data['node_type'];
     }
     if (isset($data['node_id'])) {
         $nouveau->logs_node_id = $data['node_id'];
     }
     if (isset($data['module_type'])) {
         $nouveau->logs_module_type = $data['module_type'];
     }
     if (isset($data['module_id'])) {
         $nouveau->logs_module_id = $data['module_id'];
     }
     $dao->insert($nouveau);
 }
 /**
  * Fonction permettant d'afficher une exception à l'écran.
  * Principalement destinée à l'utilisation interne, pas nécessairement à l'utilisation depuis l'url
  *
  */
 public function processException()
 {
     CopixRequest::assert('exception');
     $e = _request('exception');
     //Absolument impossible dans le contexte normal d'utilisation, $e est nécessairement une exception
     //catchée par le processus.
     if (!$e instanceof Exception) {
         return _arRedirect(_url('||'));
     }
     $ppo = new CopixPPO();
     $ppo->TITLE_PAGE = _request('TITLE_PAGE', get_class($e));
     switch (get_class($e)) {
         case 'CopixDAOCheckException':
             $ppo->message = sprintf('Une erreur de validation est survenue avec le message [%s]', implode(', ', $e->getErrors()));
             break;
         default:
             $ppo->message = $e->getMessage();
     }
     $ppo->type = get_class($e);
     $ppo->file = $e->getFile();
     $ppo->line = $e->getLine();
     $ppo->trace = $e->getTrace();
     $ppo->id = uniqid();
     $ppo->urlBack = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
     switch (CopixConfig::instance()->getMode()) {
         case CopixConfig::DEVEL:
             $ppo->mode = 'DEVEL';
             break;
         case CopixConfig::PRODUCTION:
             $ppo->mode = 'FORCE_INITIALISATION';
             break;
         case CopixConfig::FORCE_INITIALISATION:
             $ppo->mode = 'FORCE_INITIALISATION';
             break;
         default:
             $ppo->mode = 'UNKNOW';
             break;
     }
     return _arPpo($ppo, 'default|exception.tpl');
 }
 /**
  * Verification de spam, selon les parametres passes et le referer
  * @author Christophe Beyer <*****@*****.**>
  * @since 2011/04/08
  * @return boolean True si le visiteur est un robot spammeur, true si c'est un humain
  */
 public function isSpam()
 {
     $oIsSpam = false;
     if (!isset($_SERVER["HTTP_REFERER"]) || !$_SERVER["HTTP_REFERER"]) {
         // Pas de referer
         $oIsSpam = true;
     } elseif (CopixRequest::get('url1')) {
         // Champ en commentaire rempli
         $oIsSpam = true;
     } elseif (CopixRequest::get('url2') != 'Abracadabra') {
         // Champ non visible modifie
         $oIsSpam = true;
     }
     return $oIsSpam;
 }
 /**
  * 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');
 }
 public function processEndQuestions()
 {
     $pId = CopixRequest::getInt('id', false);
     if (!$pId || is_null(qSession('id')) || $pId != qSession('id')) {
         return CopixActionGroup::process('quiz|default::Quiz', array('id' => $pId));
     }
     $ppo = new CopixPPO();
     CopixHTMLHeader::addCSSLink(_resource("styles/module_quiz.css"));
     return _arPPO($ppo, 'end_questions.tpl');
 }
 public function _createContent(&$toReturn)
 {
     CopixHtmlHeader::addCSSLink(_resource('styles/comments.css'));
     //Si pas d'éléments d'identifiant donné, alors on utilise l'ensemble des paramètres de la requête
     if (($id = $this->getParam('id')) == "") {
         $id = array_keys(CopixRequest::asArray());
     }
     if (($mode = $this->getParam('mode')) == "" || $mode == "request") {
         if (($mode = _request('comments')) == "") {
             $mode = "summary";
         }
     }
     if (($newUrl = $this->getParam('moreUrl')) == "") {
         $newUrl = _url('#', array('comments' => 'list'));
     }
     $tpl = new CopixTpl();
     $tpl->assign('mode', $mode);
     $tpl->assign('newUrl', $newUrl);
     // On teste si nous sommes dans l'actions de prévisualisation
     if (_request('preview') !== null) {
         $tpl->assign('preview', 1);
         $tpl->assign('previewDate', date('YmdHis'));
     }
     if (CopixAuth::getCurrentUser()->testCredential('basic:admin')) {
         $tpl->assign('isAdmin', 1);
     } else {
         $tpl->assign('isAdmin', 0);
     }
     $idComment = _ioClass('commentsservices')->getId($id);
     // On vérifie si les commentaires sont ouvert
     $tpl->assign('locked', _dao('commentslocked')->countBy(_daoSp()->addCondition('locked_page_comment', '=', $idComment)));
     if ($informations = _ioClass('commentsservices')->getEnabled($idComment)) {
         $tpl->assign('newComment', $informations['object']);
         if (_request('errors') !== null) {
             $tpl->assign('errors', _ioDAO('comments')->check($informations['object']));
         }
     }
     _ioClass('commentsservices')->addEnabled(array('fromPage' => _url('#'), 'writeCredential' => $this->getParam('credentialWrite'), 'id' => $idComment));
     $tpl->assign('idComment', $idComment);
     switch ($mode) {
         case "list":
             if ($this->getParam('credentialRead') != "") {
                 CopixAuth::getCurrentUser()->assertCredential($this->getParam('credentialRead'));
             }
             $tpl->assign('arrComments', _dao('comments')->findBy(_daoSp()->addCondition('page_comment', '=', $idComment)));
             break;
         case "summary":
             $tpl->assign('nbComments', _dao('comments')->countBy(_daoSp()->addCondition('page_comment', '=', $idComment)));
             break;
     }
     // Mise en place du captcha si besoin :
     if (CopixConfig::get('comments|captcha') != 0) {
         $arrCaptchaMax = _ioDao('commentscaptcha')->findBy(_daoSp()->orderBy(array('captcha_id', 'DESC'))->setLimit(0, 1));
         $arrCaptchaMin = _ioDao('commentscaptcha')->findBy(_daoSp()->orderBy('captcha_id')->setLimit(0, 1));
         $captcha = false;
         while (!$captcha || is_null($captcha)) {
             srand();
             $rand = rand($arrCaptchaMin[0]->captcha_id, $arrCaptchaMax[0]->captcha_id);
             $captcha = _ioDao('commentscaptcha')->get($rand);
         }
         $tpl->assign('captcha', $captcha);
     }
     $toReturn = $tpl->fetch('zone.comment.tpl');
     //_log ('URL: '._url('#'));
     //_log ('ID: ' . $idComment);
     return true;
 }
 /**
  * Telechargement d'un document joint a une fiche
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2011/01/31
  * @param string $fichier Nom du fichier
  *
  */
 public function processDoc()
 {
     $iFichier = CopixRequest::get('fichier');
     $malleService =& CopixClassesFactory::Create('malle|malleService');
     preg_match('/^([0-9]+)_(.+)$/', $iFichier, $regs);
     $file = COPIX_VAR_PATH . CopixConfig::get('fichesecoles|docPath') . $iFichier;
     if (@file_exists($file)) {
         $filename = $regs[2];
         return _arFile($file, array('filename' => $filename, 'content-type' => $malleService->getMimeType($file), 'content-disposition' => 'attachement'));
     }
     header("HTTP/1.0 404 Not Found");
     return new CopixActionReturn(COPIX_AR_NONE, 0);
 }
 /**
  * Supression d'un log
  */
 public function processDeleteProfile()
 {
     $profile = _request('profile');
     if (CopixRequest::getInt('confirm') == 1) {
         CopixLog::deleteProfile($profile);
         $profiles = CopixConfig::instance()->copixlog_getRegisteredProfiles();
         unset($profiles[$profile]);
         _class('LogConfigurationFile')->write($profiles);
         return _arRedirect(_url('log|admin'));
     } else {
         if (!in_array($profile, CopixConfig::instance()->copixlog_getRegistered())) {
             return _arRedirect(_url('log|admin'));
         }
         return CopixActionGroup::process('generictools|Messages::getConfirm', array('message' => _i18n('logs.delete', $profile), 'confirm' => _url('admin|log|deleteProfile', array('profile' => $profile, 'confirm' => 1)), 'cancel' => _url('admin|log|admin')));
     }
 }
 /**
  * Initialisation de la requête à partir d'un tableau de données
  * @param	array	$pArray	tableau des données pour l'url
  */
 public static function setRequest($pArray)
 {
     self::$_vars = $pArray;
 }
 /**
  * Mise à jour du formulaire d'aide simple
  * @access: private.
  * @todo Utiliser les validateurs
  */
 private function _validFromForm(&$toUpdate)
 {
     $toCheck = array('title_sh', 'content_sh', 'page_sh', 'key_sh');
     CopixRequest::assert('title_sh', 'content_sh', 'page_sh', 'key_sh');
     foreach ($toCheck as $elem) {
         $toUpdate->{$elem} = _request($elem);
     }
 }