/lamp0/web/vhosts/www.hodei.net/htdocs/wp-content/themes/CherryFramework

/*
==============================================================================
Nom              : hdi_functions.php
Langage          : PHP 5.3
Auteur           : dev@hodei.net
Date de creation : 2015-09-23
Description      : Modification pour la gestion de la fiche d'inscription
------------------------------------------------------------------------------
Modification    : FS#yyy - 2015-xx-xx - dev@hodei.net :  
 
==============================================================================
*/
 
//-------------------------------------------------------------------
// HODEI : ajout de css et js
//-------------------------------------------------------------------
// On associe le déclenchement de la fonction register_my_styles au hook WordPress
function register_my_styles()
{
	$url = plugins_url();
 
	// css 
	$urlcss = $url . "/hdicore/hdi_style.css";
	wp_register_style('wphdicss', $urlcss);
	wp_enqueue_style('wphdicss');
}
add_action('wp_enqueue_scripts','register_my_styles');
 
function register_my_scripts()
{
	$url = plugins_url();
 
	// hdi_inscription.js
	$urljs = $url . "/hdicore/hdi_inscription.js";
	wp_register_script('wphdiins', $urljs, array('jquery')); 
	wp_enqueue_script('wphdiins');
 
	// hdi_inscription2.js
	$urljs = $url . "/hdicore/hdi_inscription2.js";
	wp_register_script('wphdiins2', $urljs, array('jquery')); 
	wp_enqueue_script('wphdiins2');
 
	// hdi_message.js
	$urljs = $url . "/hdicore/hdi_message.js";
	wp_register_script('wphdimes', $urljs, array('jquery')); 
	wp_enqueue_script('wphdimes');
}
add_action('wp_enqueue_scripts','register_my_scripts');
 
// --------------------------------------------------------------------------------------
// Formulaire de connexion
// --------------------------------------------------------------------------------------
add_filter( 'login_form_bottom', 'lien_mot_de_passe_perdu' );
function lien_mot_de_passe_perdu( $formbottom )
/*
===============================================================================================================
Nom              : lien_mot_de_passe_perdu
Parametre Entree : $formbottom (object) : ....
Parametre Sortie : N/A
Parametre Retour : N/A
Auteur           : dev@hodei.net
Date de création : 2015-07-09
Description      : Ajouter le lien pour récupérer le mot de passe, si l'utilisateur ne s'en souvient plus
--------------------------------------------------------------------------------------------------------------
Modification    : FS#yyy - 2015-07-09 - dev@hodei.net :
===============================================================================================================
*/
{
	$formbottom .= '<a href="' . wp_lostpassword_url() . '">Mot de passe perdu ?</a>';
	return $formbottom;
}
 
 
 
