Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Publipostage (zip et mel)

0/5 (6 avis)

Vue 8 653 fois - Téléchargée 607 fois

Description

Ce code permet la création d'un publipostage à partir d'un document .rtf (Microsoft ou OpenOffice) et de données extraite d'un fichier .csv et de paramétrer les documents en sortie
Etape 1 : Chargement des deux fichiers. Un aperçu sera afficher pour voir si le contenu est correct. En option la possibilité de protéger ces données par identifiant et mot de passe (utile si l'application est ouverte à plusieurs personnes ou en accès libre)
Etape 2 : Paramétrage avec une sélection des enregistrements a publier, la création du lien entre les données et les champs de fusion disponible, la définition du/des nom(s) du fichier à éditer (très utile pour créer 1 document par enregistrement et le nommer en fonction des ) ou encore le paramétrage de l'option d'envoi de mel
Etape 3 : La génération du/des documents qu'il sera possible de lire, d'envoyer par mel ou de récupérer dans un ZIP

Il y a en plus un bouton d'aide à chaque étape.
J'ai mis un jeu de test à votre disposition.

Source / Exemple :


<?php
  error_reporting (E_ERROR|E_PARSE);
  session_start();
?>
<HTML>
<HEAD>
<TITLE>Publipostage Dam's Prod - Etape 1</TITLE>
<STYLE>
	BODY {background:url('images/fond.png')}
	A {cursor:pointer; text-decoration:none;}
	button {font-size:16pt;}
</STYLE>
</HEAD>
<BODY>
<CENTER>
<TABLE border=0 width="100%"><TR><TD width="10%" style='vertical-align:middle; text-align:center; font-size:18pt;'>ETAPE<br>1/3<TD><CENTER><H1>CHARGEMENT DES FICHIERS</H1><TD width="10%"><A href='aide/1-.html' target=aide><IMG src='aide/images/aide.png' border="0" /></TABLE>

<?php

// Définition de la session
$ip=$_SERVER["REMOTE_ADDR"];
$i=1;
while (is_dir("_SESS_".$ip."_".$i))
	$i++;
$_SESSION['session']="_SESS_".$ip."_".$i;
mkdir ($_SESSION['session'], 0777);
mkdir ($_SESSION['session']."/exports", 0777);

echo "<i>SESSION : <b>".$_SESSION['session']."</b></i><br><br>";

// Définition du séparateur
if (!$_SESSION['sep']) {
	$_SESSION['sep']=";";
}

?>

<TABLE border="0" width="100%">
<TR><TD width="20%" style="text-align:right;"><IMG src="images/OpenOffice writer 3D.png" />
<TD><CENTER><IFRAME src="chargement_rtf.php" width="80%" height="170" style="border:solid 1px #646D1D;"></IFRAME> <br><br>
<TD width="20%"><IMG id=img_rtf src="" />

<TR><TD width="20%" style="text-align:right;"><IMG src="images/openoffice tableur 3D.png" />
<TD><CENTER><IFRAME src="chargement_csv.php" width="80%" height="170" style="border:solid 1px #646D1D;"></IFRAME> <br><br>
<TD width="20%"><IMG id=img_csv src="" />
</TABLE>
<CENTER><FORM method="post" action="param.php">
Protection : Identifiant <INPUT type=text name=ident size=15 value=""> Mot de passe <INPUT type=text name=mdp size=15 value=""> (Laisser à vide si vous ne vous pas de protection)
<br><br><INPUT type=hidden id=fich_rtf name=fich_rtf size=50 value="rien">Séparateur dans fichier CSV &nbsp;<INPUT type=text name=sep value="<?php echo $_SESSION['sep'];?>" style="font-size:20pt;width:20px;">
<INPUT type=hidden id=fich_csv name=fich_csv size=50 value="rien"><br><br>
<INPUT id=suivant type=submit style="display:none;" value="Passer à l'étape suivante" />
</FORM>
<SCRIPT LANGUAGE="JavaScript"> 

var fich_rtf=document.getElementById("fich_rtf");
var fich_csv=document.getElementById("fich_csv");
var img_rtf=document.getElementById("img_rtf");
var img_csv=document.getElementById("img_csv");
var suivant=document.getElementById("suivant");
		
	function suite() {
		if ( (fich_rtf.value != "rien") && (fich_csv.value != "rien") ) {
			suivant.style.display="block";
		}
	}

	function maj_rtf(v) {
		fich_rtf.value=v
		if (v != "rien")
			img_rtf.src="images/button_ok.png";
		else
			img_rtf.src="images/button_cancel.png";
		suite();
	}

	
	function maj_csv(v) {
		fich_csv.value=v
		if (v != "rien")
			img_csv.src="images/button_ok.png";
		else
			img_csv.src="images/button_cancel.png";
		suite();
	}
</SCRIPT>
</center>
</BODY>
</HTML>

Conclusion :


J'attends vos remarques

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.