<?php

/**------------------------------------------------
*
* Rooty, 2021 <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 NodeSettings.php
*
*Ce fichier contient la classe NodeSettings
*
* @author Rooty <www.rooty.me|rooty@rooty.me>
* @link www.rooty.me
* @since 2021/04/19
* @version 0.1
* @package system_data
* @subpackage NodeSettings
* @copyright Copyright &copy; 2021, 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 NodeSettings
*
* <P>Classe de gestion des Noeuds de l'arborescence</P>
*
* @package system_data
* @subpackage NodeSettings
*/
class NodeSettings
{

/**#@+ 
* @access private
*/

/**
* @var entier
* @desc contient l'id numerique du Noeud
*/
var $id = null; 

/**
* @var chaine
* @desc chaine email
*/
var $email 	 = null;

/**
* @var chaine
* @desc chaine email
*/
var $git 	 = null;

/**
* @var chaine
* @desc chaine mastodon
*/
var $mastodon= null;

/**
* @var chaine
* @desc chaine mobilizon
*/
var $mobilizon= null;

/**
* @var chaine
* @desc chaine matrix
*/
var $matrix= null;

/**
* @var chaine
* @desc chaine peertube
*/
var $peertube= null;

/**
* @var chaine
* @desc chaine nextcloud
*/
var $nextcloud= null;

/**
* @var chaine
* @desc chaine twitter
*/
var $twitter= null;

/**
* @var chaine
* @desc chaine facebook
*/
var $facebook= null;

/**#@-*/

/**
* Constructeur de la classe NodeSettings PHP5
* <p>Initialise la classe NodeSettings</p>
* @access public
*/
	function __construct()
	{
		$this->id	=null;
	}

/**
* "getteur" de l'attribut Id.
* @access public
* @return entier Id du Noeud
*/
	function getId()
	{
		return $this->id;
	}

/**
* "setteur" de l'attribut Id. 
* @access public
* @param entier Id du Noeud
* @return booleen
*/
	function setId($id)
	{
		if (!is_numeric($id))
			return false;

		$this->id=$id;
		return true;
	}

/**
* "getteur" de l'attribut email
* @access public
* @return chaine email
*/
	function getEmail() 
	{
		return $this->email;
	}

/**
* "setteur" de l'attribut email
* @access public
* @param chaine email
* @return booleen
*/
	function setEmail($email)
	{
		if (!is_string($email))	
			return false;

		$this->email=$email;
		return true;
	}

/**
* "getteur" de l'attribut git
* @access public
* @return chaine git
*/
	function getGit() 
	{
		return $this->git;
	}

/**
* "setteur" de l'attribut git
* @access public
* @param chaine git
* @return booleen
*/
	function setGit($git)
	{
		if (!is_string($git))	
			return false;

		$this->git=$git;
		return true;
	}

/**
* "getteur" de l'attribut Mastodon. 
* @access public
* @return chaine Mastodon
*/
	function getMastodon() 
	{
		return $this->mastodon;
	}

/**
* "setteur" de l'attribut Mastodon. 
* @access public
* @param entier mastodon
* @return booleen
*/
	function setMastodon($mastodon)
	{
		if (!is_string($mastodon))
			return false;

		$this->mastodon=$mastodon;
		return true;
	}

/**
* "getteur" de l'attribut Mobolizon. 
* @access public
* @return chaine Mobilizon
*/
	function getMobilizon()
	{
		return $this->mobilizon;
	}

/**
* "setteur" de l'attribut Mobilizon. 
* @access public
* @param chaine mobilizon
* @return booleen
*/
	function setMobilizon($mobilizon)
	{
		if (!is_string($mobilizon))
			return false;

		$this->mobilizon=$mobilizon;
		return true;
	}

/**
* "getteur" de l'attribut matrix. 
* @access public
* @param chaine matrix
* @return chaine matrix
*/
	function getMatrix()
	{
		return $this->matrix;
	}

/**
* "setteur" de l'attribut matrix.
* @access public
* @param chaine matrix
* @return booleen
*/
	function setMatrix($matrix)
	{
		if (!is_string($matrix))
			return false;

		$this->matrix=$matrix;
		return true;
	}

/**
* "getteur" de l'attribut peertube. 
* @access public
* @return chaine peertube
*/
	function getPeertube()
	{
		return $this->peertube;
	}

/**
* "setteur" de l'attribut peertube.
* @access public
* @param chaine peertube
* @return booleen
*/
	function setPeertube($peertube)
	{
		if (!is_string($peertube))
			return false;

		$this->peertube=$peertube;
		return true;
	}

/**
* "getteur" de l'attribut nextcloud. 
* @access public
* @return chaine nextcloud
*/
	function getNextcloud()
	{
		return $this->nextcloud;
	}

/**
* "setteur" de l'attribut nextcloud.
* @access public
* @param chaine nextcloud
* @return booleen
*/
	function setNextcloud($nextcloud)
	{
		if (!is_string($nextcloud))
			return false;

		$this->nextcloud=$nextcloud;
		return true;
	}

/**
* "getteur" de l'attribut twitter. 
* @access public
* @return chaine twitter
*/
	function getTwitter()
	{
		return $this->twitter;
	}

/**
* "setteur" de l'attribut twitter.
* @access public
* @param chaine twitter
* @return booleen
*/
	function setTwitter($twitter)
	{
		if (!is_string($twitter))
			return false;

		$this->twitter=$twitter;
		return true;
	}

/**
* "getteur" de l'attribut facebook. 
* @access public
* @return chaine facebook
*/
	function getFacebook()
	{
		return $this->facebook;
	}

/**
* "setteur" de l'attribut facebook.
* @access public
* @param chaine facebook
* @return booleen
*/
	function setFacebook($facebook)
	{
		if (!is_string($facebook))
			return false;

		$this->facebook=$facebook;
		return true;
	}

/**
* doload : load de l'objet de l'objet NodeSettings.
*
* @access public
* @param entier identifiant numérique du Node
* @param chaine libelle du NodeSettings
*/
	function doLoad($id, $email, $git, $mastodon, $mobilizon, $matrix, $peertube, $nextcloud, $twitter, $facebook)
	{
		$this->setId($id);
		$this->setEmail($email);
		$this->setGit($git);
		$this->setMastodon($mastodon);
		$this->setMobilizon($mobilizon);
		$this->setMatrix($matrix);
		$this->setPeertube($peertube);
		$this->setNextcloud($nextcloud);
		$this->setTwitter($twitter);
		$this->setFacebook($facebook);
		return true;
	}

/**
* isLoaded: Verifie que l'ID est affecté
*
* <P> après un load depuis la base, l'id de l'objet est affecté, cette fonction le verifie</P>
* @access public
* @return booleen
*/
	function isLoaded()
	{
		return (is_numeric($this->id) && ($this->id != 0) ) ?true:false;
	}
}
?>
