public function _createContent(&$toReturn) { $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->vue = $this->getParam('vue'); $ppo->eleve = $this->getParam('eleve'); $time = mktime(0, 0, 0, $ppo->mois, $ppo->jour, $ppo->annee); $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; // Récupération des travaux suivant les accès de l'utilisateur courant (élève / responsable / enseignant) $travailDAO = _ioDAO('cahierdetextes|cahierdetextestravail'); if ($ppo->estAdmin) { $ppo->travaux = $travailDAO->findByClasseEtTypeDeTravail($nodeId, DAOCahierDeTextesTravail::TYPE_EN_CLASSE, $time); } elseif (Kernel::getLevel('MOD_CAHIERDETEXTES', $ppo->cahierId) == PROFILE_CCV_READ) { $ppo->travaux = $travailDAO->findByEleveEtTypeDeTravail($ppo->eleve, DAOCahierDeTextesTravail::TYPE_EN_CLASSE, $time); } else { $ppo->travaux = $travailDAO->findByEleveEtTypeDeTravail(_currentUser()->getExtra('id'), DAOCahierDeTextesTravail::TYPE_EN_CLASSE, $time); } $toReturn = $this->_usePPO($ppo, '_travaux_en_classe.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->current = $this->getParam('current'); // Gestion des droits $ppo->niveauUtilisateur = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId); $ppo->typeUtilisateur = _currentUser()->getExtra('type'); $ppo->vue = !is_null(_sessionGet('classeur|typeVue')) ? _sessionGet('classeur|typeVue') : 'liste'; $ppo->conf_ModClasseur_options = CopixConfig::exists('default|conf_ModClasseur_options') ? CopixConfig::get('default|conf_ModClasseur_options') : 0; // L'album public est t-il publié ? $ppo->estPublic = false; if (!is_null($ppo->dossierId) && $ppo->dossierId != 0) { $dossierDAO = _ioDAO('classeur|classeurdossier'); $ppo->dossier = $dossierDAO->get($ppo->dossierId); if ($ppo->dossier->public) { $ppo->estPublic = true; } } else { $classeurDAO = _ioDAO('classeur|classeur'); $classeur = $classeurDAO->get($ppo->classeurId); if ($classeur->public) { $ppo->estPublic = true; } } $toReturn = $this->_usePPO($ppo, '_affichage_menu.tpl'); }
public function _createContent(&$toReturn) { $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'); $time = mktime(0, 0, 0, $ppo->mois, $ppo->jour, $ppo->annee); $cahierInfos = Kernel::getModParent('MOD_CAHIERDETEXTES', $ppo->cahierId); $nodeId = isset($cahierInfos[0]) ? $cahierInfos[0]->node_id : null; $ppo->niveauUtilisateur = Kernel::getLevel('MOD_CAHIERDETEXTES', $ppo->cahierId); $estAdmin = $ppo->niveauUtilisateur >= PROFILE_CCV_PUBLISH ? true : false; // Récupération des mémos suivant les accès de l'utilisateur courant (élève / responsable / enseignant) $memoDAO = _ioDAO('cahierdetextes|cahierdetextesmemo'); if ($estAdmin) { $ppo->memos = $memoDAO->findByClasse($nodeId, true); } elseif (Kernel::getLevel('MOD_CAHIERDETEXTES', $ppo->cahierId) == PROFILE_CCV_READ) { $ppo->memos = $memoDAO->findByEleve($ppo->eleve, true); } else { $ppo->memos = $memoDAO->findByEleve(_currentUser()->getExtra('id'), true); } $toReturn = $this->_usePPO($ppo, '_memos.tpl'); }
/** * Configuration de MagicMail * * @author Frederic Mossmann <*****@*****.**> * @since 2006/08/09 */ public function getMagicMail() { $id = _request("id"); if (Kernel::getLevel("MOD_MAGICMAIL", $id) < PROFILE_CCV_ADMIN) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('||'))); } $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', CopixI18N::get('magicmail.message.title')); $dao = CopixDAOFactory::create("magicmail|magicmail"); $magic_result = $dao->get($id); $tplForm = new CopixTpl(); $tplForm->assign('id', $id); $tplForm->assign('infos', $magic_result); // $tplForm->assign ('magicmail_mail', CopixConfig::get ('magicmail|magicmail_mail')); if (_request("return")) { $tplForm->assign('return', _request("return")); } CopixHTMLHeader::addCSSLink(_resource("styles/module_prefs.css")); $tplForm->assign('msg', array('type' => 'ok', 'image_url' => _resource('img/prefs/smiley_black.png'), 'image_alt' => 'Ok !', 'value' => CopixI18N::get('prefs|prefs.msg.prefsrecorded'))); $result = $tplForm->fetch("login_form.tpl"); $tpl->assign("MAIN", $result); $menu = array(); $tpl->assign('MENU', $menu); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
public function checkRight($type, $id, $mini) { switch ($type) { case 'ANNU': $annuaire_dao = CopixDAOFactory::create("ressource_annuaires"); $annuaire = $annuaire_dao->get($id); if (!$annuaire) { return false; } $id_annu = $id; break; case 'RES': $ressource_dao = CopixDAOFactory::create("ressource_ressources"); $ressource = $ressource_dao->get($id); if (!$ressource) { return false; } $id_annu = $ressource->ressources_id_annu; break; default: return false; } // Test : if( ! Ressource::checkRight( "RES", $id, PROFILE_CCV_SHOW ) ) if (Kernel::getLevel("MOD_RESSOURCE", $id_annu) >= $mini) { return true; } return false; }
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 _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(); // 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'); }
/** * fonction getUserInfos * param : * return : Le prénom et le nom de l'utilisateur connecté */ public function getUserInfos($id_blog = NULL) { $user = new user(); if ($id_blog) { if (!_sessionGet('cache|right|MOD_BLOG|' . $id_blog)) { _sessionSet('cache|right|MOD_BLOG|' . $id_blog, Kernel::getLevel("MOD_BLOG", $id_blog)); } $user->right = _sessionGet('cache|right|MOD_BLOG|' . $id_blog); } return $user; }
public function _createContent(&$toReturn) { $ppo = new CopixPPO(); // Récupération des paramètres $ppo->classeurId = $this->getParam('classeurId'); $ppo->dossierId = $this->getParam('dossierId'); $ppo->idClasseurPersonnel = _sessionGet('classeur|idClasseurPersonnel'); // Gestion des droits $ppo->niveauUtilisateur = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId); // Récupération du dossier courant $dossierDAO = _ioDAO('classeur|classeurdossier'); $ppo->dossier = $dossierDAO->get($ppo->dossierId); $toReturn = $this->_usePPO($ppo, '_actions_de_masse.tpl'); }
public function _createContent(&$toReturn) { $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'); $ppo->current = $this->getParam('current'); $ppo->vue = $this->getParam('vue'); $cahierInfos = Kernel::getModParent('MOD_CAHIERDETEXTES', $ppo->cahierId); $ppo->estAdmin = Kernel::getLevel('MOD_CAHIERDETEXTES', $ppo->cahierId) >= PROFILE_CCV_PUBLISH ? true : false; $toReturn = $this->_usePPO($ppo, '_affichage_menu.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'); }
/** * Formulaire de saisie/modif d'un type de teleprocedure * * @author Christophe Beyer <*****@*****.**> * @since 2009/01/15 * @param integer $save 1 si submit du formulaire */ public function formtype() { $idtype = $this->getRequest('idtype'); $teleprocedure = $this->getRequest('teleprocedure'); $save = $this->getRequest('save'); $daoType =& CopixDAOFactory::create('teleprocedures|type'); $criticErrors = $errors = array(); $tplForm = new CopixTpl(); $tplForm->assign('is_online', array('values' => array(1, 0), 'output' => array(CopixI18N::get('blog|blog.oui'), CopixI18N::get('blog|blog.non')))); $formats = CopixConfig::get('teleprocedures|formats_types'); $tabFormats = preg_split('/[\\s,]+/', $formats); $values = $output = array(); foreach ($tabFormats as $k) { $values[] = $k; $output[] = CopixI18N::get('blog|blog.default_format_articles.' . $k); } $tplForm->assign('format', array('values' => $values, 'output' => $output)); $tplForm->assign('linkpopup_responsables', CopixZone::process('annuaire|linkpopup', array('field' => 'responsables', 'profil' => 'USER_VIL'))); $tplForm->assign('linkpopup_lecteurs', CopixZone::process('annuaire|linkpopup', array('field' => 'lecteurs', 'profil' => 'USER_VIL'))); // Verifications if ($idtype) { if ($rType = $daoType->get($idtype)) { $mondroit = Kernel::getLevel("MOD_TELEPROCEDURES", $rType->teleprocedure); if (!TeleproceduresService::canMakeInTelep('ADMIN', $mondroit)) { $criticErrors[] = CopixI18N::get('kernel|kernel.error.noRights'); } } else { $criticErrors[] = CopixI18N::get('teleprocedures|teleprocedures.error.noParameter'); } } elseif ($teleprocedure) { $mondroit = Kernel::getLevel("MOD_TELEPROCEDURES", $teleprocedure); if (!TeleproceduresService::canMakeInTelep('ADMIN', $mondroit)) { $criticErrors[] = CopixI18N::get('kernel|kernel.error.noRights'); } } else { $criticErrors[] = CopixI18N::get('teleprocedures|teleprocedures.error.noParameter'); } if ($criticErrors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $criticErrors), 'back' => CopixUrl::get('teleprocedures||'))); } // Traitement if ($idtype) { // Modif $title = CopixI18N::get('teleprocedures|teleprocedures.title.modifType'); if ($save) { // Responsables $responsables = $this->getRequest('responsables'); $responsables = str_replace(array(" "), "", $responsables); $responsables = str_replace(array(",", ";"), ",", $responsables); $responsables = preg_split('/[\\s,]+/', $responsables); $tabResponsables = array(); $deja = array(); // On vérifie que les membres existent while (list(, $login) = each($responsables)) { if (!$login) { continue; } $userInfo = Kernel::getUserInfo("LOGIN", $login); if (!$userInfo) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberNoUser', array($login)); } elseif ($userInfo['type'] != 'USER_VIL') { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberNoVille', array($login)); } else { $tabResponsables[] = $userInfo; $deja[] = $login; } } //print_r($tabResponsables); // Lecteurs $lecteurs = $this->getRequest('lecteurs'); $lecteurs = str_replace(array(" "), "", $lecteurs); $lecteurs = str_replace(array(",", ";"), ",", $lecteurs); $lecteurs = preg_split('/[\\s,]+/', $lecteurs); $tabLecteurs = array(); // On vérifie que les membres existent while (list(, $login) = each($lecteurs)) { if (!$login) { continue; } $userInfo = Kernel::getUserInfo("LOGIN", $login); if (!$userInfo) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberNoUser', array($login)); } elseif ($userInfo['type'] != 'USER_VIL') { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberNoVille', array($login)); } elseif (in_array($login, $deja)) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberDeja', array($login)); } else { $tabLecteurs[] = $userInfo; } } $type = $rType; $type->nom = $this->getRequest('nom'); $type->is_online = $this->getRequest('is_online'); $type->teleprocedure = $this->getRequest('teleprocedure'); $type->format = $this->getRequest('format'); $type->texte_defaut = $this->getRequest('texte_defaut'); $type->responsables = $this->getRequest('responsables'); $type->lecteurs = $this->getRequest('lecteurs'); $type->mail_from = $this->getRequest('mail_from'); $type->mail_to = $this->getRequest('mail_to'); $type->mail_cc = $this->getRequest('mail_cc'); $type->mail_message = $this->getRequest('mail_message'); if ($type->mail_from && !validateEMail($type->mail_from)) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.incorrectMail', $type->mail_from); } if ($type->mail_to) { $list = preg_split('/[\\s,]+/', $type->mail_to); foreach ($list as $email) { if (!validateEMail($email)) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.incorrectMail', $email); } } } if ($type->mail_cc) { $list = preg_split('/[\\s,]+/', $type->mail_cc); foreach ($list as $email) { if (!validateEMail($email)) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.incorrectMail', $email); } } } if ($type->mail_to && !$type->mail_from) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.mail_from'); } $errorsDao = _dao('teleprocedures|type')->check($type); //die(); if (count($errors) || is_array($errorsDao)) { // Erreurs if (is_array($errorsDao)) { $errors = array_merge($errorsDao, $errors); } } else { // Pas d'erreurs $daoType->update($type); TeleproceduresService::saveDroits("type", $idtype, 'responsables', $tabResponsables); TeleproceduresService::saveDroits("type", $idtype, 'lecteurs', $tabLecteurs); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('admin|admin', array('id' => $type->teleprocedure))); } } else { $type = $rType; } } else { // Creation $title = CopixI18N::get('teleprocedures|teleprocedures.title.newType'); $type = CopixDAOFactory::createRecord('teleprocedures|type'); if ($save) { // Responsables $responsables = $this->getRequest('responsables'); $responsables = str_replace(array(" "), "", $responsables); $responsables = str_replace(array(",", ";"), ",", $responsables); $responsables = preg_split('/[\\s,]+/', $responsables); $tabResponsables = array(); while (list(, $login) = each($responsables)) { if (!$login) { continue; } $userInfo = Kernel::getUserInfo("LOGIN", $login); if (!$userInfo) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberNoUser', array($login)); } elseif ($userInfo['type'] != 'USER_VIL') { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberNoVille', array($login)); } else { $tabResponsables[] = $userInfo; $deja[] = $login; } } // Lecteurs $lecteurs = $this->getRequest('lecteurs'); $lecteurs = str_replace(array(" "), "", $lecteurs); $lecteurs = str_replace(array(",", ";"), ",", $lecteurs); $lecteurs = preg_split('/[\\s,]+/', $lecteurs); $tabLecteurs = array(); // On vérifie que les membres existent while (list(, $login) = each($lecteurs)) { if (!$login) { continue; } $userInfo = Kernel::getUserInfo("LOGIN", $login); if (!$userInfo) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberNoUser', array($login)); } elseif ($userInfo['type'] != 'USER_VIL') { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberNoVille', array($login)); } elseif (in_array($login, $deja)) { $errors[] = CopixI18N::get('teleprocedures|teleprocedures.error.memberDeja', array($login)); } else { $tabLecteurs[] = $userInfo; } } $type->nom = $this->getRequest('nom'); $type->is_online = $this->getRequest('is_online'); $type->teleprocedure = $this->getRequest('teleprocedure'); $type->format = $this->getRequest('format'); $type->texte_defaut = $this->getRequest('texte_defaut'); $type->responsables = $this->getRequest('responsables'); $type->lecteurs = $this->getRequest('lecteurs'); $type->mail_from = $this->getRequest('mail_from'); $type->mail_to = $this->getRequest('mail_to'); $type->mail_cc = $this->getRequest('mail_cc'); $type->mail_message = $this->getRequest('mail_message'); $errorsDao = _dao('teleprocedures|type')->check($type); if (count($errors) || is_array($errorsDao)) { // Erreurs if (is_array($errorsDao)) { $errors = array_merge($errorsDao, $errors); } } else { // Pas d'erreurs $daoType->insert($type); if ($type->idtype) { TeleproceduresService::saveDroits("type", $type->idtype, 'responsables', $tabResponsables); TeleproceduresService::saveDroits("type", $type->idtype, 'lecteurs', $tabLecteurs); } return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('admin|admin', array('id' => $type->teleprocedure))); } } else { $type->teleprocedure = $teleprocedure; $type->is_online = 1; $type->format = CopixConfig::get('teleprocedures|default_format'); } } //print_r($type); $tplForm->assign('type', $type); $tplForm->assign('edition_texte_defaut', CopixZone::process('kernel|edition', array('field' => 'texte_defaut', 'format' => $type->format, 'content' => $type->texte_defaut, 'height' => 460))); $tplForm->assign('errors', $errors); $tplForm->assign('mailEnabled', CopixConfig::get('|mailEnabled')); $main = $tplForm->fetch('form-type.tpl'); $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', $title); $tpl->assign("MAIN", $main); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * getModEnabled * * Retourne la liste des modules attachÈs ‡ un noeud, et en option, ceux dÈpendant du type d'utilisateur. * * @author FrÈdÈric Mossmann <*****@*****.**> * @param string $node_type Type de noeud. * @param integer $node_id Identifiant du noeud. * @param string $user_type Type d'utilisateur (facultatif). * @param integer $user_id Identifiant du noeud (facultatif). */ public function getModEnabled($node_type, $node_id, $user_type = '', $user_id = 0, $full = 0, $notification = 0) { // echo "getModEnabled( $node_type, $node_id, $user_type, $user_id)"; $carnetDeLiaison = CopixConfig::exists('kernel|carnetDeLiaison') && CopixConfig::get('kernel|carnetDeLiaison'); $dao = _dao("kernel|kernel_mod_enabled"); $modules = array(); // Parent d'eleve... if (0 == strncmp($node_type, "USER_ELE", 8) && 0 == strncmp($user_type, "USER_RES", 8)) { $parents = Kernel::getNodeParents($node_type, $node_id); $parent = Kernel::filterNodeList($parents, 'BU_CLASSE'); if (count($parent)) { if ($parent[0]['droit'] >= 30) { $parent_modules = Kernel::getModEnabled($parent[0]['type'], $parent[0]['id'], $node_type, $node_id); /* echo '<li>$parent[0][] = '.$parent[0]['type']."/".$parent[0]['id']."</li>"; echo '<li>$node_* = '.$node_type."/".$node_id."</li>"; */ $perso = new stdClass(); foreach ($parent_modules as $parent_module) { /* $perso->node_type = $parent[0]['type']; $perso->node_id = $parent[0]['id']; */ $perso->node_type = $node_type; $perso->node_id = $node_id; $perso->module_type = $parent_module->module_type; $perso->module_id = $parent_module->module_id; $perso->module_nom = Kernel::Code2Name($parent_module->module_type); $modules[] = clone $perso; } /* $perso->node_type = $parent[0]['type']; $perso->node_id = $parent[0]['id']; */ $perso->node_type = $node_type; $perso->node_id = $node_id; $perso->module_type = 'MOD_CARNET'; $perso->module_id = 'ELEVE_' . $node_id; $perso->module_nom = Kernel::Code2Name('MOD_CARNET'); if ($carnetDeLiaison) { $modules[] = clone $perso; } } } // _dump($modules); if ($notification) { Kernel::getModlistNotifications($modules); } reset($modules); return $modules; } $list = $dao->getByNode($node_type, $node_id); foreach ($list as $v) { if (!$full) { if ($v->module_type == 'MOD_MAGICMAIL') { continue; } } $v->module_nom = Kernel::Code2Name($v->module_type); $modules[] = clone $v; } // _dump($modules); //print_r($modules); if ($user_type == "USER_ENS" && $node_type == "BU_CLASSE" && Kernel::getLevel($node_type, $node_id) >= 60) { $carnetcorresp = new CopixPPO(); $carnetcorresp->node_type = $node_type; $carnetcorresp->node_id = $node_id; $carnetcorresp->module_type = 'MOD_CARNET'; $carnetcorresp->module_id = 'CLASSE_' . $node_id; $carnetcorresp->module_nom = Kernel::Code2Name('MOD_CARNET'); if ($carnetDeLiaison) { $modules[] = clone $carnetcorresp; } } //for KNE if (in_array($user_type, array('USER_ELE', 'USER_ENS', 'USER_DIR', 'USER_DID')) && $node_type == 'BU_CLASSE' && CopixClassesFactory::create('kne|kneService')->active) { $modKne = new stdClass(); $modKne->node_type = $node_type; $modKne->node_id = $node_id; $modKne->module_type = 'MOD_KNE'; $modKne->module_id = $node_id; $modKne->module_nom = kernel::Code2Name('MOD_KNE'); $modules[] = $modKne; } //for Coreprim if (in_array($user_type, array('USER_ELE', 'USER_ENS', 'USER_DIR', 'USER_DID')) && $node_type == 'BU_CLASSE' && CopixConfig::exists('default|rssEtagereEnabled') && CopixConfig::get('default|rssEtagereEnabled')) { $modRssEtagere = new stdClass(); $modRssEtagere->node_type = $node_type; $modRssEtagere->node_id = $node_id; $modRssEtagere->module_type = 'MOD_RSSETAGERE'; $modRssEtagere->module_id = $node_type . "-" . $node_id; $modRssEtagere->module_nom = kernel::Code2Name('MOD_RSSETAGERE'); $modules[] = $modRssEtagere; } if (CopixConfig::exists('|conf_ModTeleprocedures') && CopixConfig::get('|conf_ModTeleprocedures') == 0) { // Pas de module de tÈlÈprocÈdures... } else { if ($user_type == "USER_ENS" && $node_type == "BU_ECOLE" && Kernel::getLevel($node_type, $node_id) >= 60) { $teleprocedures = new CopixPPO(); $teleprocedures->node_type = $node_type; $teleprocedures->node_id = $node_id; $teleprocedures->module_type = 'MOD_TELEPROCEDURES'; $teleprocedures->module_id = 'ECOLE_' . $node_id; $teleprocedures->module_nom = Kernel::Code2Name('MOD_TELEPROCEDURES'); $modules[] = clone $teleprocedures; } elseif (CopixConfig::exists('teleprocedures|USER_ADM_as_USER_ENS') && CopixConfig::get('teleprocedures|USER_ADM_as_USER_ENS') && $user_type == "USER_ADM" && $node_type == "BU_ECOLE" && Kernel::getLevel($node_type, $node_id) >= 30) { $teleprocedures = new CopixPPO(); $teleprocedures->node_type = $node_type; $teleprocedures->node_id = $node_id; $teleprocedures->module_type = 'MOD_TELEPROCEDURES'; $teleprocedures->module_id = 'ECOLE_' . $node_id; $teleprocedures->module_nom = Kernel::Code2Name('MOD_TELEPROCEDURES'); $modules[] = clone $teleprocedures; } } // Cas particuliers : modules personnels sans numÈros if (0 == strncmp($node_type, "USER_", 5)) { $perso_list = array('MOD_ANNUAIRE', 'MOD_MINIMAIL', 'MOD_GROUPE', 'MOD_RESSOURCE'); foreach ($perso_list as $perso_module) { $perso = new CopixPPO(); $perso->node_type = $node_type; $perso->node_id = $node_id; $perso->module_id = NULL; $perso->module_type = $perso_module; $perso->module_nom = Kernel::Code2Name($perso_module); $modules[] = clone $perso; unset($perso); } } // Cas particulier : module d'administration if ($node_type == "ROOT" && Kernel::getLevel($node_type, $node_id) >= 60) { $sysutils = new CopixPPO(); $sysutils->node_type = $node_type; $sysutils->node_id = $node_id; $sysutils->module_id = NULL; $sysutils->module_type = 'MOD_SYSUTILS'; $sysutils->module_nom = Kernel::Code2Name('MOD_SYSUTILS'); $modules[] = clone $sysutils; $charte = new CopixPPO(); $charte->node_type = $node_type; $charte->node_id = $node_id; $charte->module_id = NULL; $charte->module_type = 'MOD_CHARTE'; $charte->module_nom = Kernel::Code2Name('MOD_CHARTE'); $modules[] = clone $charte; } // Cas ENS+VIL : SSO vers Gael si tout est configurÈ. $SsoGaelService =& CopixClassesFactory::Create('ssogael|ssogael'); if (($user_type == "USER_ENS" && $node_type == "BU_ECOLE" || $user_type == "USER_VIL" && $node_type == "BU_VILLE") && method_exists($SsoGaelService, "canSsoGael") && $SsoGaelService->canSsoGael() && Kernel::getLevel($node_type, $node_id) >= 60) { $comptes = new stdClass(); $comptes->node_type = $node_type; $comptes->node_id = $node_id; $comptes->module_type = 'MOD_SSOGAEL'; $comptes->module_id = $node_type . '-' . $node_id; $comptes->module_nom = Kernel::Code2Name('MOD_SSO_GAEL'); $comptes->module_popup = true; // Mode Popup !!! $modules[] = clone $comptes; } // Cas particulier : gestion des groupes de ville (AC/TICE) if ($node_type == "ROOT" && Kernel::getLevel($node_type, $node_id) >= 60) { $mod_grvilles = new stdClass(); $mod_grvilles->node_type = $node_type; $mod_grvilles->node_id = $node_id; $mod_grvilles->module_type = 'MOD_REGROUPEMENTS'; $mod_grvilles->module_id = $node_type . '-' . $node_id; $mod_grvilles->module_nom = Kernel::Code2Name('MOD_REGROUPEMENTS'); $modules[] = clone $mod_grvilles; } // Cas particulier : Gestion autonome // if( $user_type == "USER_EXT" // && $node_type == "ROOT" // && Kernel::getLevel( $node_type, $node_id ) >= 60 ) { if (CopixConfig::exists('kernel|gestionAutonomeEnabled') && CopixConfig::get('kernel|gestionAutonomeEnabled')) { if (($node_type == "ROOT" || $user_type == "USER_ENS" && $node_type == "BU_ECOLE" || $user_type == "USER_ENS" && $node_type == "BU_CLASSE" || $user_type == "USER_VIL" && $node_type == "BU_VILLE") && Kernel::getLevel($node_type, $node_id) >= 60) { $mod_grvilles = new CopixPPO(); $mod_grvilles->node_type = $node_type; $mod_grvilles->node_id = $node_id; $mod_grvilles->module_type = 'MOD_GESTIONAUTONOME'; $mod_grvilles->module_id = $node_type . '-' . $node_id; $mod_grvilles->module_nom = Kernel::Code2Name('MOD_GESTIONAUTONOME'); $modules[] = clone $mod_grvilles; } } elseif (($node_type == "ROOT" || $user_type == "USER_ENS" && $node_type == "BU_ECOLE" || $user_type == "USER_ENS" && $node_type == "BU_CLASSE" || $user_type == "USER_VIL" && $node_type == "BU_VILLE") && Kernel::getLevel($node_type, $node_id) >= 60) { $comptes->node_type = $node_type; $comptes->node_id = $node_id; $comptes->module_type = 'MOD_COMPTES'; $comptes->module_id = $node_type . '-' . $node_id; $comptes->module_nom = Kernel::Code2Name('MOD_COMPTES'); $modules[] = clone $comptes; } if ($user_type == "USER_ENS" && ($node_type == "BU_ECOLE" && Kernel::getLevel($node_type, $node_id) >= 60 || $node_type == "BU_CLASSE") && CopixConfig::exists('default|conf_Ceriseprim_actif') && CopixConfig::get('default|conf_Ceriseprim_actif')) { $perso->node_type = $node_type; $perso->node_id = $node_id; $perso->module_type = 'MOD_CERISEPRIM'; $perso->module_id = $node_type . "-" . $node_id; $perso->module_nom = Kernel::Code2Name('MOD_CERISEPRIM'); $modules[] = clone $perso; } // _dump($modules); if ($notification) { Kernel::getModlistNotifications($modules); } reset($modules); return $modules; }
public function processQuestion() { //get params $pId = CopixRequest::getInt('id', false); $pQId = CopixRequest::getInt('qId', false); if (empty($pId) || !$this->session->exists('questions')) { $this->error('quiz.errors.badOperation'); } if ($pQId == false) { return CopixActionGroup::process('quiz|default::Quiz', array('id' => $this->session->load('quizId'))); } //get question datas $questionDatas = $this->service('QuizService')->getQuestion($pQId); //check if question exists if (empty($questionDatas)) { $this->error('quiz.errors.noQuestions'); } //check if question & quiz are same id_quiz if ($pId != $questionDatas['id_quiz']) { $this->error('quiz.errors.badOperation'); } //get responses from users : $responsesDatas = $this->service('QuizService')->getResponses($pQId, $this->user->id); //check if user as already respond to the question $uResp = !empty($responsesDatas) ? true : false; //get choices for question $choicesDatas = $this->service('QuizService')->getChoices($pQId); //if no choices : error : $this->error('quiz.errors.noChoice'); //data preparation $i = 0; $correct = 0; $choiceReturn = array(); foreach ($choicesDatas as $choice) { $choiceReturn[$i]['ct'] = $choice['content']; $choiceReturn[$i]['id'] = $choice['id']; $choiceReturn[$i]['user'] = false; if ($choice['correct'] == 1) { $correct++; } foreach ($responsesDatas as $response) { if ((int) $response['id_choice'] == (int) $choice['id']) { $choiceReturn[$i]['user'] = true; } } $i++; } //check the current pos in queue, and build array for nav $qQueue = $this->session->load('questions'); foreach ($qQueue as $key => $qe) { $questionTpl[$key + 1] = $qe; //if queue id == current id if ($qe == $pQId) { $questionTpl[$key + 1] = 'current'; $prev = isset($qQueue[$key - 1]) ? $qQueue[$key - 1] : false; $next = isset($qQueue[$key + 1]) ? $qQueue[$key + 1] : false; } } //put next answ in flash $this->flash->nextAnsw = $next; $this->flash->currentAnsw = $pQId; $this->flash->typeAnsw = $questionDatas['opt_type']; //build tpl CopixHTMLHeader::addCSSLink(_resource("styles/module_quiz.css")); CopixHTMLHeader::addCSSLink(_resource("styles/jquery.fancybox-1.3.4.css")); // $this->js->button('.button'); $ppo = new CopixPPO(); $ppo->error = $this->flash->has('error') ? $this->flash->error : null; $ppo->userResp = $uResp; $ppo->choices = $choiceReturn; $ppo->prev = $prev; $ppo->nameAuthor = $this->session->load('authorName'); $ppo->surname = $this->session->load('authorSurname'); $ppo->questionTpl = $questionTpl; $ppo->question = $questionDatas; $ppo->type = $questionDatas['opt_type'] == 'choice' ? 'radio' : 'txt'; $ppo->select = $correct > 1 ? 'checkbox' : 'radio'; $ppo->help = qSession('help'); $ppo->name = qSession('name'); $ppo->next = $next; if (Kernel::getLevel('MOD_QUIZ', $pId) >= PROFILE_CCV_ADMIN) { $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'))); } $this->js->dialog('#qd-help', '#help-data'); return _arPPO($ppo, 'question.tpl'); }
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'); }
public function getGrvilles() { if (Kernel::getLevel('ROOT', 0) < PROFILE_CCV_ADMIN) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('||')); } $tpl = new CopixTpl(); $tplGrVilles = new CopixTpl(); CopixHTMLHeader::addCSSLink(_resource("styles/module_grvilles.css")); $tpl->assign('TITLE_PAGE', CopixI18N::get('grvilles|grvilles.module.titre')); $dao_grvilles_gr2ville = CopixDAOFactory::create("grvilles|grvilles_gr2ville"); $dao_grvilles = CopixDAOFactory::create("grvilles|grvilles"); $dao_villes = CopixDAOFactory::create("kernel|kernel_tree_vil"); $villes = $dao_villes->findAll(); $tplGrVilles->assign('villes', $villes); if (_request("delete")) { $dao_grvilles->delete(_request("delete")); $dao_grvilles_gr2ville->deleteByGroupe(_request("delete")); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('grvilles||')); } if (_request("save") && _request("save") == 1) { $date = date("Y-m-d H:i:s"); $user = Kernel::getUserInfo(); if (_request("form_id") > 0) { $grvilles_infos = $dao_grvilles->get(_request("form_id")); $grvilles_infos->nom = _request("form_nom"); $grvilles_infos->updated_at = $date; $grvilles_infos->updated_by = $user['login']; $dao_grvilles->update($grvilles_infos); $dao_grvilles_gr2ville->deleteByGroupe(_request("form_id")); } else { $grvilles_infos = CopixDAOFactory::createRecord("grvilles|grvilles"); $grvilles_infos->nom = _request("form_nom"); if ($grvilles_infos->nom == '') { $grvilles_infos->nom = 'Sans nom'; } $grvilles_infos->updated_at = date("Y-m-d H:i:s"); $grvilles_infos->updated_by = $user['login']; $dao_grvilles->insert($grvilles_infos); } $grvilles_gr2ville = _record("grvilles|grvilles_gr2ville2"); $grvilles_gr2ville->id_groupe = $grvilles_infos->id; $grvilles_gr2ville->updated_at = $date; $grvilles_gr2ville->updated_by = $user['login']; foreach ($villes as $ville) { if (_request("ville_" . $ville->vil_id_vi) == 1) { $grvilles_gr2ville->id_ville = $ville->vil_id_vi; _dao("grvilles|grvilles_gr2ville2")->insert($grvilles_gr2ville); } } if (_request("form_id") == 0) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('grvilles||', array('groupe' => $grvilles_infos->id))); } } if (_request("groupe")) { $tplGrVilles->assign('grvilles_id', _request("groupe")); $tplGrVilles->assign('grvilles_form', true); if (_request("groupe") > 0) { // Edition d'un groupe $grvilles_infos = $dao_grvilles->get(_request("groupe")); $grvilles_villes_raw = $dao_grvilles_gr2ville->findByGroupe(_request("groupe")); // Tableau indexé par id de ville $grvilles_villes = array(); foreach ($grvilles_villes_raw as $grvilles_villes_item) { $grvilles_villes[$grvilles_villes_item->id_ville] = $grvilles_villes_item; } $tplGrVilles->assign('grvilles_infos', $grvilles_infos); $tplGrVilles->assign('grvilles_villes', $grvilles_villes); } else { // Création d'un nouveau groupe } } $grvilles_list = $dao_grvilles->findAll(); // print_r($grvilles_list); $tplGrVilles->assign('grvilles_list', $grvilles_list); $main = $tplGrVilles->fetch('getgrvilles.tpl'); $tpl->assign('MAIN', $main); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * Ajout d'une info supplementaire * * @author Christophe Beyer <*****@*****.**> * @since 2008/01/30 * @param integer $id Id de la procedure */ public function insertInfoSupp() { $id = $this->getRequest('id', null); $info_message = $this->getRequest('info_message', null); $info_commentaire = $this->getRequest('info_commentaire', null); $visible = $this->getRequest('visible', null); $daoIntervention = CopixDAOFactory::create("intervention"); $daoInfoSupp = CopixDAOFactory::create("infosupp"); $criticErrors = $errors = array(); if ($id && ($rFiche = $daoIntervention->get($id))) { $title = $rFiche->objet; $mondroit = Kernel::getLevel("MOD_TELEPROCEDURES", $rFiche->type_teleprocedure); if (!TeleproceduresService::canMakeInTelep('ADD_COMMENT', $mondroit)) { $criticErrors[] = CopixI18N::get('kernel|kernel.error.noRights'); } } else { $criticErrors[] = CopixI18N::get('teleprocedures|teleprocedures.error.prob.telep'); } if ($criticErrors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $criticErrors), 'back' => CopixUrl::get('teleprocedures||'))); } if ($info_message || $info_commentaire) { //$canCheckVisible = TeleproceduresService::canMakeInTelep('CHECK_VISIBLE', $mondroit); $rFiche->insertInfoSupp($info_message, $info_commentaire); } return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('|fiche', array('id' => $id))); }
/** * getUserExtMod * * Affiche le formulaire de modification d'un utilisateur extérieur * * @package Comptes * @author Frédéric Mossmann <*****@*****.**> */ public function getUserExtMod() { if (!Kernel::isAdmin() && !_currentUser()->hasAssistance('can_comptes')) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('||')); } $errors = array(); $tpl = new CopixTpl(); $userext_dao =& CopixDAOFactory::create("kernel|kernel_ext_user"); $copixuser_dao =& CopixDAOFactory::create("kernel|kernel_copixuser"); $bu2user_dao =& CopixDAOFactory::create("kernel|kernel_bu2user2"); $pNom = trim(_request('nom')); $pPrenom = trim(_request('prenom')); $pLogin = trim(_request('login')); $pPasswd1 = trim(_request('passwd1')); $pPasswd2 = trim(_request('passwd2')); $mode = _request('mode'); if ($mode) { switch ($mode) { case 'MOD': $tpl->assign('TITLE_PAGE', CopixI18N::get('comptes.moduleDescription') . " » " . CopixI18N::get('comptes.title.getuserextmod')); $userext_item = $userext_dao->get(_request('id')); if (!$userext_item) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('comptes||getUserExt')); } if ($pNom == '' && $pPrenom == '') { $errors['ext_nom'] = CopixI18N::get('comptes.alert.nameempty'); } if ($pPasswd1 != '' && $pPasswd1 != $pPasswd2) { $errors['passwd2'] = CopixI18N::get('comptes.alert.passwddiff'); } if (count($errors) == 0) { $userext_item->ext_nom = $pNom; $userext_item->ext_prenom = $pPrenom; $userext_dao->update($userext_item); if ($pPasswd1 != '' && $pPasswd1 == $pPasswd2) { // Changer passwd // dbuser : id_dbuser login_dbuser password_dbuser email_dbuser enabled_dbuser // kernel_link_bu2user : user_id bu_type bu_id $sql = "\n UPDATE dbuser\n JOIN kernel_link_bu2user\n ON dbuser.id_dbuser=kernel_link_bu2user.user_id\n SET dbuser.password_dbuser=md5(:passwd)\n WHERE kernel_link_bu2user.bu_type = 'USER_EXT'\n AND kernel_link_bu2user.bu_id = :id"; _doQuery($sql, array(':passwd' => $pPasswd1, ':id' => _request('id'))); } return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('comptes||getUserExt')); } break; case 'ADD': $tpl->assign('TITLE_PAGE', CopixI18N::get('comptes.moduleDescription') . " » " . CopixI18N::get('comptes.title.getuserextadd')); $userext_item = CopixDAOFactory::createRecord("kernel|kernel_ext_user"); if ($pNom == '' && $pPrenom == '') { $errors['ext_nom'] = CopixI18N::get('comptes.alert.nameempty'); $userext_item->ext_id = 0; } if (trim($pLogin) == '') { $errors['login'] = CopixI18N::get('comptes.alert.loginempty'); } else { $logins = _doQuery('SELECT * FROM dbuser WHERE login_dbuser=:login', array(':login' => $pLogin)); if (count($logins)) { $errors['login'] = CopixI18N::get('comptes.alert.loginexists'); } } if ($pPasswd1 == '') { $errors['passwd1'] = CopixI18N::get('comptes.alert.passwdempty'); } if ($pPasswd1 != '' && $pPasswd1 != $pPasswd2) { $errors['passwd2'] = CopixI18N::get('comptes.alert.passwddiff'); } if (count($errors) == 0) { // $userext_item->ext_id $userext_item->ext_nom = $pNom; $userext_item->ext_prenom = $pPrenom; $userext_item->ext_description = ''; $userext_dao->insert($userext_item); $copixuser_item = CopixDAOFactory::createRecord("kernel|kernel_copixuser"); $copixuser_item->login_dbuser = trim($pLogin); $copixuser_item->password_dbuser = md5($pPasswd1); $copixuser_item->email_dbuser = ''; $copixuser_item->enabled_dbuser = 1; $copixuser_dao->insert($copixuser_item); $bu2user_item = CopixDAOFactory::createRecord("kernel|kernel_bu2user2"); $bu2user_item->user_id = $copixuser_item->id_dbuser; $bu2user_item->bu_type = "USER_EXT"; $bu2user_item->bu_id = $userext_item->ext_id; $bu2user_dao->insert($bu2user_item); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('comptes||getUserExt')); } break; case 'DEL': // die("Do Del"); $userext_item = $userext_dao->get(abs(_request('id'))); if ($userext_item) { $userext_dao->delete(abs(_request('id'))); } _doQuery('DELETE FROM dbuser, kernel_link_bu2user USING dbuser JOIN kernel_link_bu2user ON dbuser.id_dbuser=kernel_link_bu2user.user_id WHERE kernel_link_bu2user.bu_type="USER_EXT" AND kernel_link_bu2user.bu_id=:id', array(':id' => abs(_request('id')))); // _doQuery('DELETE FROM kernel_link_bu2user WHERE kernel_link_bu2user.bu_type="USER_EXT" AND kernel_link_bu2user.bu_id=:id', array(':id'=>abs(_request('id')))); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('comptes||getUserExt')); break; } } else { if (_request('id') > 0) { $tpl->assign('TITLE_PAGE', CopixI18N::get('comptes.moduleDescription') . " » " . CopixI18N::get('comptes.title.getuserextmod')); $userext_item = $userext_dao->get(_request('id')); if (!$userext_item) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('comptes||getUserExt')); } if (!Kernel::isSuperAdmin() && Kernel::getLevel('ROOT', 0, "USER_EXT", $userext_item->ext_id) >= PROFILE_CCV_ADMIN) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('comptes||getUserExt')); } $mode = 'MOD'; } elseif (_request('id') < 0) { $tpl->assign('TITLE_PAGE', CopixI18N::get('comptes.moduleDescription') . " » " . CopixI18N::get('comptes.title.getuserextdel')); $userext_item = $userext_dao->get(abs(_request('id'))); if (!$userext_item) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('comptes||getUserExt')); } if (!Kernel::isSuperAdmin() && Kernel::getLevel('ROOT', 0, "USER_EXT", $userext_item->ext_id) >= PROFILE_CCV_ADMIN) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('comptes||getUserExt')); } $mode = 'DEL'; } else { $tpl->assign('TITLE_PAGE', CopixI18N::get('comptes.moduleDescription') . " » " . CopixI18N::get('comptes.title.getuserextadd')); $userext_item = CopixDAOFactory::createRecord("kernel|kernel_ext_user"); $userext_item->ext_id = 0; $mode = 'ADD'; } } if ($mode == 'ADD' || $mode == 'MOD') { $result = CopixZone::process('comptes|getUserExtForm', array('user' => $userext_item, 'mode' => $mode, 'errors' => $errors)); } else { return CopixActionGroup::process('genericTools|Messages::getConfirm', array('title' => CopixI18N::get('comptes.moduleDescription') . " » " . CopixI18N::get('comptes.title.getuserextdel'), 'message' => CopixI18N::get('comptes.alert.getuserextdel', trim($userext_item->ext_prenom . ' ' . $userext_item->ext_nom)), 'confirm' => CopixUrl::get('comptes|default|getUserExtMod', array('id' => _request('id'), 'mode' => 'DEL')), 'cancel' => CopixUrl::get('comptes|default|getUserExt'))); } $tpl->assign('MAIN', $result); $tpl->assign('MENU', $this->menu); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * Affichage du suivi d'un mémo (élèves concernés & signatures) - * Enseignant * */ public function processSuiviMemo() { $ppo = new CopixPPO(); $memoDAO = _ioDAO('cahierdetextes|cahierdetextesmemo'); if (is_null($cahierId = _request('cahierId', null)) || !($ppo->memo = $memoDAO->get(_request('memoId', null)))) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get(''))); } elseif (Kernel::getLevel('MOD_CAHIERDETEXTES', $cahierId) < PROFILE_CCV_PUBLISH) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get(''))); } // Récupération des élèves liés au mémo $memo2eleveDAO = _ioDAO('cahierdetextes|cahierdetextesmemo2eleve'); $ppo->suivis = $memo2eleveDAO->findSuiviElevesParMemo($ppo->memo->id); return _arPPO($ppo, array('template' => 'suivi_memo.tpl', 'mainTemplate' => 'main|main_fancy.php')); }
/** * Suppression effective d'une discussion * * @author Christophe Beyer <*****@*****.**> * @since 2005/11/10 * @param integer $id Id de la discussion a supprimer */ public function doDeleteTopic() { $errors = array(); $id = _request("id") ? _request("id") : NULL; $dao_topics = CopixDAOFactory::create("forum_topics"); $forumService = CopixClassesFactory::create("forum|forumService"); $rTopic = $dao_topics->get($id); if (!$rTopic) { $errors[] = CopixI18N::get('forum|forum.error.noTopic'); } else { $mondroit = Kernel::getLevel("MOD_FORUM", $rTopic->forum_id); if (!$forumService->canMakeInForum('DELETE_TOPIC', $mondroit)) { $errors[] = CopixI18N::get('kernel|kernel.error.noRights'); } } if ($errors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $errors), 'back' => CopixUrl::get('forum||'))); } else { $del = $forumService->deleteForumTopic($id); if (!$del) { $errors[] = CopixI18N::get('forum|forum.error.delTopic'); } if ($errors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $errors), 'back' => CopixUrl::get('forum||getTopic', array("id" => $id)))); } $urlReturn = CopixUrl::get('forum||getForum', array("id" => $rTopic->forum_id)); return new CopixActionReturn(COPIX_AR_REDIRECT, $urlReturn); } }
public function doFolder() { $kernel_service =& CopixClassesFactory::Create('kernel|kernel'); if (!_request("album_id") || trim(_request("album_id")) == "" || !preg_match("/^[0-9]+\$/", _request("album_id"))) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.noalbumnumber'), 'back' => CopixUrl::get('||'))); } $album_id = _request("album_id"); if (Kernel::getLevel("MOD_ALBUM", $album_id) < PROFILE_CCV_PUBLISH) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('||'))); } $album_dao = CopixDAOFactory::create("album"); $album = $album_dao->get($album_id); $dossier_id = CopixRequest::getInt('dossier_id', -1); if ($dossier_id == -1) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.nofoldernumber'), 'back' => CopixUrl::get('album||album', array('album_id' => $album_id)))); } $dossier_dao = CopixDAOFactory::create("dossier"); if ($dossier_id > 0) { $dossier = $dossier_dao->get($dossier_id); if ($dossier->dossier_album != $album_id) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.badfoldernumber'), 'back' => CopixUrl::get('album||album', array('album_id' => $album_id)))); } } else { $dossier->dossier_id = 0; $dossier->dossier_album = $album_id; $dossier->dossier_parent = -1; $dossier->dossier_nom = CopixI18N::get('album|album.message.topfolder'); $dossier->dossier_comment = ""; $dossier->album_id = $album_id; } if (!_request("subaction")) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.badsubaction'), 'back' => CopixUrl::get('album||album', array('album_id' => $album_id, 'dossier_id' => $dossier_id)))); } switch (_request("subaction")) { case 'new': $dossier_new = CopixDAOFactory::createRecord("dossier"); $dossier_new->dossier_album = $album_id; $dossier_new->dossier_parent = $dossier_id; $dossier_new->dossier_nom = _request("folder_new", "Nouveau dossier"); $dossier_new->dossier_comment = ''; $dossier_new->dossier_date = date("Y-m-d H:i:s"); $dossier_new->dossier_cle = substr(md5(microtime()), 0, 10); $dossier_new->dossier_public = '0'; $dossier_dao->insert($dossier_new); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => $album_id, 'dossier_id' => $dossier_new->dossier_id))); break; case 'rename': $dossier->dossier_nom = _request("folder_rename"); $dossier_dao->update($dossier); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => $album_id, 'dossier_id' => $dossier_id))); break; case 'move': $dossier->dossier_parent = _request("folder_move"); $dossier_dao->update($dossier); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => $album_id, 'dossier_id' => $dossier_id))); break; case 'delete': // action=dofolder subaction=delete album_id=1& dossier_id=4 dossier_todo=moveparent Album::delFolder(_request("album_id"), _request("dossier_id"), _request("dossier_todo")); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => $album_id, 'dossier_id' => max(0, $dossier->dossier_parent)))); break; default: return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.badsubaction'), 'back' => CopixUrl::get('album||album', array('album_id' => $album_id, 'dossier_id' => $dossier_id)))); break; } }
public function getVisioScopia() { $dao = CopixDAOFactory::create("visioscopia|visioscopia_config"); $id = $this->getRequest('id', null); $user_infos = Kernel::getUserInfo(); $conf_result = $dao->get($id); $title = "Visioconférence"; $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', $title); $tplVisio = new CopixTpl(); $save = $this->getRequest('save', 0); if ($save == 1) { $conf_id = $this->getRequest('conf_id', 0); $conf_msg = $this->getRequest('conf_msg', ''); $conf_active = $this->getRequest('conf_active', 0); if (1) { // test de validité ? if (!$conf_result) { $conf_result = _record("visioscopia|visioscopia_config"); } $conf_result->id = (int) $id; $conf_result->conf_id = $conf_id; $conf_result->conf_msg = $conf_msg; $conf_result->conf_active = $conf_active; //_dump($conf_result); $dao->delete($id); $dao->insert($conf_result); $tplVisio->assign('saved', 1); } } if ($conf_result) { if (CopixConfig::exists('visioscopia|conf_ModVisioScopia_url')) { $tplVisio->assign('config_ok', 1); $url = CopixConfig::get('visioscopia|conf_ModVisioScopia_url'); } else { $tplVisio->assign('config_ok', 0); } // $url = CopixConfig::get('visioscopia|url'); $patterns[0] = '/%ROOM%/'; $patterns[1] = '/%NAME%/'; $replacements[0] = $conf_result->conf_id; $replacements[1] = urlencode(trim($user_infos['prenom'] . " " . $user_infos['nom'])); $url = preg_replace($patterns, $replacements, $url); $tplVisio->assign('url', $url); } else { $tplVisio->assign('config_ok', 0); } $tplVisio->assign('visio_id', $id); // _dump($conf_result); $tplVisio->assign('config', $conf_result); $result = $tplVisio->fetch('visioscopia-user.tpl'); // echo Kernel::getLevel( "MOD_VISIOSCOPIA", $id ); if (Kernel::getLevel("MOD_VISIOSCOPIA", $id) >= PROFILE_CCV_ADMIN) { $result .= $tplVisio->fetch('visioscopia-admin.tpl'); } else { } $menu = array(); $tpl->assign('MENU', $menu); $tpl->assign('MAIN', $result); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * Entree dans le module * * @author Christophe Beyer <*****@*****.**> * @since 2010/08/26 * @param integer $id Id du module */ public function processGo() { $ppo = new CopixPPO(); $iId = CopixRequest::getInt('id'); $iSubmit = CopixRequest::getInt('submit'); $this->addCss('styles/module_contact.css'); $this->js->button('.button'); $getLevel = Kernel::getLevel('MOD_CONTACT', $iId); //echo "getLevel=$getLevel"; $rContact = _dao('contact|contacts')->get($iId); //print_r($rContact); if (!$rContact) { return $this->error('contact|contact.errors.param', true, CopixUrl::get('||')); } $ppo->types = _dao('contact|contacts_types')->findByContact($iId); $user = _currentUser(); $possible = CopixConfig::get('|mailEnabled') == 1 && CopixConfig::get('|mailSmtpHost'); if ($iSubmit) { // Submit du formulaire $record = _record('contact|contacts_messages'); $record->contact = $iId; $record->to_email = $rContact->email; $record->date = date("Y-m-d H:i:s"); $record->from_nom = _request('from_nom'); $record->from_email = _request('from_email'); $record->from_login = $user->getLogin(); $record->from_user_id = $user->getId(); $record->type = _request('type'); $record->message = _request('message'); $record->ip = $_SERVER["REMOTE_ADDR"]; $check = _dao('contact|contacts_messages')->check($record); $ok = false; if (!is_array($check)) { // OK, pas d'erreurs _dao('contact|contacts_messages')->insert($record); if ($record->id) { // Enregistrement bien passe $type_nom = ''; foreach ($ppo->types as $type) { if ($type->id == $record->type) { $type_nom = $type->nom; } } if ($possible) { $to = $record->to_email; $subject = $type_nom; $message = CopixI18N::get('contact.mail.date') . " : " . date("d/m/Y H:i"); $message .= "\n" . CopixI18N::get('contact.mail.ip') . " : " . $record->ip; $message .= "\n"; $message .= "\n" . CopixI18N::get('contact.mail.nom') . " : " . $record->from_nom; if ($record->from_login) { $message .= ' (' . $record->from_login . ')'; } $message .= "\n" . CopixI18N::get('contact.mail.email') . " : " . $record->from_email; $message .= "\n"; $message .= "\n" . CopixI18N::get('contact.mail.type') . " : " . $type_nom; $message .= "\n" . CopixI18N::get('contact.mail.message') . " : " . $record->message; $message .= "\n\n-- \n" . CopixUrl::get(); $from = $record->from_email; $fromName = $record->from_nom; if ($record->from_login) { $fromName .= ' (' . $record->from_login . ')'; } $cc = $cci = ''; $monMail = new CopixTextEMail($to, $cc, $cci, utf8_decode($subject), utf8_decode($message)); $send = $monMail->send(utf8_decode($from), utf8_decode($fromName)); if ($send) { $ok = true; } else { $check = array(CopixI18N::get('contact|contact.errors.mailSend')); } } else { $check = array(CopixI18N::get('contact|contact.errors.mailDisabledAfter')); } } else { $check = array(CopixI18N::get('contact|contact.errors.save')); } } $ppo->rForm = $record; $ppo->errors = $check; $ppo->ok = $ok; } else { $ppo->rForm = _record('contact|contacts_messages'); foreach ($ppo->types as $type) { if ($type->is_default) { $ppo->rForm->type = $type->id; } } $ppo->rForm->from_nom = trim($user->getExtra('prenom') . ' ' . $user->getExtra('nom')); $prefs = Prefs::getPrefs($user->getId()); if (isset($prefs['prefs']['alerte_mail_email'])) { $ppo->rForm->from_email = $prefs['prefs']['alerte_mail_email']; } if (!$possible) { $ppo->errors = array(CopixI18N::get('contact|contact.errors.mailDisabled')); } } $ppo->TITLE_PAGE = $rContact->titre; return _arPPO($ppo, 'contact.tpl'); }
/** * Fonction qui prépare l'affichage de la vue semaine */ public function getVueSemaine() { CopixHTMLHeader::addCSSLink(_resource("styles/module_agenda.css")); CopixHtmlHeader::addJSLink(CopixUrl::get() . 'js/iconito/module_agenda.js'); $obj = new AgendaService(); $listAgendas = $obj->getAvailableAgenda(); $agendaService = new AgendaService(); $dateService = new DateService(); if (($params = $this->_getSessionSemaineParams()) == null) { $params = new SemaineParams(); $params->numSemaine = $this->getRequest('numSemaine', $dateService->dateToWeeknum(mktime()), true); $params->annee = $this->getRequest('annee', date('Y'), true); } else { $params->numSemaine = $this->getRequest('numSemaine', $params->numSemaine, true); $params->annee = $this->getRequest('annee', $params->annee, true); } //pour savoir si on a cliqué sur un agenda à afficher if (_request('updateAgendaAffiches')) { $arIdAgendas = array(); foreach ($listAgendas as $agenda) { if (_request('agendas_' . $agenda->id_agenda)) { $arIdAgendas[$agenda->id_agenda] = $agenda->id_agenda; } } $agendaService->setAgendaAffiches($arIdAgendas); } //on récupère en session les agendas à afficher $params->agendas = $agendaService->getAgendaAffiches(); //on met à jour la session $this->_setSessionSemaineParams($params); //on determine la date de début et de fin de la semaine en cours d'affichage $dateDebutSemaine = date('Ymd', $dateService->numweekToDate($params->numSemaine, $params->annee, 1)); //date au format bdd $dateFinSemaine = date('Ymd', $dateService->numweekToDate($params->numSemaine, $params->annee, 0)); //date au format bdd $arEventsSemaine = array(); //on récupère tous les évènements de la semaine en cours de vue foreach ((array) $params->agendas as $idAgenda) { $arEventsSemaine[$idAgenda] = $agendaService->checkEventOfAgendaInBdd($idAgenda, $dateDebutSemaine, $dateFinSemaine); } //on classe ces évènements par jour $arEventByDay = $agendaService->getEventsByDay($arEventsSemaine, $dateDebutSemaine, $dateFinSemaine); //on ordonne les évènements par ordre croissant d'heure de début d'évènement dans la journée $arEventByDay = $agendaService->getEventsInOrderByDay($arEventByDay); //on détermine l'heure de début et l'heure de fin pour l'affichage du calendrier //on travail sur des heures sans séparateur pour pouvoir les comparer $heureDeb = CopixConfig::get('agenda|heuredebcal'); $heureFin = CopixConfig::get('agenda|heurefincal'); foreach ((array) $arEventByDay as $jours) { if (!isset($jours->events)) { continue; } //print_r($jours); foreach ((array) $jours->events as $event) { if ($event->alldaylong_event == 0) { if ($dateService->heureWithSeparateurToheureWithoutSeparateur($event->heuredeb_event) < $dateService->heureWithSeparateurToheureWithoutSeparateur($heureDeb)) { $heureDeb = $dateService->heureWithSeparateurToheureWithoutSeparateur($event->heuredeb_event); } if ($dateService->heureWithSeparateurToheureWithoutSeparateur($heureFin) < $dateService->heureWithSeparateurToheureWithoutSeparateur($event->heurefin_event)) { $heureFin = $dateService->heureWithSeparateurToheureWithoutSeparateur($event->heurefin_event); } } } } //on arrondit à l'heure inférieure pour l'heure de début et à l'heure supérieure pour l'heure de fin $heureDeb = substr($heureDeb, 0, 2); if (substr($heureFin, 2, 2) == 0) { //si les minutes sont à 0, on arrondit à l'heure $heureFin = substr($heureFin, 0, 2); } else { //si les minutes ne sont pas à 0, on arrondit à l'heure supérieure $heureFin = substr($heureFin, 0, 2) + 1; } //on récupère les leçons de la semaine à afficher $arLecons = $agendaService->getLeconsByDay((array) $params->agendas, $dateDebutSemaine, $dateFinSemaine); // On récupère les travaux de la semaine par agenda $travailDAO = _ioDAO('cahierdetextes|cahierdetextestravail'); $agenda2cahier = array(); $arTravauxEnClasse = array(); $arTravauxAFaire = array(); foreach ($params->agendas as $agendaId) { $agendaInfos = Kernel::getModParentInfo('MOD_AGENDA', $agendaId); $agendaType = AgendaType::getAgendaTypeForNode($agendaInfos['type'], $agendaInfos['id']); $mods = Kernel::getModEnabled($agendaInfos['type'], $agendaInfos['id']); $cahierDeTextes = Kernel::filterModuleList($mods, 'MOD_CAHIERDETEXTES'); $agendaLevel = Kernel::getLevel($agendaInfos['type'], $agendaInfos['id']); if (isset($cahierDeTextes[0])) { $agenda2cahier[$agendaId] = $cahierDeTextes[0]->module_id; $travauxEnClasse = $travailDAO->findTravauxEnClasseByAgendaParJour($agendaId, $dateDebutSemaine, $dateFinSemaine, $agendaInfos['type'], $agendaInfos['id'], $agendaLevel); if (!is_null($travauxEnClasse)) { foreach ($travauxEnClasse as $date => $travail) { $arTravauxEnClasse[$date][$agendaId] = $travail; } } $travauxAFaire = $travailDAO->findTravauxAFaireByAgendaParJour($agendaId, $dateDebutSemaine, $dateFinSemaine, $agendaInfos['type'], $agendaInfos['id'], $agendaLevel); if (!is_null($travauxAFaire)) { foreach ($travauxAFaire as $date => $travail) { $arTravauxAFaire[$date][$agendaId] = $travail; } } } } //récupération de la liste des agendas affichés $listAgendasAffiches = $obj->getAgendaAffiches(); //template pour agenda $tplAgenda = new CopixTpl(); $tplAgenda->assign('MAIN_AGENDA', CopixZone::process('agenda|agendavuesemaine', array('elementsSemaineAffichee' => $params, 'arEventByDay' => $arEventByDay, 'heureDeb' => $heureDeb, 'heureFin' => $heureFin, 'arLecons' => $arLecons, 'arTravauxEnClasse' => $arTravauxEnClasse, 'arTravauxAFaire' => $arTravauxAFaire, 'agenda2cahier' => $agenda2cahier))); $title = $obj->getCurrentTitle(); //template principal $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', $title['title']); $menu = $agendaService->getAgendaMenu('week'); $tpl->assign('MENU', $menu); $tpl->assign('MAIN', $tplAgenda->fetch('agenda|main.agenda.tpl')); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * Suppression d'un service SSO. * * @author Christophe Beyer <*****@*****.**> * @since 2006/11/14 * @param integer $id Id du SSO à supprimer */ public function doDeleteService() { $id = $this->getRequest('id', null); $dao = CopixDAOFactory::create("sso|sso_auth"); $obj = $dao->get($id); $criticErrors = $errors = array(); if (!$obj) { $criticErrors[] = CopixI18N::get('sso.error.nosso'); } $mondroit = Kernel::getLevel("MOD_SSO", $obj->sso_auth_id_sso); if ($mondroit < PROFILE_CCV_ADMIN) { $criticErrors[] = CopixI18N::get('sso.error.norights'); } if ($criticErrors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $criticErrors), 'back' => CopixUrl::get('sso||'))); } $dao->delete($id); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('sso||')); }
public function processDelete() { //check flash if (!isset($this->flash->dashboardType) || !isset($this->flash->dashboardId)) { return $this->error('kernel|dashboard.admin.badOperation'); } $node_id = $this->flash->dashboardId; $node_type = $this->flash->dashboardType; //check security if (Kernel::getLevel($node_type, $node_id) < 60) { return $this->error('kernel|dashboard.admin.noRight'); } //delete records $this->db->update('module_admindash', array('content' => "''"), 'id_zone = ' . $node_id . ' AND type_zone = ' . $this->db->quote($node_type)); //go to index return $this->go('||'); }