Page 1 sur 1

Gsup to sms et autres petites modifs.

Posté : jeu. 5 sept. 2013 16:00
par Ptitvincou
Bonjour,

je vois que votre web application se développe bien !

je suis content de voir que vous prenez du temps pour intégrer nos contributions dans les releases !
bon malheureusement dans notre cas, tant de modifications personnelles qu'il faudrait que je passe pas mal de temps a ajouter mes bidouillages dans les nouvelles releases.

je sais qu'il s'agit la d'un gros travail mais peut être serait il favorable d'avoir un système de pluggin ...

Après la sélection des tickets pour modification en lot et les modifications du calendrier, je peux proposer a ceux qui le souhaite un système d'alerte par sms quand une intervention est "résolue".

il s'agit d'un systeme "payant" dans le sens ou j'utilise le systeme "mail to sms" d'OVH.

Pratiquement, quand le demandeur possède un numéro de portable (06 .. / 07 ..) et quand le statut est basculé sur "résolu", un email est envoyé a OVH qui le transforme en sms. (0.08€ / sms) .
Etant donné la fonction très spécifique et le cout induit, n'hesitez pas à me contacter si vous souhaitez le code en réponse et sur vincent point toitot at gmail point com

Re: Gsup to sms et autres petites modifs.

Posté : jeu. 5 sept. 2013 16:52
par Flox
Bonjour,

effectivement il s'agit la d'une fonctionnalité fort intéressante, est il possible de poster directement le code, afin que je crée un connecteur pour la prochaine version ?


Merci

Re: Gsup to sms et autres petites modifs.

Posté : jeu. 5 sept. 2013 17:24
par Ptitvincou
ok, je vais ecrire un petit tuto, pour d'une part le code, et d'autre part le système de mail to sms et la souscription a ovh.

INintéressant ? :D

Re: Gsup to sms et autres petites modifs.

Posté : jeu. 5 sept. 2013 17:58
par Flox
;) fautes de frappe je corrige....

Re: Gsup to sms et autres petites modifs.

Posté : ven. 6 juin 2014 14:56
par Ptitvincou
Voici (enfin :? ) le code a ajouter dans la version 2,
Fonctionne avec email2sms, une solution ovh. google trouvera les tutos !
dans ticket.php et new_ticket.php

Code : Tout sélectionner

