<?php

/**------------------------------------------------
*
* Rooty, 2018 <rooty@rooty.me>
*
*
* This software is protected by copyright, please
* read the file COPYRIGHT.
* This program is distributed in the hope that it
* will be useful, but without any warranty; without
* even the implied warranty of merchantability or
* fitness for a particular purpose. Please
* read the file LICENCE.
*
* Fichier ListUserNode.php
*
* @author Rooty <www.rooty.me|rooty@rooty.me>
* @link www.rooty.me
* @since 2018/05/17
* @version 0.3
* @package system_data
* @subpackage ListUserNode
* @copyright Copyright &copy; 2009-2018, Rooty
*/

#####################################################################################################
################################# Parametrage
#####################################################################################################
/**
* declaration du system... si cette variable n'est pas définie, les fichier inclus ne marche pas...
* cette variable est déclarée sur la page d'execution du script.
*<p> if ( !defined('SYSTEM_IN') )
* {
* die("Hacking attempt");
* }</p>
*/
if ( !defined('SYSTEM_IN') )
{
 die("Hacking attempt");
}

/**
* Classe ListUserNode
*
* Classe de gestion des ListUserNodes<br>
*
* @package system_data
* @subpackage ListUserNode
*/
class ListUserNode  extends TreeList
{

/**
* Constructeur de la classe ListUserNode PHP5
*
* <p>Initialise la classe ListUserNode</p>
* @access public
*/
	function __construct()
	{
		parent::__construct();
	}

/**
* getFatherNodeId Recupere tous les identifiant de groupes pere pour l'utilisateur
*
* @deprecated
* @param entier
* @access public
* @return tableau
*/
	function getFatherNodeId()
	{
		return ( $this->getFatherArray() );
	}

/**
* getSonNodeId Recupere tous les identifiant de groupes fils pour l'utilisateur
*
* @deprecated
* @param entier
* @access public
* @return tableau
*/
	function getSonNodeId()
	{
		return ( $this->getSonArray() );
	}

/**
* getConfiguredNodeId Recupere tous les identifiant de noeuds configurés (liaisons seulement)
* @param entier
* @access public
* @return tableau
*/
	function getConfiguredNodeId()
	{
		return ($this->getConfiguredId());
	}

/**
* getLibelleNodeId Recupere le libelle d'un Nodee
*
* @param entier
* @access public
* @return tableau
*/
	function getLibelleNodeId($id, $langue)
	{
		return ($this->getLibelle($id, $langue));
	}

/**
* getAllIdForNavigationId : retourne un tableau avec tous les noeuds de navigation possible
*
* @access public
* @return tableau
*/
	function getAllIdForNavigationId($entryNodeId, $nodeId)
	{
		reset($this->tabTree);

		foreach($this->tabTree as $Tree)
		{
			if ($Tree->getId()==$entryNodeId)
			{
				return $Tree->getAllIdForNavigationId($nodeId);
			}
		}
		return array();
	}

/**
* getTemplateFromNode Recupere le libelle d'une template
*
* @param entier identifiant de l'arbre
* @param entier identifiant du noeud de navigation
* @access public
* @return tableau
*/
	function getTemplateFromNode($treeId, $nodeId)
	{
		/* on recherche le Tree correspondant */
		reset($this->tabTree);

		foreach($this->tabTree as $Tree)
		{
			if ($Tree->getId()==$treeId)
			{
				return ($Tree->getTemplateFromNode($nodeId));
			}
		}
		return 'default';
	}

/**
* getSonOfNodeAllowed Recupere les noeud fils d'un noeud avec les droits dessus
*
* @param entier identifiant de l'arbre
* @param entier identifiant du noeud de navigation
* @access public
* @return tableau tableau d'objets noeud
*/
	function getSonOfNodeAllowed($treeId, $nodeId)
	{
		/* on recherche le Tree correspondant */
		reset($this->tabTree);

		foreach($this->tabTree as $Tree)
		{
			/* Pour le tree correspondant :  */
			if ($Tree->getId()==$treeId)
			{
				/* on recupere les noeud correspondants */
				return ($Tree->getSonOfIdPere($nodeId));
			}
		}
		return array();
	}

/**
* getAllAllowedNode liste de tous les noeuds de navigation
*
* @param entier identifiant de l'arbre
* @param entier identifiant du noeud de navigation
* @access public
* @return tableau
*/
	function getAllAllowedNode()
	{
		$tab=array();
		reset($this->tabTree);

		foreach($this->tabTree as $Tree)
		{
			$tab=array_merge($tab, $Tree->getSonArray(), array($Tree->getId()));
		}
		return $tab;
	}
}
?>
