<?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.
*
*Ce fichier contient la classe UserTemp
*
* @author Initiance <www.initiance.com|martial@initiance.com>
* @since 2004/06/07
* @version 0.3
* @link www.rooty.me
* @package object_coordination
* @subpackage UserTemp
* @copyright Copyright &copy; 2009-2018, Rooty
*/
if ( !defined('SYSTEM_IN') )
{
 die("Hacking attempt");
}

/**
* Classe UserTemp
*
* Classe pour la pré-inscription
*
* @package object_coordination
* @subpackage UserTemp
*/
Class UserTemp extends CoordinationObj
{

/**
* Function permettant d'afficher le formulaire de pré-inscription pour enregistrement dans la bd
* @access public
* @return chaine chaine code message
*/
    function actionManageRegister()
    {
		global $SERVER_NAME, $SCRIPT_NAME, $CONF_PERSISTANT_SECURE,$CONF_DATA_PATH;
		
		/*Récupération des messages utilisateurs*/
		addMessageFile("user.ini");
		
		mxPageTitle("titlAdminSubscriptions");
		
		/* 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 */
		
		$arrayCallCss = array();
		$arrayCallCss[] = "data/css/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.css";
		mxCallCss($arrayCallCss);
		
		$arrayCallJs = array();
		$arrayCallJs[] = "data/javascript/jquery.dataTables/1.10.22/jquery.dataTables.min.js";
		$arrayCallJs[] = "data/javascript/dataTables.bootstrap4/1.10.22/dataTables.bootstrap4.min.js";
		mxCallJs($arrayCallJs);
		
		$arrayRawJs[] = "\$(document).ready(function(){\$(\"#tabInscriptions\").dataTable({\"bPaginate\": false,\"bFilter\": false,\"bInfo\": false,\"aaSorting\": [[ 0, \"desc\" ]],\"oLanguage\": {\"sUrl\": \"data/message/".$currentCode."/datatables.txt\"}});}); ";
		$arrayRawJs[] = "function Valid_register(the_val,the_form,the_field){var objectform = document.forms[the_form];var nbr = objectform.length;var flag = 0;for (z=0 ; z < nbr; z++){if(objectform.elements[z].checked == true && objectform.elements[z].name == the_field){flag=1;}}if(flag == 0){alert(document.userTemp.selectcheckbox.value);return false;}else{if(the_val == 1){var reponse = confirm(document.userTemp.confirmactivate.value);}else{var reponse = confirm(document.userTemp.confirmdelete.value);}if(reponse == true){if(the_val==1){objectform.action=document.userTemp.urlAction1.value;}else{objectform.action=document.userTemp.urlAction2.value;}objectform.submit();}else{return false;}}}";
		mxRawJs($arrayRawJs);
		
		/* On inclus la template (voir package.template.php) */
		withBlocPath("UserTemp", "actionManageRegister");

		/* Récuperation du noeud à administrer sinon noeud d'entrée de l'admin */
		$groupId=($this->getData("groupId")!="")?$this->getData("groupId"):1; 		/* Tous les Groupes par défaut */
		/* Creation du Tree d'admin */
		$myTreeGroup			=$GLOBALS["SYSTEM_MANAGER"]["TREE_GROUP"]->createInstance($groupId);
		/* Verification de l'existance du Tree */
		if ( !is_object($myTreeGroup) ){
			if ( $myTreeGroup->isLoaded()==false ){
				systemRedirect($urlReturn."&msg=WrongArgument");
				return "WrongArgument";
			}
		}
		// --> recuperation du treeNode correspondant au noeurd
		$tabTreeGroup[0]=$myTreeGroup;		//--> treeNodeUnique....

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

		/*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
		$MyUserManager=new UserManagerDb();
		//On fixe la table par la méthode getTable
		$MyUserManager->setTable(DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."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
		$MyNodeGroupUserManager=new NodeGroupUserManagerDb();
		//On fixe la table par la méthode setTable
		$MyNodeGroupUserManager->setTable(DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."node_group_user_temp");

		//On récupère l'instance des noeuds et groupes temporaires
		$tabNodeGroupUser=$MyNodeGroupUserManager->getInstanceFromNodeId($nodeId);

		if(count($tabNodeGroupUser)>0)
		{
		  //on parcours les groupes du noeud courant pour avoir les utilisateurs pré-enregistrés
		  for ($i=0; $i<count($tabNodeGroupUser); $i++)
		  {
			//On créé l'instace permettant de récupérer les données de l'utilisateur temporaire
			$currentUser=$MyUserManager->createInstance($tabNodeGroupUser[$i]->getUserId());
			//OBTENIR LE GROUPE DE L'UTILISATEUR
// 			var_dump($tabNodeGroupUser[$i]->getGroupId());
			//On récupère les données de l'utilisateur concerné
			$GLOBALS["SYSTEM_TEMPLATE"]->MxText("ligne.vuser_first_name", $currentUser->getFirstName());
			$GLOBALS["SYSTEM_TEMPLATE"]->MxText("ligne.vuser_last_name", $currentUser->getLastName());
			$GLOBALS["SYSTEM_TEMPLATE"]->MxText("ligne.vuser_login", $currentUser->getLogin());
			
			$Group=$GLOBALS["SYSTEM_MANAGER"]["TREE_GROUP"]->createInstance( $tabNodeGroupUser[$i]->getGroupId());
			$tabWayTreeGroup = $Group->getFatherLibelleArray($currentCode);
			
			if( $tabWayTreeGroup ) {
				$lib=$tabWayTreeGroup[0];

				if ($lib==""){
					$tabWayTreeGroup = $Group->getFatherLibelleArray($defaultCode);
				}
				$treeGroup = "";
				for($n=(count($tabWayTreeGroup)-1);$n>=0;$n--){
					if($n>0)
						$treeGroup .= " / ".$tabWayTreeGroup[$n];
					else
						$treeGroup .= " / ".$tabWayTreeGroup[$n]."";
				}
			} else {
				$treeGroup = "Aucun";
			}
			
			$lib = $treeGroup;
			
			$GLOBALS["SYSTEM_TEMPLATE"]->MxText("ligne.vuser_group", $lib);
			$GLOBALS["SYSTEM_TEMPLATE"]->MxText("ligne.vuser_mail", $currentUser->getMail());
			$GLOBALS["SYSTEM_TEMPLATE"]->MxCheckerField("ligne.vuser_action", "checkbox", "user_id[]", $currentUser->getId(),"","class='BUTTON'");
			$GLOBALS["SYSTEM_TEMPLATE"]->MxBloc("ligne", "loop");
		  }
		}
		else
		{
			$GLOBALS["SYSTEM_CONTROL"]->messageSystem = "NoRegisterEntry";
		}
		
		printTabTreeGroup($tabTreeGroup, 0, "GROUP", "id_Group", '', getMessage("TxtGroup"));

// 		<input type="button" name="BtnReturn" class="btn btn-outline-secondary btn-lg btn-sm" aria-pressed="true" value="<mx:text id="BtnReturn"/>" onclick="history.back();"/>
		$GLOBALS["SYSTEM_TEMPLATE"]->MxFormField("user_delete", "button", "boutton", getMessage("user_delete"), " class=\"btn btn-outline-secondary btn-lg btn-sm\" aria-pressed=\"true\" onclick=\"javascript:Valid_register(2,'FManageRegister','user_id[]');\"");
		$GLOBALS["SYSTEM_TEMPLATE"]->MxFormField("user_accept", "button", "boutton", getMessage("user_accept"), " class=\"btn btn-outline-secondary btn-lg btn-sm\" aria-pressed=\"true\" onclick=\"javascript:Valid_register(1,'FManageRegister','user_id[]');\"");

        	# Envoi du formulaire en fonction de l'action : encode le javascript
		$GLOBALS["SYSTEM_TEMPLATE"]->MxAttribut("urlAction0", formatUrl($this->getId(),"UserTemp","execManageRegister"));
		$GLOBALS["SYSTEM_TEMPLATE"]->MxAttribut("urlAction1", formatUrl($this->getId(),"UserTemp","execManageRegister"));
		$GLOBALS["SYSTEM_TEMPLATE"]->MxAttribut("urlAction2", formatUrl($this->getId(),"UserTemp","execDeleteManageRegister"));
		return "";
    }

/**
* Function permettant d'enregistrer comme active les pré-inscriptions pour la communauté correspondante
* @access public
* @return chaine chaine html
*/
    function execManageRegister()
    {
		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");

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

		if(isset($_POST['user_id']))
		{
			$tabUserIdTemp = $_POST['user_id'];
			/*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
			$MyUserManagerTemp=new UserManagerDb();
			//On fixe la table par la méthode getTable
			$MyUserManagerTemp->setTable(DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."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
			$MyNodeGroupUserManager=new NodeGroupUserManagerDb();
			//On fixe la table par la méthode setTable
			$MyNodeGroupUserManager->setTable(DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."node_group_user_temp");

			//On parcours le tableau des coches
			for($i=0;$i<count($tabUserIdTemp);$i++)
			{
				$objUserTemp = $MyUserManagerTemp->createInstance($tabUserIdTemp[$i]);
				//On récupère l'instance des noeuds et groupes temporaires
				$tabNodeGroupUser=$MyNodeGroupUserManager->getInstanceFromUserId($objUserTemp->getId(), array() );
				if (count($tabNodeGroupUser)==1)
				{
					if ( $nodeId==$tabNodeGroupUser[0]->getNodeId() )
					{
						$userTempId = $objUserTemp->getId();/*Récuperation de l'id de l'utilisateur temporaire pour l'indexation*/

						//On supprime le compte de la table temporaire
						$objUserTemp = $MyUserManagerTemp->deleteInstance($objUserTemp); //ca marche : suppression de l'enregistrement
						//On supprime le noeud temporaire du compte
						$MyNodeGroupUserManager->deleteInstance($tabNodeGroupUser[0]);
						//Insertion de l'objet dans la table user
						$objUser=$GLOBALS["SYSTEM_MANAGER"]["USER"]->insertInstance($objUserTemp);
						$objGroupUser=new GroupUser();
						$objGroupUser->setUserId($objUser->getId());
						$objGroupUser->setGroupId($_POST["id_Group"]);
						$objGroupUser=$GLOBALS["SYSTEM_MANAGER"]["GROUP_USER"]->insertInstance($objGroupUser);
					}else{
						/* le compte ne correspond pas à la communauté ?! */
					}
				}else{
					/* Intégritée des comptes temporaires corrompue */
				}
			}

// 			require_once('lib/package/class.phpmailer.php');
// 			$address = $objUser->getMail();
// 
// 			$mail             = new PHPMailer(); // defaults to using php "mail()"
// 			$body             = file_get_contents('lib/package/phpmailer/templates/acceptinscription_'.$nodeId.'.html');
// 			$body             = eregi_replace("[\]",'',$body);
// // 			$body             = str_replace("<#CHARMAIN#>",$objUser->getWow_CharMain(),$body);
// 			$body             = str_replace("<#IDENTIFIANT#>",$objUser->getLogin(),$body);
// 			$body             = str_replace("<#PASSWORD#>",$objUser->getPassword(),$body);
// 			$body             = str_replace("<#MAIL#>",$objUser->getMail(),$body);
// 			$mail->isMail();
// 			$mail->setLanguage('fr', 'lib/package/phpmailer/language/');
// 			$mail->AddReplyTo(recupCommunity("mailnode"),recupCommunity("lib", $currentCode));
// 			$mail->SetFrom(recupCommunity("mailnode"),recupCommunity("lib", $currentCode));
// 			$mail->AddAddress($address, $objUser->getLogin());
// 			$mail->AddBCC(recupCommunity("mailnode"), "");
// 			$mail->Subject    = "Votre inscription sur le site ".$_SERVER['SERVER_NAME'];
// // 			$mail->AltBody    = "Pour pouvoir afficher correctement le message, veuillez utiliser un client de courriels compatible HTML !"; // optional, comment out and test
// 			$mail->MsgHTML(utf8_decode($body));
// 			$mail->AddAttachment("data/image/communities/".$_GET['param']."_logo.png");
// 
// 			if(!$mail->Send()) {
// 				systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","workend_error"));
// 			} else {
// 				systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","workend"));
// 				exec("xmpp_notification.py -c=/home/webpub/fab-l3.org/www/config/.sendxmpprc-webplatform -m=\"Une demande d'inscription de l'utilisateur ".$objUser->getLogin()." est en attente sur Fab-l3.org\"");
// 			}

			require_once('lib/package/class.phpmailer.phpmailer.php');
			$address = $objUser->getMail();

			try {
				$mail				= new PHPMailer(true); 
				$body             = file_get_contents('lib/package/phpmailer/templates/acceptinscription_'.$nodeId.'.html');
	// 			$body             	= eregi_replace("[\]",'',$body);
	// 			$v = preg_quote($body, '/');
	// 			$body				= preg_replace("/[\\]/i",'',$body);
	// 			$body				= preg_replace("/$v/", '', $body);
				$body             	= str_replace("<#NOM#>",$objUser->getFirstName(),$body);
				$body             	= str_replace("<#PRENOM#>",$objUser->getLastName(),$body);
				$body             	= str_replace("<#IDENTIFIANT#>",$objUser->getLogin(),$body);
				$body             	= str_replace("<#PASSWORD#>",$objUser->getPassword(),$body);
				$body             	= str_replace("<#MAIL#>",$objUser->getMail(),$body);
				$mail->isMail();
				$mail->setLanguage(strtolower($currentCode), 'lib/package/phpmailer/language/');
				$mail->AddReplyTo(recupCommunity("mailnode"),recupCommunity("lib", $currentCode));
				$mail->SetFrom(recupCommunity("mailnode"),recupCommunity("lib", $currentCode));
				$mail->AddAddress($address, $objUser->getLogin());
				$mail->AddBCC(recupCommunity("mailnode"), "");
				$mail->Subject    = "Votre inscription sur le site web ".$_SERVER['SERVER_NAME'];
				$mail->AddAttachment("data/image/communities/".$_GET['param']."_logo.png");      // attachment
				$mail->isHTML(true);
				$mail->Body    = utf8_decode($body);
	// 			$mail->AltBody = 'Pour pouvoir afficher correctement le message, veuillez utiliser un client de courriels compatible HTML !';

				$mail->send();
				systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","workend"));
				exec("xmpp_notification.py -c=/home/webpub/fab-l3.org/www/config/.sendxmpprc-webplatform -m=\"Une demande d'inscription de l'utilisateur ".$objUser->getLogin()." est en attente sur Fab-l3.org\"");
			} catch (Exception $e) {
				systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","workend_error"));
	// 			echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
			}
		}
		else
		{
			//Redirection vers la page précédente actionManagerRegister, aucune coche sélectionnée
	        	systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","selectcheckbox"));
		}
     }

