Vous êtes ici:

Menu

LiveCode Server sur Linux

Stacks Image 3551
La version Community de LiveCode amène son lot de nouveautés au fil des jours. Vous trouverez depuis quelques jours la version Community server sur le site de LiveCode http://downloads.livecode.com/livecode/server/6_0_2/. L'utilisation de cet outil vous permettra d'utiliser le langage LiveCode sur un serveur Web en mode cgi. Il est même possible d'utiliser le code situé dans les piles de vos programmes. Par contre, l'interface graphique des piles ne sera pas prise en compte.
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 :
Stacks Image 3558
Arborescence du Serveur Livecode
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>
Stacks Image 3587
Notre page test dans Firefox

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.
Stacks Image 3594
L'application "client lourd"
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
Stacks Image 3599
Fonctionnement de l'application
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.
Stacks Image 3612
Fonctionnement de la page Web
Prochain article, l'utilisation d'une base de données. A vos clavier.
comments powered by Disqus
 Vous êtes ici: