4D v16.3Pages semi-dynamiques |
||||||||||||||||||||||||||||||
|
4D v16.3
Pages semi-dynamiques
Pages semi-dynamiques
Le serveur Web de 4D vous permet d'utiliser des pages semi-dynamiques. Ces pages sont des 'templates' HTML contenant des Balises HTML 4D, c'est-à-dire un mélange de code HTML statique et de références 4D ajoutées via les balises de transformation telles que 4DHTML, 4DIF, 4DINCLUDE. Ces balises sont insérées sous forme de commentaires type HTML (<!--#LaBalise LeContenu-->) dans le code HTML source. Note : Une syntaxe alternative basée sur le $ est utilisable dans certaines conditions pour les balises 4DHTML, 4DTEXT et 4DEVAL afin de les rendre conformes au XML. Pour plus d'information, reportez-vous à la section Syntaxe alternative pour 4DTEXT, 4DHTML, 4DEVAL. Au moment de leur envoi par le serveur HTTP, ces pages sont analysées et les balises qu'elles contiennent sont exécutées et remplacées par les données résultantes. Les pages reçues par les navigateurs sont alors la combinaison d'éléments statiques et de valeurs issues de 4D. Vous pouvez donner par programmation des valeurs par défaut aux objets HTML en incluant par exemple <!--#4DTEXT NomVar--> dans le champ valeur de l'objet HTML ; NomVar est le nom de la variable process 4D telle qu'elle est définie dans le process Web courant — nom que vous mettez entre <!––# ––>, c'est-à-dire la notation standard pour les commentaires HTML. Note : Certains éditeurs HTML n'acceptent pas la saisie de la valeur <!––#4DTEXT NomVar––> dans le champ valeur des objets HTML. Dans ce cas, vous devrez la placer directement dans le code HTML. En fait, la syntaxe <!--#4DTEXT NomVar--> permet d'insérer des données 4D partout dans la page HTML. Si, par exemple, vous écrivez : <P>Bienvenue dans <!--#4DTEXT vtSiteName-->!</P> La valeur de la variable 4D vtSiteName sera insérée dans la page HTML. Examinons un exemple : // Voici le code 4D assignant "4D4D" à la variable process vs4D Le source de la page HTML AnyPage.HTM est le suivant : <html> <head> <title>AnyPage</title> <script language="JavaScript"><!-- function Is4DWebServer(){ return (document.frm.vs4D.value=="4D4D") } function HandleButton(){ if(Is4DWebServer()){ alert("You are connected to 4D Web Server!") } else { alert("You are NOT connected to 4D Web Server!") } //--></script> </head> <body> <form action="/4DACTION/WWW_STD_FORM_POST" method="post" name="frm"> <p><input type="hidden" name="vs4D" value="<!--#4DTEXT vs4D-->"</p> <p><a href="JavaScript:HandleButton()"><img src="AnyGIF.GIF" border=0 align=bottom></a></p> <p><input type="submit" name="bOK" value="OK"></p> </form> </body> </html> La balise <!--#4DTEXT --> permet également d'insérer des expressions 4D dans les pages envoyées (champs, éléments de tableaux, etc.). Le principe de fonctionnement de la balise avec ce type de donnée est identique à celui des variables. Vous pouvez également insérer du code HTML dans des variables 4D à l'aide de la balise 4DHTML. D'autres balises telles que 4DIF permettent de contrôler le code exécuté. L'ensemble des balises utilisables est décrit dans la section Balises HTML 4D. L’analyse du contenu des pages semi-dynamiques envoyées par 4D s’effectue au moment de l’appel à WEB SEND FILE (.htm, .html, .shtm, .shtml), WEB SEND BLOB (blob de type text/html), WEB SEND TEXT et lors de l'envoi de pages appelées via des URLs. Dans ce dernier cas, à des fins d'optimisation, les pages suffixées “.htm” et “.html” ne sont PAS analysées. Pour “forcer” l’analyse des pages HTML dans ce cas, vous devez les suffixer “.shtm” ou “.shtml” (par exemple http://www.server.com/dir/page.shtm). Un exemple d'utilisation de ce type de page est fourni dans la description de la routine WEB GET STATISTICS. Les pages XML (.xml, .xsl) et les pages WML (.wml) sont également prises en charge et toujours analysées par 4D (cf. section Support de XML et de WML). L'analyse peut également être effectuée en-dehors du contexte Web lorsque vous utilisez la commande PROCESS 4D TAGS. En interne, l'analyseur travaille avec des chaînes utf-16, mais les données à analyser peuvent avoir été encodées différemment. Lorsque les balises contiennent du texte (par exemple 4DHTML), 4D convertit les données si nécessaire en fonction de leur provenance et des informations disponibles (charset). Voici un tableau récapitulatif des cas dans lesquels 4D analyse les balises contenues dans les pages HTML ainsi que les conversions éventuellement effectuées :
(*) La syntaxe alternative utilisant le $ est disponible pour les balises 4DHTML, 4DTEXT et 4DEVAL (cf. section ). Le code source JavaScript encapsulé dans les documents HTML est supporté par le serveur Web 4D, ainsi que l'insertion de fichiers JavaScript .js dans des documents HTML (par exemple <SCRIPT SRC="..."). Avec WEB SEND FILE ou WEB SEND BLOB, vous envoyez une page que vous avez préparée avec un éditeur HTML ou construite avec 4D et sauvegardée comme document sur disque. Dans les deux cas, vous avez tout contrôlé sur la page et, par exemple, vous pouvez insérer des scripts JavaScript dans la section HEAD du document et utiliser des scripts avec une balise FORM. Ainsi, dans l'exemple ci-dessus, le script renvoie le formulaire "frm" car vous avez donné un nom au formulaire. Vous pouvez également déclencher, accepter ou rejeter la soumission du formulaire au niveau de la balise FORM. Note : 4D supporte le transport d'Applets Java.
Voir aussi
|
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
UTILISATION DE L'ARTICLE
4D - Langage ( 4D v16) |
||||||||||||||||||||||||||||