GraffitiX Index du Forum

 
 Sujets suivisSujets suivis   FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

PHP : un script exporté de FileMaker Pro

 
Poster un nouveau sujet   Répondre au sujet    GraffitiX Index du Forum -> Créer et gérer son site
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
jjardoino
Site Admin


Inscrit le: 14 Fév 2005
Messages: 3198
Localisation: Paris

MessagePosté le: Mar 26 Sep 2006 19:06    Sujet du message: PHP : un script exporté de FileMaker Pro Répondre en citant

Gérer sous FileMaker Pro des données destinées à être utilisées par MySQL peut être utile si on a conçu un site chez un hébergeur supportant PHP et MySQL. Avec un peu de patience, il est possible d'exporter, depuis Filemaker Pro, le script quasiment prêt à être exécuté. C'est ce que j'utilise, par exemple, pour les mises à jour d'applications destinées à la page du Suivi. Je ne vais pas détailler toute la conception, mais reprendre quelques étapes importantes, ce qui devrait suffire pour comprendre le principe...

• Nous partons du principe que la base FileMaker existe et qu'elle est au point pour gérer les données en interne (rubriques, calculs, scripts...). Concrètement, si nous conservons l'exemple des applis, il y a une articulation entre le nom d'appli, sa version (et l'éventuelle évolution de celle-ci) la compatibilité, un descriptif, etc.

• Au final, nous avons besoin d'un script PHP complet et autonome. Il commence par une ouverture de balise PHP, se termine par une balise de fermeture et, entre les deux, utilisera une fonction capable d'ajouter des enregistrements dans MySQL, et aussi capable de mettre à jour les enregistrements existants. Si vous utilisez déjà PHP et MySQL, ce sont des commandes et fonctions que vous avez déjà utilisé. Toujours entre les deux balises PHP, vont se succéder les enregistrements proprement dits, chacun déclarant les variables et leur contenu puis son appel à la fonction définie plus haut.

• Notre objet n'étant pas de détailler la fonction ni les groupes de définition de variables, je joins en téléchargement ce script qui est l'export de ce matin, dans l'état où il était juste avant d'être envoyé sur le serveur FTP, pour exemple (cliquez avec Option sur le lien pour ne pas ouvrir une nouvelle fenêtre inutile).

• Sur votre base, vous aurez besoin de trois rubriques supplémentaires.

• D'abord une rubrique globale qui contient la balise d'ouverture PHP, la fonction gérant les ajouts et modifications dans MysQL et l'ouverture de la connexion à la base MySQL.

• Ensuite, une rubrique de calcul (texte) qui va permettre de mettre à la suite toutes les données que vous utilisez en commençant, par exemple par "$appli=" & rub1 & ";" puis le symbole de passage à la ligne de FileMaker puis la deuxième variable, et ainsi de suite jusqu'à la commande appelant la fonction.
Évidemment, cette rubrique de calcul démarre en fait par un test : si c'est la première fiche, on ajoute la rubrique globale ci-dessus. Et, après la commande appelant la fonction, un autre test : si c'est la dernière fiche, on ajoute "?>" (la balise fermante de PHP).
En fait, mon explication est incomplète car vous ne pourrez pas vraiment utiliser "$appli=" & rub1 & ";", il faudra des quotes entourant rub1 puisque, normalement, c'est du texte. Et, là se pose le problème des quotes PHP. FileMaker, en effet, se réserve les doubles quotes dans votre calcul, chaque fois que vous insérez autre chose qu'un nom de rubrique ou un nombre.

• Et c'est là que nous en venons à la troisième rubrique (globale texte). En effet, il y a peu de chance que vous puissiez réaliser ce qui sera votre script PHP en n'utilisant que des quotes simples (les doubles sont réservées à FileMaker). D'une part, cela supposerait de vous compliquer la vie pour trouver des fonctions de calcul capables d'échapper les apostrophes sans échapper les simples quotes et, de toute façon, votre script peut avoir besoin lui-même de cumuler les quotes simples et doubles.
La troisième rubrique vous autorise l'usage des doubles quotes pour PHP. Elle est globale et contient... un guillemet, tout simplement. Vous appelez cette rubrique "Quote", par exemple et vous pouvez la placer dans votre calcul chaque fois que vous avez besoin de doubles quotes pour PHP.
Si nous reprenons notre exemple, cela donne "$appli = " & Quote & rub1 & Quote & ";" dans la fenêtre de calcul.
À l'affichage de la rubrique, vous obtiendrez bien $appli = "nom_de_l_appli";

