<?php

/**------------------------------------------------
*
* Granilim (C) 2004-2006, Limousin expansion
* Limousin expansion contact@granilim.org
* 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.
*
* Ce fichier contient la classe Home
*
* @author Initiance <www.initiance.com|martial@initiance.com>
* @since 2004/06/07
* @version 0.1
* @link www.granilim.org
* @package object_coordination
* @subpackage Home
* @copyright Copyright &copy; 2004-2006, Limousin expansion
*/

/**
* Modified by Guillaume Tessier <gui.tessier@wanadoo.fr>
* Since 2005/08/01
* Ajout de deux méthodes (setAllRow4Import et getAllRow4Export) concrètes issues 
* de la classe abstraite "CoordinationObj", ces deux méthodes nous servent à restaurer et 
* sauvegarder des données de l'outil.
*/
if ( !defined('SYSTEM_IN') )
{
 die("Hacking attempt");
}

/**
* Classe Home
*
* Classe de du tunnel d'accueil
* @package object_coordination
* @subpackage Home
*/

Class Home extends CoordinationObj
{
	function tabeCreate()
	{
		$tabPictoTabe = array("eye","cogs");
		$tabTabe =  array("TxtTabeView","TxtTabeAdmin");
		$tabAction = array(array("lectureAdmin"), array("actionAdmin"));
		$tabUrlTabe = array(formatUrl($this->getId(), "TextInfo", "lectureAdmin"),formatUrl($this->getId(), "TextInfo", "actionAdmin"));
		printTabeAdmin("TabeB", $tabTabe, $tabUrlTabe, $tabPictoTabe, $tabAction);
	}
/**
* Function affichant en lecture seule le contenu
* @access public
* @return chaine chaine vide
*/
	function actionLecture()
	{
		$text = getMessage("NoText");

		/*Récupération des messages utilisateurs*/
		addMessageFile("user.ini");
		addMessageFile("object.ini");

		/* gestion du lib en fonction de la langue courante */
		$currentCode=$GLOBALS["SYSTEM_USER_SESSION"]->langue->getCode();
		$defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"];
		/* fin récupération des codes par defaut */
		
		mxPageTitle("methodActionLectureHomeTitlePage");
		
		if (file_exists($GLOBALS['SYSTEM_TEMPLATE_PATH'].$GLOBALS['SYSTEM_TEMPLATE_DIR']."object_coordination/textinfo/".$_SERVER["HTTP_HOST"]."-landingpage.mxt"))
		{
			$GLOBALS["SYSTEM_TEMPLATE"] = new ModeliXeQware($GLOBALS['SYSTEM_TEMPLATE_PATH'].$GLOBALS['SYSTEM_TEMPLATE_DIR']."object_coordination/textinfo/".$_SERVER["HTTP_HOST"]."-landingpage.mxt");

			$GLOBALS["SYSTEM_TEMPLATE"]->SetMxFileParameter($GLOBALS['SYSTEM_TEMPLATE_PATH'].$GLOBALS['SYSTEM_TEMPLATE_DIR'].$GLOBALS['SYSTEM_TEMPLATE_CONF']);
			$GLOBALS["SYSTEM_TEMPLATE"]->SetModeliXe();
			
			
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("faviconlink", "data/image/communities/".$_SERVER["HTTP_HOST"].".ico?v4");
			
			$url =$_SERVER['SCRIPT_NAME'];
			$url.="?system=authSession";
			$url=addIdToUrl($url);
			
			$tabObject	=$this->getObjectSon(eid());
			for ($i=0; $i<count($tabObject);$i++)
			{
				if ($tabObject[$i][0]->getClassName()=="Home")
				{
					$urlArray["id"]=$tabObject[$i][1]->getId();
				}
			}
			
			/* Création de l'URL pour nouveau compte */
			$urlNewAccount = $_SERVER['SCRIPT_NAME'];
			$urlNewAccount.= "?system=authNewAccount";
			$urlNewAccount = addIdToUrl($urlNewAccount);
			
			$GLOBALS['SYSTEM_TEMPLATE']->MxAttribut("urlActionNewAccount", formatUrl($urlArray["id"], "Home", "formLecture", "", recupCommunity()));
			$GLOBALS['SYSTEM_TEMPLATE']->MxAttribut("urlActionNewSubscription", formatUrl($urlArray["id"], "Home", "formLectureAdh", "", recupCommunity()));

			/* Création de l'URL pour rappel du mot de passe */
			$urlForgotPassword = $_SERVER['SCRIPT_NAME'];
// 			$urlForgotPassword.= "?system=authForgotPassword";
			$urlForgotPassword.= "?msg=forgotPasswordTempDisabled";
			$urlForgotPassword = addIdToUrl($urlForgotPassword);
			
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("pageTitleHome", $GLOBALS['SYSTEM_TEMPLATE_DEFAULT_TITLE']." ".$GLOBALS['SYSTEM_TEMPLATE_DEFAULT_DESCRIPTION']." - Accueil");
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("ogTitle", $GLOBALS['SYSTEM_TEMPLATE_DEFAULT_TITLE']);
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("ogDescription", $GLOBALS['SYSTEM_TEMPLATE_DEFAULT_DESCRIPTION']);
			
// 			$GLOBALS['SYSTEM_TEMPLATE']->MxImage("pictoAuth", $GLOBALS['CONF_DATA_PATH']."data/template/".$GLOBALS['SYSTEM_TEMPLATE_DIR']."media/picto/authorise.png");
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("auth", getMessage("UserPrintAuth"));
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("LOGIN", getMessage("UserPrintLogin"));
			$GLOBALS['SYSTEM_TEMPLATE']->MxFormField("login", "text", "login", "", "title='".getMessage("tipUserPrintLogin")."'");
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("PASSWORD", getMessage("UserPrintPassword"));
			$GLOBALS['SYSTEM_TEMPLATE']->MxFormField("password", "password", "password", "", "title='".getMessage("tipUserPrintPassword")."'");
			$GLOBALS['SYSTEM_TEMPLATE']->MxAttribut("urlActionNewAccount", $urlNewAccount);
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("NEWACCOUNT", getMessage("UserPrintNewAccount"));
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("NEWSUBSCRIPTION", getMessage("UserPrintNewSubscription"));
			$GLOBALS['SYSTEM_TEMPLATE']->MxAttribut("urlActionForgotPassword", $urlForgotPassword);
			$GLOBALS['SYSTEM_TEMPLATE']->MxText("FORGOTPASSWORD", getMessage("UserPrintForgotPassword"));
			$GLOBALS['SYSTEM_TEMPLATE']->MxAttribut("urlActionLogin", $url);
			$GLOBALS['SYSTEM_TEMPLATE']->MxAttribut("BtnEnter", getMessage("UserPrintEnter"));
			$GLOBALS['SYSTEM_TEMPLATE']->MxAttribut("titleButton", getMessage("tipUserPrintEnter"));

			$sql="SELECT * FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".recupCommunity()." AND langue_id=".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId();
			# Execution de Requete (utilisation de la connexion systeme)
			$result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);

			# Teste si il y a des enregistrements
			if ($GLOBALS['SYSTEM_DATABASE_CONN']->sql_numrows()>0)
			{
				$View = $GLOBALS['SYSTEM_DATABASE_CONN']->sql_fetchrow();
				$text = stripslashes($View['textentrynode_text']);
				# Destruction des resultats
				$GLOBALS['SYSTEM_DATABASE_CONN']->sql_freeresult();
			}else{
				$text = getMessage("NoText");
			}

			# On affecte a la template le texte pour la balise MxText (Template Principale)
			$GLOBALS["SYSTEM_TEMPLATE"]->MxText("text", $text);
		} else {
			mxPageTitle("methodActionLectureHomeTitlePage");
			
			/* On inclus la template (voir package.template.php) */
			withBlocPath("Home", "actionLectureInfo");
			
			# Requete sur identifiant de l'objet de coordination correspondant
			$sql="SELECT * FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".recupCommunity()." AND langue_id=".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId();
			# Execution de Requete (utilisation de la connexion systeme)
			$result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);
			# Teste si il y a des enregistrements
			if ($GLOBALS['SYSTEM_DATABASE_CONN']->sql_numrows()>0)
			{
				$View = $GLOBALS['SYSTEM_DATABASE_CONN']->sql_fetchrow();
				$text = stripslashes($View['textentrynode_text']);
				# Destruction des resultats
				$GLOBALS['SYSTEM_DATABASE_CONN']->sql_freeresult();
			}

			# On affecte a la template le texte pour la balise MxText (Template Principale)
			$GLOBALS["SYSTEM_TEMPLATE"]->MxText("text", $text);
		}
		return "";
	}

