コード例 #1
0
 /**
  * Agit selon le résultat de l'execution de l'action de la méthode de l'objet ActionGroup
  * Methode qui va effectuer un affichage de template, une redirection etc... en fonction
  * du code indiqué par le CopixActionReturn.
  * @param CopixActionReturn      $ToProcess   indique le type de resultat
  * @see CopixActionGroup
  * @todo rajouter une sorte de "Fin de traitement" _DoEnd / _DoFirst
  * @access private
  */
 function _processResult($toProcess)
 {
     switch ($toProcess->code) {
         case COPIX_AR_ERROR:
             //erreur
             $tpl = new CopixTpl();
             $tpl->assign('message', $toProcess->data);
             $tpl->display($this->moduleDir . COPIX_TEMPLATE_PATH . 'error.tpl');
             break;
         case COPIX_AR_DISPLAY:
             //affichage classique, dans le template principal.
             $this->_processStandard($toProcess->data);
             //appel de la méthode de préparation de la page standard.
             $this->_doHTMLHeaders($toProcess->data);
             //Par ex, bandeaux de pub, menus dynamiques, ... (propres aux projets.)
             CopixContext::clear();
             $toProcess->data->display($GLOBALS['COPIX']['CONFIG']->mainTemplate);
             break;
         case COPIX_AR_DISPLAY_IN:
             //affichage spécifique, dans un template indiqué.
             $this->_processStandard($toProcess->data);
             //appel de la méthode de préparation de la page standard.
             $this->_doHTMLHeaders($toProcess->data);
             //Par ex, bandeaux de pub, menus dynamiques, ... (propres aux projets.)
             $toProcess->data->display($toProcess->more);
             break;
         case COPIX_AR_REDIRECT:
             //redirection standard, message http.
             header('location: ' . $toProcess->data);
             break;
         case COPIX_AR_STATIC:
             $tpl =& new CopixTpl();
             $tpl->assign('MAIN', $this->includeStatic($toProcess->data));
             $this->_processStandard($tpl);
             $this->_doHTMLHeaders($tpl);
             $waitForMore = array('TITLE_PAGE', 'TITLE_BAR');
             foreach ($waitForMore as $key) {
                 if (isset($toProcess->more[$key])) {
                     $tpl->assign($key, $toProcess->more[$key]);
                 }
             }
             //Affichage dans le template principal.
             CopixContext::clear();
             $tpl->display($GLOBALS['COPIX']['CONFIG']->mainTemplate);
             break;
         case COPIX_AR_DOWNLOAD:
             $fileName = $toProcess->data;
             if (is_readable($fileName) && is_file($fileName)) {
                 //quick and dirty..... still.
                 if (strlen(trim($toProcess->more))) {
                     $fileNameOnly = $toProcess->more;
                 } else {
                     $fileNameOnly = explode('/', str_replace('\\', '/', $fileName));
                     $fileNameOnly = $fileNameOnly[count($fileNameOnly) - 1];
                 }
                 header("Content-Type: application/forcedownload");
                 header("Content-Disposition: attachment; filename=" . $fileNameOnly);
                 header("Content-Description: File Transfert");
                 header("Content-Transfer-Encoding: binary");
                 header("Pragma: no-cache");
                 header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
                 header("Expires: 0");
                 header("Content-Length: " . filesize($fileName));
                 flush();
                 readfile($fileName);
             }
             break;
         case COPIX_AR_BINARY:
             $fileName = $toProcess->data;
             //echo $fileName;
             if (is_readable($fileName) && is_file($fileName)) {
                 header("Content-Type: " . $toProcess->more);
                 header("Content-Length: " . filesize($fileName));
                 flush();
                 readfile($fileName);
             }
             break;
         case COPIX_AR_NONE:
             break;
         default:
             break;
     }
     //appel les plugins de post-processing.
     $this->_callPluginsMethodWithParam('afterProcess', $toProcess);
 }