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);
 }
예제 #18
0
<?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;
 }
예제 #23
0
 /**
  * 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
     *
예제 #27
0
 /**
  * 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;