/**
* Function affichant le texte de présentation détaillé pour le noeud d'entrée une fois authentifié
* @access public
* @return chaine chaine vide
*/

	function actionAccueil()
	{
		global $SERVER_NAME, $SCRIPT_NAME, $CONF_PERSISTANT_SECURE,$CONF_DATA_PATH;
		/* On inclus la template (voir package.template.php) */

		WithBlocPath("Home", "actionAccueil");

		/*Récupération des messages utilisateurs*/
		addMessageFile("user.ini");

		/* gestion du lib en fonction de la langue courante */
		$currentCode=$GLOBALS["SYSTEM_USER_SESSION"]->langue->getCode();
		$defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"];
		/* fin récupération des codes par defaut */

		//Récupération de l'identifiant de la communauté : methode en fin de page
		$nodeId = recupCommunity();

		if(is_numeric($nodeId)) //si le noeud existe
		{
			//On récupère le texte du noeud choisi par l'internaute
			$sql="SELECT * FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".$nodeId;
			# Exécution de Requete
			$result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);

			# Teste si il y a des enregistrements
			if ($GLOBALS['SYSTEM_DATABASE_CONN']->sql_numrows()>0)
			{
				$list = $GLOBALS['SYSTEM_DATABASE_CONN']->sql_fetchrow();
				$text = $list['text'];
				$GLOBALS["SYSTEM_TEMPLATE"]->MxText("textAccueil",$text);
			}else{
				$GLOBALS["SYSTEM_TEMPLATE"]->MxText("textAccueil",getMessage("NoText"));
			}

	    		# Destruction des éléments
    		    	$GLOBALS['SYSTEM_DATABASE_CONN']->sql_freeresult();
		}
		ExitBloc();
		return "";
	}



