/**
  * Prépare la création d'une aide simple
  *
  */
 public function processCreate()
 {
     // Initialisation d'un simplehelp
     $aide = _record('simplehelp');
     $this->_setSessionSimpleHelp($aide);
     return _arRedirect(_url('simplehelp|admin|edit'));
 }
 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();
 }
 /**
  * Sauvegarde les logs dans le fichier
  *
  * @param String $pMessage log à sauvegarder
  * @param String $tab tableau d'option
  */
 public function log($pProfil, $pType, $pLevel, $pDate, $pMessage, $pArExtra)
 {
     $dao = _ioDAO('copixlog');
     $newLogs = _record('copixlog');
     $newLogs->type = $pType;
     $newLogs->date = $pDate;
     $newLogs->profile = $pProfil;
     $newLogs->level = $pLevel;
     $newLogs->message = $pMessage;
     if (isset($pArExtra['classname'])) {
         $newLogs->classname = $pArExtra['classname'];
     }
     if (isset($pArExtra['line'])) {
         $newLogs->line = $pArExtra['line'];
     }
     if (isset($pArExtra['file'])) {
         $newLogs->file = $pArExtra['file'];
     }
     if (isset($pArExtra['functionname'])) {
         $newLogs->functionname = $pArExtra['functionname'];
     }
     if (isset($pArExtra['user'])) {
         $newLogs->user = $pArExtra['user'];
     }
     $dao->insert($newLogs);
 }
 public function _createContent(&$toReturn)
 {
     $tpl = new CopixTpl();
     $blog = $this->getParam('blog', '');
     $cat = $this->getParam('cat', null);
     $critere = $this->getParam('critere', null);
     //on récupère l'ensemble des articles du blog
     $dao = _dao('blog|blogarticle');
     if ($cat == null) {
         $date = $this->getParam('date', null);
         $arData = $dao->getAllArticlesFromBlog($blog->id_blog, $date);
     } else {
         $arData = $dao->getAllArticlesFromBlogByCat($blog->id_blog, $cat->id_bacg);
         $tpl->assign('cat', $cat);
     }
     //on filtre si on a fait une recherche sur les articles
     if ($critere != null) {
         $arData = $dao->getAllArticlesFromBlogByCritere($blog->id_blog, $critere);
     }
     //var_dump($arData);
     //on construit un tableau associatif entre l'identifiant de l'article et le nombre de commentaires
     foreach ($arData as $article) {
         //var_dump($article);
         $daoArticleComment =& CopixDAOFactory::getInstanceOf('blog|blogarticlecomment');
         $record = _record('blog|blogarticlecomment');
         $criteres = _daoSp();
         $criteres->addCondition('id_bact', '=', $article->id_bact);
         $criteres->addCondition('is_online', '=', 1);
         $resultat = $daoArticleComment->findBy($criteres);
         $arNbCommentByArticle[$article->id_bact] = count($resultat);
     }
     if (count($arData) > 0) {
         //encodage des URL des catégories pour caractères spéciaux
         foreach ($arData as $key => $data) {
             //Modification suite à apparition d'un warning due à l'absence de catégories , vboniface 06.11.2006
             $arData[$key]->key = $key;
             if (isset($arData[$key]->categories)) {
                 foreach ($arData[$key]->categories as $keyCat => $categorie) {
                     $arData[$key]->categories[$keyCat]->url_bacg = urlencode($categorie->url_bacg);
                 }
             }
         }
         if (count($arData) <= intval(CopixConfig::get('blog|nbMaxArticles'))) {
             $tpl->assign('pager', "");
             $tpl->assign('listArticle', $arData);
             $tpl->assign('arNbCommentByArticle', $arNbCommentByArticle);
         } else {
             $params = array('perPage' => intval(CopixConfig::get('blog|nbMaxArticles')), 'delta' => 5, 'recordSet' => $arData, 'template' => '|pager.tpl');
             $Pager = CopixPager::Load($params);
             $tpl->assign('pager', $Pager->GetMultipage());
             $tpl->assign('listArticle', $Pager->data);
             $tpl->assign('arNbCommentByArticle', $arNbCommentByArticle);
         }
         //rajout suite à bug mantis 54 vboniface 06.11.2006
         $tpl->assign('blog', $blog);
     }
     // retour de la fonction :
     $toReturn = $tpl->fetch('listarticle.tpl');
     return true;
 }
 /**
  * Création d'un module de contacts
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2010/08/25
  * @param array $infos (option) Infos sur le module. [title], [subtitle], [node_type], [node_id]
  * @return integer l'Id du module cree ou NULL si erreur
  */
 public function create($infos = array())
 {
     $record = _record('contact|contacts');
     $newForum->titre = isset($infos['title']) && $infos['title'] ? $infos['title'] : '';
     $newForum->date_creation = date("Y-m-d H:i:s");
     _dao('contact|contacts')->insert($record);
     return $record->id !== NULL ? $record->id : NULL;
 }
 /**
  * Validation des éléments en base de données
  */
 public function doValid()
 {
     try {
         $record = _record('copixtestautodao');
     } catch (Exception $e) {
         return CopixActionGroup::process();
     }
 }
 /**
  * Création d'une malle
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/12/06
  * @param array $infos (option) informations permettant d'initialiser la malle. Index: title, node_type, node_id
  * @return integer l'Id de la malle créée ou NULL si erreur
  */
 public function create($infos = array())
 {
     $return = NULL;
     $dao = _dao("module_visioscopia");
     $new = _record("module_visioscopia");
     $new->date_creation = date("Y-m-d H:i:s");
     $dao->insert($new);
     return $new->id;
 }
 /**
  * Creation du module
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2009/01/23
  * @param array $infos (option) Infos sur le module. [title], [subtitle], [node_type], [node_id]
  * @return integer Id cree ou NULL si erreur
  */
 public function create($infos = array())
 {
     $dao = _dao("teleprocedures|teleprocedure");
     $new = _record("teleprocedures|teleprocedure");
     $new->titre = isset($infos['title']) && $infos['title'] ? $infos['title'] : '';
     $new->date_creation = date("Y-m-d H:i:s");
     $dao->insert($new);
     return $new->id !== NULL ? $new->id : NULL;
 }
 /**
  * Création d'un forum
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/11/08
  * @param array $infos (option) Infos sur le module. [title], [subtitle], [node_type], [node_id]
  * @return integer l'Id du forum créé ou NULL si erreur
  */
 public function create($infos = array())
 {
     $daoForum = _dao("forum|forum_forums");
     $newForum = _record("forum|forum_forums");
     $newForum->titre = isset($infos['title']) && $infos['title'] ? $infos['title'] : '';
     $newForum->date_creation = date("Y-m-d H:i:s");
     $daoForum->insert($newForum);
     return $newForum->id !== NULL ? $newForum->id : NULL;
 }
 /**
  * @param
  * updateBlogFunctions
  * @return
  */
 public function updateBlogFunctions($id_blog, $tabBlogFunctions)
 {
     $blogFunctions = _record('blogfunctions');
     foreach ($tabBlogFunctions as $fct) {
         eval('$blogFunctions->' . $fct->value . '=' . $fct->selected . ';');
     }
     $blogFunctions->id_blog = $id_blog;
     $this->update($blogFunctions);
 }
 public function create()
 {
     $dao = _dao("magicmail|magicmail");
     $new = _record("magicmail|magicmail");
     $new->magicmail_login = '';
     $new->magicmail_domain = '';
     $dao->insert($new);
     return $new->magicmail_id;
 }
 public function create()
 {
     $return = null;
     $dao = _dao("cahierdetextes|cahierdetextes");
     $new = _record("cahierdetextes|cahierdetextes");
     $dao->insert($new);
     if ($new->id !== null) {
         $return = $new->id;
     }
     return $return;
 }
 /**
  * Envoie un minimail
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/10/18
  * @param string title Titre du minimail
  * @param string message Corps du minimail
  * @param integer from_id Id utilisateur de l'exp�diteur
  * @param array destin Id tableau avec les destinataires (cl� = id user)
  * @return mixed Id du message cr�� ou NULL si erreur
  */
 public function sendMinimail($title, $message, $from_id, $destin, $format)
 {
     $res = NULL;
     $DAOminimail_from = _dao("minimail|minimail_from");
     $DAOminimail_to = _dao("minimail|minimail_to");
     $newMp = _record("minimail|minimail_from");
     $newMp->title = $title;
     $newMp->message = $message;
     $newMp->format = $format;
     $newMp->date_send = date("Y-m-d H:i:s");
     $newMp->from_id = $from_id;
     $newMp->is_deleted = 0;
     $DAOminimail_from->insert($newMp);
     if ($newMp->id !== NULL) {
         //print_r($newMp);
         // On parcourt chaque destinataire
         while (list($to_id, ) = each($destin)) {
             // print_r("to_id=$to_id / to_login=$to_login");
             $newDest = _record("minimail|minimail_to");
             $newDest->id_message = $newMp->id;
             $newDest->to_id = $to_id;
             $newDest->date_read = 0;
             $newDest->is_read = 0;
             $newDest->is_replied = 0;
             $newDest->is_deleted = 0;
             $DAOminimail_to->insert($newDest);
             // ======= Alerte mail ===============
             // On vérifie que l'envoi de mails est activé, qu'un serveur SMTP est configuré, que le destinataire a coché l'option "etre prêvenu par mail" et qu'il a renseigné un mail
             if ($newDest->id2 && CopixConfig::get('|mailEnabled') == 1 && CopixConfig::get('|mailSmtpHost')) {
                 $prefs = Prefs::getPrefs($to_id);
                 if (isset($prefs['prefs']['alerte_mail_email']) && isset($prefs['minimail']['alerte_minimail']) && $prefs['prefs']['alerte_mail_email'] && $prefs['minimail']['alerte_minimail'] == 1) {
                     $userInfoFrom = Kernel::getUserInfo("ID", $from_id);
                     //print_r($userInfoFrom);
                     $to = $prefs['prefs']['alerte_mail_email'];
                     $auteur = utf8_decode($userInfoFrom['prenom'] . ' ' . $userInfoFrom['nom'] . ' (' . $userInfoFrom['login'] . ')');
                     $subject = CopixI18N::get('minimail|minimail.mail.alert.subject', array($auteur));
                     $message = str_replace('<br />', "\n", CopixI18N::get('minimail|minimail.mail.alert.body', array($auteur, CopixUrl::get('minimail||getMessage', array('id' => $newMp->id)), CopixUrl::get())));
                     $from = CopixConfig::get('default|mailFrom');
                     $fromName = CopixConfig::get('default|mailFromName');
                     $cc = $cci = '';
                     $monMail = new CopixTextEMail($to, $cc, $cci, $subject, $message);
                     $send = $monMail->send($from, $fromName);
                 }
             }
             // ======= Fin alerte mail ===============
         }
         $res = $newMp->id;
         if ($res) {
             $plugStats = CopixPluginRegistry::get("stats|stats");
             $plugStats->setParams(array('module' => 'minimail', 'action' => 'sendMinimail', 'objet_a' => $res));
         }
     }
     return $res;
 }
 public function create()
 {
     $return = NULL;
     $dao = _dao("sso|sso");
     $new = _record("sso|sso");
     $new->sso_date_crea = date("Y-m-d H:i:s");
     $dao->insert($new);
     if ($new->sso_id !== NULL) {
         $return = $new->sso_id;
     }
     return $return;
 }
 public function _createContent(&$toReturn)
 {
     $tpl = new CopixTpl();
     $blog = $this->getParam('blog', '');
     $comment = $this->getParam('comment', NULL);
     //on récupère l'ensemble des articles du blog
     $dao = _dao('blog|blogarticle');
     //$article = $dao->getArticleByUrl($blog->id_blog, $this->getParam('article', ''));
     list($id_bact, ) = explode("-", $this->getParam('article', ''));
     $article = $dao->getArticleById($blog->id_blog, $id_bact);
     if (!$article) {
         $toReturn = '{/}' . $tpl->fetch('showarticle.tpl');
         return true;
     }
     //encodage des URL des catégories pour caractères spéciaux
     if (is_array($article->categories)) {
         foreach ($article->categories as $key => $categorie) {
             $article->categories[$key]->url_bacg = urlencode($categorie->url_bacg);
         }
     }
     $tpl->assign('article', $article);
     // Recherche de tous les commentaires associés à cet article
     $commentDAO = _dao('blog|blogarticlecomment');
     $res = $commentDAO->findCommentOrderBy($article->id_bact, 1);
     $listComment = array();
     foreach ($res as $r) {
         $r->time_bacc = BDToTime($r->time_bacc);
         array_push($listComment, $r);
     }
     if ($comment) {
         $toEdit = $comment;
     } else {
         // On récupère l'utilisateur connecté
         $user = BlogAuth::getUserInfos();
         $toEdit = _record('blogarticlecomment');
         $toEdit->authorid_bacc = $user->userId;
         $toEdit->authorname_bacc = $user->name;
         $toEdit->authoremail_bacc = $user->email;
         $toEdit->authorweb_bacc = $user->web;
     }
     $tpl->assign('blog', $blog);
     $tpl->assign('toEdit', $toEdit);
     $tpl->assign('listComment', $listComment);
     $tpl->assign('errors', $this->getParam('errors', null));
     $tpl->assign('showErrors', $this->getParam('showErrors', false));
     $tpl->assign('canComment', BlogAuth::canComment($blog->id_blog));
     $plugStats = CopixPluginRegistry::get("stats|stats");
     $plugStats->setParams(array('objet_a' => $article->id_bact));
     // retour de la fonction :
     $toReturn = $article->name_bact . '{/}' . $tpl->fetch('showarticle.tpl');
     return true;
 }
 /**
  * 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;
     $agenda->type_agenda = AgendaType::getAgendaTypeForNode($infos['node_type'], $infos['node_id']);
     $daoAgenda->insert($agenda);
     return $agenda->id_agenda !== NULL ? $agenda->id_agenda : NULL;
 }
 /**
  * Ajoute un message à une liste, et s'occupe de l'envoyer à tous ses membres en minimail
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/11/23
  * @param integer $liste Id de la liste
  * @param integer $auteur Id de l'utilisateur auteur du message
  * @param string $titre Titre du message
  * @param string $message Corps du message
  * @return integer l'Id du message inséré ou NULL si erreur
  */
 public function addListeMessage($liste, $auteur, $titre, $message)
 {
     $daoListes = _dao("liste|liste_listes");
     $daoMessages = _dao("liste|liste_messages");
     $kernelService =& CopixClassesFactory::Create('kernel|kernel');
     $minimailService =& CopixClassesFactory::Create('minimail|minimailService');
     $res = NULL;
     $rListe = $daoListes->get($liste);
     if ($rListe) {
         $parent = $kernelService->getModParentInfo("MOD_LISTE", $liste);
         //print_r($parent);
         $rListe->parent = $parent;
         //die();
         $newMessage = _record("liste|liste_messages");
         $newMessage->liste = $liste;
         $newMessage->auteur = $auteur;
         $newMessage->titre = $titre;
         $newMessage->message = $message;
         $newMessage->date = date("Y-m-d H:i:s");
         $daoMessages->insert($newMessage);
         if ($newMessage->id !== NULL) {
             $dest = array();
             // On cherche le parent
             $parent = $kernelService->getModParentInfo("MOD_LISTE", $liste);
             // Puis les membres du parent
             $childs = $kernelService->getNodeChilds($parent["type"], $parent["id"]);
             // On parcourt les membres
             foreach ($childs as $child) {
                 $userInfo = $kernelService->getUserInfo($child["type"], $child["id"]);
                 if ($userInfo && $userInfo["user_id"] && $userInfo["user_id"] != $auteur) {
                     $dest[$userInfo["user_id"]] = 1;
                 }
             }
             if ($dest) {
                 $format = CopixConfig::get('minimail|default_format');
                 if ($format == 'dokuwiki' || $format == 'wiki') {
                     $message .= "\n\n----\n" . CopixI18N::get('liste|liste.message.footer', array(1 => $rListe->parent["nom"], 2 => CopixUrl::get($rListe->parent["module"] . '||getHomeAdmin', array("id" => $rListe->parent["id"]))));
                 } else {
                     $message .= "<p>-- </p><p>" . CopixI18N::get('liste|liste.message.footerHtml', array(1 => $rListe->parent["nom"], 2 => CopixUrl::get($rListe->parent["module"] . '||getHomeAdmin', array("id" => $rListe->parent["id"])))) . "</p>";
                 }
                 $send = $minimailService->sendMinimail($titre, $message, $auteur, $dest, CopixConfig::get('minimail|default_format'));
             }
             $res = $newMessage->id;
         }
     }
     return $res;
 }
 /**
  * Crée un groupe
  *
  * Crée le groupe, donne les droits de propriétaire à son créateur, et initialise les premiers modules.
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/11/08
  * @param string $titre Titre
  * @param string $description Description
  * @param integer $is_open 1 si le groupe est public, 0 s'il est privé
  * @param integer $createur Id utilisateur du créateur
  * @param array $tab_membres Tableau avec les membres à inscrire de suite (clé = id user)
  * @param array $his_modules Tableau avec les modules à installer et à relier à ce club
  * @param string $parentClass Type du parent (BU_ECOLE...)
  * @param integer $parentRef Référence du parent
  * @return integer l'Id du groupe créé ou NULL si erreur
  */
 public function createGroupe($titre, $description, $is_open, $createur, $tab_membres, $his_modules, $parentClass, $parentRef)
 {
     $res = NULL;
     if (1) {
         $daoGroupe = _dao("groupe");
         $newGroupe = _record("groupe");
         $newGroupe->titre = $titre;
         $newGroupe->description = $description;
         $newGroupe->is_open = $is_open;
         $newGroupe->date_creation = date("Y-m-d H:i:s");
         $newGroupe->createur = $createur;
         $daoGroupe->insert($newGroupe);
         if ($newGroupe->id !== NULL) {
             //print_r($his_modules);
             $kernelClasse = CopixClassesFactory::create("kernel|Kernel");
             // On ajoute les modules
             while (list($moduleType, ) = each($his_modules)) {
                 list(, $module) = explode("_", strtolower($moduleType));
                 //print_r($module);
                 $classeNew = CopixClassesFactory::create("{$module}|Kernel{$module}");
                 $new = $classeNew->create(array('title' => $titre, 'node_type' => 'CLUB', 'node_id' => $newGroupe->id));
                 //print_r("new=$new");
                 if ($new) {
                     // Module bien crée, on le rattache
                     $register = $kernelClasse->registerModule($moduleType, $new, "CLUB", $newGroupe->id);
                 }
             }
             // On insère le créateur
             $userInfo = $kernelClasse->getUserInfo("ID", $createur);
             $kernelClasse->setLevel("CLUB", $newGroupe->id, $userInfo["type"], $userInfo["id"], PROFILE_CCV_ADMIN);
             // On insère les éventuels membres
             while (list($userId, ) = each($tab_membres)) {
                 $userInfo = $kernelClasse->getUserInfo("ID", $userId);
                 $kernelClasse->setLevel("CLUB", $newGroupe->id, $userInfo["type"], $userInfo["id"], PROFILE_CCV_MEMBER);
             }
             // On rattache le groupe à son parent
             $kernelClasse->setClubParent($newGroupe->id, $parentClass, $parentRef);
             $res = $newGroupe->id;
             //die();
         }
     }
     return $res;
 }
 /**
  * Ajout d'un commentaire dans la base après vérification des droits d'écriture
  * et que l'on a bien la bonne session
  */
 public function processAddComment()
 {
     //Vérifie que l'on a bien un paramètre id
     CopixRequest::assert('id');
     if (($informations = _ioClass('commentsservices')->getEnabled(_request('id'))) === false) {
         throw new Exception(_i18n('comments.error.badidsession'));
     }
     //_log ('FROMPAGE: '.$informations['fromPage']);
     //_log ('POUR ID: '._request ('id'));
     //vérifie les droits d'écriture
     if ($informations['writeCredential'] != "") {
         CopixAuth::getCurrentUser()->assertCredential($informations['writeCredential']);
     }
     //Ajout du commentaire
     $objComment = _record('comments');
     $objComment->content_comment = _request('content');
     $objComment->format_comment = 'TEXT';
     //aujourd'hui on ne supporte que le format text pour les commentaires
     $objComment->authorlogin_comment = _request('author');
     $objComment->authoremail_comment = _request('mail');
     $objComment->authorsite_comment = _request('site');
     $objComment->page_comment = $informations['id'];
     $objComment->date_comment = date('YmdHis');
     if (CopixConfig::get('comments|captcha') != 0) {
         $objComment->captcha_id = _request('captcha_id');
         $objComment->captcha_answer = _request('captcha_answer');
     }
     try {
         if (_request('preview') === null) {
             _ioDAO('comments')->insert($objComment);
             _ioClass('commentsservices')->removeEnabled($informations['id']);
             _notify('Content', array('id' => $informations['id'], 'kind' => 'comment', 'keywords' => null, 'title' => $informations['id'], 'summary' => null, 'content' => $objComment->content_comment, 'url' => $informations['fromPage']));
             return _arRedirect($informations['fromPage']);
         } else {
             _ioClass('commentsservices')->updateEnabled($objComment);
             return _arRedirect(_url($informations['fromPage'], array('preview' => 1, 'comments' => 'list')));
         }
     } catch (CopixDAOCheckException $e) {
         _ioClass('commentsservices')->updateEnabled($objComment);
         return _arRedirect(_url($informations['fromPage'], array('errors' => 1, 'comments' => 'list')));
     }
 }
 /**
  * Enregistre les droits séléctionné
  */
 public function processRecord()
 {
     CopixRequest::assert('id_group', 'handler_group');
     $bool = _request('bool', array());
     foreach (_request('value', array()) as $value) {
         $arValue = explode('|', $value);
         $result = _dao('dynamiccredentialsgroups')->findBy(_daoSP()->addCondition('id_dc', '=', $arValue[0])->addCondition('id_dcv', '=', isset($arValue[1]) ? $arValue[1] : null)->addCondition('id_group', '=', _request('id_group'))->addCondition('handler_group', '=', _request('handler_group')));
         if (!isset($bool[$value]) && isset($result[0])) {
             _dao('dynamiccredentialsgroups')->delete($result[0]->id_dcg);
         } elseif (isset($bool[$value]) && !isset($result[0])) {
             $record = _record('dynamiccredentialsgroups');
             $record->id_group = _request('id_group');
             $record->handler_group = _request('handler_group');
             $record->id_dc = $arValue[0];
             $record->id_dcv = isset($arValue[1]) ? $arValue[1] : null;
             _dao('dynamiccredentialsgroups')->insert($record);
         }
     }
     return _arRedirect(_url('auth|dynamic|list', array('id_group' => _request('id_group'), 'handler_group' => _request('handler_group'), 'url_return' => _request('url_return'))));
 }