/**
* Function permettant de supprimer les pré-inscriptions pour la communauté correspondante
* @access public
* @return chaine chaine html
*/
    function execDeleteManageRegister()
    {
        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");

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

		if(isset($_POST['user_id']))
		{
			$tabUserIdTemp = $_POST['user_id'];
			/*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
			$MyUserManagerTemp=new UserManagerDb();
			//On fixe la table par la méthode getTable
			$MyUserManagerTemp->setTable(DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."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
			$MyNodeGroupUserManager=new NodeGroupUserManagerDb();
			//On fixe la table par la méthode setTable
			$MyNodeGroupUserManager->setTable(DATA_ACCES_TABLE_PREFIX.DATA_ACCES_OBJECT_PREFIX."node_group_user_temp");

			//On parcours le tableau des coches
			for($i=0;$i<count($tabUserIdTemp);$i++)
			{
				$objUserTemp = $MyUserManagerTemp->createInstance($tabUserIdTemp[$i]);
				//On récupère l'instance des noeuds et groupes temporaires
				$tabNodeGroupUser=$MyNodeGroupUserManager->getInstanceFromUserId($objUserTemp->getId(), array() );
				if (count($tabNodeGroupUser)==1)
				{
					if ( $nodeId==$tabNodeGroupUser[0]->getNodeId() )
					{
						//On supprime le compte de la table temporaire
						$objUserTemp = $MyUserManagerTemp->deleteInstance($objUserTemp); //ca marche : suppression de l'enregistrement
						//On supprime le noeud temporaire du compte
						$MyNodeGroupUserManager->deleteInstance($tabNodeGroupUser[0]);
					}else{
						/* le compte ne correspond pas à la communauté ?! */
						//echo "compte non relatif à la communauté";
					}
				}else{
					/* Intégritée des comptes temporaires corrompue */
					//echo "Intégritée des comptes temporaires corrompue";
				}
			}