// Fires on a non-authenticated admin post request for the given action : 
// Dans admin_post.php : wp_validate_auth_cookie = false , donc si action est vide alors admin_post_nopriv sinon admin_post_nopriv_nouvel_utilisateur
// add_action('admin_post_nopriv_nouvel_utilisateur','ajouter_utilisateur');
add_action('admin_post_nopriv_nouvel_utilisateur','ajouter_utilisateur');
function ajouter_utilisateur()
/*
===============================================================================================================
Nom              : ajouter_utilisateur
Parametre Entree : N/A
Parametre Sortie : N/A
Parametre Retour : N/A
Auteur           : dev@hodei.net
Date de création : 2015-07-09
Description      : Enregistrement de : 
                     la societe, le contact et la propale
                     utilisateur externe dolibarr 
                     l'instance dolibarr
--------------------------------------------------------------------------------------------------------------
Modification    : FS#473 - 2015-07-09 - dev@hodei.net : creation
===============================================================================================================
*/
{
	// Vérifier le nonce (et n'exécuter l'action que s'il est valide)
	/*
	 Les nonces sont l’une des meilleures façons de protéger les utilisateurs contre les menaces possibles. 
	 Ils sont utilisés pour sécuriser les actions des utilisateurs initiés par le plugin tels que la soumission d’un formulaire, 
	 la suppression de poste ou toute autre chose qui pourrait exposer la base de données. 
	 */
	$idTiers = -1;
 
	if( isset( $_POST['user-front'] ) && wp_verify_nonce( $_POST['user-front'], 'create-' . $_SERVER['REMOTE_ADDR'] ) )
	{
		// Vérifier les champs requis
		if ( ! isset( $_POST['username'] ) || ! isset( $_POST['email'] ) || ! isset( $_POST['pass'] ) )
		{
			wp_redirect( site_url( '/inscription/?message=not-user' ) );
			exit();
		}
 
		// Controle de securite avec captcha (mis en commentaire pour les tests)
		include $_SERVER['DOCUMENT_ROOT'] . "/wp-content/plugins/hdicore/crypt/cryptographp.fct.php";
		if (!(chk_crypt($_POST['captchacode'])))
		{
			wp_redirect( site_url( '/inscription/?message=not-captcha' ) );
			exit();
		}
 
		$nom = $_POST['username'];
		$prenom = $_POST['userprename'];
		$email = $_POST['email'];
		$pass = $_POST['pass'];
		$societe = $_POST['company'];
 
		// Vérifier que l'user (email ou nom) n'existe pas
		if ( hdi_is_email( $email ) && ! hdi_usernameandemail_exists( $nom, $prenom, $email )  )
		{	
 
			// --------------------------------
			// Creation Tiers/User ext./Contact 
			// --------------------------------
			//$idTiers = -1; //4982;  // Prospect 2 F
			$idTiers = wsContactWithUserCreate($_POST);
			if ($idTiers > 0)
			{
				// --------------------------------
				// Creation propale
				// --------------------------------
				$idPropal = wsPropalCreate($_POST,$idTiers);
			}
			else
			{
				// Impossible de cree le tiers dolibarr
				wp_redirect( site_url( '/inscription/?message=dolibarr-not-created' ) );
				exit();
			}
			if ($idTiers > 0 && $idPropal > 0)
			{	
				// --------------------------------
				// Creation instance dolibarr
				// --------------------------------
				$instance=clean_string_instance($_POST['instance']);
				$url='https://order.hodei.net/';
				//echo $instance;
				$curl = curl_init();
				$postfields=array('action'=>'create_instance','instance'=>$instance);
				curl_setopt($curl,CURLOPT_URL,$url);
				curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
				curl_setopt($ch, CURLOPT_USERAGENT, 'Order Hodei');
				curl_setopt($curl, CURLOPT_POST, true);
				curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);				
				$return_page = curl_exec($curl);
				curl_close($curl);
				if ($return_page != false)
				{
					//print_r($return_page);
					$info = explode(':',$return_page);
					if (count($info) != 0)
					{
						//echo '<pre>';
						//print_r($info);
						//echo '</pre>';
						/*		[0] => 'Login'
							    [1] => 'admin-hodei'
							    [2] => 'Password'
							    [3] => 'ag9jn-PyJ'
							    [4] => 'instance'
							    [5] => tatae.hodei.net/erp
						 */
						// ---------------------------------------------------
						// Envoie un mail de notification au nouvel utilisateur
						// ---------------------------------------------------
						/* 		0 : login   
								1 : prenom 
								2 : email    
								3 : nom de la societe
								4 : nom de instance
								5 : password instance 
						 */
						$sep = ";";
						$parameter = 
							$info[1] . $sep .
							$prenom . $sep .
							$email . $sep .
							$societe . $sep .
							$info[5] . $sep .
							$info[3];
 
						wp_new_user_notification( $parameter, $pass );	
 
						// --------------------------------
						// Redirection si tout s'est bien passé
						// --------------------------------
						//wp_redirect( site_url( '/?message=Bienvenue' ) );
						wp_redirect( home_url()."/bienvenue" ) ;
						exit();
					}
					else
					{
						// probleme sur le tableau retourne par fonction curl-exec
						wp_redirect( site_url( '/inscription/?message=curlarray-error' ) );
						exit();
					}
				} // curl_exec
				else
				{
					// probleme sur la fonction curl-exec
					wp_redirect( site_url( '/inscription/?message=curl-error' ) );
					exit();
				}
			} // if creation instance
		} 
		else
		{
			// le username ou email existe deja
			wp_redirect( site_url( '/inscription/?message=user-already-exist' ) );
			exit();
		}
	}  
	else
	{
		// nonces 
		wp_redirect( site_url( '/inscription/?message=nonce' ) );
		exit();
	}
}
 
