<?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 Language.php
*
* Ce fichier contient la classe Language
*
* @author Rooty <www.rooty.me|rooty@rooty.me>
* @link www.rooty.me
* @since 2018/05/17
* @version 0.3
* @package system_data
* @subpackage Language
* @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 Langue
*
* <P>Classe de gestion des Langues de l'arborescence</P>
*
* @package system_data
* @subpackage Language
*/
class Language
{

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

/**
* @var entier
* @desc contient l'id numerique de la Langue
*/
var $id = null;

/**
* @var chaine
* @desc chaine multilangue
*/
var $libelle = null;

/**
* @var chaine
* @desc chaine nom de l'image
*/
var $code 	 = null;

/**
* @var chaine
* @desc chaine état 0 pour actif 1 pour en cours de traduction
*/
var $status 	 = null;

/**#@-*/

/**
* Constructeur de la classe Language
* <p>Initialise la classe Language</p>
*
* @access public
*/
	function __construct()
	{
		$this->id	=null;
		$this->libelle	=new XLangueChaine("");		/* Chaine multilangue */
		$this->code	=null;
		$this->status	=0;				/* Inactif par défaut */
	}

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

/**
* "setteur" de l'attribut Id.
*
* @access public
* @param entier Id de la Langue
* @return booleen
*/
	function setId($id)
	{
		if (!is_numeric($id))
			return false;
		$this->id=$id;
		return true;
	}

/**
* "getteur" de l'attribut status
*
* @access public
* @return entier Id de la Langue
*/
	function getStatus()
	{
		return $this->status;
	}

/**
* "setteur" de l'attribut Id.
*
* @access public
* @param entier Id de la Langue
* @return booleen
*/
	function setStatus($id)
	{
		if (!is_numeric($id))
			return false;
		$this->status=$id;
		return true;
	}

/**
* "getteur" de l'attribut code
*
* @access public
* @return chaine nom du code dans la BD
*/
	function getCode()
	{
		return $this->code;
	}

/**
* "getteur" de l'attribut code
*
* @access public
* @return chaine nom du code dans la BD
*/
	function getIcone()
	{
		/* recuperation de l'image de la langue courante */
		if (file_exists($GLOBALS['CONF_DATA_PATH']."data/image/icons/language/".strtolower($this->getCode()).".png"))
		{
			$img=$GLOBALS['CONF_DATA_PATH']."data/image/icons/language/".strtolower($this->getCode()).".png";
		}else{
			$img=$GLOBALS['CONF_DATA_PATH']."data/image/icons/language/default.png";
		}
		return $img;
	}

/**
* "setteur" de l'attribut code
*
* @access public
* @param chaine nom du code dans la BD
* @return booleen
*/
	function setCode($code)
	{
		if (!is_string($code))
			return false;
		$this->code=$code;
		return true;
	}

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

/**
* "getteur" de l'attribut libelle.
*
* @access public
* @param chaine langue à récupérer
* @return chaine libelle de la Langue
*/
	function getLibelle($langue)
	{
		return $this->libelle->getLanguage($langue);
	}

/**
* "setteur" de l'attribut libelle.
*
* @access public
* @param chaine langue pour le libellé à insérer
* @param chaine libelle (pas de code Html)
* @return booleen
*/
	function setLibelle($langue, $libelle)
	{
		$this->libelle->setLanguage($langue, $libelle);
		return true;
	}

/**
* doload : load de l'objet de l'objet Langue.
*
* @access public
* @param entier identifiant numérique du Language père
* @param chaine libelle du Language
*/
	function doLoad($id, $libelle, $code, $status)
	{
		$this->setId($id);
		$this->libelle->setSql($libelle);
		$this->setCode($code);
		$this->setStatus($status);
	}

/**
* 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;
	}
}
?>