Пример #21
0
 public function set($data = null)
 {
     $dao = _dao("logs|logs");
     $nouveau = _record("logs|logs");
     $types = array('ERROR', 'DEBUG', 'INFO', 'ALERT', 'LOG', 'AUTO', 'GO');
     if (isset($data['type']) && in_array($data['type'], $types)) {
         $nouveau->logs_type = $data['type'];
     } else {
         $nouveau->logs_type = 'UNKNOWN';
     }
     if (isset($data['message'])) {
         $nouveau->logs_message = $data['message'];
     }
     $module = CopixRequest::get('module', 'kernel');
     $action = CopixRequest::get('action', 'default');
     $nouveau->logs_mod_name = $module;
     $nouveau->logs_mod_action = $action;
     $user = Kernel::getSessionBU();
     if (sizeof($user) && isset($user['id'])) {
         $nouveau->logs_user_id = $user['id'];
         $nouveau->logs_user_login = $user['login'];
     }
     // Node
     $nouveau->logs_date = date("Y-m-j H:i:s", time());
     $nouveau->logs_user_ip = $_SERVER['REMOTE_ADDR'];
     $nouveau->logs_url = $_SERVER['QUERY_STRING'];
     // Kernel::MyDebug( $nouveau );
     if (isset($data['node_type'])) {
         $nouveau->logs_node_type = $data['node_type'];
     }
     if (isset($data['node_id'])) {
         $nouveau->logs_node_id = $data['node_id'];
     }
     if (isset($data['module_type'])) {
         $nouveau->logs_module_type = $data['module_type'];
     }
     if (isset($data['module_id'])) {
         $nouveau->logs_module_id = $data['module_id'];
     }
     $dao->insert($nouveau);
 }
 public function setUp()
 {
     $copixConfig = CopixConfig::instance();
     $this->_userHandlers = $copixConfig->copixauth_getRegisteredUserHandlers();
     $copixConfig->copixauth_clearUserHandlers();
     $copixConfig->copixauth_registerUserHandler(array('name' => 'auth|dbuserhandler', 'priority' => 10, 'required' => false));
     $this->_groupHandlers = $copixConfig->copixauth_getRegisteredGroupHandlers();
     $copixConfig->copixauth_clearGroupHandlers();
     $this->_credentialHandlers = $copixConfig->copixauth_getRegisteredCredentialHandlers();
     $copixConfig->copixauth_clearCredentialHandlers();
     $sp = _daoSP();
     $sp->addCondition('login_dbuser', '=', 'CopixTest');
     _dao('dbuser')->deleteBy($sp);
     $record = _record('dbuser');
     $record->login_dbuser = '******';
     $record->password_dbuser = md5('CopixTestPassword');
     $record->enabled_dbuser = 1;
     $record->email_dbuser = '******';
     _dao('dbuser')->insert($record);
     $this->_userId = $record->id_dbuser;
 }
 /**
  * Affiche la liste des groupes de l'utilisateur courant
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2006/03/23
  * @param string $kw Mot-clé pour la recherche (option)
  */
 public function _createContent(&$toReturn)
 {
     $toReturn = '';
     $tpl = new CopixTpl();
     if (CopixConfig::exists('|conf_ModConcerto') && CopixConfig::get('|conf_ModConcerto') && _currentUser()->getExtra('type') == 'USER_RES') {
         $new_module = null;
         $sql = 'SELECT id,login,password FROM kernel_bu_auth WHERE node_type=\'responsable\' AND node_id=' . _currentUser()->getExtra('id') . ' AND service=\'concerto\'';
         $concerto = _doQuery($sql);
         if ($concerto) {
             $new_module = _record("kernel|kernel_mod_enabled");
             $new_module->node_type = _currentUser()->getExtra('type');
             $new_module->node_id = _currentUser()->getExtra('id');
             $new_module->module_type = "MOD_CONCERTO";
             $new_module->module_id = 0;
             $modules[] = $new_module;
             $tpl->assign('concerto', $new_module);
             $tpl->assign('concerto_data', $concerto);
             $toReturn = $tpl->fetch('concerto|concerto-home.tpl');
         }
     }
     return true;
 }
 public function registerCredential($pName, $pValues = array())
 {
     $result = _dao('dynamiccredentials')->findBy(_daoSP()->addCondition('name_dc', '=', $pName));
     if (!isset($result[0])) {
         $record = _record('dynamiccredentials');
         $record->name_dc = $pName;
         _dao('dynamiccredentials')->insert($record);
     } else {
         $record = $result[0];
     }
     foreach ($pValues as $key => $value) {
         $resultValue = _dao('dynamiccredentialsvalues')->findBy(_daoSP()->addCondition('value_dcv', '=', $key)->addCondition('id_dc', '=', $record->id_dc));
         if (!isset($resultValue[0])) {
             $recordValue = _record('dynamiccredentialsvalues');
             $recordValue->id_dc = $record->id_dc;
             $recordValue->value_dcv = $key;
             $recordValue->level_dcv = $value;
             _dao('dynamiccredentialsvalues')->insert($recordValue);
         } else {
         }
     }
 }
 /**
  * Cr�ation d'une malle
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/12/06
  * @param array $infos (option) informations permettant d'initialiser la malle. Index: title, node_type, node_id
  * @return integer l'Id de la malle cr��e ou NULL si erreur
  */
 public function create($infos = array())
 {
     $return = NULL;
     $dao = _dao("malle|malle_malles");
     $new = _record("malle|malle_malles");
     $new->titre = $infos['title'] ? $infos['title'] : CopixI18N::get('malle|malle.moduleDescription');
     $new->date_creation = date("Y-m-d H:i:s");
     $new->cle = MalleService::createKey();
     $dao->insert($new);
     if ($new->id !== NULL) {
         $path2data = realpath('./static/malle');
         $folder = $path2data . '/' . $new->id . '_' . $new->cle;
         if ($mkdir = @mkdir($folder, 0777)) {
             chmod($folder, 0777);
             $return = $new->id;
         }
         if (!$return) {
             MalleService::deleteDir($folder);
             $dao->delete($new->id);
         }
     }
     return $return;
 }
 /**
  * Ajout d'une info supplementaire dans une intervention. Le message est ajoute avec l'utilisateur courante, a la date du moment
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2009/03/04
  * @param string $info_message Champ message
  * @param string $info_message Champ commentaire
  * @return integer Id de l'info ajoutee
  */
 public function insertInfoSupp($info_message, $info_commentaire)
 {
     $daoInfoSupp = _dao("teleprocedures|infosupp");
     $daoIntervention = _dao("teleprocedures|intervention");
     $rForm = _record('teleprocedures|infosupp');
     //var_dump($this);
     $session = Kernel::getSessionBU();
     $rForm->idinter = $this->idinter;
     $rForm->iduser = $session['user_id'];
     $rForm->dateinfo = date('Y-m-d H:i:s');
     if ($info_message && trim($info_message) != '<br />') {
         $rForm->info_message = $info_message;
     }
     if ($info_commentaire && trim($info_commentaire) != '<br />') {
         $rForm->info_commentaire = $info_commentaire;
     }
     $daoInfoSupp->insert($rForm);
     if ($rForm->idinfo > 0 && $rForm->info_message) {
         // MAJ uniquement si echange
         $this->datederniere = $rForm->dateinfo;
         $daoIntervention->update($this);
     }
     return $rForm->idinfo;
 }
