Cas pratique : formulaire d'inscription presse pour la Fiac

Le contexte

La Foire internationale d'art contemporain ou Fiac est une manifestation d'art contemporain qui se déroule chaque année au mois d’octobre à Paris.

Pendant plusieurs jours, cette exposition artistique et commerciale devient le lieu de rencontre internationale entre galeristes, collectionneurs, conservateurs, directeurs de musées et personnalités du monde de l'art contemporain international.

Cet événement attire de nombreux journalistes. L'ensemble des relations presses sont sous-traitées à une agence spécialisée, cependant afin de simplifier le travail de ces équipes, et il est essentiel d'assurer un suivi automatisé des journalistes. Ils doivent pouvoir s'inscrire sur le site internet puis télécharger un PDF d'une lettre de remerciement avec un badge à découper.

Le Brief

  • Réaliser un site sur-lequel les journalistes peuvent s'inscrire.
  • Les journalistes peuvent télécharger un PDF personnalisé.

Fichiers de départ

Il vous est fourni une structure mvc presque vierge contenant un template de page d'accueil et des librairies FPDF qui pourront vous servir.

Ces librairies ont été légèrement modifiées pour pouvoir combiner l'utilisation des typographies, de l'import de fichier pdf, de conversion UTF-8 et de génération de codes barre.

fiac.zip

Livrables et rendu

Le rendu est un fichier zip contenant tous les fichiers nécessaires à l'execution de l'application : dump sql, documentation technique et manuel d'utilisation

Nous allons découper le travail en plusieurs versions, faites-les dans l'ordre, à chaque version on apporte un certain nombre de fonctionnalités.

Il est très fortement conseillé d'utiliser un outil de SCM comme Git pour pouvoir revenir dans votre code à des versions antérieures.

version 1

Objectifs

La version 1 est rudimentaire :

  • Les journalistes s'inscrivent sur le site
  • Les inscriptions son stockées en base de données

L'agence de Presse se chargera d'envoyer manuellement les invitations en PDF par e-mail d'après le listing des journalistes accessible par phpMyAdmin.

Fonctionnalités

  • Formulaire d'inscription
  • Vérifier les champs saisis
    • tous les champs doivent etre remplis
    • l'email est bien un e-mail
    • le login est disponible
    • le captcha est bien renseigné
  • Stocker les données dans la base de données
    • ajouter l'adresse IP d'inscription
    • ajouter la date d'inscription

version 2

Objectifs

La version 2 automatise la gestion des PDF

  • Une fois enregistrés, les utilisateurs peuvent se connecter à un espace privé
  • dans cet espace privé ils peuvent télécharger un PDF généré pour eux.

Fonctionnalités et périmètre technique

L'Espace privé

Ajoutez un système d'identification par login et mot de passe. Cette identification par session permet d'accéder à un espace privé.

Dans cet espace privé, un bouton permet de demander la génération d'un PDF. Quand ce bouton est cliqué, on accède à une page qui propose de télécharger le PDF fraîchement généré.

Bien entendu, la génération du PDF n'est autorisée que si l'utilisateur est connecté. Le PDF est un fichier comprenant un numéro aléatoire généré par uniqid et stocké dans la table utilisateur dans le champ secret_key.

Le PDF

Pour générer le PDF, nous utiliserons la librairie FPDF ainsi que ses extensions FPDI et FPDF_codabar. Ces librairies sont importées et une fonction vierge letter_generate_pdf() vous attend dans le fichier functions/letter.fn.php

Les champs du PDF

Le fichier data/pdf_output/example.pdf est un exemple de personnalisation, j'ai entouré en rouge les éléments qui sont générés dynamiquement.

Les éléments suivants sont intégrés au PDF final :

  • Date
  • Prénom Nom
  • Code barre (année + id de l'utilisateur)

Pour écrire dans un fichier PDF, référez-vous aux tutoriels de FPDF.

Import d'un PDF souche

Le PDF est généré d'après un fichier “souche” contenant une mise en page et des espaces vierges qui seront remplis par PHP.

Le fichier “souche” est dans data/pdf_templates/press_letter.pdf

Comme spécifié dans la doc de FPDI, l'import d'un fichier souche se fait avec les méthodes setSourceFile et importPage.

require('fpdf.php'); 
require('fpdi.php'); 
$pdf = new FPDI(); 
 
$pagecount = $pdf->setSourceFile('TestDoc.pdf'); 
$tplidx = $pdf->importPage(1, '/MediaBox'); 
 
$pdf->addPage(); 
$pdf->useTemplate($tplidx, 10, 10, 90); 
 
$pdf->Output('newpdf.pdf', 'D');

Code barre

L'utilisation de l'objet FPDF Codabar est surprennament simple, vous pouvez vous référer à la documentation sommaire dans le fichier lib/fpdf_codabar/info.htm

require('fpdf.php'); 
require('pdf_codabar.php');
 
$pdf=new PDF_Codabar();
$pdf->AddPage();
$pdf->Codabar(75,40,'123456789');
$pdf->Output();

version 3

La version 3 du script permet de proposer une validation manuelle des journalistes par l'agence de RP histoire que des petits malins ne fassent pas de demande de badge presse juste pour ne pas avoir à payer l'entrée.

Il y a donc un autre back-office spécialement conçu pour l'agence de RP (il peut être plus rudimentaire avec un mot de passe en dur ou utiliser des levels de la table users).

Cet administrateur peut valider ou non les demandes d'accréditation presse.

Les users, ont donc à leur création dans leur espace privé, à la place du bouton “générer un badge” un texte “demande d'accréditation en cours de validation”.

Si l'administrateur valide que l'utilisateur est bien un journaliste, l'utilisateur peut alors accéder générer puis télécharger son accès presse.

ressources/php/td15.txt · Last modified: 2013/06/16 22:51 (external edit)
 
 
Creative Commons License Powered by PHP Valid XHTML 1.0 April