/*
Le jQuery va permettre de bloquer l’envoi des données en cas d’erreur de saisie, et d’en informer l’internaute.
inscription.js nous permettra de vérifier que les champs requis soient remplis, et que l’email renseigné soit correct.
*/
 
// Il faut register les scripts que notre formualire utilise
add_action( 'wp_enqueue_scripts', 'register_login_script' );
function register_login_script()
{
	wp_register_script( 'inscription-front', get_template_directory_uri() . '/js/inscription.js', array( 'jquery' ), '1.0', true );
	wp_register_script( 'message', get_template_directory_uri() . '/js/message.js', array( 'jquery' ), '1.0', true );
	wp_enqueue_script( 'jquery' );
 
	// Ce script sera chargé sur toutes les pages du site, afin d'afficher les messages d'erreur
	wp_enqueue_script( 'message' );
}
 
//---------------------------------------------------------------------------------------------
// Afficher les erreurs
//---------------------------------------------------------------------------------------------
/*
S’il y a une erreur lors de l’inscription, celle-ci est interceptée en php puis renvoyée sur le site
par le biais d’une variable get nommée message.
Le code suivant sert à afficher pendant quelques secondes cette erreur
à l’internaute.
*/
add_action( 'wp_footer', 'show_user_registration_message' );
function show_user_registration_message()
{
	if ( isset( $_GET['message'] ) )
	{
		$wrapper = '<div class="message"><font color="red">%s</font></div>';
		switch ( $_GET['message'] )
		{
			case 'already-registred':
				echo wp_sprintf( $wrapper, 'Un utilisateur possède la même adresse.' );
				break;
			case 'user-already-exist':
				echo wp_sprintf( $wrapper, 'Le nom d\'utilisateur ou son email existe déjà dans notre base.' );
				break;
			case 'dolibarr-not-created':
				echo wp_sprintf( $wrapper, 'Impossible de créer le tiers dolibarr.' );
				break;
			case 'not-user':
				echo wp_sprintf( $wrapper, 'Votre inscription a échouée.' );
				break;
			case 'not-captcha':
				echo wp_sprintf( $wrapper, 'Le code que vous avez saisi est erroné.' );
				break;
			case 'user-updated':
				echo wp_sprintf( $wrapper, 'Votre profil a été mis à jour.' );
				break;
			case 'need-email':
				echo wp_sprintf( $wrapper, 'Votre profil n\'a pas été mis à jour. L\'email doit être renseignée.' );
				break;
			case 'email-exist':
				echo wp_sprintf( $wrapper, 'Votre profil n\'a pas été mis à jour. L\'adresse email est déjà utilisée.' );
				break;
			case 'welcome':
				echo wp_sprintf( $wrapper, 'Votre compte a été créé. Vous allez recevoir un email de confirmation.' );
				break;
			case 'nonce':
				echo wp_sprintf( $wrapper, 'Problème de nonce.' );
				break;				
			case 'curlarray-error':
				echo wp_sprintf( $wrapper, 'Problème sur le tableau retourne par la fonction curl-exec.' );
				break;				
			case 'curl-error':
				echo wp_sprintf( $wrapper, 'Problème sur la fonction curl-exec.' );
				break;			
			default :
		}
	}
}
// -----------------------------------------------------
// re-ecriture des fonctions de WordPress pour dolibarr
// -----------------------------------------------------
function hdi_is_email( $email )
/*
===============================================================================================================
Nom              : hdi_is_email
Parametre Entree : $email (string) : email à tester
Parametre Sortie : N/A
Parametre Retour : N/A
Auteur           : dev@hodei.net
Date de création : 2015-07-09
Description      : Teste si l'email est valide
--------------------------------------------------------------------------------------------------------------
Modification    : FS#473 - 2015-07-09 - dev@hodei.net : Creation de la fonction
===============================================================================================================
*/
{
	return is_email( $email );
}
function hdi_usernameandemail_exists( $nom , $prenom, $email)
/*
===============================================================================================================
Nom              : hdi_usernameandemail_exists
Parametre Entree : $nom (string) : nom de l'utilisateur
Parametre Sortie : N/A
Parametre Retour : N/A
Auteur           : dev@hodei.net
Date de création : 2015-07-09
Description      : Teste si l'utilisateur ou son email n'existe pas deja dans la bd dolibarr
--------------------------------------------------------------------------------------------------------------
Modification    : FS#473 - 2015-07-09 - dev@hodei.net : Creation de la fonction
===============================================================================================================
*/
{
	$ListOfUser = wsListOfUsers();
	foreach($ListOfUser as $userid => $fuser)
	{
		//print($userid . " " . $fuser['lastname'] . " " . $fuser['firstname'] . " " . $fuser['email'] . "<br>");
		if ((strtoupper($nom) == strtoupper ($fuser['lastname']) && strtoupper($prenom) == strtoupper($fuser['firstname']))
			|| (strtoupper($email) ==  strtoupper ($fuser['email'])))
		{
			//print("trouve<br>");
			return true; 
		}
	}
	return false;
 
}
 
 
 