Пример #27
0
 public function set($module, $code, $value, $user = -1)
 {
     $dao = _dao('prefs|prefs');
     if ($user == -1) {
         $bu = Kernel::getSessionBU();
         if (isset($bu['user_id'])) {
             $user = $bu['user_id'];
         }
     }
     if ($pref = $dao->get($user, $module, $code)) {
         $dao->delete($user, $module, $code);
     }
     $pref = _record('prefs|prefs');
     $pref->prefs_user = $user;
     $pref->prefs_module = $module;
     $pref->prefs_code = $code;
     $pref->prefs_value = $value;
     $dao->insert($pref);
 }
 public function getGroup()
 {
     if (!Kernel::isAdmin()) {
         return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('||'));
     }
     $tpl = new CopixTpl();
     $tplGrVilles = new CopixTpl();
     CopixHTMLHeader::addCSSLink(_resource("styles/module_regroupements.css"));
     $regroupements_service =& CopixClassesFactory::Create('regroupements|regroupements');
     $tpl->assign('TITLE_PAGE', CopixI18N::get('regroupements|regroupements.villes.titre'));
     $tpl->assign('MENU', $regroupements_service->getMenu());
     $dao_grvilles_gr2ville = CopixDAOFactory::create("regroupements|grvilles_gr2ville");
     $dao_grvilles = CopixDAOFactory::create("regroupements|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('regroupements|villes|'));
     }
     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("regroupements|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("regroupements|grvilles_gr2ville");
         $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("regroupements|grvilles_gr2ville")->insert($grvilles_gr2ville);
             }
         }
         if (_request("form_id") == 0) {
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('regroupements|villes|', 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);
 }
 /**
  * Saves the value for id, will compile if different from the actual value.
  * @param string $id l'identifiant de l'élément
  * @param string $value la valeur du paramètre de configuration
  * @return void
  */
 public function set($id, $value)
 {
     //if the config var exists only....
     if (array_key_exists($id, $this->_values)) {
         //Update the value in the file.
         $this->_configVars[$id]['Value'] = $value;
         $this->_values[$id] = $value;
         //Saves changes in the database
         if ($this->_checkDBConnection()) {
             $dao = _ioDAO('copix:CopixConfig');
             $toInsert = _record('copix:CopixConfig');
             $toInsert->id_ccfg = $id;
             $toInsert->module_ccfg = $this->module;
             $toInsert->value_ccfg = $value;
             if ($dao->get($toInsert->id_ccfg) === false) {
                 $dao->insert($toInsert);
                 //did not exists before
             } else {
                 $dao->update($toInsert);
                 //updates the DB values
             }
         }
         //Saves changes in the PHP File
         $this->_writeInPHPCache();
     } else {
         throw new CopixException(_i18n('copix.error.module.unknowParameter', array($id, $this->module)));
     }
 }