//#############vincent
	// Include statut changement 
	if ($_POST['state']!=$globalrow['state'] && $_POST['state']!='')
	{
		$q1= mysql_query("SELECT * FROM tstates where id = $globalrow[state]");
		$r1=mysql_fetch_array($q1); 
		$q2 = mysql_query("SELECT * FROM tstates where id = $_POST[state]");
		$r2=mysql_fetch_array($q2);
	
		

//// SMS ////
		// envoit sms si nouveau statut = résolu
		if($_POST['state'] == 3) //si nouveau statut = resolu
		{
			// on cherche les infos sur le demandeur
			$q3= mysql_query("SELECT * FROM tusers where id = $globalrow[user]");
			$r3=mysql_fetch_array($q3);
			if($r3['phone']!='') // si le demandeur dispose d'un numero de telephone
			{
				// on envoit un email a obh pour qu'il le transmette en sms
					require("components/PHPMailer_v5.1/class.phpmailer.php"); 
					$mail = new PHPMailer();
								$mail->CharSet = 'ISO-8859-1'; //UTF-8 possible if characters problems
								$mail->SetLanguage("fr", "components/PHPMailer_v5.1/language/");
								$mail->IsSMTP();                                      // set mailer to use SMTP
								
								$mail->From = "exemple@domaine.fr";
								$mail->FromName = "Gsup";
								$mail->AddAddress("email2sms@ovh.net", "SMS ovh");
								// TEST $mail->AddAddress("exemple@domaine.fr", "SMS ovh");
							    // TEST $mail->AddAddress("exemple@domaine.fr");                  // name is optional
								$mail->AddReplyTo("vincent_toitot@cafebrasilia.fr", "Gsup");

								// $mail->WordWrap = 50;                                 // set word wrap to 50 characters
								// $mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments
								// $mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // optional name
								$mail->IsHTML(true);                                  // set email format to HTML

								//$mail->Subject = 'Account=sms-xxxxx;Login=xxxx; Password=xxxxx; From=Brasilia;To='.$r3['phone'];
					$mail->Subject = 'sms-xxxx-1:login:mdp:xxxxx:'.$r3['phone'].':::1';
								
								$text_resolu = ' -> résolu';
								//on compte le nombre de caractere dans le titre, le texte_resolu, pour ne pas depasser 160 avec le titre, le texte resolu et un bout de la resolution
								$nbre_caractere_title = strlen($globalrow['title']);
								$nbre_caractere_text_resolu = strlen($text_resolu);
								$caractere_restant = 160 - $nbre_caractere_title - $nbre_caractere_text_resolu - 5; //-5 pour les caractere separateurs

function Tronque_texte($texte,$max_caracteres,$option)
{
	// Test si la longueur du texte dépasse la limite
	if (strlen($texte)>$max_caracteres)
	{
	    // Séléction du maximum de caractères
	    $texte = substr($texte, 0, $max_caracteres);
	    // Récupération de la position du dernier espace (afin déviter de tronquer un mot)
	    $position_espace = strrpos($texte, " ");
	    $texte = substr($texte, 0, $position_espace);
	    // Ajout des "..."
	    $texte = $texte."...";
		if(isset($option))
		{
			$texte = $texte.' '.$option.'';
		}
	}
	return $texte;
}							
								$text_resolution = Tronque_texte($_POST['resolution'],$caractere_restant);
							//	$mail->Body    = $globalrow['title'].': '.$text_resolution.$text_resolu; //format html
							//	$mail->AltBody = $globalrow['title'].': '.$text_resolution.$text_resolu; //fotmat texte
								
								$mail->Body    = $globalrow['title'].$text_resolu; //format html
								$mail->AltBody = $globalrow['title'].$text_resolu; //fotmat texte

								if(!$mail->Send())
								{
								   echo "Message could not be sent. <p>";
								   echo "Mailer Error: " . $mail->ErrorInfo;
								   exit;
								}

								echo "<h3>SMS ENVOYE ! MERCI !</h3>";
								
							$messagesms= '+ SMS envoyé';
			}
			else
			{
				echo '<h1>Pas de téléphone</h1>';
			}
		}
			$_POST['resolution']="$_POST[resolution]
$today: Modification du statut de \"$r1[name]\" -> \"$r2[name]\". $messagesms";
	}

	//##################fin vincent

Re: Gsup to sms et autres petites modifs.

Posté : ven. 6 juin 2014 16:08
par Ptitvincou
pour la version 3.x

dans le fichier /core/ticket.php

apres

Code : Tout sélectionner

