本文整理汇总了PHP中Kernel::getNodeChilds方法的典型用法代码示例。如果您正苦于以下问题:PHP Kernel::getNodeChilds方法的具体用法?PHP Kernel::getNodeChilds怎么用?PHP Kernel::getNodeChilds使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Kernel
的用法示例。
在下文中一共展示了Kernel::getNodeChilds方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _createContent
public function _createContent(&$toReturn)
{
//load TPL
$tpl = new CopixTpl();
//get the id for current zone (force int)
$idZone = $this->getParam('idZone') * 1;
$catalog = $this->getParam('catalog');
$enseignants = array();
$oEns = array();
//check the matrix right for current classe :
if ($this->matrix->ecole($idZone)->_right->enseignant->voir) {
$annuaireService =& CopixClassesFactory::Create('annuaire|AnnuaireService');
//get the children's node
$childNodeDatas = Kernel::getNodeChilds('BU_ECOLE', $idZone, false, array('skip_user' => true));
//if the child is a CLASSE get the enseignant
foreach ($childNodeDatas as $child) {
if ($child['type'] == 'BU_CLASSE') {
$enseignants[] = $annuaireService->getEnseignantInClasse($child['id']);
}
}
/*
* delete the multiple ereg
*/
$uniqueEnsId = array();
foreach ($enseignants as $enseignant) {
foreach ($enseignant as $ens) {
//check if the ens is already ereg
if (in_array($ens['id'], $uniqueEnsId)) {
continue;
} else {
$oEns[] = $ens;
$uniqueEnsId[] = $ens['id'];
}
}
}
/*
* get the school's picture
*/
$pic = $this->model->query('SELECT photo FROM module_fiches_ecoles WHERE id = ' . $idZone)->toString();
$tpl->assign('ens', $oEns);
$tpl->assign('pic', $pic);
$tpl->assign('idZone', $idZone);
$tpl->assign('catalog', $catalog);
//return the html content
$toReturn = $tpl->fetch('zone.dashboard.ecole.tpl');
return true;
}
//if the uses have no right : display a default tpl
$toReturn = $tpl->fetch('zone.dashboard.noRight.tpl');
return true;
}
示例2: _createContent
/**
* Affiche la liste des personnes ayant des droits spécifiques sur un blog
*
* @author Christophe Beyer <cbeyer@cap-tic.fr>
* @since 2007/05/31
* @param object $blog Blog (recordset)
* @param integer $kind Numéro générique de la rubrique (ne pas y toucher)
* @param string $attribs Attributs HTML de la liste (STYLE, ONCHANGE...)
*/
public function _createContent(&$toReturn)
{
//Getting the user.
//Create Services, and DAO
$tpl = new CopixTpl();
$blog = $this->getParam('blog', null);
$kind = $this->getParam('kind', null);
$droit = $this->getParam('droit', null);
$errors = $this->getParam('errors');
$membres = $this->getParam('membres');
$droit = $this->getParam('droit');
//Kernel::deb("droit=$droit");
//print_r($blog);
// On vérifie le droit d'être ici
if (!BlogAuth::canMakeInBlog("ADMIN_DROITS", $blog)) {
return false;
}
$groupeService =& CopixClassesFactory::Create('groupe|groupeService');
$childs = Kernel::getNodeChilds("MOD_BLOG", $blog->id_blog);
foreach ($childs as $k => $v) {
//print_r($v);
$userInfo = Kernel::getUserInfo($v["type"], $v["id"]);
$childs[$k]["login"] = $userInfo["login"];
$childs[$k]["nom"] = $userInfo["nom"];
$childs[$k]["prenom"] = $userInfo["prenom"];
$childs[$k]["droitnom"] = $groupeService->getRightName($v['droit']);
}
//print_r($childs);
$tplHome = new CopixTpl();
//$tplHome->assign ('groupe', $groupe[0]);
$tpl->assign('kind', $kind);
$tpl->assign('droit', $droit);
$tpl->assign('list', $childs);
$tpl->assign('errors', $errors);
$tpl->assign('membres', $membres);
$tpl->assign('linkpopup', CopixZone::process('annuaire|linkpopup', array('field' => 'membres')));
$tpl->assign('droit_values', array(PROFILE_CCV_VALID => $groupeService->getRightName(PROFILE_CCV_VALID), PROFILE_CCV_MODERATE => $groupeService->getRightName(PROFILE_CCV_MODERATE)));
$tpl->assign('blog', $blog);
// retour de la fonction :
$toReturn = $tpl->fetch('blog.show.droits.tpl');
return true;
}
示例3: _createContent
/**
* Affiche la liste déroulante avec toutes les écoles d'une ville
*
* @author Christophe Beyer <cbeyer@cap-tic.fr>
* @since 2006/01/06
* @param integer $ville Id de la ville
* @param integer $value Valeur actuelle de la combo
* @param string $fieldName Nom du champ de type SELECT qui en résulte
* @param string $attribs Attributs HTML de la liste (STYLE, ONCHANGE...)
*/
public function _createContent(&$toReturn)
{
$tpl = new CopixTpl();
$ville = $this->getParam('ville') ? $this->getParam('ville') : NULL;
$value = $this->getParam('value') ? $this->getParam('value') : 0;
$fieldName = $this->getParam('fieldName') ? $this->getParam('fieldName') : NULL;
$attribs = $this->getParam('attribs') ? $this->getParam('attribs') : NULL;
$ecoles = array();
$childs = Kernel::getNodeChilds('BU_VILLE', $ville);
foreach ($childs as $child) {
if ($child['type'] == 'BU_ECOLE') {
$node = Kernel::getNodeInfo($child['type'], $child['id'], false);
//print_r($node);
$ecoles[] = array('id' => $child['id'], 'nom' => $node['nom']);
}
}
$tpl->assign('items', $ecoles);
$tpl->assign('value', $value);
$tpl->assign('fieldName', $fieldName);
$tpl->assign('attribs', $attribs);
$toReturn = $tpl->fetch('comboecoles.tpl');
return true;
}
示例4: getNodeParents
/**
* Nodes : Retourne les noeuds parents (ecole->ville)
* INPUT : noeud (type+id)
* OUTPUT : noeuds (array type+id)
*/
public function getNodeParents($type, $id)
{
if (DEBUG) {
$backtrace = debug_backtrace();
$backtrace_array = array();
$continue = true;
foreach ($backtrace as $backtrace_item) {
$backtrace_array[] = $backtrace_item['class'] . "::" . $backtrace_item['function'];
if ($backtrace_item['class'] != 'Kernel') {
break;
}
}
file_put_contents('/tmp/iconito.log', date("Y-m-d H:i:s -- ") . implode(" >> ", array_reverse($backtrace_array)) . " ({$type}, {$id})" . "\n", FILE_APPEND);
}
// if(DEBUG) file_put_contents('/tmp/iconito.log', "getNodeParents($type, $id)\n", FILE_APPEND );
//print_r ("getNodeParents( $type, $id )<br>");
//die();
if (1) {
//La donnee níest pas en cache, on traite la demande.
$return = array();
switch ($type) {
case "BU_GRVILLE":
$return[] = array("type" => "ROOT", "id" => 0);
break;
case "BU_VILLE":
// Ville --(1)--> Groupe de ville
$vil_dao = _dao("kernel|kernel_tree_vil");
if ($ville = $vil_dao->get($id)) {
$return[] = array("type" => "BU_GRVILLE", "id" => $ville->vil_id_grville);
}
break;
case "BU_ECOLE":
// Ecole --(1)--> Ville
$eco_dao = _dao("kernel|kernel_tree_eco");
if ($ecole = $eco_dao->get($id)) {
$return[] = array("type" => "BU_VILLE", "id" => $ecole->eco_id_ville);
}
break;
case "BU_CLASSE":
// Classe --(1)--> Ecole
$cla_dao = _dao("kernel|kernel_tree_cla");
if ($classe = $cla_dao->get($id)) {
$return[] = array("type" => "BU_ECOLE", "id" => $classe->cla_ecole);
}
break;
case "CLUB":
// Voir la table des nodes
// Groupe de travail --(1)--> Noeud (classe, ecole, etc.)
$dao = _dao("kernel|kernel_link_groupe2node");
if ($res = $dao->get($id)) {
$return[] = array("type" => $res->node_type, "id" => $res->node_id);
}
break;
case "USER_ENS":
// Enseignant --(n)--> Classes/Ecoles
// Enseignant --(n)--> Classes/Ecoles
case "USER_VIL":
// Agent de ville --(1?)--> Ville
// Agent de ville --(1?)--> Ville
case "USER_ADM":
// Administratif ecole --(n)--> Ecoles
$dao = _dao("kernel|kernel_bu_personnel_entite");
$res = $dao->getById($id);
foreach ($res as $key => $val) {
switch ($val->pers_entite_type_ref) {
case "ECOLE":
// Enseignant --(n)--> Ecoles (directeur)
$role2droit = array(1 => PROFILE_CCV_WRITE, 2 => PROFILE_CCV_ADMIN, 3 => PROFILE_CCV_WRITE);
$return[] = array("type" => "BU_ECOLE", "id" => $val->pers_entite_reference, "droit" => $role2droit[$val->pers_entite_role]);
// Patch pour acces directeur dans les classes
if (CopixConfig::exists('|conf_DirClasse') && CopixConfig::get('|conf_DirClasse')) {
// Enseignant --(n)--> Classes (directeur)
$node_list = Kernel::getNodeChilds("BU_ECOLE", $val->pers_entite_reference);
$classe_list = Kernel::filterNodeList($node_list, "BU_CLASSE");
if (sizeof($classe_list)) {
foreach ($classe_list as $classe) {
$return[] = array("type" => "BU_CLASSE", "id" => $classe['id'], "droit" => PROFILE_CCV_ADMIN);
}
}
}
break;
case "CLASSE":
// Enseignant --(n)--> Classes
$role2droit = array(1 => PROFILE_CCV_ADMIN, 2 => PROFILE_CCV_ADMIN);
$return[] = array("type" => "BU_CLASSE", "id" => $val->pers_entite_reference, "droit" => $role2droit[$val->pers_entite_role]);
break;
case "VILLE":
$role2droit = array(4 => PROFILE_CCV_ADMIN);
$return[] = array("type" => "BU_VILLE", "id" => $val->pers_entite_reference, "droit" => $role2droit[$val->pers_entite_role]);
break;
case "GVILLE":
$role2droit = array(5 => PROFILE_CCV_ADMIN);
$return[] = array("type" => "BU_GRVILLE", "id" => $val->pers_entite_reference, "droit" => $role2droit[$val->pers_entite_role]);
break;
}
//.........这里部分代码省略.........
示例5: view
/**
* L'annuaire (TODO temporaire)
*/
public function view()
{
$annuaireService =& CopixClassesFactory::Create('annuaire|AnnuaireService');
$classe = _request("classe");
$id = 1;
$type = "BU_ECOLE";
$ecole = Kernel::getNodeInfo($type, $id, false);
//print_r($ecole);
$classes = $enseignants = $directeur = array();
$result = Kernel::getNodeChilds($type, $id);
foreach ($result as $key => $value) {
//print_r($value);
if ($value["type"] == "BU_CLASSE") {
$nodeInfo = Kernel::getNodeInfo($value["type"], $value["id"], false);
$result[$key]["info"] = $nodeInfo;
// Enseignants
$childs = Kernel::getNodeChilds($value["type"], $value["id"]);
//print_r($childs);
$enseignants = array();
foreach ($childs as $child) {
if ($child["type"] == "USER_ENS") {
$userInfo = Kernel::getUserInfo($child["type"], $child["id"]);
// print_r($userInfo);
$enseignants[] = $userInfo;
}
}
$result[$key]["enseignants"] = $enseignants;
$classes[] = $result[$key];
} elseif ($value["type"] == "USER_ENS") {
$droit = Kernel::getLevel($type, $id, $value["type"], $value["id"]);
if ($droit >= PROFILE_CCV_ADMIN) {
$nodeInfo = Kernel::getUserInfo($value["type"], $value["id"]);
//print_r($nodeInfo);
$result[$key]["info"] = $nodeInfo;
//$enseignants[] = $result[$key];
$directeur = $result[$key];
}
}
}
//print_r($directeur);
$ecole["directeur"] = $directeur;
//print_r($ecole);
$id = $classe;
$type = "BU_CLASSE";
$classe = Kernel::getNodeInfo($type, $id, false);
$eleves = $enseignants = array();
$result = Kernel::getNodeChilds($type, $id);
foreach ($result as $key => $value) {
if ($value["type"] == "USER_ELE") {
$nodeInfo = Kernel::getUserInfo($value["type"], $value["id"]);
$result[$key]["info"] = $nodeInfo;
//print_r($result[$key]);
$eleves[] = $result[$key];
} elseif ($value["type"] == "USER_ENS") {
$userInfo = Kernel::getUserInfo($value["type"], $value["id"]);
//print_r($userInfo);
$enseignants[] = $userInfo;
}
}
//print_r($eleves);
$classe["eleves"] = $annuaireService->order_tab_eleves($eleves);
$classe["enseignants"] = $annuaireService->order_tab_enseignants($enseignants);
//$classe["enseignants"]=($enseignants);
//print_r($classe);
$tplListe = new CopixTpl();
$tplListe->assign('ecole', $ecole);
$tplListe->assign('classes', $classes);
$tplListe->assign('classe', $classe);
$tplListe->assign('annu', "<pre>" . $return_str . "</pre>");
$result = $tplListe->fetch("view.tpl");
$tpl = new CopixTpl();
$tpl->assign('TITLE_PAGE', $ecole["nom"] . " (" . $ecole["desc"] . ")");
$tpl->assign("MAIN", $result);
$tpl->assign('MENU', $this->menu);
return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
}
示例6: getParentsFromEleve
/**
* Retourne les parents d'un �l�ve
*
* @author Christophe Beyer <cbeyer@cap-tic.fr>
* @since 2006/01/23
* @param integer $eleve Id de l'�l�ve
* @return array Tableau avec les parents
*/
public function getParentsFromEleve($eleve)
{
$res = array();
$parents = Kernel::getNodeChilds('USER_ELE', $eleve);
foreach ($parents as $parent) {
//print_r($parent);
$userInfo = Kernel::getUserInfo($parent['type'], $parent['id']);
//print_r($userInfo);
$tmp = array_merge($parent, $userInfo);
$res[] = $tmp;
}
//print_r($res);
return $res;
}
示例7: processWalk
/**
* walk
*
* DEBUG: Affichage des parents et enfants d'un noeud, pour valider le
* fonctionnement des fonctions getNodeParents et getNodeChilds.
* @author Frédéric Mossmann <fmossmann@cap-tic.fr>
* @see getNodeParents( $type, $id )
* @see getNodeChilds( $type, $id )
*/
public function processWalk()
{
$tpl = new CopixTpl();
$tpl->assign('TITLE_PAGE', "Walk");
$return_left = "";
$return_center = "";
$return_right = "";
if (_request("type")) {
$type = _request("type");
$id = _request("id");
} else {
if (_currentUser()->getExtra('type') && _currentUser()->getExtra('id')) {
$type = _currentUser()->getExtra('type');
$id = _currentUser()->getExtra('id');
} else {
$type = "USER_ELE";
$id = 3777;
}
}
$result = Kernel::getNodeParents($type, $id);
foreach ($result as $key => $value) {
$return_left .= '<a href="' . CopixUrl::get('kernel||walk', array("type" => $value["type"], "id" => $value["id"])) . '">';
$return_left .= $value["type"] . "/" . $value["id"];
if (isset($value["droit"]) && $value["droit"]) {
$return_left .= ' (' . $value["droit"] . ')';
}
$return_left .= '</a>';
// $tmp = Kernel::getNodeChilds( $value["type"], $value["id"] );
// if( sizeof($tmp) ) $return_left .= " (".sizeof($tmp).")";
$return_left .= '<br />';
}
$result = Kernel::getNodeChilds($type, $id);
foreach ($result as $key => $value) {
// $tmp = Kernel::getNodeChilds( $value["type"], $value["id"] );
// if( sizeof($tmp) ) $return_right .= "(".sizeof($tmp).") ";
$return_right .= '<a href="' . CopixUrl::get('kernel||walk', array("type" => $value["type"], "id" => $value["id"])) . '">';
$return_right .= $value["type"] . "/" . $value["id"];
if (isset($value["droit"]) && $value["droit"]) {
$return_right .= ' (' . $value["droit"] . ')';
}
$return_right .= '</a>';
$return_right .= '<br />';
}
$return_center .= $type . "/" . $id;
if (ereg("^USER_", $type)) {
$user_infos = Kernel::getUserInfo($type, $id);
if (isset($user_infos["login"])) {
$return_center .= "<br />Login: " . $user_infos["login"];
}
if (isset($user_infos["nom"]) && isset($user_infos["prenom"])) {
$return_center .= "<br />(";
$return_center .= $user_infos["prenom"] . " " . $user_infos["nom"];
$return_center .= ")";
}
} else {
$node_infos = Kernel::getNodeInfo($type, $id, false);
if (isset($node_infos["nom"])) {
$return_center .= "<br />" . $node_infos["nom"];
}
if (isset($node_infos["desc"])) {
$return_center .= "<br />(";
if (strlen($node_infos["desc"]) > 45) {
$return_center .= substr($node_infos["desc"], 0, 40) . "...";
} else {
$return_center .= $node_infos["desc"];
}
$return_center .= ")";
}
}
$return_str = '<center><h3>' . $return_center . '</h3></center>';
$return_str .= '<table width="100%"><tr><td valign="top" align="left"><strong>Parents</strong></td><td valign="top" align="right"><strong>Childs</strong></td></tr>';
$return_str .= '<tr><td valign="top" align="left">' . $return_left . '</td><td valign="top" align="right">' . $return_right . '</td></tr></table>';
$tpl->assign('MAIN', "<pre>" . $return_str . "</pre>");
return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
}
示例8: getNbElevesInClasse
/**
* Renvoie le nb d'élèves d'une classe
*
* @author Christophe Beyer <cbeyer@cap-tic.fr>
* @since 2006/05/18
* @param integer $classe Id de la classe
* @return integer Nb d'léèves
*/
public function getNbElevesInClasse($classe)
{
$childs = Kernel::getNodeChilds("BU_CLASSE", $classe);
$res = 0;
while (list($k, $child) = each($childs)) {
if ($child["type"] != "USER_ELE") {
continue;
}
$res++;
}
return $res;
}
示例9: doDelete
/**
* Suppression effective d'un groupe
*
* @author Christophe Beyer <cbeyer@cap-tic.fr>
* @since 2005/11/16
* @see getDelete()
* @param integer $id Id du groupe
*/
public function doDelete()
{
$dao = CopixDAOFactory::create("groupe");
$kernel_service =& CopixClassesFactory::Create('kernel|kernel');
$groupeService =& CopixClassesFactory::Create('groupe|groupeService');
$errors = array();
$id = $this->getRequest('id', null);
$groupe = $dao->getGroupe($id);
if (!$groupe) {
$errors[] = CopixI18N::get('groupe|groupe.error.noGroup');
}
$mondroit = $kernel_service->getLevel("CLUB", $id);
if (!$groupeService->canMakeInGroupe('ADMIN', $mondroit)) {
$errors[] = CopixI18N::get('kernel|kernel.error.noRights');
}
if ($errors) {
return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $errors), 'back' => CopixUrl::get('groupe||')));
} else {
// On supprime ses modules
$his_modules = Kernel::getModEnabled("CLUB", $id);
foreach ($his_modules as $k => $node) {
list(, $module) = explode("_", $node->module_type);
$module = strtolower($module);
$classeModule =& CopixClassesFactory::create($module . '|Kernel' . $module);
if (method_exists($classeModule, "delete")) {
$classeModule->delete($node->module_id);
}
}
// On supprime tous les noeuds
$daoKernelModEnabled = CopixDAOFactory::create("kernel|kernel_mod_enabled");
$daoKernelModEnabled->delByNode("CLUB", $id);
// On supprime le rattachement du groupe
$daoLinkGroupe2Node = CopixDAOFactory::create("kernel|kernel_link_groupe2node");
$daoLinkGroupe2Node->delete($id);
// On supprime les membres/droits
$childs = Kernel::getNodeChilds("CLUB", $id);
foreach ($childs as $user) {
Kernel::setLevel("CLUB", $id, $user["type"], $user["id"], 0);
}
// On supprime le groupe lui-m�me
$dao->delete($id);
}
return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('groupe||getListMy'));
}