/**
* Function permettant de rafficher le contenu pour modification dans la bd
* @access public
* @return chaine chaine html
*/
    function actionAdmin()
    {
		/*Récupération des messages utilisateurs*/
		addMessageFile("object.ini");
		addMessageFile("adminhome.ini");
		
		/* gestion du lib en fonction de la langue courante */
		$currentCode=$GLOBALS["SYSTEM_USER_SESSION"]->langue->getCode();
		$defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"];
		/* fin récupération des codes par defaut */

		mxPageTitle("methodActionAdminHomeTitlePage");
		
		/* Instanciation du wysiwyg */
		$wysiResume = new Wysi("contentResumeInfos", "postTextInfos", "fr_FR", "", "summernote", "", 180);
		$wysiResume->includeDependancy();
		
		$wysiText = new Wysi("contentTextInfos", "postTextInfos", "fr_FR", "", "summernote");
		$wysiText->includeRawJs();
	
		//$this->tabeCreate();
		$text =getMessage("NoText");

		/* On inclus la template (voir package.template.php) */
		withBlocPath("Home", "actionAdmin");

		/* creation des onglets */
		$this->tabeCreate();
		
		# Requete sur identifiant de l objet de coordination correspondant
// 		$sql="SELECT * FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".recupCommunityPublic()." AND langue_id=".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId();
		$sql="SELECT * FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".recupCommunity()." AND langue_id=".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId();
// 		var_dump($sql);
		# Execution de Requete
		$result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);

		# Teste si il y a des enregistrements
		if ($GLOBALS['SYSTEM_DATABASE_CONN']->sql_numrows()>0)
		{
			# On récupère les données en variable
			$View = $GLOBALS['SYSTEM_DATABASE_CONN']->sql_fetchrow();
			if($View['textentrynode_resume'] != "")
				$resume = $View['textentrynode_resume'];
			if($View['textentrynode_text'] != "")
				$text = $View['textentrynode_text'];
			# Destruction des resultats
			$GLOBALS['SYSTEM_DATABASE_CONN']->sql_freeresult();
		} else {
			$text = getMessage("");
		}
		// Résumé de la communauté
		$wysiResume->SetContent($resume);
		$GLOBALS["SYSTEM_TEMPLATE"]->MxText("wysiResume", $wysiResume->Display());
		
		// Texte complet de la communauté
		$wysiText->SetContent($text);
		$GLOBALS["SYSTEM_TEMPLATE"]->MxText("wysiText", $wysiText->Display());
			
		$GLOBALS["SYSTEM_TEMPLATE"]->MxText("currentLang", $currentCode);
		$GLOBALS["SYSTEM_TEMPLATE"]->MxAttribut("urlAction", formatUrl($this->getId(), "Home", "execAdmin"));

		return "";
	}