// ----------------------------
// SSH
// ----------------------------
/* Notification à l'utilisateur si le serveur termine la connexion */
function my_ssh_disconnect($reason, $message, $language)
{
	printf("Server disconnected with reason code [%d] and message: %s\n",$reason, $message);
}
 
$methods = array(
		'kex' => 'diffie-hellman-group1-sha1',
		'client_to_server' => array(
				'crypt'            => '3des-cbc',
				'comp'             => 'none'),
		'server_to_client' => array(
				'crypt'            => 'aes256-cbc,aes192-cbc,aes128-cbc',
				'comp'             => 'none'));
 
$callbacks = array('disconnect' => 'my_ssh_disconnect');
add_action('admin_post_nouvel_utilisateur','ajouter_utilisateur');
 
function clean_string_instance($chaine)
{
	$caracteres = array(
			'À' => 'a', 'Á' => 'a', 'Â' => 'a', 'Ä' => 'a', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ä' => 'a', '@' => 'a',
			'È' => 'e', 'É' => 'e', 'Ê' => 'e', 'Ë' => 'e', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', '€' => 'e',
			'Ì' => 'i', 'Í' => 'i', 'Î' => 'i', 'Ï' => 'i', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
			'Ò' => 'o', 'Ó' => 'o', 'Ô' => 'o', 'Ö' => 'o', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'ö' => 'o',
			'Ù' => 'u', 'Ú' => 'u', 'Û' => 'u', 'Ü' => 'u', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'µ' => 'u',
			'Œ' => 'oe', 'œ' => 'oe',
			'$' => 's');
 
	$chaine = strtr($chaine, $caracteres);
	$chaine = preg_replace('#[^A-Za-z0-9]+#', '', $chaine);
	$chaine = trim($chaine, '-');
	$chaine = strtolower($chaine);
	return $chaine;
}

Navigation

QR Code
QR Code systeme_informatique:site_web:conception:hdi_functions.php (generated for current page)