// 			require_once('lib/package/class.phpmailer.php');
// 			$address = $objUserTemp->getMail();
// 
// 			$mail             = new PHPMailer(); // defaults to using php "mail()"
// 			$body             = file_get_contents('lib/package/phpmailer/templates/refusedinscription_'.recupCommunity("id").'.html');
// 			$body             = eregi_replace("[\]",'',$body);
// 	// 		$body             = str_replace("<#CHARMAIN#>",$objUserTemp->getWow_CharMain(),$body);
// 			$body             = str_replace("<#IDENTIFIANT#>",$objUserTemp->getLogin(),$body);
// 			$body             = str_replace("<#PASSWORD#>",$objUserTemp->getPassword(),$body);
// 			$body             = str_replace("<#MAIL#>",$objUserTemp->getMail(),$body);
// 			$mail->isMail();
// 			$mail->setLanguage(strtolower($currentCode), 'lib/package/phpmailer/language/');
// 			$mail->AddReplyTo(recupCommunity("mailnode"),recupCommunity("lib", $currentCode));
// 			$mail->SetFrom(recupCommunity("mailnode"),recupCommunity("lib", $currentCode));
// 			$mail->AddAddress($address, $objUserTemp->getLogin());
// 			$mail->AddBCC(recupCommunity("mailnode"), "");
// 			$mail->Subject    = "Votre pre-inscription sur le site web ".$_SERVER['SERVER_NAME'];
// 	// 		$mail->AltBody    = "Pour pouvoir afficher correctement le message, veuillez utiliser un client de courriels compatible HTML !"; // optional, comment out and test
// 			$mail->MsgHTML(utf8_decode($body));
// 			$mail->AddAttachment("data/image/communities/".recupCommunity("id")."_logo.png");      // attachment
// 
// 			if(!$mail->Send()) {
// 				systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","workend_error"));
// 			} else {
// 				systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","workend"));
// 				exec("xmpp_notification.py -c=/home/webpub/fab-l3.org/www/config/.sendxmpprc-webplatform -m=\"La demande d'inscription de l'utilisateur ".$objUser->getLogin()." n'a pas été acceptée sur Fab-l3.org\"");
// 			}
			require_once('lib/package/class.phpmailer.phpmailer.php');
			$address = $objUser->getMail();

			try {
				$mail				= new PHPMailer(true); 
				$body             = file_get_contents('lib/package/phpmailer/templates/refusedinscription_'.$nodeId.'.html');
	// 			$body             	= eregi_replace("[\]",'',$body);
	// 			$v = preg_quote($body, '/');
	// 			$body				= preg_replace("/[\\]/i",'',$body);
	// 			$body				= preg_replace("/$v/", '', $body);
				$body             	= str_replace("<#NOM#>",$objUserTemp->getFirstName(),$body);
				$body             	= str_replace("<#PRENOM#>",$objUserTemp->getLastName(),$body);
				$body             	= str_replace("<#IDENTIFIANT#>",$objUserTemp->getLogin(),$body);
				$body             	= str_replace("<#PASSWORD#>",$objUserTemp->getPassword(),$body);
				$body             	= str_replace("<#MAIL#>",$objUserTemp->getMail(),$body);
				$mail->isMail();
				$mail->setLanguage(strtolower($currentCode), 'lib/package/phpmailer/language/');
				$mail->AddReplyTo(recupCommunity("mailnode"),recupCommunity("lib", $currentCode));
				$mail->SetFrom(recupCommunity("mailnode"),recupCommunity("lib", $currentCode));
				$mail->AddAddress($address, $objUser->getLogin());
				$mail->AddBCC(recupCommunity("mailnode"), "");
				$mail->Subject    = "Votre pre-inscription sur le site web ".$_SERVER['SERVER_NAME'];
				$mail->AddAttachment("data/image/communities/".$_GET['param']."_logo.png");      // attachment
				$mail->isHTML(true);
				$mail->Body    = utf8_decode($body);
	// 			$mail->AltBody = 'Pour pouvoir afficher correctement le message, veuillez utiliser un client de courriels compatible HTML !';

				$mail->send();
				systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","workend"));
				exec("xmpp_notification.py -c=/home/webpub/fab-l3.org/www/config/.sendxmpprc-webplatform -m=\"La demande d'inscription de l'utilisateur ".$objUser->getLogin()." n'a pas été acceptée sur Fab-l3.org\"");
			} catch (Exception $e) {
				systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","workend_error"));
	// 			echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
			}
		} else {
			//Redirection vers la page précédente actionManagerRegister, aucune coche sélectionnée
			systemRedirect(formatUrl($this->getId(),"UserTemp","actionManageRegister","selectcheckbox"));
		}
     }

