/** * getLoginForm * * Affiche la liste des comptes à créer, avec proposition de login/passwd. * @author Frédéric Mossmann * @since 14.02.2006 * */ public function getLoginForm() { $comptes_service =& CopixClassesFactory::Create('comptes|ComptesService'); $bu_dao =& CopixDAOFactory::create("kernel|kernel_bu2user"); $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', CopixI18N::get('comptes.moduleDescription') . " » " . CopixI18N::get('comptes.title.getloginform')); $menu[] = array('txt' => CopixI18N::get('comptes.menu.return_listes'), 'url' => CopixUrl::get('comptes||getNode', array('type' => _request('type'), 'id' => _request('id')))); $tpl->assign('MENU', $menu); if ($pUsers = _request('users')) { $users = array(); // $pUsers = _request('users'); //var_dump($pUsers); foreach ($pUsers as $user) { if (ereg('(.+)-(.+)', $user, $user_infos)) { $user_type = $user_infos[1]; $user_id = $user_infos[2]; $user_infos = Kernel::getUserInfo($user_type, $user_id); // Vérification de l'existance d'un login. // -> Si c'est le cas, il ne faut pas proposer un nouveau login. $bu_user = $bu_dao->getByBUID($user_type, $user_id); if (!count($bu_user)) { $user_infos['login'] = $comptes_service->createLogin($user_infos); $user_infos['passwd'] = $comptes_service->createPasswd(); $users[] = $user_infos; } } } } elseif ($pReset = _request('reset')) { $users = array(); $pNodeType = _request('type'); $pNodeId = _request('id'); $childs = Kernel::getNodeChilds($pNodeType, $pNodeId); $users_dump = Kernel::filterNodeList($childs, $pReset); if ($pReset == 'USER_RES') { $users_dump = array(); $eleves = Kernel::filterNodeList($childs, 'USER_ELE'); foreach ($eleves as $eleve) { $parents = Kernel::getNodeChilds($eleve['type'], $eleve['id']); $parents = Kernel::filterNodeList($parents, 'USER_RES'); foreach ($parents as $parent) { $users_dump[] = $parent; } } } foreach ($users_dump as $user) { $user_infos = Kernel::getUserInfo($user['type'], $user['id']); $bu_user = $bu_dao->getByBUID($user['type'], $user['id']); // _dump($user_infos); // _dump($bu_user); if (count($bu_user)) { $user_infos['login'] = $bu_user[0]->user_login; $user_infos['passwd'] = $comptes_service->createPasswd(); $users[] = $user_infos; } } } else { $urlReturn = CopixUrl::get('comptes||getNode', array('type' => _request('type'), 'id' => _request('id'))); return new CopixActionReturn(COPIX_AR_REDIRECT, $urlReturn); } // Ajoute le type d'utilisateur en toute lettres. foreach ($users as $user_key => $user_val) { $users[$user_key]['type_nom'] = Kernel::Code2Name($user_val['type']); } $tpl->assign('MAIN', CopixZone::process('comptes|loginform', array('users' => $users, 'type' => _request('type'), 'id' => _request('id'), 'reset' => _request('reset')))); $tpl->assign('MENU', $this->menu); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
public function whereAmI($node_type = false, $node_id = false) { // Patch EN2010 return array(); $where = array(); if ($node_type == 'BU_CLASSE') { $where['BU_CLASSE']['type'] = $node_type; $where['BU_CLASSE']['id'] = $node_id; $infos = Kernel::getNodeInfo($node_type, $node_id); $where['BU_CLASSE']['nom'] = $infos['nom']; $parents = Kernel::getNodeParents($node_type, $node_id); $parent = Kernel::filterNodeList($parents, 'BU_ECOLE'); $node_type = $parent[0]["type"]; $node_id = $parent[0]["id"]; } if ($node_type == 'BU_ECOLE') { $where['BU_ECOLE']['type'] = $node_type; $where['BU_ECOLE']['id'] = $node_id; $infos = Kernel::getNodeInfo($node_type, $node_id); $where['BU_ECOLE']['nom'] = $infos['nom']; $parents = Kernel::getNodeParents($node_type, $node_id); $parent = Kernel::filterNodeList($parents, 'BU_VILLE'); $node_type = $parent[0]["type"]; $node_id = $parent[0]["id"]; } if ($node_type == 'BU_VILLE') { $where['BU_VILLE']['type'] = $node_type; $where['BU_VILLE']['id'] = $node_id; $infos = Kernel::getNodeInfo($node_type, $node_id); $where['BU_VILLE']['nom'] = $infos['nom']; $parents = Kernel::getNodeParents($node_type, $node_id); $parent = Kernel::filterNodeList($parents, 'BU_GRVILLE'); $node_type = $parent[0]["type"]; $node_id = $parent[0]["id"]; } if ($node_type == 'BU_GRVILLE') { $where['BU_GRVILLE']['type'] = $node_type; $where['BU_GRVILLE']['id'] = $node_id; $infos = Kernel::getNodeInfo($node_type, $node_id); $where['BU_GRVILLE']['nom'] = $infos['nom']; } return $where; }
public function processDefault() { $tpl = new CopixTpl(); $tplModule = new CopixTpl(); if (!$this->user->connected) { return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('welcome|default|')); } $tpl->assign('TITLE_PAGE', CopixI18N::get('kernel.title.accueilsimple')); $nodes_all = Kernel::getNodeParents($this->user->type, $this->user->idEn); $nodes_all = Kernel::sortNodeList($nodes_all); // _dump($nodes_all); $nodes = array(); foreach ($nodes_all as $node) { if ($node['type'] == 'CLUB' && CopixConfig::exists('kernel|groupeAssistance') && ($groupeAssistance = CopixConfig::get('kernel|groupeAssistance')) && $node['id'] == $groupeAssistance) { continue; } if ($node['type'] == 'CLUB' && $node['droit'] < 20) { continue; } if (!isset($nodes[$node['type']])) { $nodes[$node['type']] = array(); } //module not initialized : loaded into inconito if (!isset($nodes[$node['type']][$node['id']])) { $nodes[$node['type']][$node['id']] = $node; Kernel::createMissingModules($node['type'], $node['id']); $nodes[$node['type']][$node['id']]['modules'] = Kernel::getModEnabled($node['type'], $node['id'], $this->user->type, $this->user->idEn, 0, count($nodes_all) > $this->conf_notification_maxnodes ? 0 : 1); // Cas des groupes : on ajoute les membres et admin, selon les droits if ($node['type'] == 'CLUB') { $addModule = new CopixPPO(); $addModule->node_type = $node['type']; $addModule->node_id = $node['id']; $addModule->module_type = 'MOD_ADMIN'; $addModule->module_id = 0; $addModule->module_nom = CopixI18N::get('groupe|groupe.group.admin'); $nodes[$node['type']][$node['id']]['modules'][] = $addModule; } /* * ===== CONTENT GENERATION ===== * */ //cas parent élève if ($node['type'] == 'USER_ELE') { $contentNode = Kernel::getNodeParents($node['type'], $node['id']); $contentNode = Kernel::filterNodeList($contentNode, 'BU_CLASSE'); if (empty($contentNode)) { continue; } $contentNode = $contentNode[0]; } else { $contentNode = $node; } //get content from db : $content = $this->db->query('SELECT * FROM module_admindash WHERE id_zone = ' . $contentNode['id'] . ' AND type_zone = "' . $contentNode['type'] . '"')->toArray1(); // Get vocabulary catalog to use $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog'); $vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($contentNode['type'], $contentNode['id']); //if no content : get default content if (empty($content['content'])) { switch ($contentNode['type']) { case 'BU_CLASSE': case 'USER_ELE': $content['content'] = CopixZone::process('kernel|dashboardClasse', array('idZone' => $contentNode['id'], 'catalog' => $vocabularyCatalog->id_vc)); break; case 'BU_ECOLE': $content['content'] = CopixZone::process('kernel|dashboardEcole', array('idZone' => $contentNode['id'], 'catalog' => $vocabularyCatalog->id_vc)); break; case 'BU_VILLE': $content['content'] = CopixZone::process('kernel|dashboardVille', array('idZone' => $contentNode['id'], 'catalog' => $vocabularyCatalog->id_vc)); break; case 'CLUB': $content['content'] = CopixZone::process('kernel|dashboardGrTravail', array('idZone' => $contentNode['id'], 'catalog' => $vocabularyCatalog->id_vc)); break; case 'ROOT': if ($contentNode['droit'] >= 60) { $contentTpl = new CopixTpl(); $content['content'] = $contentTpl->fetch('zone.dashboard.root.tpl'); } else { $contentTpl = new CopixTpl(); $content['content'] = $contentTpl->fetch('zone.dashboard.userext.tpl'); } break; default: $content['content'] = ''; break; } } //twitter integration $twitterSrc = ''; if (!empty($content['social_stream'])) { enic::to_load('social'); $twitter = new enicSocialTwitter(); $twitterSrc = $content['social_stream']; } //is admin : $is_admin = $contentNode['droit'] >= 60; //build html content $content_tpl = new CopixTpl(); $content_tpl->assign('content', $content['content']); if (!empty($content['picture'])) { $content_tpl->assign('picture', $content['picture']); $content_tpl->assign('picturePath', $this->picturesPath); } $content_tpl->assign('twitter', $twitterSrc); $content_tpl->assign('is_admin', $is_admin); $content_tpl->assign('id', $contentNode['id']); $content_tpl->assign('type', $contentNode['type']); $content_tpl->assign('catalog', $vocabularyCatalog->id_vc); if ($contentNode['type'] == "BU_ECOLE") { $content_tpl->assign('idZone', $contentNode['id']); } $content = $content_tpl->fetch('dashboard.nodes.tpl'); //add css $this->addCss('styles/dashboard_zone.css'); //free memory unset($content_tpl); /* * ===== END CONTENT GENERATION ===== */ $nodes[$node['type']][$node['id']]['content'] = $content; } elseif ($nodes[$node['type']][$node['id']]['droit'] < $node['droit']) { $nodes[$node['type']][$node['id']] = $node; } } if (CopixConfig::exists('|use_class_validity') && CopixConfig::get('|use_class_validity')) { $tplModule->assign("use_class_validity", 1); if (isset($nodes['BU_CLASSE'])) { foreach ($nodes['BU_CLASSE'] as $classe_id => $classe_data) { $validity_timestamp = Kernel::getValidityDateForClass($classe_data['id']); if ($validity_timestamp) { $nodes['BU_CLASSE'][$classe_id]['validity_timestamp'] = $validity_timestamp; $nodes['BU_CLASSE'][$classe_id]['validity_date'] = date('d/m/Y', $validity_timestamp); // Si l'école existe : mémoriser max validity if (isset($nodes['BU_ECOLE'][$nodes['BU_CLASSE'][$classe_id]['ALL']->cla_ecole])) { if (!isset($nodes['BU_ECOLE'][$nodes['BU_CLASSE'][$classe_id]['ALL']->cla_ecole]['validity_timestamp']) || $nodes['BU_ECOLE'][$nodes['BU_CLASSE'][$classe_id]['ALL']->cla_ecole]['validity_timestamp'] < $validity_timestamp) { $nodes['BU_ECOLE'][$nodes['BU_CLASSE'][$classe_id]['ALL']->cla_ecole]['validity_timestamp'] = $validity_timestamp; $nodes['BU_ECOLE'][$nodes['BU_CLASSE'][$classe_id]['ALL']->cla_ecole]['validity_date'] = date('d/m/Y', $validity_timestamp); } } } } } $count_validity_ok = 0; $count_validity_bad = 0; foreach ($nodes as $node_type => $node_type_list) { foreach ($node_type_list as $node_id => $node) { if (isset($nodes[$node_type][$node_id]['validity_timestamp'])) { if ($nodes[$node_type][$node_id]['validity_timestamp'] < time()) { unset($nodes[$node_type][$node_id]); $count_validity_bad++; } else { $count_validity_ok++; } } } } } else { $tplModule->assign("use_class_validity", 0); } /* DRAFT WORKING */ // _dump($nodes); /* $rClasse = Kernel::getNodeInfo ('BU_CLASSE', $nodes['BU_CLASSE'][1]['id'], false); CopixZone::process ('annuaire|infosclasse', array('rClasse'=>$rClasse)); */ //echo $this->matrix->display(); // _dump($nodes); $tplModule->assign("nodes", $nodes); if (count($nodes) == 0) { $result = $tplModule->fetch("dashboard-empty.tpl"); } else { $result = $tplModule->fetch("dashboard.tpl"); } $tpl->assign('MAIN', $result); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }