/**
  *
  */
 public function processLaunch()
 {
     //Si aucun test n'est donné, on redirige vers la page de choix
     if (($test = _request('tests')) === null) {
         return _arRedirect(_url('unittest|'));
     }
     //Si on a demandé à lancer les tests avec Ajax, on génère le template d'appel pour chaque élément
     if (_request('ajax')) {
         $ppo = new CopixPpo();
         $ppo->TITLE_PAGE = 'Lancements des tests unitaires';
         $ppo->arTests = $this->_getTest();
         return _arPpo($ppo, 'tests.launch.php');
     } else {
         //on a pas demandé d'appel type ajax, donc on lance directement les tests demandés.
         if (CopixAjax::isAJAXRequest()) {
         } else {
             //C'est une demande normale, la réponse sera de type HTML
             $more = '';
         }
     }
     //On lance enfin la demande de test
     $httpClientRequest = new CopixHTTPClientRequest(CopixUrl::appendToUrl(_url() . 'test.php', array('tests' => $test, 'xml' => CopixAjax::isAJAXRequest())));
     $httpClient = new CopixHttpClient();
     $response = $httpClient->launch($httpClientRequest);
     return _arContent($response[0]->getBody(), array('content-type' => 'text/html'));
 }
 /**
  * Fonction appelée lorsque l'on clique sur le bouton 'import'
  * Appel la méthode privée _validFromFormImportParams
  * vérifie les infos saisies dans le formulaire
  * stock l'objet en session
  * @author Audrey Vassal <*****@*****.**>
  */
 public function doExport()
 {
     $serviceAuth = new AgendaAuth();
     $serviceExport = new ExportService();
     $agendaService = new AgendaService();
     $dateService = new DateService();
     //demande de mettre l'objet à jour en fonction des valeurs saisies dans le formulaire
     if (!($exportParams = $this->_getSessionExport())) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.cannotFindSession'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     //on vérifie les droits des utilisateurs sur la liste des agendas sélectionnés
     foreach ((array) $this->getRequest('agenda') as $id_agenda) {
         //on vérifie si l'utilisateur a les droits d'écriture sur un des agendas affiché
         if ($serviceAuth->getCapability($id_agenda) < $serviceAuth->getRead()) {
             return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.enableToWrite'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
         }
     }
     $this->_validFromFormExportParams($exportParams);
     $errors = $this->_checkExport($exportParams);
     if (count($errors) > 0) {
         $this->_setSessionExport($exportParams);
         return CopixActionGroup::process('agenda|ImportExport::getPrepareExport', array('e' => 1, 'errors' => $errors));
     } else {
         //var_dump($exportParams);
         //die();
         //on récupère tous les évènements des agendas cochés dans la période demandée
         foreach ((array) _request('agenda') as $idAgenda) {
             $arEventsPeriode[$idAgenda] = $agendaService->checkEventOfAgendaInBdd($idAgenda, CopixDateTime::dateToYYYYMMDD($exportParams->datedeb_export), CopixDateTime::dateToYYYYMMDD($exportParams->datefin_export));
         }
         //on classe ces évènements par jour
         $arEventByDay = $agendaService->getEventsByDay($arEventsPeriode, CopixDateTime::dateToYYYYMMDD($exportParams->datedeb_export), CopixDateTime::dateToYYYYMMDD($exportParams->datefin_export));
         //on ordonne les évènements par ordre croissant d'heure de début d'évènement dans la journée
         //var_dump($arEventByDay);
         $arEventByDay = $agendaService->getEventsInOrderByDay($arEventByDay);
         $content = $serviceExport->getFileICal($arEventByDay, CopixDateTime::dateToTimestamp($exportParams->datedeb_export), CopixDateTime::dateToTimestamp($exportParams->datefin_export));
     }
     //on vide la session
     $this->_setSessionExport(null);
     return _arContent($content, array('filename' => 'agenda.ics', 'content-disposition' => 'attachement', 'content-type' => CopixMIMETypes::getFromExtension('.ics')));
 }
 /**
  * getLoginResult
  *
  * Affiche le résultat de la création de comptes (login, passwd) dans différents formats (html, txt, csv, etc.).
  * @author	Frédéric Mossmann
  */
 public function getLoginResult()
 {
     $inSession = _sessionGet('modules|comptes|doLoginCreate|success');
     if (!$inSession || !is_array($inSession) || !sizeof($inSession)) {
         $urlReturn = CopixUrl::get('comptes||getNode');
         return new CopixActionReturn(COPIX_AR_REDIRECT, $urlReturn);
     }
     //print_r($inSession);
     $tpl = new CopixTpl();
     $tplLoginResult = new CopixTpl();
     $tpl->assign('TITLE_PAGE', CopixI18N::get('comptes.moduleDescription') . " &raquo; " . CopixI18N::get('comptes.title.getloginresult'));
     $menu = array();
     $menu[] = array('txt' => CopixI18N::get('comptes.menu.export_html'), 'url' => CopixUrl::get('comptes||getLoginResult', array('type' => _request('type'), 'id' => _request('id'), 'format' => 'html')));
     $menu[] = array('txt' => CopixI18N::get('comptes.menu.export_txt'), 'url' => CopixUrl::get('comptes||getLoginResult', array('type' => _request('type'), 'id' => _request('id'), 'format' => 'text')));
     $menu[] = array('txt' => CopixI18N::get('comptes.menu.export_cvs'), 'url' => CopixUrl::get('comptes||getLoginResult', array('type' => _request('type'), 'id' => _request('id'), 'format' => 'csv')));
     $menu[] = array('txt' => CopixI18N::get('comptes.menu.export_xml'), 'url' => CopixUrl::get('comptes||getLoginResult', array('type' => _request('type'), 'id' => _request('id'), 'format' => 'xml')));
     // $menu[] = array( 'txt' => CopixI18N::get ('comptes.menu.export_pdf'), 'url' => CopixUrl::get ('comptes||getLoginResult', array('type'=>_request('type'),'id'=>_request('id'),'format'=>'pdf')) );
     $menu[] = array('txt' => CopixI18N::get('comptes.menu.export_purge'), 'url' => CopixUrl::get('comptes||getPurgeResult', array('type' => _request('type'), 'id' => _request('id'))), 'color' => 'red');
     // $menu[] = array( 'txt' => CopixI18N::get ('comptes.menu.export_return'), 'url' => CopixUrl::get ('comptes||getNode', array('type'=>_request('type'),'id'=>_request('id'))) );
     $tplLoginResult->assign('MENU', $menu);
     $logins = $inSession;
     if (!_request('format') || trim(_request('format')) == '') {
         $format = "default";
     } else {
         $format = _request('format');
     }
     $tplLoginResult->assign('logins', $logins);
     switch ($format) {
         case 'default':
             $main = $tplLoginResult->fetch('loginresult.tpl');
             break;
         case 'html':
             $main = $tplLoginResult->fetch('loginresult-html.tpl');
             return _arContent($main, array('filename' => 'Logins-' . date('YmdHi') . '.html', 'content-disposition' => 'attachement', 'content-type' => CopixMIMETypes::getFromExtension('.html')));
             break;
         case 'text':
             $main = $tplLoginResult->fetch('loginresult-text.tpl');
             return _arContent($main, array('filename' => 'Logins-' . date('YmdHi') . '.txt', 'content-disposition' => 'attachement', 'content-type' => CopixMIMETypes::getFromExtension('.txt')));
             break;
         case 'csv':
             $main = $tplLoginResult->fetch('loginresult-csv.tpl');
             return _arContent($main, array('filename' => 'Logins-' . date('YmdHi') . '.csv', 'content-disposition' => 'attachement', 'content-type' => CopixMIMETypes::getFromExtension('.csv')));
             break;
         case 'xml':
             $main = $tplLoginResult->fetch('loginresult-xml.tpl');
             return _arContent($main, array('filename' => 'Logins-' . date('YmdHi') . '.xml', 'content-disposition' => 'attachement', 'content-type' => CopixMIMETypes::getFromExtension('.xml')));
             break;
             /*
             case 'pdf':
                 break;
             */
         /*
         case 'pdf':
             break;
         */
         case 'session':
             // DEBUG
             $main = '<pre>' . print_r($inSession, true) . '</pre>';
             break;
         default:
             break;
     }
     $tpl->assign('MAIN', $main);
     $tpl->assign('MENU', $this->menu);
     return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
 }
 /**
  * Affichage du flux RSS d'un blog (flux sortant)
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2006/11/28
  * @param string $blog Url_blog du blog
  */
 public function getBlogRss()
 {
     $blog = $this->getRequest('blog', null);
     if ($blog != null) {
         $blogDAO =& CopixDAOFactory::create('blog|blog');
         if ($blog = $blogDAO->getBlogByName($blog)) {
             $rss = CopixZone::process('ListArticleRss', array('blog' => $blog));
             return _arContent($rss, array('content-type' => CopixMIMETypes::getFromExtension('xml')));
         }
     }
     return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.unableToFindBlog'), 'back' => CopixUrl::get('')));
 }
 /**
  * Fonction permettant de générer le fichier WSDL
  *
  * @return CopixActionReturn
  */
 public function processWsdl()
 {
     $ppo = new CopixPPO();
     require_once $this->_exportClassFilename;
     require_once $this->_path . COPIX_CLASSES_DIR . "WSDL_Gen.php";
     // Generation du WSDL
     // @ todo : improve with significant URL
     if (isset($this->_wsname)) {
         $wsdl = new WSDL_Gen($this->_exportClass, _url('wsserver||', array('wsname' => $this->_wsname)), _url('wsserver|default|wsdl', array('wsname' => $this->_wsname)));
     } else {
         $wsdl = new WSDL_Gen($this->_exportClass, _url('wsserver||'), _url('wsserver|default|wsdl'));
     }
     $res = $wsdl->toXML();
     $tpl = new CopixTpl();
     $tpl->assign('MAIN', $res);
     return _arContent($res, array('content-type' => 'text/xml'));
 }
 public function processShowMultipleAccountsListing()
 {
     $ppo = new CopixPPO();
     // Récupération des informations des comptes créés
     $ppo->accounts = _sessionGet('gestionautonome|addMultipleStudents|success');
     // Récupérations des informations des modifications apportées
     $accountsInSession = _sessionGet('modules|gestionautonome|passwordsList');
     if (!is_array($accountsInSession)) {
         $accountsInSession = array();
     } else {
         $toDisplay = array();
         foreach ($accountsInSession as $lines) {
             foreach ($lines as $data) {
                 $toDisplay[] = $data;
             }
         }
         $ppo->accountsInSession = $toDisplay;
     }
     // Récupération du format de sortie demandé
     if (!_request('format') || trim(_request('format')) == '') {
         $format = "default";
     } else {
         $format = _request('format');
     }
     // Breadcrumbs
     $nodeInfos = Kernel::getNodeInfo($ppo->nodeType, $ppo->nodeId, true);
     // Get vocabulary catalog to use
     $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog');
     $ppo->vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($ppo->nodeType, $ppo->nodeId);
     $breadcrumbs = Kernel::generateBreadcrumbs($nodeInfos);
     $breadcrumbs[] = array('txt' => CopixCustomI18N::get('gestionautonome|gestionautonome.message.add%%structure_element_persons%%list', array('catalog' => $ppo->vocabularyCatalog->id_vc)));
     $ppo->breadcrumbs = Kernel::PetitPoucet($breadcrumbs, ' &raquo; ');
     $ppo->TITLE_PAGE = CopixConfig::get('gestionautonome|moduleTitle');
     $ppo->title = 'Importer ' . CopixCustomI18N::get('gestionautonome|gestionautonome.message.%%structure_element_persons%%', array('catalog' => $ppo->vocabularyCatalog->id_vc));
     $ppo->msgSuccess = CopixCustomI18N::get('gestionautonome|gestionautonome.message.%%structure_element_Persons%%', array('catalog' => $ppo->vocabularyCatalog->id_vc)) . ' ajoutés !';
     $ppo->subTitle = 'Liste ' . CopixCustomI18N::get('gestionautonome|gestionautonome.message.%%indefinite__structure_element_persons%%', array('catalog' => $ppo->vocabularyCatalog->id_vc)) . ' ajoutés';
     // Sortie suivant le format demandé
     $tplResult = new CopixTpl();
     $tplResult->assign('accounts', $ppo->accounts);
     switch ($format) {
         case 'default':
             return _arPPO($ppo, 'account_listing.tpl');
         case 'html':
             $result = $tplResult->fetch('account_listing_html.tpl');
             return _arContent($result, array('filename' => 'Logins-' . date('YmdHi') . '.html', 'content-disposition' => 'inline', 'content-type' => CopixMIMETypes::getFromExtension('.html')));
             break;
         case 'csv':
             $result = $tplResult->fetch('account_listing_csv.tpl');
             return _arContent($result, array('filename' => 'Logins-' . date('YmdHi') . '.csv', 'content-disposition' => 'attachement', 'content-type' => CopixMIMETypes::getFromExtension('.csv')));
             break;
     }
 }
 /**
  * Flux RSS des blogs de tout Iconito
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2007/11/27
  */
 public function processRss()
 {
     $rss = CopixZone::process('Rss');
     //echo "rss=$rss<p></p>";
     return _arContent($rss, array('content-type' => CopixMIMETypes::getFromExtension('xml')));
 }