#######################################################################################################################################
### Parametrage de l'instance!!!
#######################################################################################################################################
#### On surcharge
###### ici les methodes de CoordinationObj pour avoir un form permettant de saisir la racine de fonctionnement de l'objet
/**
*Surcharge des methodes de CoordinationObj pour avoir un form permettant de saisir la racine de fonctionnement de l'objet
* @param chaine url pour le form
* @param chaine url pour la réponse
* @param entier groupe de configuration...
* @param entier noeud de configuration endroit ou l'objet a été créé
* @param tableau
* @access private
* @return chaine chaine code message
*/
	function configurePrint($url, $urlReturn, $groupIdPass, $nodeIdPass, $tabForbiddenPass)
	{
		addMessageFile("object.ini");

		$end=parent::configurePrint($url, $urlReturn, $groupIdPass, $nodeIdPass, $tabForbiddenPass);

		// On affiche en plus la liste des noeud et des groupes paramétrables
		/* Récuperation du noeud à administrer sinon noeud d'entrée de l'admin */
		$tabForbidden=(is_array($this->getData("tabForbidden")))?$this->getData("tabForbidden"):array();
		$groupId=($this->getData("groupId")!="")?$this->getData("groupId"):1; 		/* Tous les Groupes par défaut */

		// --> recuperation du treeNode correspondant au noeurd
		/* Creation du Tree d'admin */
		$myTreeGroup			=$GLOBALS["SYSTEM_MANAGER"]["TREE_GROUP"]->createInstance($groupIdPass);
		/* Verification de l'existance du Tree */
		if ( !is_object($myTreeGroup) ){
			if ( $myTreeGroup->isLoaded()==false ){
				systemRedirect($urlReturn."&msg=WrongArgument");
				return "WrongArgument";
			}
		}
		// --> recuperation du treeNode correspondant au noeurd

		$tabTreeGroup[0]=$myTreeGroup;		//--> treeNodeUnique....
		printTabTreeGroup($tabTreeGroup, $groupId, "GROUP_ADMIN", "group_admin_id");
		/* -- Fin Affichage des groupes d'ajout */

		return $end;
	}

