Le blog.

Enregistrer des données dans une feuille de calcul Google Drive avec Zend Gdata.

Après avoir relié notre formulaire de contact pour que les messages soient stockés dans des entités WordPress de type (de post) Contact, nous allons aujourd’hui sauvegarder chaque entrée du formulaire dans une feuille de calcul Google Drive (Google Docs) en utilisant la librairie framework Zend Gdata. Ainsi, nous centraliserons tous nos messages reçus via le formulaire dans un document accessible en ligne.


La première vidéo tutoriel de cette série nous a démontré la simplicité d’utilisation de wp_insert_post pour enregistrer dynamiquement et automatiquement des données dans votre site WordPress. Cette fois, allons un peu plus loin et proposons une alternative au simple formulaire de contact vous envoyant un e-mail : enregistrons chaque entrée de formulaire dans une ligne d’un tableau stocké dans Google Drive / Docs.

C’est presque tout aussi simple que wp_insert_post !

Ecrire dans une feuille de calcul stockée dans Google Drive

set_include_path(get_template_directory() . '/inc/ZendGData');
include_once(get_template_directory() . '/inc/Google_Spreadsheet.php');

$login = "login@gmail.com";
$password = "password";

$spreadsheet = new Google_Spreadsheet($login, $password);
$spreadsheet->useSpreadsheet('Ma feuille de calcul');
$spreadsheet->useWorksheet('Feuille1');

$row = array(
  'Nom' => $name,
  'E-mail' => $email,
  'Message' => $message,
  'Date d'envoi' => date('d/m/Y')
);

$spreadsheet->addRow($row);

Après avoir inclus la librairie Zend Gdata et l’Helper PHP Google Spreadsheet, nous demandons à notre script de se connecter à l’environnement Google Spreadsheet (les feuilles de calcul dans Google Drive) avec new Google_Spreadsheet.

Ensuite, on utilise plusieurs méthodes : useSpreadsheet va indiquer quel est le nom du fichier à utiliser. useWorksheet va définir la feuille à utiliser dans ce fichier.

Une fois que notre script sait où interagir, on crée un tableau (array) contenant les informations de notre ligne à ajouter : chaque clé de ce tableau est le nom exact des intitulés des colonnes de notre tableau dans Google Docs. Les valeurs sont des variables qui ont été définies dans notre premier tutoriel.

Une fois cette array définie, il suffit tout simplement d’utiliser la méthode addRow en y passant en paramètre ce tableau fraichement créée contenant les informations de la ligne. Cette fonction est notre cerise sur le gâteau qui ajoute nos données dans la feuille de calcul.

Enfin, sachez que addRow renvoie TRUE si le contenu a bien été ajouté : cela s’avère fort pratique si vous voulez affichez un message de réussite ou d’erreur.

Grâce à ces deux tutoriels, nous pouvons désormais coupler le basique wp_mail (qui notifie par mail d’un nouveau contact de formulaire) avec un stockage persistent de ces contacts dans WordPress et dans un fichier Google Docs. Pratique si vous voulez centraliser vos données dans votre site, voire même partager ces données avec d’autres personnes — un document dans Google Docs pouvant être très facilement partagé avec d’autres utilisateurs.

13 commentaires ont été rédigés, ajoutez le votre.

  1. Lea Répondre

    Merci pour vos supers tutos! Tout ce que je cherche est là! J’ai suivi tous les tutos de cette série,et je rencontre une erreur pour l’enregistrement dans la feuille de calcul :
    Fatal error: Uncaught exception ‘Zend_Gdata_App_HttpException’ with message ‘Unable to Connect to ssl://www.google.com:443. Error #1185825034: Unable to find the socket transport « ssl » – did you forget to enable it when you configured PHP?’ in C:Users……monWordpresswp-contentthemesl…..incZendGDataZendGdataClientLogin.php on line 141

    et
    Zend_Gdata_App_HttpException: Unable to Connect to ssl://www.google.com:443. Error #1185825034: Unable to find the socket transport « ssl » – did you forget to enable it when you configured PHP? in C:Users…monWordpresswp-contentthemesl……..incZendGDataZendGdataClientLogin.php on line 141

    Sauriez-vous me dire quel est le problème?
    Merci par avance!
    Et encore bravo!

  2. Serial Répondre

    Bonjour,

    Merci pour ce tutoriel, c’est exactement ce que je cherche, par contre je pense que la dernière version de Zend Gdata(1.12.5) est différente et le helper ne marche pas sur cette version. En tous cas chez moi il a du mal a trouver les fichiers nécessaires

    Une confirmation ?

    Merci d’avance

    • Serial Répondre

      Bonjour,

      j’ai réglé le soucis, j’ai chopé le dossier XML depuis le framework Zend (ZendFramework-1.12.5/library/Zend/Xml) que j’ai placé dans ZendGdata/library/zend/

      Voila si ça peut aider.

  3. Rétrolien: 7 astuces pour un développement Gravity Forms sur-mesure

  4. Rétrolien: Créer un formulaire WordPress à la main et traiter ses données

  5. ismail Répondre

    l’ajout de l’enregistrement dans la feuille de calcul ca marche pas pour moi
    quelqu’un peut me répondre ?

  6. Cyril Ginglinger Répondre

    Bonjour,
    J’ai utilisé cette solution et cela fonctionnait jusqu’à il y a peu de temps. Ce serait apparemment du à la fonction ClientLogin qui n’est plus utilisable desormais. Il faudrait utiliser OAuth 2.0 pour le remplacer d’après la documention Google.
    Avez vous une idée sur le sujet ? Merci d’avance pour votre réponse,
    Cordialement,
    Cyril

    • pskli Répondre

      Bonjour Cyril,

      Hélas l’API Google a évolué et cette technique est désormais fort probablement obsolète.
      J’essaierai d’aborder la nouvelle syntaxe dans un futur article !

      Cordialement.

      • Yassin Ghandri Répondre

        Bonjour,

        Tout d’abord, merci pour ta vidéo. J’ai bien suivi le tutoriel mais l’enregistrement ne se fait toujours pas dans la feuille de calcul Google Drive, le message d’erreur ne s’affiche même pas. Sinon la création du post type a fonctionné et l’enregistrement dans WordPress également.

        • Pierre Saïkali Répondre

          Bonjour

          Hélas l’API Google a évolué et cette technique est désormais fort probablement obsolète.
          J’essaierai d’aborder la nouvelle syntaxe dans un futur article !

          Cordialement.

  7. Geoffroy Répondre

    Bonjour

    J’ai trouvé ce tuto très intéressant, malheureusement je n’arrive pas à mettre la main sur le framework Zend_Gdata. Avez-vous une autre adresse ou un Git où je pourrais le récupérer (j’en ai trouvé certains mais l’arborescence des fichiers diffère de ce qui est présent sur la vidéo)?

    Cordialement

    • Pierre Répondre

      Bonjour Geoffroy,
      Hélas l’API Google a changé depuis, et je n’ai pas encore eu l’occasion ni de tester la nouvelle version ni de mettre à jour ce tutoriel.
      Désolé :/
      Si vous trouvez la marche à suivre, n’hésitez pas à m’en informer par ici afin que je puisse refaire une vidéo actualisée !
      Cordialement

Laisser un commentaire