Пример #30
0
 public static function getModNotifications(&$module)
 {
     if (!_currentUser()->getExtra("user_id")) {
         return $module;
     }
     // echo('-');
     $module_name = preg_replace('/^MOD_/', '', $module->module_type);
     $lastvisit = _dao('kernel|kernel_notifications_lastvisit')->findBy(_daoSp()->addCondition('user_id', '=', _currentUser()->getExtra("user_id"))->addCondition('node_type', '=', $module->node_type)->addCondition('node_id', '=', $module->node_id)->addCondition('module_type', '=', $module_name)->addCondition('module_id', '=', $module->module_id));
     if (count($lastvisit)) {
         // Déjà une visite -> On vérifie le cache
         // echo "XXX";
         if ($lastvisit[0]->last_check && $lastvisit[0]->last_check >= date('YmdHis', strtotime("-10 sec"))) {
             // Si le cache est encore valide -> On retourne les infos du cache
             // echo "cached($module_name/$module->module_id) ";
             $module->notification_number = $lastvisit[0]->last_number;
             $module->notification_message = $lastvisit[0]->last_message;
         } else {
             // S'il n'y a pas de cache ou qu'il est invalide -> On demande les infos au module
             // echo "not-cached($module_name/$module->module_id) ";
             $arModulesPath = CopixConfig::instance()->arModulesPath;
             foreach ($arModulesPath as $modulePath) {
                 $class_file = $modulePath . strtolower($module_name) . '/' . COPIX_CLASSES_DIR . 'kernel' . strtolower($module_name) . '.class.php';
                 if (!file_exists($class_file)) {
                     continue;
                 }
                 $module_class =& CopixClassesFactory::Create($module_name . '|Kernel' . $module_name);
                 if (is_callable(array($module_class, 'getNotifications'))) {
                     $module_class->getNotifications($module, $lastvisit[0]);
                     $lastvisit[0]->last_check = date('Y-m-d H:i:s');
                     $lastvisit[0]->last_number = $module->notification_number;
                     $lastvisit[0]->last_message = $module->notification_message;
                     _dao('kernel|kernel_notifications_lastvisit')->update($lastvisit[0]);
                     /*
                     echo "<pre>";
                     print_r($module);
                     print_r($lastvisit[0]);
                     die();
                     */
                 }
             }
         }
     } else {
         // Pas encore de visite -> Pas de notif pour l'instant
         // echo "NOT_visited ";
         $module->notification_number = 0;
         $module->notification_message = '';
         // Initialisation, même sans entrer dans le module
         $lastvisit = _record("kernel|kernel_notifications_lastvisit");
         $lastvisit->user_id = _currentUser()->getExtra("user_id");
         // id Copix
         $lastvisit->date = date('Y-m-d H:i:s');
         $lastvisit->node_type = $module->node_type;
         $lastvisit->node_id = $module->node_id;
         $lastvisit->module_type = $module_name;
         $lastvisit->module_id = $module->module_id;
         _dao("kernel|kernel_notifications_lastvisit")->insert($lastvisit);
     }
     // [module_nom] => Agenda
     // echo "<pre>"; print_r($module); die();
     return $module;
 }