/**
* __createObject: retourne la chaine d'affichage de création de l'objet (/défaut)
* @param chaine url pour le form
* @param chaine url pour la reponse
* @param entier groupe de configuration...
* @param entier noeud de configuration endroit ou l'objet a été créé
* @param tableau
* @access public
* @return chaine chaine code Message
*/
	function __createObject($url, $urlReturn, $groupIdPass, $nodeIdPass, $tabForbiddenPass)
	{
		withBlocPath("UserTemp", "configuration");
		$end=$this->configurePrint($url, $urlReturn, $groupIdPass, $nodeIdPass, $tabForbiddenPass);
		ExitBloc();
		return $end;
	}

/**
* __execCreateObject: retourne la chaine d'affichage de création de l'objet (/traitement)
* @param entier groupe de configuration...
* @param entier noeud de configuration endroit ou l'objet a été créé
* @param tableau
* @access public
* @return chaine chaine code Message
*/
	function __execCreateObject($groupIdPass, $nodeIdPass, $tabForbiddenPass)
	{
		if (isset($_POST["group_admin_id"]))
			$this->setData("groupId", $_POST["group_admin_id"]);
		else
			$this->setData("groupId", nid());

		$end=parent::__execCreateObject($groupIdPass, $nodeIdPass, $tabForbiddenPass);
		return $end;
	}