/**
* Function permettant de modifier le contenu dans la bd et redirection(traitement)
* @access public
* @return chaine chaine vide
*/
    function execAdmin()
    {
        global $SERVER_NAME, $SCRIPT_NAME, $CONF_PERSISTANT_SECURE, $CONF_DATA_PATH;

        # Requete sur identifiant de l objet de coordination correspondant
//         $sql="SELECT * FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".recupCommunityPublic()." AND langue_id=".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId();
		$sql="SELECT * FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".recupCommunity()." AND langue_id=".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId();
        # Exécution de Requete
        $result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);

        # Teste si il y a des enregistrements
        if ($GLOBALS['SYSTEM_DATABASE_CONN']->sql_numrows()>0)
        {
	        # Requete sur identifiant de l objet de coordination correspondant
//     	    $sql="UPDATE ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode SET textentrynode_text='".$_POST['contentTextInfos']."', textentrynode_resume='".$_POST['contentResumeInfos']."' WHERE node_id=".recupCommunityByDomain($_SERVER["HTTP_HOST"])." AND langue_id=".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId();
			$sql="UPDATE ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode SET textentrynode_text='".$_POST['contentTextInfos']."', textentrynode_resume='".$_POST['contentResumeInfos']."' WHERE node_id=".recupCommunity()." AND langue_id=".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId();
	        # Exécution de Requete
    	    $result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);
		}
		else
		{
	        # Requete sur identifiant de l objet de coordination correspondant
//     	    $sql="INSERT INTO ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode (textentrynode_text, textentrynode_resume, node_id, langue_id) VALUES ('".$_POST['contentTextInfos']."','".$_POST['contentResumeInfos']."',".recupCommunityPublic().",".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId().")";
			$sql="INSERT INTO ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode (textentrynode_text, textentrynode_resume, node_id, langue_id) VALUES ('".$_POST['contentTextInfos']."','".$_POST['contentResumeInfos']."',".recupCommunity.",".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getId().")";

	        # Exécution de Requete
    	    $result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);		
		}

        # Destruction des éléments
        $GLOBALS['SYSTEM_DATABASE_CONN']->sql_freeresult();

        # Redirection vers le formulaire
        systemRedirect(formatUrl($this->getId(),"Home", "actionAdmin", "datamodified"));
        return "";
    }