• Maintenant, si vous savez écrire votre fonction gérant la mise à jour mySQL et avez compris le principe de la création d'une rubrique qui va cumuler toutes les données utiles de chaque enregistrement exporté, y compris les ajouts pour le premier et le dernier enregistrement, vous avez fait le plus gros du boulot.

• Car votre export depuis FileMaker n'utilisera qu'une seule rubrique calculée.

• Mais, pour cumuler les données dans un seul champ, il vous manque un élément. Comment séparer les rubriques que vous ajoutez les unes après les autres ? Il sera utile que votre script final affiche les commandes sur des lignes séparées si vous devez y retrouver des erreurs (et il y en aura sûrement avant qu'il soit vraiment opérationnel).
Je crois que certains utilisent une quatrième rubrique, globale, dans laquelle ils collent une fin de paragraphe copiée depuis n'importe quel éditeur de texte. Donc une rubrique à utiliser exactement comme vous utilisez la rubrique Quote.
Pour ma part, je passe par une autre solution utilisant le symbole ressemblant à un "P" qu'on peut insérer dans le calcul via un bouton. Mais cette fin de paragraphe n'est pas standard et devra être convertie. Peu importe car j'utilise BBEdit pour envoyer ce script sur le serveur et il n'a aucune difficulté pour convertir le code de fin de paragraphe spécifique à Filemaker, \x0B, en fin de paragraphe standard \r. La fonction de recherche-remplacement de BBEdit permet de mémoriser des "patterns" et, concrètement, après export depuis FileMaker, le texte est ouvert sous BBEdit, appel de la fonction de recherche, sélection du pattern que j'ai préparé pour Filemaker, remplacement global et envoi sur le serveur.

• Mais vous n'utilisez pas BBEdit... Pas de souci, vous pouvez normalement faire tout ça avec TextWrangler qui est gratuit.

• Tout le reste vous appartient, en fonction de votre base et du type de données devant être envoyées à mySQL. Mais le principe reste le même : vous construisez le code de chaque enregistrement (une suite de définition de variables PHP et un appel de fonction) sachant que, pour le premier, il faudra ajouter en tête le code global ( balise ouvrante PHP, fonction et commande de connexion mySQL) et, pour dernier, la balise fermante PHP.
Si vous êtes déjà acrobate sur FileMaker Pro, vous pouvez le faire. Les plus grosses difficultés étaient d'être moins limité en quotes (simple et double) pour le script lui-même et de régler la question du séparateur final pour que le script soit lisible et, à la limite, exécutable. Car, si on peut grouper plusieurs commandes sur une ligne, je ne suis pas certain qu'un script PHP tenant sur une seule ligne (avec déclaration de fonction et tout le reste), fonctionne correctement.

J'espère n'avoir rien oublié parmi les clés indispensables...
_________________
Jean-Jacques Ardoino
Si vous voulez aider GraffitiX...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM
ALbertLevert
Invité





MessagePosté le: Ven 29 Sep 2006 12:44    Sujet du message: FileMaker et PHP Répondre en citant

Bonjours a tous,

personnellement, j'utilise Filemaker pour générer le fichier php, le transmettre et l'éxécuter sur le serveur.

Cela est possible avec un mélange de Script FMP, ASS et commande terminal (curl).

Au final, un seul bouton a cliker depuis FileMaker et le site est a jour.
Very Happy
Revenir en haut de page
jjardoino
Site Admin


Inscrit le: 14 Fév 2005
Messages: 3198
Localisation: Paris

MessagePosté le: Ven 29 Sep 2006 19:37    Sujet du message: Re: FileMaker et PHP Répondre en citant

ALbertLevert a écrit:
Bonjours a tous,

personnellement, j'utilise Filemaker pour générer le fichier php, le transmettre et l'éxécuter sur le serveur.

Cela est possible avec un mélange de Script FMP, ASS et commande terminal (curl).

Au final, un seul bouton a cliker depuis FileMaker et le site est a jour.
Very Happy

Je n'ai jamais douté une seconde qu'on pouvait faire plus optimisé encore. Mais, ça, je ne sais pas le faire et encore moins l'expliquer Smile

Mais c'est bien d'en parler, même si ce n'est pas trivial. Cela permet de comprendre qu'on peut envisager avec FileMaker des choses apparemment folles mais qui, une fois menées jusqu'au bout, sont d'une utilité flagrante.
_________________
Jean-Jacques Ardoino
Si vous voulez aider GraffitiX...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    GraffitiX Index du Forum -> Créer et gérer son site Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com