public function _createContent(&$toReturn) { _classInclude('agenda|dateservices'); $ppo = new CopixPPO(); // Récupération des paramètres $ppo->cahierId = $this->getParam('cahierId'); $ppo->jour = $this->getParam('date_jour'); $ppo->mois = $this->getParam('date_mois'); $ppo->annee = $this->getParam('date_annee'); $ppo->current = $this->getParam('current'); // Timestamp de la date sélectionnée $ppo->dateSelectionnee = mktime(0, 0, 0, $ppo->mois, $ppo->jour, $ppo->annee); $numeroSemaine = date('W', $ppo->dateSelectionnee); $service = new DateService(); // Récupération des timestamp des jours de la semaine $ppo->lun = CopixDateTime::timestampToyyyymmdd($service->numweekToDate($numeroSemaine, $ppo->annee, 1)); $ppo->mar = CopixDateTime::timestampToyyyymmdd($service->numweekToDate($numeroSemaine, $ppo->annee, 2)); $ppo->mer = CopixDateTime::timestampToyyyymmdd($service->numweekToDate($numeroSemaine, $ppo->annee, 3)); $ppo->jeu = CopixDateTime::timestampToyyyymmdd($service->numweekToDate($numeroSemaine, $ppo->annee, 4)); $ppo->ven = CopixDateTime::timestampToyyyymmdd($service->numweekToDate($numeroSemaine, $ppo->annee, 5)); $ppo->sam = CopixDateTime::timestampToyyyymmdd($service->numweekToDate($numeroSemaine, $ppo->annee, 6)); $ppo->semainePrecedente = strtotime("-1 week", $service->numweekToDate($numeroSemaine, $ppo->annee, 1)); $ppo->semaineSuivante = strtotime("+1 week", $service->numweekToDate($numeroSemaine, $ppo->annee, 1)); $toReturn = $this->_usePPO($ppo, '_menu_eleve.tpl'); }
public function processDefault() { $tpl = new CopixTpl(); $tplModule = new CopixTpl(); //if user is not connected : if (1) { // S'il y a un blog prevu a l'accueil $dispBlog = false; $getKernelLimitsIdBlog = Kernel::getKernelLimits('id_blog'); if ($getKernelLimitsIdBlog) { _classInclude('blog|kernelblog'); if ($blog = _ioDao('blog|blog')->getBlogById($getKernelLimitsIdBlog)) { // On v�rifie qu'il y a au moins un article $stats = KernelBlog::getStats($blog->id_blog); if ($stats['nbArticles']['value'] > 0) { $dispBlog = true; } } } if ($dispBlog) { //return CopixActionGroup::process ('blog|frontblog::getListArticle', array ('blog'=>$blog->url_blog)); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('blog||', array('blog' => $blog->url_blog))); } if (!CopixConfig::exists('|can_public_rssfeed') || CopixConfig::get('|can_public_rssfeed')) { CopixHtmlHeader::addOthers('<link rel="alternate" href="' . CopixUrl::get('public||rss', array()) . '" type="application/rss+xml" title="' . htmlentities(CopixI18N::get('public|public.rss.flux.title')) . '" />'); } CopixHTMLHeader::addCSSLink(_resource("styles/module_fichesecoles.css")); $tplModule->assign('user', _currentUser()); $result = $tplModule->fetch('welcome|welcome_' . CopixI18N::getLang() . '.tpl'); $tpl->assign('TITLE_PAGE', '' . CopixI18N::get('public|public.welcome.title')); $tpl->assign('MAIN', $result); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); } }
public function processDefault() { _classInclude('sysutils|admin'); if (!Admin::canAdmin()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get())); } echo "Récupération des classeurs de classe sans casier\n"; echo "----------------------------------------------------------------------\n\n"; // Récupération des classeurs de classe sans casier $sql = 'SELECT DISTINCT module_classeur.id' . ' FROM kernel_mod_enabled, module_classeur' . ' LEFT JOIN module_classeur_dossier ON (module_classeur_dossier.module_classeur_id = module_classeur.id)' . ' WHERE module_classeur.id = kernel_mod_enabled.module_id' . ' AND kernel_mod_enabled.module_type = "MOD_CLASSEUR"' . ' AND kernel_mod_enabled.node_type = "BU_CLASSE"' . ' AND (module_classeur_dossier.id IS NULL' . ' OR module_classeur_dossier.id NOT IN (SELECT id FROM module_classeur_dossier WHERE casier = 1 AND module_classeur_id = module_classeur.id))'; $results = _doQuery($sql); $dossierDAO = _ioDAO('classeur|classeurdossier'); _classInclude('classeur|classeurService'); echo count($results) . " casiers à créer.\n"; foreach ($results as $result) { $casier = _record('classeur|classeurdossier'); $casier->classeur_id = $result->id; $casier->parent_id = 0; $casier->nom = CopixI18N::get('classeur|classeur.casierNom'); $casier->nb_dossiers = 0; $casier->nb_fichiers = 0; $casier->taille = 0; $casier->cle = classeurService::createKey(); $casier->casier = 1; $casier->date_creation = date('Y-m-d H:i:s'); $dossierDAO->insert($casier); echo "Casier du classeur {$result->id} créé avec succès !\n"; } echo "\n\nFin de la tâche"; return _arNone(); }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->dossierId = $this->getParam('dossierId', null); $ppo->dossierCourant = $this->getParam('dossierCourant'); // Paramètres pour la vue popup $ppo->field = $this->getParam('field'); $ppo->format = $this->getParam('format'); $ppo->withPersonal = $this->getParam('withPersonal', true); $ppo->moduleType = $this->getParam('moduleType', null); $ppo->moduleId = $this->getParam('moduleId', null); $ppo->estAdmin = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId) >= PROFILE_CCV_PUBLISH; $ppo->withLockers = $ppo->estAdmin || is_null($ppo->dossierId); // Récupération des dossiers $dossierDAO = _ioDAO('classeur|classeurdossier'); $ppo->dossiers = $dossierDAO->getEnfantsDirects($ppo->classeurId, $ppo->dossierId, $ppo->withLockers); _classInclude('classeurservice'); $ppo->dossiersOuverts = ClasseurService::getFoldersTreeState(); if (!is_array($ppo->dossiersOuverts)) { $ppo->dossiersOuverts = array(); } $toReturn = $this->_usePPO($ppo, '_arborescence_dossiers.tpl'); }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); _classInclude('classeur|ClasseurService'); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->dossierId = $this->getParam('dossierId'); // Gestion des droits $ppo->niveauUtilisateur = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId); $ppo->typeUtilisateur = _currentUser()->getExtra('type'); $ppo->idUtilisateur = _currentUser()->getExtra('id'); // Récupération des paramètres d'affichages $ppo->tri = ClasseurService::getContentSort(); // Récupération des dossiers & des fichiers / favoris $dossierDAO = _ioDAO('classeur|classeurdossier'); if ($ppo->dossier = $dossierDAO->get($ppo->dossierId)) { if ($ppo->dossier->parent_id != 0) { $ppo->dossierParent = $dossierDAO->get($ppo->dossier->parent_id); } else { $classeurDAO = _ioDAO('classeur|classeur'); $ppo->classeurParent = $classeurDAO->get($ppo->classeurId); $ppo->classeurParent->isPersonnel = ClasseurService::getClasseurPersonnelId() == $ppo->classeurParent->id; } } if (!$ppo->dossier->casier || $ppo->niveauUtilisateur >= PROFILE_CCV_MODERATE) { $ppo->contenus = $dossierDAO->getContenus($ppo->classeurId, $ppo->dossierId, $ppo->tri); foreach ($ppo->contenus as $contenu) { if ($ppo->dossier->casier) { $user = Kernel::getUserInfo($contenu->user_type, $contenu->user_id); $contenu->user = $user['prenom'] . ' ' . $user['nom']; } } } $toReturn = $this->_usePPO($ppo, '_vue_liste.tpl'); }
public function testFileInclude() { $array = _classInclude('copixtest|'); $array2 = array('cachetestadaptator', 'fooclass', 'fooconstructedclass', 'testuserhandler', 'validatorconstructnointerface', 'validatormod', 'validatormod2', 'validatornointerface'); sort($array); sort($array2); $this->assertEquals($array, $array2); }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->dossierCourant = $this->getParam('dossierCourant'); // Paramètres pour la vue popup $ppo->field = $this->getParam('field'); $ppo->format = $this->getParam('format'); $ppo->withPersonal = _sessionGet('user_animateur') ? false : $this->getParam('withPersonal', true); $ppo->moduleType = $this->getParam('moduleType', null); $ppo->moduleId = $this->getParam('moduleId', null); // Récupération des classeurs accessibles à l'utilisateur $classeurIds = array(); // Récupération de ses ressources (obligatoire pour récupérer le classeur personnel) $nodes = Kernel::getMyNodes(_currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($nodes as $node) { $modules = Kernel::getModEnabled($node->type, $node->id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($modules as $module) { if ($module->module_type == 'MOD_CLASSEUR' && Kernel::getLevel('MOD_CLASSEUR', $module->module_id) >= PROFILE_CCV_READ) { // Le module correspond-il au classeur personnel if ($ppo->withPersonal && strpos($module->node_type, 'USER_') !== false && ($module->node_type == _currentUser()->getExtra('type') && $module->node_id == _currentUser()->getExtra('id'))) { $ppo->classeurPersonnel = $module->module_id; $classeurIds[] = $module->module_id; } elseif (null === $ppo->moduleType) { $classeurIds[] = $module->module_id; } } } } // Récupération des ressources if (null !== $ppo->moduleType) { $node = Kernel::getModParentInfo($ppo->moduleType, $ppo->moduleId); $modules = Kernel::getModEnabled($node['type'], $node['id'], _currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($modules as $module) { if ($module->module_type == 'MOD_CLASSEUR' && Kernel::getLevel('MOD_CLASSEUR', $module->module_id) >= PROFILE_CCV_READ) { $classeurIds[] = $module->module_id; } } } // Dédoublonnage des classeurs (responsables avec plusieurs enfants) $classeurIds = array_unique($classeurIds); $ppo->classeurs = array(); $classeurDAO = _dao("classeur|classeur"); foreach ($classeurIds as $classeurId) { $classeur = $classeurDAO->get($classeurId); $classeur->titre = $classeur->realName(); $ppo->classeurs[] = $classeur; } _classInclude('classeurservice'); $ppo->classeursOuverts = ClasseurService::getClasseursTreeState(); if (!is_array($ppo->classeursOuverts)) { $ppo->classeursOuverts = array(); } $this->flash->addCycle(); $toReturn = $this->_usePPO($ppo, '_arborescence_classeurs.tpl'); }
/** * Gestion du type module * * @param string $pString la chaine à tester * @param CopixUser $pUser l'utilisateur dont on teste les droits */ private function _module($pString, $pUser) { foreach ($pUser->getGroups() as $handler => $arGroupForHandler) { foreach ($arGroupForHandler as $id => $groupCaption) { _classInclude('auth|dbdynamicgrouphandler'); $handlerCredential = new dbDynamicGroupHandler($handler, $id); if ($handlerCredential->isOk($pString)) { return true; } } } return false; }
/** * Ecran d'accueil des opérations d'administration * */ public function processDefault() { //Inclusion de la classe checker pour tester les pré-requis _classInclude('InstallChecker'); $checker = new InstallChecker(); $ppo = new CopixPPO(); $ppo->TITLE_PAGE = _i18n('install.title.admin'); $tips = $this->_getTips(); $ppo->tips = $tips->tips; $ppo->warning = $tips->warning; $ppo->homePageUrl = CopixConfig::get('|homePage'); $ppo->pdomysqlEnabled = $checker->typeDbInstalled('pdo_mysql'); if (!$ppo->pdomysqlEnabled) { $ppo->tips[] = _i18n('install.tips.pdomysql'); } $ppo->phpunitEnabled = @(include_once 'PHPUnit/Framework.php'); if (!$ppo->phpunitEnabled) { $ppo->tips[] = _i18n('install.tips.unittest'); } $ppo->databaseEnabled = $checker->isValidDefaultDatabase(); if (!$ppo->databaseEnabled) { $ppo->tips[] = _i18n('install.tips.database'); } if (!_currentUser()->testCredential('basic:admin')) { $ppo->tips = array(); } // recherche des liens $ppo->links = array(); foreach (CopixModule::getList() as $moduleName) { $moduleInformations = CopixModule::getInformations($moduleName); // si on a au moins un lien if (count($moduleInformations->admin_links) > 0) { $groupid = !is_null($moduleInformations->admin_links_group->id) ? $moduleInformations->admin_links_group->id : uniqid(); foreach ($moduleInformations->admin_links as $linkInformations) { if ($linkInformations['credentials'] == null || CopixAuth::getCurrentUser()->testCredential($linkInformations['credentials'])) { $ppo->links[$groupid]['modules'][][$linkInformations['url']] = $linkInformations['caption']; $ppo->links[$groupid]['caption'] = $moduleInformations->description; $ppo->links[$groupid]['groupcaption'] = $moduleInformations->admin_links_group->caption; $ppo->links[$groupid]['icon'] = !is_null($moduleInformations->admin_links_group->icon) ? $moduleInformations->admin_links_group->icon : $moduleInformations->icon; } } } } return _arPPO($ppo, 'admin.tpl'); }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); _classInclude('classeur|ClasseurService'); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->dossierId = $this->getParam('dossierId'); // Gestion des droits $ppo->niveauUtilisateur = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId); $ppo->typeUtilisateur = _currentUser()->getExtra('type'); $ppo->idUtilisateur = _currentUser()->getExtra('id'); // Récupération des paramètres d'affichages $ppo->tri = ClasseurService::getContentSort(); // Récupération des dossiers & des fichiers / favoris $fichierDAO = _ioDAO('classeur|classeurfichier'); $dossierDAO = _ioDAO('classeur|classeurdossier'); if ($ppo->dossier = $dossierDAO->get($ppo->dossierId)) { if ($ppo->dossier->parent_id != 0) { $ppo->dossierParent = $dossierDAO->get($ppo->dossier->parent_id); } else { $classeurDAO = _ioDAO('classeur|classeur'); $ppo->classeurParent = $classeurDAO->get($ppo->classeurId); $ppo->classeurParent->isPersonnel = ClasseurService::getClasseurPersonnelId() == $ppo->classeurParent->id; } } if (!$ppo->dossier->casier || $ppo->niveauUtilisateur >= PROFILE_CCV_MODERATE) { $imgTypes = array('PNG', 'GIF', 'JPG', 'JPEG', 'png', 'gif', 'jpg', 'jpeg'); $ppo->contenus = $dossierDAO->getContenus($ppo->classeurId, $ppo->dossierId, $ppo->tri); foreach ($ppo->contenus as $contenu) { if ($contenu->content_type == 'fichier' && in_array($contenu->type, $imgTypes)) { $fichier = $fichierDAO->get($contenu->id); $contenu->lienMiniature = $fichier->getLienMiniature(90); } if ($ppo->dossier->casier) { $user = Kernel::getUserInfo($contenu->user_type, $contenu->user_id); $contenu->user = $user['prenom'] . ' ' . $user['nom']; } } $ppo->fileExtensionAllowed = array('ai', 'avi', 'bmp', 'css', 'csv', 'doc', 'docx', 'eps', 'gif', 'html', 'ico', 'jpg', 'jpeg', 'js', 'json', 'mov', 'mp3', 'odp', 'ods', 'odt', 'pdf', 'png', 'ppt', 'pptx', 'psd', 'svg', 'swf', 'tiff', 'ttf', 'txt', 'wav', 'xls', 'xlsx', 'xml', 'zip'); } $toReturn = $this->_usePPO($ppo, '_vue_vignette.tpl'); }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->targetType = $this->getParam('targetType'); $ppo->targetId = $this->getParam('targetId'); $ppo->withMainLocker = $this->getParam('withMainLocker', true); $ppo->withSubLockers = $this->getParam('withSubLockers', Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId) >= PROFILE_CCV_PUBLISH ? true : false); // Récupération des classeurs accessibles à l'utilisateur pour les actions de masse (copie / déplacement) $classeurIds = array(); $nodes = Kernel::getMyNodes(_currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($nodes as $node) { $modules = Kernel::getModEnabled($node->type, $node->id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id')); foreach ($modules as $module) { if ($module->module_type == "MOD_CLASSEUR") { // Identification du classeur personnel de l'utilisateur if (strpos($module->node_type, 'USER_') !== false && ($module->node_type == _currentUser()->getExtra('type') && $module->node_id == _currentUser()->getExtra('id'))) { $ppo->classeurPersonnel = $module->module_id; $classeurIds[] = $module->module_id; } elseif (strpos($module->node_type, 'USER_') == false && Kernel::getLevel('MOD_CLASSEUR', $module->module_id) >= PROFILE_CCV_MEMBER) { $classeurIds[] = $module->module_id; } } } } // Dédoublonnage des classeurs (responsables avec plusieurs enfants) $classeurIds = array_unique($classeurIds); $ppo->classeurs = array(); $classeurDAO = _dao("classeur|classeur"); foreach ($classeurIds as $classeurId) { $classeur = $classeurDAO->get($classeurId); $ppo->classeurs[] = $classeur; } _classInclude('classeurservice'); $ppo->classeursOuverts = ClasseurService::getClasseursTreeState(); if (!is_array($ppo->classeursOuverts)) { $ppo->classeursOuverts = array(); } $toReturn = $this->_usePPO($ppo, '_selection_classeurs.tpl'); }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->dossierId = $this->getParam('dossierId'); $ppo->targetType = $this->getParam('targetType'); $ppo->targetId = $this->getParam('targetId'); $ppo->alwaysOpen = $this->getParam('alwaysOpen'); $ppo->withLocker = $this->getParam('withLocker', true); $ppo->estAdmin = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId) >= PROFILE_CCV_PUBLISH; $ppo->withLockers = $ppo->estAdmin || is_null($ppo->dossierId); // Récupération des dossiers $dossierDAO = _ioDAO('classeur|classeurdossier'); $ppo->dossiers = $dossierDAO->getEnfantsDirects($ppo->classeurId, $ppo->dossierId, $ppo->withLockers); _classInclude('classeurservice'); $ppo->dossiersOuverts = ClasseurService::getFoldersTreeState(); if (!is_array($ppo->dossiersOuverts)) { $ppo->dossiersOuverts = array(); } $toReturn = $this->_usePPO($ppo, '_selection_dossiers.tpl'); }
public function _createContent(&$toReturn) { _classInclude('agenda|dateservices'); $ppo = new CopixPPO(); // Récupération des paramètres $ppo->cahierId = $this->getParam('cahierId'); $ppo->jour = $this->getParam('date_jour'); $ppo->mois = $this->getParam('date_mois'); $ppo->annee = $this->getParam('date_annee'); $ppo->eleve = $this->getParam('eleve'); $service = new DateService(); $ppo->nomMois = $service->moisNumericToMoisLitteral($ppo->mois); // Timestamp du 1er du mois sélectionné $time = mktime(0, 0, 0, $ppo->mois, 1, $ppo->annee); // Récupération du timestamp du mois suivant & précédent $ppo->moisPrecedent = strtotime("-1 month", $time); $ppo->moisSuivant = strtotime("+1 month", $time); $ppo->nombreDeJoursDansLeMois = date('t', $time); // Nombre de jours dans le mois $ppo->codePremierJourDeLaSemaine = date('w', $time); // Premier jour de la semaine (format numérique) if ($ppo->codePremierJourDeLaSemaine == 0) { $ppo->codePremierJourDeLaSemaine = 7; } $ppo->codePremierJourSemaine = 1; // Récupération des travaux suivant les accès de l'utilisateur courant (élève / responsable / enseignant) $cahierInfos = Kernel::getModParent('MOD_CAHIERDETEXTES', $ppo->cahierId); $nodeId = isset($cahierInfos[0]) ? $cahierInfos[0]->node_id : null; $ppo->estAdmin = Kernel::getLevel('MOD_CAHIERDETEXTES', $ppo->cahierId) >= PROFILE_CCV_PUBLISH ? true : false; $travailDAO = _ioDAO('cahierdetextes|cahierdetextestravail'); if ($ppo->estAdmin) { $ppo->travaux = $travailDAO->findByClasseEtMoisParJour($nodeId, $ppo->mois, $ppo->annee); } elseif (Kernel::getLevel('MOD_CAHIERDETEXTES', $ppo->cahierId) == PROFILE_CCV_READ) { $ppo->travaux = $travailDAO->findByEleveEtMoisParJour($ppo->eleve, $ppo->mois, $ppo->annee); } else { $ppo->travaux = $travailDAO->findByEleveEtMoisParJour(_currentUser()->getExtra('id'), $ppo->mois, $ppo->annee); } $toReturn = $this->_usePPO($ppo, '_calendrier.ptpl'); }
<?php /** * @package Iconito * @subpackage Blog * @version $Id: listcomment.zone.php,v 1.5 2007-06-01 16:08:43 cbeyer Exp $ * @author Vallat Cédric. * @copyright 2001-2005 CopixTeam * @link http://copix.org * @licence http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file */ /** * Administration pannel * @param id_head // the current copixheading indice can be null if racine */ _classInclude('blog|blogauth'); class ZoneListComment extends CopixZone { public function _createContent(&$toReturn) { //Getting the user. //Create Services, and DAO $tpl = new CopixTpl(); $id_blog = $this->getParam('id_blog', ''); $tpl->assign('resultats', $this->getParam('resultats', null)); $tpl->assign('id_bact', $this->getParam('id_bact', '')); $tpl->assign('id_blog', $id_blog); $tpl->assign('errors', $this->getParam('errors', null)); $tpl->assign('showErrors', $this->getParam('showErrors', false)); $tpl->assign('toEdit', $this->getParam('toEdit', false)); //capability
public function processDefault() { _classInclude('classeur|classeurService'); $classeurDAO = _ioDAO('classeur|classeur'); $dossierDAO = _ioDAO('classeur|classeurdossier'); $ppo->conf_ModClasseur_upload = CopixConfig::exists('default|conf_ModClasseur_upload') ? CopixConfig::get('default|conf_ModClasseur_upload') : 0; if (is_null($ppo->classeur = $classeurDAO->get(_request('classeurId', null)))) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get('', array('error' => 'classeur_not_found')))); } if (!realpath('./upload')) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get('', array('error' => 'upload_folder_not_found')))); } if ($ppo->save->mode = _request('save-mode', null)) { switch ($ppo->save->mode) { case 'upload': $ppo->save->ok = true; $ppo->save->error = ''; $ppo->save->folder_input = _request('destination', 0); if (!preg_match('/dossier-(?P<folder>\\d+)/', $ppo->save->folder_input, $matches)) { $ppo->save->ok = false; $ppo->save->error = '-ERR destination'; break; } $ppo->save->folder_id = $matches['folder']; if ($ppo->classeur->upload_fs) { $dir = realpath('.') . '/upload/' . $ppo->classeur->upload_fs . '/'; if (is_dir($dir)) { $this->rrmdir($dir); } } $ppo->classeur->upload_db = $ppo->save->folder_id; $ppo->classeur->upload_fs = 'classeur-' . $ppo->classeur->id; if (!$ppo->classeur->upload_pw) { $ppo->classeur->upload_pw = substr(md5($ppo->classeur->id . $ppo->save->folder_id . $ppo->classeur->cle . date('YmdHis')), 0, 8); } $classeurDAO->update($ppo->classeur); // Création du répertoire $dir = realpath('.') . '/upload/' . $ppo->classeur->upload_fs . '/'; if (!file_exists($dir)) { mkdir($dir, 0755, true); $htaccess = fopen($dir . '.htaccess', 'w'); fwrite($htaccess, "<Limit GET HEAD OPTIONS POST>\n\trequire user " . $ppo->classeur->upload_fs . "\n</Limit>\n<Files .htaccess>\n\torder allow,deny\n\tdeny from all\n</Files>\n"); fclose($htaccess); } // Génération du fichier .htpasswd $htpasswd_file = realpath('.') . '/upload/.htpasswd'; $htpasswd_output = ''; $in = fopen($htpasswd_file, 'r'); $htpasswd_updated = false; if ($in) { while (preg_match("/:/", $line = fgets($in))) { $line = rtrim($line); $a = explode(':', $line); if ($a[0] != 'classeur-' . $ppo->classeur->id) { $htpasswd_output .= $line . "\n"; } } } $htpasswd_salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 2); $htpasswd_output .= $ppo->classeur->upload_fs . ":" . crypt($ppo->classeur->upload_pw, $htpasswd_salt) . "\n"; fclose($in); $out = fopen($htpasswd_file, 'w'); fwrite($out, $htpasswd_output); fclose($out); // Génération du fichier .htdigest $htpasswd_file = realpath('.') . '/upload/.htdigest'; $htpasswd_output = ''; $in = fopen($htpasswd_file, 'r'); $htpasswd_updated = false; if ($in) { while (preg_match("/:/", $line = fgets($in))) { $line = rtrim($line); $a = explode(':', $line); if ($a[0] != 'classeur-' . $ppo->classeur->id) { $htpasswd_output .= $line . "\n"; } } } $htpasswd_output .= $ppo->classeur->upload_fs . ":Classeur:" . md5($ppo->classeur->upload_fs . ":Classeur:" . $ppo->classeur->upload_pw) . "\n"; fclose($in); $out = fopen($htpasswd_file, 'w'); fwrite($out, $htpasswd_output); fclose($out); break; case 'upload-delete': $dir = realpath('.') . '/upload/' . $ppo->classeur->upload_fs . '/'; if (strlen($ppo->classeur->upload_fs) > 3 && is_dir($dir)) { $this->rrmdir($dir); } $ppo->classeur->upload_db = null; $ppo->classeur->upload_fs = null; $ppo->classeur->upload_pw = null; $classeurDAO->update($ppo->classeur); // Suppression de l'utilisateur dans le .htpasswd $htpasswd_file = realpath('.') . '/upload/.htpasswd'; $htpasswd_output = ''; $in = fopen($htpasswd_file, 'r'); $htpasswd_updated = false; if ($in) { while (preg_match("/:/", $line = fgets($in))) { $line = rtrim($line); $a = explode(':', $line); if ($a[0] != 'classeur-' . $ppo->classeur->id) { $htpasswd_output .= $line . "\n"; } } } fclose($in); $out = fopen($htpasswd_file, 'w'); fwrite($out, $htpasswd_output); fclose($out); // Suppression de l'utilisateur dans le .htdigest $htpasswd_file = realpath('.') . '/upload/.htdigest'; $htpasswd_output = ''; $in = fopen($htpasswd_file, 'r'); $htpasswd_updated = false; if ($in) { while (preg_match("/:/", $line = fgets($in))) { $line = rtrim($line); $a = explode(':', $line); if ($a[0] != 'classeur-' . $ppo->classeur->id) { $htpasswd_output .= $line . "\n"; } } } fclose($in); $out = fopen($htpasswd_file, 'w'); fwrite($out, $htpasswd_output); fclose($out); break; default: break; } $ppo->classeur = $classeurDAO->get($ppo->classeur->id); $classeurs2htaccess_list = $classeurDAO->findBy(_daoSp()->addCondition('upload_fs', '!=', null)); $classeurs2htaccess_string = ''; /* $classeurs2htaccess_string .= "<Directory ".realpath('./upload').">\n"; $classeurs2htaccess_string .= "\t<Limit GET HEAD OPTIONS POST>\n"; $classeurs2htaccess_string .= "\t\trequire user admin\n"; $classeurs2htaccess_string .= "\t</Limit>\n"; $classeurs2htaccess_string .= "</Directory>\n"; if($classeurs2htaccess_list) foreach( $classeurs2htaccess_list AS $classeurs2htaccess_item ) { $classeurs2htaccess_string .= "<Directory ".realpath('./upload/'.$classeurs2htaccess_item->upload_fs).">\n"; $classeurs2htaccess_string .= "\t<Limit GET HEAD OPTIONS POST>\n"; $classeurs2htaccess_string .= "\t\trequire user ".$classeurs2htaccess_item->upload_fs."\n"; $classeurs2htaccess_string .= "\t</Limit>\n"; $classeurs2htaccess_string .= "</Directory>\n"; } $htaccess_file = realpath('.').'/upload/.htaccess'; $out = fopen( $htaccess_file, 'w' ); fwrite( $out, $classeurs2htaccess_string ); fclose( $out ); */ } $ppo->classeur->upload_url = CopixUrl::get() . "upload/" . $ppo->classeur->upload_fs . "/"; if ($ppo->classeur->upload_db) { $ppo->classeur->folder_infos = $dossierDAO->get($ppo->classeur->upload_db); } else { $ppo->classeur->folder_infos = NULL; } $ppo->niveauUtilisateur = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeur->id); return _arPPO($ppo, 'options_default.tpl'); }
<?php _classInclude('blog|blogutils'); /** * Actiongroup du module Annuaire * * @package Iconito * @subpackage Annuaire */ class ActionGroupAnnuaire extends EnicActionGroup { public function beforeAction() { _currentUser()->assertCredential('group:[current_user]'); } /** * Redirection vers un annuaire. On peut demander à afficher un annuaire de ville ($id vaut alors "VILLE_XX"), d'école ("ECOLE_XX") ou de classe ("CLASSE_XX") * * @author Christophe Beyer <*****@*****.**> * @since 2006/01/17 * @param string $id Annuaire demandé */ public function go() { if (!Kernel::is_connected()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('annuaire|annuaire.error.noLogged'), 'back' => CopixUrl::get('||'))); } $classe = $ecole = $ville = null; if (_request("id")) { if (ereg('CLASSE_([0-9]+)', _request("id"), $regs)) { $classe = $regs[1];
public function extractDateTime($data, $property, $field) { global $tz_array; // die(COPIX_MODULE_PATH.'agenda/'.COPIX_CLASSES_DIR.'timezones.php'); // include_once (COPIX_MODULE_PATH.'agenda/'.COPIX_CLASSES_DIR.'timezones.php'); _classInclude('agenda|timezones'); // Initialize values. unset($unixtime, $date, $time, $allday); $allday = ''; #suppress error on returning undef. // Check for zulu time. $zulu_time = false; if (substr($data, -1) == 'Z') { $zulu_time = true; } $data = str_replace('Z', '', $data); // Remove some substrings we don't want to look at. $data = str_replace('T', '', $data); $field = str_replace(';VALUE=DATE-TIME', '', $field); // Extract date-only values. if (preg_match('/^' . $property . ';VALUE=DATE/i', $field) || ereg('^([0-9]{4})([0-9]{2})([0-9]{2})$', $data)) { // Pull out the date value. Minimum year is 1970. ereg('([0-9]{4})([0-9]{2})([0-9]{2})', $data, $dt_check); if ($dt_check[1] < 1970) { $data = '1971' . $dt_check[2] . $dt_check[3]; } // Set the values. $unixtime = strtotime($data); $date = date('Ymd', $unixtime); $allday = $data; } else { // Pull out the timezone, or use GMT if zulu time was indicated. if (preg_match('/^' . $property . ';TZID=/i', $field)) { $tz_tmp = explode('=', $field); $tz_dt = $tz_tmp[1]; unset($tz_tmp); } elseif ($zulu_time) { $tz_dt = 'GMT'; } // Pull out the date and time values. Minimum year is 1970. preg_match('/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{0,2})([0-9]{0,2})/', $data, $regs); if ($regs[1] < 1970) { $regs[1] = '1971'; } $date = $regs[1] . $regs[2] . $regs[3]; $time = $regs[4] . $regs[5]; $unixtime = mktime($regs[4], $regs[5], 0, $regs[2], $regs[3], $regs[1]); // Check for daylight savings time. $dlst = date('I', $unixtime); $server_offset_tmp = $this->chooseOffset($unixtime); if (isset($tz_dt)) { if (array_key_exists($tz_dt, (array) $tz_array)) { $offset_tmp = $tz_array[$tz_dt][$dlst]; } else { $offset_tmp = '+0000'; } } elseif (isset($calendar_tz)) { if (array_key_exists($calendar_tz, $tz_array)) { $offset_tmp = $tz_array[$calendar_tz][$dlst]; } else { $offset_tmp = '+0000'; } } else { $offset_tmp = $server_offset_tmp; } // Set the values. $unixtime = $this->calcTime($offset_tmp, $server_offset_tmp, $unixtime); $date = date('Ymd', $unixtime); $time = date('Hi', $unixtime); } // Return the results. return array($unixtime, $date, $time, $allday); }
<?php /** * Fiche d'une teleprocedure * * @package Iconito * @subpackage Teleprocedures */ _classInclude('annuaire|annuaireservice'); _classInclude('teleprocedures|teleproceduresservice'); class ZoneFiche extends CopixZone { /** * Detail d'une procedure * * @author Christophe Beyer <*****@*****.**> * @since 2008/01/30 * @param object $rFiche Recordset de la procedure */ public function _createContent(&$toReturn) { $tpl = new CopixTpl(); $rFiche = $this->getParam('rFiche'); $errors = $this->getParam('errors'); $ok = $this->getParam('ok'); $print = $this->getParam('print'); //var_dump($rFiche); //$daoType = & _dao ('type'); //$tpl->assign ('arTypes', $daoType->findAll ()); $arResponsables = preg_split('/[\\s,]+/', $rFiche->responsables); $rFiche->tabResponsables = $arResponsables;
<?php /** * @package Iconito * @subpackage Agenda * @author Audrey Vassal * @copyright 2001-2005 CopixTeam * @link http://copix.org * @licence http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file */ _classInclude('agenda|dateservices'); class ExportService { /** * Fonction qui retourne un fichier texte contenant les évènements exportés d'après une période et les agendas concernés * @author Audrey Vassal <*****@*****.**> * @since 2006/08/17 * @param array $pArEvents tableau d'évènements à exporter, classés par ordre croissant de début * @return string $content chaine de caractère représentant le contenu du fichier iCal exporté */ public function getFileICal($pArEvents) { $serviceDate = new DateService(); $content = 'BEGIN:VCALENDAR' . "\n"; $content .= 'VERSION:2.0' . "\n"; $content .= 'X-WR-TIMEZONE;VALUE=TEXT:' . CopixConfig::get('agenda|timeZone') . "\n"; $content .= 'METHOD:PUBLISH' . "\n"; foreach ((array) $pArEvents as $jour => $day) { if (!isset($day->events)) { continue; }
/** * 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 doImport() { $serviceAuth = new AgendaAuth(); //demande de mettre l'objet à jour en fonction des valeurs saisies dans le formulaire if (!($importParams = $this->_getSessionImport())) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.cannotFindSession'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine'))); } $this->_validFromFormImportParams($importParams); //on vérifie les droits if ($serviceAuth->getCapability($importParams['id_agenda']) < $serviceAuth->getModerate()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.enableToWrite'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine'))); } $errors = $this->_checkImport(); if (count($errors) > 0) { $this->_setSessionImport($importParams); return CopixActionGroup::process('agenda|ImportExport::getPrepareImport', array('e' => 1, 'errors' => $errors)); } else { if (is_uploaded_file($_FILES['import_ordi']['tmp_name'])) { move_uploaded_file($_FILES['import_ordi']['tmp_name'], CopixConfig::get('agenda|tempfiles') . 'import.ics'); $file = CopixConfig::get('agenda|tempfiles') . 'import.ics'; } else { if (_request('import_internet') != null) { $filename = _request('import_internet'); $handle = fopen($filename, "rb"); $contents = ''; while (!feof($handle)) { $contents .= fread($handle, 8192); } $handleToWrite = fopen(CopixConfig::get('agenda|tempfiles') . 'import.ics', 'w+'); fwrite($handleToWrite, $contents); $file = CopixConfig::get('agenda|tempfiles') . 'import.ics'; } else { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.cannotDownloadFile'), 'back' => CopixUrl::get('agenda|importexport|prepareImport'))); } } _classInclude('agenda|importServices'); $nbInsertions = ImportServices::import($file, $importParams['id_agenda'], $importParams['option'] == 1 ? false : true); } //on efface le fichier temporaire créé pour faire l'import unlink(CopixConfig::get('agenda|tempfiles') . 'import.ics'); //on vide la session //$this->_setSessionImport(null); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('agenda|importexport|afterImport', array('nbInsertions' => $nbInsertions))); }
/** * Téléchargement d'une pièce jointe dans un classeur * * @author Christophe Beyer <*****@*****.**> * @since 2012/06/21 * @param integer $id Id du minimail de départ */ public function attachmentToClasseur() { //_dump($_POST); $this->addJs('js/iconito/module_classeur.js'); $this->addJs('js/iconito/module_minimail.js'); $this->addCss('styles/module_classeur.css'); _classInclude('classeur|classeurService'); _classInclude('kernel|Request'); $idUser = _currentUser()->getId(); $idMessage = _request("id"); $files = _request('files', array()); $destination = _request('destination'); $errors = array(); $daoFrom = _ioDAO("minimail|minimail_from"); $daoTo = CopixDAOFactory::create("minimail_to"); $message = $daoFrom->getMessage($idMessage); $canMake = $isRecv = $isSend = false; if ($message && $message->from_id == $idUser) { // Message qu'il a envoyé $canMake = $isSend = true; } else { // Il en est peut-être destinataire $canMake = $isRecv = $daoTo->selectDestFromIdAndToUser($idMessage, $idUser); // Test s'il est dans les destin } if (!$canMake) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('minimail.error.cantDisplay'), 'back' => CopixUrl::get('minimail||'))); } $menu = array(); $menu[] = array('txt' => CopixI18N::get('minimail.mess_recv'), 'url' => CopixUrl::get('minimail||getListRecv'), 'current' => $isRecv); $menu[] = array('txt' => CopixI18N::get('minimail.mess_send'), 'url' => CopixUrl::get('minimail||getListSend'), 'current' => $isSend); $menu[] = array('txt' => CopixI18N::get('minimail.mess_write'), 'url' => CopixUrl::get('minimail||getNewForm')); $ppo = new CopixPPO(); $ppo->TITLE_PAGE = $message; $ppo->MENU = $menu; $ppo->message = $message; //_dump(Request::isXmlHttpRequest()); if (Request::isPostMethod()) { $error = $success = array(); if (!$files) { $error[] = CopixI18N::get('minimail.attachmentToClasseur.error.noFiles'); } if ($destination) { list($ppo->destinationType, $ppo->destinationId) = explode('-', $destination); if ('classeur' == $ppo->destinationType) { $rClasseur = _ioDAO('classeur|classeur')->get($ppo->destinationId); } if ('dossier' == $ppo->destinationType) { if ($rDossier = _ioDAO('classeur|classeurdossier')->get($ppo->destinationId)) { $rClasseur = _ioDAO('classeur|classeur')->get($rDossier->classeur_id); } } } if (!$destination || !$rClasseur) { $error[] = CopixI18N::get('classeur|classeur.error.noDestination'); } if ($error) { $ppo->error = $error; return _arPPO($ppo, array('template' => 'attachmentToClasseur.tpl', 'mainTemplate' => 'main|main_popup.php')); } //_dump($destination); //_dump($rClasseur); $dir = realpath('./static/classeur') . '/' . $rClasseur->id . '-' . $rClasseur->cle . '/'; if (!file_exists($dir)) { mkdir($dir, 0755, true); } foreach ($files as $file) { $fichierPhysique = realpath("../var/data") . "/minimail/" . $file; $nomFichierPhysique = $file; $fichier = _record('classeur|classeurfichier'); $fichier->classeur_id = $rClasseur->id; $fichier->dossier_id = isset($rDossier) && $rDossier ? $rDossier->id : 0; $fichier->titre = MinimailService::getAttachmentName($file); $fichier->fichier = $nomFichierPhysique; $fichier->taille = filesize($fichierPhysique); $fichier->type = strtoupper(substr(strrchr($nomFichierPhysique, '.'), 1)); $fichier->cle = classeurService::createKey(); $fichier->date_upload = date('Y-m-d H:i:s'); $fichier->user_type = _currentUser()->getExtra('type'); $fichier->user_id = _currentUser()->getExtra('id'); _ioDAO('classeur|classeurfichier')->insert($fichier); if ($fichier->id > 0) { $nomClasseur = $rClasseur->id . '-' . $rClasseur->cle; $nomFichier = $fichier->id . '-' . $fichier->cle; $extension = strtolower(strrchr($nomFichierPhysique, '.')); if (copy($fichierPhysique, $dir . $fichier->id . '-' . $fichier->cle . $extension)) { $success[] = MinimailService::getAttachmentName($file); } else { $error[] = CopixI18N::get('minimail.attachmentToClasseur.error.moved', array(MinimailService::getAttachmentName($file))); } } else { $error[] = CopixI18N::get('minimail.attachmentToClasseur.error.creation', array(MinimailService::getAttachmentName($file))); } } if (count($success) > 0) { $dest = $rClasseur; if (isset($rDossier) && $rDossier) { $dest .= ' / ' . $rDossier; } if (1 == count($success)) { Kernel::setFlashMessage('success', CopixI18N::get('minimail.attachmentToClasseur.moved_1', array(implode(', ', $success), $dest))); } else { Kernel::setFlashMessage('success', CopixI18N::get('minimail.attachmentToClasseur.moved_N', array(implode(', ', $success), $dest))); } } if ($error) { Kernel::setFlashMessage('error', implode('<br />', $error)); } $ppo->ok = 1; //echo 'OK'; //return _arNone(); //return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('minimail||getMessage', array('id' => $idMessage))); } return _arPPO($ppo, array('template' => 'attachmentToClasseur.tpl', 'mainTemplate' => 'main|main_popup.php')); }
public function getStatsRoot() { _classInclude('systutils|StatsServices'); $res = array(); /* * Nombre de classeurs */ $sql = ' SELECT COUNT(id) AS nb FROM module_classeur'; $a = _doQuery($sql); $res['nbClasseurs'] = array('name' => CopixI18N::get('classeur|classeur.stats.nbClasseurs', array($a[0]->nb))); /* * Nombre de dossiers */ $sql = ' SELECT COUNT(id) AS nb FROM module_classeur_dossier'; $a = _doQuery($sql); $res['nbDossiers'] = array('name' => CopixI18N::get('classeur|classeur.stats.nbDossiers', array($a[0]->nb))); /* * Nombre de documents */ $sql = ' SELECT COUNT(id) AS nb FROM module_classeur_fichier'; $a = _doQuery($sql); $res['nbFichiers'] = array('name' => CopixI18N::get('classeur|classeur.stats.nbFichiers', array($a[0]->nb))); $sql = ' SELECT SUM(taille) AS taille FROM module_classeur_fichier'; $a = _doQuery($sql); $res['size'] = array('name' => CopixI18N::get('classeur|classeur.stats.size', array(StatsServices::human_file_size($a[0]->taille)))); return $res; }
/** * Les limites de l'utilisateur, basees sur l'URL, sur un champ particulier ou toutes les infos * * @author Christophe Beyer <*****@*****.**> * @since 2009/09/24 * @param $pField string (option) Si on veut un champ particulier. Si null, on renvoit tous les champs * @return mixed Si pField=null, tout le recordset, sinon la valeur du champ (ou null si vide) */ public function getKernelLimits($pField = null) { _classInclude('welcome|welcome'); $null = _dao("kernel|kernel_limits_urls"); $cache_type = 'kernel_limits_urls'; $cache_id = CopixUrl::get(); if (0 && CopixCache::exists($cache_id, $cache_type)) { $node = CopixCache::read($cache_id, $cache_type); } else { $node = Welcome::findNodeByUrl($cache_id); if ($node != null) { if ($node->ville) { $node->ville_as_array = explode(',', $node->ville); } else { $node->ville_as_array = array(); } } //var_dump($node); CopixCache::write($cache_id, $node, $cache_type); } //var_dump($node); if ($pField && $node != null && $node->{$pField}) { $return = $node->{$pField}; } elseif ($pField) { $return = null; } else { $return = $node; } return $return; }
/** * Fonction qui insère en base de données les évènements du fichier iCal * * @param file $iCalFile Fichier iCalendar contenant des événements à importer * @param int $agendaId Identifiant de l'agenda dans lequel doivent être insérés les évènements * @param bool $withPurge Purge le calendrier de l'agenda sur la période concernée * * @return int Nombre d'insertions effectuées */ public static function import($iCalFile, $agendaId, $withPurge = false) { $ical = new SG_iCal($iCalFile); $events = $ical->getEvents(); $eventsCounter = 0; if (is_array($events) && !empty($events)) { // Récupération de la première et dernière date du calendrier importé foreach ($events as $event) { if (!isset($startDate) && !isset($endDate)) { $startDate = $event->getStart(); $endDate = $event->getEnd(); } $startDate = min($event->getStart(), $startDate); $endDate = max($event->getEnd(), $endDate); } // Si purge de l'agenda demandé... if ($withPurge) { try { _classInclude('agenda|AgendaService'); AgendaService::purgeAgendaByDateInterval($agendaId, date('Ymd', $startDate), date('Ymd', $endDate), date('H:i', $startDate), date('H:i', $endDate)); } catch (Exception $e) { throw new Exception('Error during agenda purge.'); } } $eventDAO = _ioDAO('event'); foreach ($events as $event) { // Recherche si l'événement existe déjà en base $criteres = _daoSp(); $criteres->addCondition('id_agenda', '=', $agendaId); $criteres->addCondition('title_event', '=', $event->getSummary()); $criteres->addCondition('datedeb_event', '=', date('Ymd', $event->getStart())); $criteres->addCondition('datefin_event', '=', date('Ymd', $event->getEnd())); if ($event->isWholeDay()) { $criteres->addCondition('alldaylong_event', '=', 1); } else { $criteres->addCondition('heuredeb_event', '=', date('H:i', $event->getStart())); } $resultat = $eventDAO->findBy($criteres); // Si l'évenement n'est pas présent en base on le sauvegarde tel qu'elle if (count($resultat) < 1) { $record = self::createEvent($agendaId, $event); $eventDAO->insert($record); $eventsCounter++; } else { // Sinon, on applique un traitement spécifique aux événements récurrents if ($event->getProperty('recurrence')) { $findSame = false; // On cherche la date de fin de récurrence if ($event->getProperty('freq')) { $endRepeatdateEvent = date('Ymd', $event->getProperty('freq')->lastOccurrence()); } else { $endRepeatdateEvent = 99999999; } // Si dans les résultat, une date de fin de récurrence est trouvé, alors l'évenements est déjà en base foreach ($resultat as $eventSame) { if ($eventSame->endrepeatdate_event == $endRepeatdateEvent || $eventSame->endrepeatdate_event == date('Ymd', $endDate)) { $findSame = true; } } // Sinon, il a pus être purger, on vérifie donc si sa date de fin de récurrence est égale à la date de début de purge if ($resultat[0]->endrepeatdate_event == date('Ymd', $startDate) && !$findSame) { $record = self::createEvent($agendaId, $event); // Dans se cas, la récurrence prendra fin à la date de fin de purge, car un nouvel événement est entré en base pour la suite $record->endrepeatdate_event = date('Ymd', $endDate); $eventDAO->insert($record); } } } } } return $eventsCounter; }
<?php _classInclude('minimail|MinimailService'); class DAOMinimail_from { } class DAORecordMinimail_from { /** * __toString * * @author Christophe Beyer <*****@*****.**> * @since 2012/06/22 * @return string */ public function __toString() { return $this->title; } /** * Retourne le nombre de pièces jointes d'un message * * @author Christophe Beyer <*****@*****.**> * @since 2012/06/22 * @return integer Nombre de PJ */ public function getNbAttachments() { $return = 0; $return += $this->attachment1 ? 1 : 0; $return += $this->attachment2 ? 1 : 0;
<?php /** * Admin - Classes * * @package Iconito * @subpackage Admin * @version $Id: cacheservices.class.php,v 1.3 2007-09-07 08:30:12 cbeyer Exp $ * @author Christophe Beyer <*****@*****.**> * @copyright 2006 CAP-TIC * @link http://www.cap-tic.fr */ _classInclude('sysutils|demo_tools'); class CacheServices { /** * Renvoie la taille occupée par le cache (dossier /temp/cache) * * @author Christophe Beyer <*****@*****.**> * @since 2006/12/05 * @return array Tableau avec la taille occupée par les dossiers (index: [folders]) */ public function getCacheSize() { $folder = COPIX_TEMP_PATH . 'cache'; $folders = Demo_Tools::dirSize($folder); return array('folders' => $folders); } /** * Vide le cache *
/** * Create a graph done by graphviz * @param _wikielement graph */ private function _treatGraphviz($code) { $code->data = preg_replace('/\\[graphviz(.*?)\\]/', "", $code->data); $code->data = preg_replace('/\\[\\/graphviz(.*?)\\]/', "", $code->data); //graphviz _classInclude('wikirender|GraphViz'); $type = $code->other; $code = $code->data; $converter = new GraphViz($code, $type); $img = $converter->render(); $map = $converter->getMap(); $mapname = $converter->getMapName(); //var_dump($converter); $code = $map; $code .= "\n" . '<img usemap="#' . $mapname . '" src="' . _url("wiki|file|getGraphViz", array("graph" => $img)) . "\" />\n"; return $code; }
/** * retourne le code html qui sera attaché au tpl * @return code html a passer au template */ protected function getChart($width = 400, $height = 250) { _classInclude('chart_swf|CopixSwfChart'); CopixSession::set("charts|datas|{$this->_cle}", CopixSwfChart::getChartData($this->_data)); $swf = _class('chart_swf|CopixSwfChart'); return $swf->getChart(_url("chart_swf||getChartsDatas", array("cle" => $this->_cle)), $width, $height); }
<?php /** * Admin - ActionGroup * * @package Iconito * @subpackage Admin * @version $Id: cache.actiongroup.php,v 1.3 2007-03-20 10:53:13 cbeyer Exp $ * @author Christophe Beyer <*****@*****.**> * @copyright 2006 CAP-TIC * @link http://www.cap-tic.fr */ _classInclude('sysutils|cacheservices'); _classInclude('sysutils|admin'); class ActionGroupCache extends CopixActionGroup { public function beforeAction() { _currentUser()->assertCredential('group:[current_user]'); } /** * Renvoie les infos sur le cache * * @author Christophe Beyer <*****@*****.**> * @since 2007/03/19 */ public function info() { if (!Admin::canAdmin()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get())); }
<?php /** * Fonctions relatives au kernel et au module Agenda * * @package Iconito * @subpackage Agenda */ _classInclude('agenda|agendatype'); class KernelAgenda { /** * Création d'un agenda * * @author Christophe Beyer <*****@*****.**> * @since 2006/08/24 * @param array $infos (option) informations permettant d'initialiser le blog. Index: title, node_type, node_id * @return integer l'Id de l'agenda créé ou NULL si erreur */ public function create($infos = array()) { $daoAgenda =& CopixDAOFactory::getInstanceOf('agenda|agenda'); $res = null; $agenda = _record('agenda|agenda'); if ($infos['title']) { $agenda->title_agenda = $infos['title']; } else { //$agenda->title_agenda = CopixI18N::get ('agenda|agenda.default.title'); $agenda->title_agenda = "Agenda"; } $agenda->desc_agenda = $agenda->title_agenda;