/**
* Function permettant de controler les doublons, d'inscrire dans la bd et redirection avec message
* @access public
* @return chaine chaine vide
*/
    function execLecture()
    {
        global $SERVER_NAME, $SCRIPT_NAME, $CONF_PERSISTANT_SECURE,$CONF_DATA_PATH;

		/* gestion du lib en fonction de la langue courante */
		$currentCode=$GLOBALS["SYSTEM_USER_SESSION"]->langue->getCode();
		$defaultCode=$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"];
		/* fin récupération des codes par defaut */

		/*Récupération des messages utilisateurs*/
		addMessageFile("user.ini");
		//On vide la chaine de vérification des champs obligatoires
		$chaine = "";

		if($_POST)
		{
			foreach($_POST as $cle=>$val)
			{
			//	echo "cle = ".$cle." val =".$val."<br>";
				if($val=="" && ($cle !="user_comment" && $cle !="user_fax" && $cle !="user_organisation" && $cle !="user_country"))
				{
					$chaine .= getMessage($cle).", ";
				}
			}
			if($chaine!="")
			{
			$chaine .= getMessage('obligatory');
			}
		}

/*
* Olivier case du chemin.... :-(
* 22/06/05
*/
		//Si certains champs sont manquants pour l'inscription
		if ($chaine != "")
		{
			$GLOBALS["SYSTEM_CONTROL"]->messageSystem = $chaine;
			$GLOBALS["SYSTEM_TEMPLATE"]->MxBloc("DATA", "modify", $GLOBALS['SYSTEM_TEMPLATE_PATH'].$GLOBALS['SYSTEM_TEMPLATE_DIR']."object_coordination/home/formlecture.mxt");
			$GLOBALS["SYSTEM_TEMPLATE"]->WithMxPath("DATA", "relative");
			$this->formLecture($_POST);
			return "";
		}
		else
		{
			if($_POST["user_password"] != $_POST["user_password2"])
			{
				$GLOBALS["SYSTEM_CONTROL"]->messageSystem = "password_error";
				$GLOBALS["SYSTEM_TEMPLATE"]->MxBloc("DATA", "modify", 		$GLOBALS['SYSTEM_TEMPLATE_PATH'].$GLOBALS['SYSTEM_TEMPLATE_DIR']."object_coordination/home/formlecture.mxt");
				$GLOBALS["SYSTEM_TEMPLATE"]->WithMxPath("DATA", "relative");
				$this->formLecture($_POST);
				return "";
			}

		}
/*
* Olivier DEVAINE 13/01/05 -> plus besoin de la charte
*/
//		if(isset($_POST['user_chart']))
//		{
			/*Inclusion de la librairie UserManagerDb pour effectuer l'insertion et la vérif dans la table sys_user_temp*/
			include_once($GLOBALS['CONF_LIB_PATH']."lib/system/system_data/User/ressource/usermanagerdb.php");
			//Création de l'objet
			$MyManager=new UserManagerDb();
			//On fixe la table par la méthode getTable
			$MyManager->setTable("sys_user_temp");

			/*Inclusion de la librairie NodeGroupUserManagerDb pour effectuer l'insertion dans la table sys_node_group_user_temp*/
			include_once($GLOBALS['CONF_LIB_PATH']."lib/system/system_data/NodeGroupUser/ressource/nodegroupusermanagerdb.php");
			//Création de l'objet
			$MyNodeGroupUser=new NodeGroupUserManagerDb();
			//On fixe la table par la méthode getTable
			$MyNodeGroupUser->setTable("sys_node_group_user_temp");

			# Teste si il y a des enregistrements sur MyManager (table temporaire) ou sur la table des comptes
			if (($MyManager->checkValid($_POST["user_login"], $_POST["user_password"]) != 0) || ($GLOBALS['SYSTEM_MANAGER']['USER']->checkValid($_POST["user_login"], $_POST["user_password"]) != 0))
			{
				$GLOBALS["SYSTEM_CONTROL"]->messageSystem = "user_exist";
				$GLOBALS["SYSTEM_TEMPLATE"]->MxBloc("DATA", "modify", $GLOBALS['SYSTEM_TEMPLATE_PATH'].$GLOBALS['SYSTEM_TEMPLATE_DIR']."object_coordination/home/formlecture.mxt");
				$GLOBALS["SYSTEM_TEMPLATE"]->WithMxPath("DATA", "relative");
				$this->formLecture($_POST);
	//			systemRedirect(formatUrl($this->getId(),"Home","formLecture","user_exist"));
			  }
			else
			  {
				//On créé un nouvel objet User pour effectuer l'insertion de chaque champs
				$MyUser=new User();

				$MyUser->setTitle($_POST['user_title']);
				$MyUser->setFirstName($_POST['user_first_name']);
				$MyUser->setLastName($_POST['user_last_name']);
				$MyUser->setLogin($_POST['user_login']);
				$MyUser->setPassword($_POST['user_password']);
				$MyUser->setMail($_POST['user_mail']);
				$MyUser->setPostalAddress($_POST['user_postal_address']);
				$MyUser->setPostalCode($_POST['user_postal_code']);
				$MyUser->setCity($_POST['user_city']);
				$MyUser->setState($_POST['user_state']);
				$MyUser->setCountry($_POST['user_country']);
				$MyUser->setOrganisation($_POST['user_organisation']);
				$MyUser->setTel($_POST['user_tel']);
				$MyUser->setFax($_POST['user_fax']);
				$MyUser->setComment($_POST['user_comment']);
				//On enregistre les paramètres
				$ObjUsersave = $MyManager->saveInstance($MyUser);

				//Insertion du noeud temporaire de l'utilisateur
				//Champs concernés : user_id, group_id, node_id, is_node_only, is_forbidden
				$MyNodeUser =new NodeGroupUser();
				$MyNodeUser->setUserId($ObjUsersave->getId());
				if(isset($_GET['param']))
				{
					$MyNodeUser->setNodeId($_GET['param']);
				}
				$MyNodeUser->setGroupId(0);
				$MyNodeUser->setIsForbidden(0);
				$MyNodeUser->setIsNodeOnly(0);

				//on enregistre les paramètres
				$test = $MyNodeGroupUser->saveInstance($MyNodeUser);

				/*Indexation dans le moteur de recherche*/
				if (includePackage("search.php")){
					$status=1;
					Search::addSearch("&param=".$ObjUsersave->getId(), "usertemp", array("actionManageRegister"=>"actionManageRegister"), $MyUser->getFirstName()." ".$MyUser->getLastName(), $MyUser->getMail()." ".$MyUser->getTel(), "", $status, 0, 0, 0, $_GET['param']);
					/*On récupère l'oid de l'objet dans les droits selon le nid de la communauté*/
					/*$oidObj = Search::getOidFromNameAndNode("usertemp", $_GET['param']);
					if($oidObj != 0)
					{
					Search::addSearch("&param=".$ObjUsersave->getId(), "usertemp", array("actionManageRegister"=>"actionManageRegister"), $MyUser->getFirstName()." ".$MyUser->getLastName(), $MyUser->getMail()." ".$MyUser->getTel(), "", $status, $oidObj);
					}*/
				}

				# Redirection vers le formulaire
				systemRedirect(absoluteUrl("user_subscribe",$_GET['param']));
			}
//		}
//		else //si la Charte n'est pas validée
//		{
//				$GLOBALS["SYSTEM_CONTROL"]->messageSystem = "chartnessaryaccept";
//				$GLOBALS["SYSTEM_TEMPLATE"]->MxBloc("DATA", "modify", $GLOBALS['SYSTEM_TEMPLATE_PATH'].$GLOBALS['SYSTEM_TEMPLATE_DIR']."object_coordination/home/formLecture.mxt");
//				$GLOBALS["SYSTEM_TEMPLATE"]->WithMxPath("DATA", "relative");
//				$this->formLecture($_POST);
//		}
        return "";
    }

	/**
	* getAllRow4Export : recupere tous les enregistrements utilisé par l'objet de coordination 
	* le tableau est constiué de la nom_du_champ=valeur_du_champ
	* Si aucune données n'est à exporter, la méthode return null
	* @access public
	* @return tableau associatif
	*/
	function getAllRow4Export(){
		$nodeId = recupCommunity();
		$datas = array();
		
		if(is_numeric($nodeId)){
			$sql="SELECT * FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".$nodeId;
        		$result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);
			if ($GLOBALS['SYSTEM_DATABASE_CONN']->sql_numrows()>0){
				$dataReturn = array();
				while($list = $GLOBALS['SYSTEM_DATABASE_CONN']->sql_fetchrow())
					$dataReturn[]=$list;
				$GLOBALS['SYSTEM_DATABASE_CONN']->sql_freeresult();

				$datas[0]["tableName"]=DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode";
				$datas[0]["datas"]=$dataReturn;
				return $datas;
			}
		}
		return null;
	}

	/**
	* setAllRow4Import : Insert les donnes en provenance du tableau associatif
	* le tableau est constiué de la nom_du_champ=valeur_du_champ
	* Si les enregistrements se sont bien sauvegardés, return true
	* @access public
	* @param boolean
	*/
	function setAllRow4Import($tableau){
		$nodeId = recupCommunity();

		if(is_numeric($nodeId)){
			$sql="DELETE FROM ".DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."textentrynode WHERE node_id=".$nodeId;
        		$result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);
		}

		for($j=0;$j < count($tableau);$j++){
			$tableName = $tableau[$j]["tableName"];
			$tableElem = $tableau[$j]["datas"];

			for($i=0;$i <count($tableElem);$i++){	
				unset($set);
				unset($values);
	
				foreach($tableElem[$i] as $key=>$value){
					if(!is_numeric($key)){
						(!isset($set))?$set=$key:$set.=",".$key;
						(!isset($values))?$values="'".$value."'":$values.=",'".$value."'";
					}
				}
				$sql = "INSERT INTO ".$tableName." (".$set.") VALUES(".$values.")";
				$result=$GLOBALS['SYSTEM_DATABASE_CONN']->sql_query($sql);
			}
		}
		return true;
	}
}
/**
* Function permettant de verifié la validité d'un mail saisi
* @access public
* @return chaine chaine code message
*/

 function verifie_email($email){
 $email = strtolower($email);
 
  if (strlen($email) < 6){ return "$email : Email trop court";}
  if (strlen($email) > 255) {return "$email : Email trop long";}
  if (!ereg("@", $email)){ return "$email : Le email n'a pas d'arobase
(@)";}
  if (preg_match_all("/([^a-zA-Z0-9_\@\.\-])/i", $email, $trouve))
  {
  return "$email : caractère(s) interdit(s) dans un email
(".implode(", ", $trouve[0]).").";
  }
  if (!preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,
4}\$/i", $email))
  {
  return "$email : ce n'est pas un la forme d'un email.";
  }
  list($compte, $domaine)=split("@", $email, 2);
  if (!checkdnsrr($domaine, "MX")){
  return "$email : Ce domaine ($domaine) n'accepte pas les
emails";
  }
  return "$email : Valide !";
}
?>
