jeudi, janvier 04, 2007

PersoMenu WinDev, WebDev et WinDev Mobile.

Le « PersoMenu » permet de lancer n'importe quel exécutable à partir de l'éditeur grâce à une ligne de commande et des macros.

Dans le billet précédent, je parlais de WebDev 11 (35c) qui ne configurait pas le serveur Apache 2.2.3 automatiquement.

J'ai donc fait un programme en Wlangage permettant d'ajouter l'alias pour chaque site dans le fichier httpd.conf.

Puis dans WebDev j'ai créé un Perso menu :

La ligne de commande est la suivante :

"D:\Projet\ModifHttpd.conf\Exe\ModifHttpd_conf.exe" "C:\Program Files\Apache Software

Foundation\Apache2.2\conf\httpd.conf" "{$RepProjet}"


{$RepProjet} : c'est une macro disponible est cliquant sur le bouton « Macro ». Elle renvoie le chemin du répertoire du projet.

ModifHttpd_conf.exe : Mon programme WinDev permettant d'ajouter l'alias au fichier httpd.conf.


Astuce : Dans l'aide il n'est pas précisé comment créer une ligne de commande avec un chemin d'accès contenant des espaces. Le plus simple est de tester la ligne de commande dans « Demarrer...executer » de windows.


Code du programme WinDev « ModifHttpd_conf.exe » :


// Code de déclaration global du projet

LOCAL

gsRes est une chaîne

gnIdFic est un entier

gsCheminFic est une chaîne

gsALias est une chaîne

gsNomSite est une chaîne

gbRes est un booléen


// exemple de ligne de commande:

//"D:\Projet\ModifHttpd.conf\Exe\ModifHttpd_conf.exe" "C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf" "C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML"


gsCheminFic = LigneCommande(1) //C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

gsALias = LigneCommande(2) //C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML


// Ligne de code pour test

SI EnModeTest() ALORS

gsCheminFic = "C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf"

gsALias = "C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML\"

FIN


SI gsCheminFic <> "" ALORS

// Ouverture du fichier httpd.conf

gnIdFic = fOuvre(gsCheminFic,foAjout)

SI gnIdFic <> -1 ALORS

SI gsALias <> "" ALORS

// On rajoute _WEB au chemin du site

SI Droite(gsALias,1) = "\" ALORS

gsALias = gsALias[[1 A (Taille(gsALias)-1)]]

FIN

gsNomSite = ExtraitChaîne(gsALias,1,"\",DepuisFin)

gsNomSite = "/"+Majuscule(gsNomSite)+"_WEB/"

// Change les \ en /

gsALias = Remplace(gsALias,"\","/")

// On construit le chemin complet

gsALias = gsALias+gsNomSite

// Construction de la chaîne à ajouter au fichier httpd.conf

gsRes = [

Alias %1 "%2"

Options None

AllowOverride None

Order allow,deny

Allow from all

]

gsRes = RC+ChaîneConstruit(gsRes,gsNomSite,gsALias)

// Écriture dans le fichier

gbRes = fEcritLigne(gnIdFic,gsRes)

SI PAS gbRes ALORS

Erreur()

FIN

fFerme(gnIdFic)

// Redemarrer le serveur.

sr est une chaîne = [

"%1" "%2"

]

sr = ChaîneConstruit(sr,"C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe","-k restart")

LanceAppliAssociée(sr)

SINON

fFerme(gnIdFic)

gsRes = [

"%1"

]

gsRes = ChaîneConstruit(gsRes,gsCheminFic)

// que sous windows

LanceAppliAssociée(gsRes)

FIN

FIN

FIN


Aucun commentaire: