/** * Détermine si un fichier est une image. * Se base sur le mime type du fichier * * @return bool True s'il s'agit d'une image / false sinon */ public function estUneImage() { $mimeType = CopixMIMETypes::getFromExtension($this->type); if (in_array($mimeType, $this->imgTypes)) { return true; } return false; }
public function testSeveralExt() { $types = array('jpg', 'pdf', 'doc', 'rtf', 'latex', 'aif', 'wav', 'gif', 'zip', 'gz', 'txt', 'htm', 'ogg', 'xhtml', 'xml', 'ppt', 'pps', 'chm', 'js', 'exe', 'bat', 'mp3', 'wma'); foreach ($types as $name) { if (CopixMIMETypes::getFromExtension('.' . $name) == 'application/octet-stream') { $this->fail($name); } } }
/** * 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') . " » " . 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(''))); }
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, ' » '); $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; } }
/** * A partir d'un nom de fichier, renvoie son type MIME * * @author Christophe Beyer <*****@*****.**> * @since 2010/09/24 * @param string $iFilename Nom (ou chemin) du fichier * @return */ public function getMimeType($iFilename) { $point = strrpos($iFilename, "."); if ($point !== false) { $ext = substr($iFilename, $point + 1); $ext = strtolower($ext); } else { $ext = $iFilename; } $oMimeType = CopixMIMETypes::getFromExtension($ext); // On regarde si on veut pas ecraser le type mime if ($oMimeType == 'application/octet-stream') { $tmp = MalleService::getTypeInfos($ext); if ($tmp && isset($tmp['type_mime'])) { $oMimeType = $tmp['type_mime']; } } return $oMimeType; }
private function doExportAlbum($destfolder, $data) { foreach ($data->files as $file) { $file_from = $this->path_old . "/album/" . $file->album_id . "_" . $file->album_cle . "/" . $file->photo_id . "_" . $file->photo_cle . "." . $file->photo_ext; $destfile = _record('malle|malle_files', $this->connection_name_new); $destfile->malle = $destfolder->malle; $destfile->malle_cle = $destfolder->malle_cle; $destfile->folder = $destfolder->id; $destfile->nom = $file->photo_nom; $destfile->fichier = "archive_album_" . $file->photo_id . "_" . $file->photo_cle . "." . $file->photo_ext; $destfile->taille = filesize($file_from); $destfile->type = CopixMIMETypes::getFromExtension($file->photo_ext); $destfile->cle = substr(md5(microtime()), 0, 10); $destfile->date_upload = $destfolder->date_creation; _dao('malle|malle_files', $this->connection_name_new)->insert($destfile); $file_dest = $this->path_new . "/malle/" . $destfolder->malle . "_" . $destfolder->malle_cle . "/" . $destfile->id . "_archive_album_" . $file->photo_id . "_" . $file->photo_cle . "." . $file->photo_ext; copy($file_from, $file_dest); } foreach ($data->folders as $folder) { $destsubfolders = _record('malle|malle_folders', $this->connection_name_new); $destsubfolders->malle = $destfolder->malle; $destsubfolders->malle_cle = $destfolder->malle_cle; $destsubfolders->parent = $destfolder->id; $destsubfolders->nb_folders = 0; $destsubfolders->nb_files = 0; $destsubfolders->taille = 0; $destsubfolders->date_creation = date("Y-m-d H:i:s"); $destsubfolders->nom = $folder->dossier_nom; _dao('malle|malle_folders', $this->connection_name_new)->insert($destsubfolders); $this->doExportAlbum($destsubfolders, $folder); } }
/** * Renvoie le type MIME d'un fichier * * @param string $filename Nom du fichier * * @return string */ public static function getMimeType($filename) { $point = strrpos($filename, '.'); if ($point !== false) { $ext = substr($filename, $point + 1); $ext = strtolower($ext); } else { $ext = $filename; } return CopixMIMETypes::getFromExtension($ext); }
/** * 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'))); }