/**
* __execUpdateObject: effectue les modification sur l'objet usertemp (/traitement)
* @param entier groupe de configuration...
* @param entier noeud de configuration endroit ou l'objet a été créé
* @param tableau
* @access public
* @return chaine chaine code Message
*/
	function __execUpdateObject($groupIdPass, $nodeIdPass, $tabForbiddenPass)
	{
		if (isset($_POST["group_admin_id"]))
			$this->setData("groupId", $_POST["group_admin_id"]);
		else
			$this->setData("groupId", 1);

		$end=parent::__execUpdateObject($groupIdPass, $nodeIdPass, $tabForbiddenPass);
		return $end;
	}

/**
* __updateObject: surchage updateObject de l'objet de coordination
* @param chaine url pour le form
* @param chaine url pour la réponse
* @param entier groupe de configuration...
* @param entier noeud de configuration endroit ou l'objet a été créé
* @param tableau
* @access public
* @return chaine chaine code Message
*/
	function __updateObject($url, $urlReturn, $groupIdPass, $nodeIdPass, $tabForbiddenPass)
	{
		withBlocPath("UserTemp", "configuration");
		$end=$this->configurePrint($url, $urlReturn, $groupIdPass, $nodeIdPass, $tabForbiddenPass);
		ExitBloc();
		return $end;
	}
}
?>
