LiveCode Server sur Linux
Je vous propose dans cet article, l'installation d'un serveur LiveCode dans un serveur Debian avec Apache.
Installation du module LiveCode Server
Récupérez le fichier zip LiveCodeCommunityServer-6_0_2-Linux.zip. Décompressez ce fichier, vous aurez l'arborescence suivante :
J'ai choisi de copier toute cette arborescence dans le dossier /usr/local/livecodeserver.
Prérequis Apache
Nous devons modifier la configuration d'Apache et vérifier si les modules mod_cgi, mod_actions et mod_alias sont chargés. Chargeons les modules d'Apaches si cela n'est pas déjà fait.
a2enmod actions a2enmod cgi a2enmod alias
Ensuite, modifions la configuration d'Apache. Pour mon exemple, j'ai préféré la solution de dédier un dossier /usr/local/livecode pour le serveur Web. Créons le dossier.
mkdir /usr/local/livecode
Ajoutons le fichier livecode.conf dans le dossier /etc/apache2/conf.d
Alias /livecode /usr/local/livecode/ <Directory "/usr/local/livecode"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all AddHandler livecode-script .lc Action livecode-script /livecode-cgi/livecode-server </Directory> <Directory "/usr/local/livecodeserver"> Options ExecCGI Order allow,deny Allow from all </Directory> ScriptAlias /livecode-cgi/livecode-server /usr/local/livecodeserver/livecode-community-server
Relancez le serveur apache pour faire prendre en compte cette nouvelle configuration.
service apache2 restart
Test du serveur
Nous allons créer une page de test nommé test.lc dans le dossier /usr/local/livecode. les balise <?lc ?> permettent d'insérer les commandes LiveCode. Nous utiliserons la commande put permettant d'envoyer la ligne dans le navigateur et la fonction date indiquant la date du jour. Ces commandes sont en tout point identiques aux commandes de la version Desktop, ce qui fait la force de cet environnement de programmation.
<html> <head> <title>My LiveCode Server Test Page </head> <body> <h1>My LiveCode Server Test Page <?lc put "<p>Hello World! from LiveCode Server</p>" put "<p>The date is" && the date & "</p>" ?> </body> </html>
Utilisation d'une pile (Stack)
Dans ce chapitre, nous allons découvrir comment utiliser une pile développée pour une application de type client lourd et la transformer en application web de type client léger. Commençons par créer notre client lourd. On utilisera une pile et une carte standard, une zone de saisie, un label pour le résultat et un bouton pour exécuter l'action. Ce programme aura la tâche complexe d'ajouter 20 au nombre saisi ! L'important étant de montrer comment on peut réutiliser le code pour une application Web.
Le code tout simple de l'application. Le code suivant sera placé dans le handler de la carte.
function calcul parametre
local tvaleur
put parametre into tvaleur
add 20 to tvaleur
return tvaleur
end calcul
Ce code sera placé dans le handler du bouton.
on mouseUp
put calcul(the field "TxtValeur") into field "Resultat"
end mouseUp
Sauvegardez la pile avec pour nom test_stack.livecode
function calcul parametre
local tvaleur
put parametre into tvaleur
add 20 to tvaleur
return tvaleur
end calcul
Ce code sera placé dans le handler du bouton.
on mouseUp
put calcul(the field "TxtValeur") into field "Resultat"
end mouseUp
Sauvegardez la pile avec pour nom test_stack.livecode
Maintenant nous allons mettre notre pile en fonctionnement dans notre server Web. Copiez le fichier au format livecode dans le dossier /usr/local/livecode. Nous pourrons réutiliser le code contenu dans le handler de la carte. L'interface graphique de la carte sera replacée par un formulaire HTML. Pour utiliser le code de la pile, on utilisera la commande suivante :
start using stack "test_stack.livecode"
Créons le fichier html saisie_stack.lc
<html> <head> <title>Projet utilisation de stack</title> </head> <body> <h1>interface IHM</h1> <?lc if $_POST["form_submitted"] is true then put "<p>La saisie est " && $_POST["valeur"] & "</p>" if $_POST["valeur"] is not "" then start using stack "test_stack.livecode" put "<p>Le resulat de calcul() est " && calcul($_POST["valeur"]) & "</p>" else put "<p>Vous avez oubliez de saisir une valeur</p>" end if else ?> <form action="./saisie_stack.lc" method="POST"> <p>Saisir une valeur: <input type="text" name="valeur" value="" /></p> <input type="hidden" name="form_submitted" value="true" /> <p><input type="submit" value="Calculer" /></p> </form> <?lc end if ?> </body> </html>
La page utilise la fonction calcul de la pile test_stack.livecode. Gros avantage de cette solution, c'est que l'on peut réutiliser son code autant pour les applications Desktop, Mobile ou Server.
Prochain article, l'utilisation d'une base de données. A vos clavier.