//threads insert close state
	if($_POST['state']=='3' && $globalrow['state']!='3')
	{
		$query = "INSERT INTO tthreads (ticket,date,author,type) VALUES ('$_GET[id]','$datetime', '$_SESSION[user_id]', 4)";
		$exec = mysql_query($query) or die('Erreur SQL !<br /><br />'.mysql_error());
Inserer:

Code : Tout sélectionner

		//####### vincent #######
		// RECHERCHE LES LIBELLES DES STATUTS 
		$q1= mysql_query("SELECT * FROM tstates where id = $globalrow[state]");
		$r1=mysql_fetch_array($q1); 
		$q2 = mysql_query("SELECT * FROM tstates where id = $_POST[state]");
		$r2=mysql_fetch_array($q2);

		//// SMS ////
		// envoit sms si nouveau statut = résolu
		if($_POST['state'] == 3) //si nouveau statut = resolu
		{
			// on cherche les infos sur le demandeur
			$q3= mysql_query("SELECT * FROM tusers where id = $globalrow[user]");
			$r3=mysql_fetch_array($q3);
			if($r3['phone']!='') // si le demandeur dispose d'un numero de telephone
			{
				// on envoit un email a obh pour qu'il le transmette en sms
					require("components/PHPMailer_v5.1/class.phpmailer.php"); 
					$mail = new PHPMailer();
								$mail->CharSet = 'ISO-8859-1'; //UTF-8 possible if characters problems
								$mail->SetLanguage("fr", "components/PHPMailer_v5.1/language/");
								$mail->IsSMTP();                                      // set mailer to use SMTP
								
								$mail->From = "vincent_toitot@cafebrasilia.fr";
								$mail->FromName = "Gsup";
								$mail->AddAddress("email2sms@ovh.net", "SMS ovh");
								// TEST $mail->AddAddress("exemple@domaine.fr", "SMS ovh");
							    //$mail->AddAddress("exemple@domaine.fr");                  // name is optional
								$mail->AddReplyTo("exemple@domaine.fr", "Gsup");

								// $mail->WordWrap = 50;                                 // set word wrap to 50 characters
								// $mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments
								// $mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // optional name
								$mail->IsHTML(true);                                  // set email format to HTML

								//$mail->Subject = 'Account=sms-vxxx-1;Login=xxxx; Password=xxxx; From=Brasilia;To='.$r3['phone'];
								$mail->Subject = 'sms-vxxxx-1:login:mdp:Brasilia:'.$r3['phone'].':::1';
								
								$text_resolu = ' -> résolu';
								//on compte le nombre de caractere dans le titre, le texte_resolu, pour ne pas depasser 160 avec le titre, le texte resolu et un bout de la resolution
								$nbre_caractere_title = strlen($globalrow['title']);
								$nbre_caractere_text_resolu = strlen($text_resolu);
								$caractere_restant = 160 - $nbre_caractere_title - $nbre_caractere_text_resolu - 5; //-5 pour les caractere separateurs

											function Tronque_texte($texte,$max_caracteres,$option)
											{
												// Test si la longueur du texte dépasse la limite
												if (strlen($texte)>$max_caracteres)
												{
													// Séléction du maximum de caractères
													$texte = substr($texte, 0, $max_caracteres);
													// Récupération de la position du dernier espace (afin déviter de tronquer un mot)
													$position_espace = strrpos($texte, " ");
													$texte = substr($texte, 0, $position_espace);
													// Ajout des "..."
													$texte = $texte."...";
													if(isset($option))
													{
														$texte = $texte.' '.$option.'';
													}
												}
												return $texte;
											}							
								$text_resolution = Tronque_texte($_POST['resolution'],$caractere_restant);
							//	$mail->Body    = $globalrow['title'].': '.$text_resolution.$text_resolu; //format html
							//	$mail->AltBody = $globalrow['title'].': '.$text_resolution.$text_resolu; //fotmat texte
								
								$mail->Body    = $globalrow['title'].$text_resolu; //format html
								$mail->AltBody = $globalrow['title'].$text_resolu; //fotmat texte

								if(!$mail->Send())
								{
								   echo "Message could not be sent. <p>";
								   echo "Mailer Error: " . $mail->ErrorInfo;
								   exit;
								}								
			}
			else
			{
				echo '<h1>Pas de téléphone</h1>';
			}
		}
		$query = "INSERT INTO tthreads (ticket,date,author,type,text) VALUES ('$_GET[id]','$datetime', '$_SESSION[user_id]',0,'SMS ENVOYE')";
		$exec = mysql_query($query) or die('Erreur SQL !<br /><br />'.mysql_error());

//#######FIN VINCENT

Re: Gsup to sms et autres petites modifs.

Posté : mar. 29 juil. 2014 16:48
par cedricl
super !!

merci Ptitvincou ;) ;)