WebJaxe est un CMS libre, qui permet de créer des sites web à partir d'une interface web. Il fonctionne en PHP côté serveur, et avec une applet Java ou du Javascript côté client pour éditer les contenus. L'éditeur est basé sur Jaxe, un éditeur XML qui fonctionne sous forme d'application de bureau. Il est possible d'utiliser Daxe à la place de Jaxe à partir de la version 2 (c'est un éditeur XML équivalent mais écrit en Dart, qui peut donc fonctionner sans plugin Java dans les navigateurs récents).
WebJaxe peut permettre d'éditer des documents XML de n'importe quel langage à partir d'un fichier de configuration. Il est livré avec une configuration pour le langage XML XPAGES, un langage très simple permettant de créer facilement des sites web en séparant bien l'écriture des contenus du choix de l'interface. XPAGES est adapté à la création de cours en ligne, de documentations, ou plus généralement de sites dont le contenu est statique. Ce site a par exemple été créé avec XPAGES.
Plus d'informations sur WebJaxe.
WebJaxe est téléchargeable avec ce lien : webjaxe_2.1.zip.
Pour l'installation, suivre ces instructions.
WebJaxe est distribué sous la licence GPL.
WebJaxe a été développé à la cellule TICE de l'Observatoire de Paris. Les auteurs de WebJaxe sont : Soufiane Ayadi, Gilles Bessou, Damien Guillaume et Konstantin Tcholokachvili.
Pour tout renseignement, contacter
WebJaxe est un système permettant de créer des sites web à partir d'une interface web, en utilisant les technologies XML pour faciliter et accélérer la création et la mise à jour des sites. Plusieurs auteurs peuvent collaborer en même temps pour la création d'un site, chacun apportant ses contributions.
WebJaxe est donc un CMS, mais contrairement aux CMS qui permettent d'éditer du HTML ou un pseudo-code proche du HTML généré, WebJaxe fonctionne en deux temps bien séparés :
De nombreux CMS proposent deux moyens d'éditer les contenus :
WebJaxe propose une solution alternative : l'utilisation d'un éditeur avec une interface graphique conviviale, mais qui n'affiche pas directement le résultat HTML, ce qui permet d'obtenir au final un site avec une charte graphique cohérente même si de nombreux auteurs contribuent au site.
Comme les auteurs fournissent un contenu avec un balisage sémantique mais sans spécifier la présentation, il devient de plus possible de modifier d'un coup toute l'interface graphique du site, sans avoir à modifier les contributions des auteurs.
WebJaxe est un logiciel libre et gratuit (distribué sous licence GPL).
WebJaxe permet d'éditer des fichiers XML de n'importe quel langage XML, pourvu qu'une configuration Jaxe ait été créée pour le langage. Pour la transformation des fichiers XML en site web, un script PHP particulier est aussi nécessaire. WebJaxe est distribué avec des configurations pour les langages XPAGES et XHTML strict.
L'éditeur XML, basé sur Jaxe, reprend les fonctionnalités suivantes de Jaxe :
WebJaxe permet en plus :
WebJaxe peut s'installer très facilement, même chez des hébergeurs gratuits, et grâce à Java l'édition des contenus fonctionne sur tous les systèmes d'exploitation.
Avec PHP 4, il est aussi nécessaire d'installer les librairies sablotron et iconv.
Il suffit en général d'installer MAMP (sur Mac), XAMPP (sur Linux) ou WAMP (sur Windows), qui incluent Apache, Mysql et PHP. On peut aussi installer ces logiciels séparément, mais il ne faut pas oublier le module mysql pour PHP. Certains paquets doivent être installés sur Linux en plus de PHP : php5-mysql pour le lien avec la base de données, php5-xsl pour les transformations de documents XML, et php5-gd pour le traitement des images.
Avec PHP5, les extensions de PHP php_xsl et php_gd2 doivent être activées, mais php_domxml doit être désactivé (c'est une extension pour PHP4).
Avec PHP4, les extensions de PHP php_xslt, php_domxml et php_gd2 doivent être activées. Ces extensions sont activées par défaut dans certaines distributions (comme MAMP sur Mac), mais pas sur d'autres (comme WAMP sur Windows).
Le dossier de WebJaxe peut être placé où on le souhaite dans le site web. La racine du site correspond souvent à un dossier appelé htdocs, dans lequel on peut placer le dossier webjaxe.
L'utilisateur PHP doit pouvoir accéder en écriture aux répertoires site_config, contribXML, sites, historique, poubelle et tmp. Il faut s'assurer que les permissions sont correctes avant de lancer WebJaxe pour la première fois.
Ouvrir la page suivante avec un navigateur :
http://[votre_site_web]/[répertoire_de_WebJaxe]/index.php
Si votre serveur web fonctionne sur un autre port que le port par défaut (80), il faut bien sûr remplacer http://[votre_site_web] par http://[votre_site_web]:[numéro de port].
Pour créer la base de données de WebJaxe, il faut indiquer le login et le mot de passe de l'administrateur de la base de données (souvent 'root' / '' ou 'root' / 'root' par défaut). La base de données créée est nommée webjaxe par défaut.
Il faut ensuite entrer les informations pour créer le compte de l'administrateur WebJaxe, qui sera le premier utilisateur du site.
La gestion du mail est utilisée pour vous alerter quand un nouveau utilisateur est inscrit, vous avez 3 options:
Ceci fait, il suffit de cliquer sur le bouton "Créer la base de données" pour terminer l'initialisation de WebJaxe.
Ceux qui souhaitent utiliser les équations avec la syntaxe TeX dans le langage XPAGES doivent aussi configurer un petit serveur supplémentaire. En effet, l'applet Jaxe et son plugin pour XPAGES ne contiennent pas de processeur TeX (ce serait trop lourd !). Le plugin fait donc appel à un serveur, en envoyant le texte d'une équation à laquelle le serveur répond par l'image correspondante. Ce serveur se trouve déjà dans le dossier serveurtex de WebJaxe, mais il nécessite l'installation des programmes latex, dvipng et ImageMagick. Il faut aussi modifier le fichier config/XPAGES/XPAGES_config.xml à la main pour indiquer le serveur à utiliser (rechercher "tex.php" pour le retrouver). La valeur par défaut correspond à un serveur qui n'est pas forcément disponible. Les chemins vers les commandes convert et tex2png peuvent si nécessaire être modifiés dans tex.php. Il faut aussi s'assurer que l'utilisateur PHP puisse écrire dans serveurtex/CACHE.
Les informations sur l'accès à la base de données sont enregistrées dans un fichier site_config.xml, situé dans le répertoire site_config. Ce répertoire est protégé pour le serveur web Apache avec un fichier .htaccess. Ceci interdit la lecture du fichier site_config.xml directement depuis le web, tout en permettant son utilisation par WebJaxe.
Cette protection ne fonctionne qu'avec le serveur web Apache, et seulement si les .htaccess sont autorisés (cela se fait avec l'instruction AllowOverride dans httpd.conf). Si vous utilisez un autre serveur web, comme par exemple IIS, il vous faudra protéger le répertoire site_config d'une autre manière, par exemple en éditant ses propriétés et en interdisant sa lecture. La façon de faire est malheureusement différente d'un serveur à l'autre.
On peut aussi ajouter un .htaccess dans les autres répertoires pour contrôler l'accès en lecture.
Pour éviter d'avoir à gérer à la fois des utilisateurs Apache et des utilisateurs WebJaxe pour contrôler l'accès aux sites, on peut utiliser une redirection vers le script PHP lecture_fichier.php, avec l'extension Mod_rewrite d'Apache. Par exemple, il suffit de mettre le code suivant dans un .htaccess dans les dossiers contribXML et sites pour s'assurer que seuls les utilisateurs WebJaxe autorisés puissent accéder aux fichiers XML et aux sites générés avec WebJaxe :
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)$ ../php/partie_utilisateur/lecture_fichier.php?fichier=%{REQUEST_URI} </IfModule>
Ce code redirige les requêtes en lecture de tous les fichiers du répertoire vers le script lecture_fichier.php, qui ne renvoie le contenu des fichiers que pour les utilisateurs autorisés (qui doivent être connectés sur WebJaxe).
Par ailleurs, pour une meilleure protection des mots de passe sur le réseau, il est conseillé d'utiliser https pour accéder à WebJaxe.
Le répertoire de WebJaxe contient des sous-répertoires avec des fichiers propres à WebJaxe, et d'autres avec des fichiers propres à l'installation locale. Pour mettre à jour WebJaxe, il suffit de recopier les sous-répertoires propres à WebJaxe : config, daxe, design, editeur_config, jaxe, langues, php, serveurtex ainsi que le fichier index.php. Si la base de données doit être mise à jour, l'utilisation sera bloquée jusqu'à ce qu'un administrateur se connecte.
Pour participer à la réalisation d'un site avec WebJaxe, il est d'abord nécessaire de s'inscrire. Il suffit pour cela d'aller à la page d'inscription (il existe un lien à partir de la page d'entrée), et de remplir les différents champs.
Le login est un identifiant vous identifiant de façon unique. On choisit son login, mais (contrairement à l'entrée du prénom et du nom) on ne peut utiliser pour le login que des lettres de a à z, sans espace ni caractère spécial.
Choisissez un mot de passe original, mais ne le perdez pas ! Au pire on peut demander de l'aide à l'administrateur en cas de perte, mais ce n'est pas instantané.
Une fois l'inscription soumise, l'administrateur du site pourra valider (ou non) votre inscription. C'est seulement une fois que l'inscription est validée par l'administrateur que l'on peut se connecter, en utilisant le login et le mot de passe choisis.
Pour la connexion, il suffit d'entrer le login et le mot de passe choisis au moment de l'inscription.
La création d'un site se fait avec un ensemble de contributions. Une contribution correspond à un ensemble de pages sur un sujet donné (en général moins de 10 pages). Une contribution comprend un fichier XML avec le texte des pages, et des fichiers d'images utilisées dans les pages.
Certaines contributions servent juste à lier d'autres contributions entre elles. Par exemple, on peut créer une contribution correspondant au site que l'on veut créer, et cette contribution ne contiendra que des liens vers d'autres contributions.
Les contributions sont organisées en projets. Un projet regroupe des contributions et des auteurs sur un même sujet. Tous les auteurs du projet peuvent éditer toutes les contributions du projet.
En tant qu'utilisateur, vous pouvez créer un nouveau projet, une nouvelle contribution, et éditer les contributions créées par d'autres utilisateurs si ces contributions sont dans un projet dont vous êtes auteur. L'administrateur peut ajouter des auteurs ou des contributions à un projet.
Il est possible d'exporter un projet à partir de la liste des contributions. Cette opération permet de télécharger un fichier ZIP contenant une copie de l'ensemble des contributions du projet.
Il existe deux méthodes de création d'une nouvelle contribution dans WebJaxe: la création d'une contribution vide, et l'import d'une contribution existante. Dans les deux cas, il faut préciser le projet associé et la configuration Jaxe utilisée (qui correspond au langage XML).
Dans le cas d'un import, le fichier envoyé doit être un fichier ZIP avec le nom de la contribution. Ce fichier ZIP doit contenir un dossier avec le nom de la contribution, contenant un fichier XML avec le nom de la contribution. On peut par exemple avoir un fichier "ma-contribution.zip" contenant un dossier "ma-contribution" avec un fichier "ma-contribution.xml" à l'intérieur.
Comme l'export de contributions utilise la même organisation, il est facile d'exporter une contribution à partir d'un site WebJaxe et de l'importer dans un autre site.
Il y a 10 opérations possibles sur une contribution :
L'éditeur de WebJaxe nécessite Java 1.6 ou ultérieur. Il peut donc être nécessaire d'installer Java si ce n'est pas déjà fait. L'éditeur s'ouvre dans une nouvelle fenêtre. Il faut faire attention à ne pas fermer la fenêtre d'origine dans le navigateur, car cela ferait disparaître la fenêtre d'édition sans possibilité de sauvegarde.
Il existe un bug dans Firefox et certains autres navigateurs qui empêche la lecture des fichiers XML si l'option "Accepter les cookies tiers" est désactivée. Avec ces navigateurs, il faut donc activer cette option dans les préférences pour pouvoir utiliser l'éditeur. Une autre solution consiste à ajouter une "exception" dans la gestion des cookies pour toujours autoriser les cookies venant du serveur de WebJaxe.
L'éditeur fonctionne avec le méta-langage XML, et les textes entrés sont donc organisés avec des balises de début et de fin. Chaque bout de texte est encadré par des balises qui lui donnent du sens. On peut insérer de nouveaux éléments avec les menus, ou avec le panneau d'insertion à gauche de la fenêtre. Le panneau d'insertion n'affiche que les éléments autorisés à l'emplacement du curseur, ce qui permet d'éviter de créer un document invalide, c'est à dire ne respectant pas les règles du langage XML choisi.
Les éléments disponibles, ainsi que les règles d'arborescence des éléments, sont définis par le langage XML choisi par l'administrateur. Il est important de connaître le langage que l'on utilise pour bien utiliser l'éditeur. Une documentation spécifique existe pour le langage XPAGES, dont la configuration WebJaxe est fournie avec WebJaxe.
Il existe une documentation utilisateur pour l'application Jaxe, qui s'applique aussi à l'éditeur de WebJaxe. Il y a cependant certaines fonctions qui n'existent pas dans WebJaxe. D'autres fonctionnalités sont désactivées à cause des restrictions de sécurité que les navigateurs imposent aux applets Java. En particulier le copier-coller, comme expliqué ci-dessous.
Par défaut, les applets Java n'ont pas le droit de lire le presse-papier du système. Cela signifie en général que l'on ne peut pas faire de copier-coller depuis une autre application. Il existe deux méthodes pour contourner ce problème :
grant codeBase "http://NOM.DU.SERVEUR/DOSSIER_DE_WEBJAXE/-" { permission java.awt.AWTPermission "accessClipboard"; };(écrire https au lieu de http si https est utilisé pour accéder à WebJaxe)
Cette page permet de gérer les fichiers associés d'une contribution, c'est à dire en général les fichiers des images que l'on utilise lors de l'édition de la contribution. Il est possible d'organiser ces fichiers avec des répertoires. Pour ajouter un nouveau fichier, il suffit de cliquer sur le bouton correspondant, de choisir le fichier sur son disque local, et de cliquer sur le bouton "Ajouter". Il s'affiche alors dans la liste des fichiers du répertoire courant.
Une fois un fichier d'image ajouté, il est possible de l'utiliser au moment de l'édition. Par exemple, avec le langage XPAGES, on ajoute une image en créant d'abord un "Environnement d'image", puis en mettant un "Fichier" dedans. Comme nom du fichier, on indique le chemin vers le fichier de l'image dans la contribution, par exemple "logo.png". L'image s'affiche alors dans l'éditeur.
Le bouton Historique des modifications s'affiche quand le document XML est modifié.
Chaque historique est suivi par le login de l'auteur qui l'a modifié.
Vous pouvez comparer les versions du document XML, et de visualiser les différences entre chaque version du document et la dernière version.
Cette page permet de:
Cette page permet à l'utilisateur de rechercher un mot-clé dans toutes les contributions d'un projet
Le compte de l'administrateur est créé au moment de l'initialisation. Il est possible de modifier les champs de ce compte avec la gestion des utilisateurs.
Par la suite, on supposera que vous êtes connectés au site comme administrateur, ce qui permet d'atteindre des fonctions d'administration.
La page des paramètres permet de modifier les paramètres suivants :
Il est possible d'utiliser "../.." au lieu de "sites" pour le nom du dossier des sites, afin de générer les sites directement à la racine du serveur web (en supposant que le dossier webjaxe se trouve à la racine). Attention cependant aux conflits possibles avec les noms de dossiers.
Pour supprimer la base de données et les contributions, il suffit de cliquer sur le bouton "Désinstaller WebJaxe". Attention, l'effet est immédiat !
Une fois ceci fait, il ne reste plus qu'à jeter le dossier de WebJaxe sur le serveur pour s'en débarasser complètement.
Chaque demande d'inscription est enregistrée dans la base de données, mais les utilisateurs ainsi inscrits ne peuvent pas se connecter avant que l'administrateur ne valide l'inscription. Si l'administrateur refuse l'inscription, celle-ci est effacée.
Le tableau "Demandes d'inscriptions" de la page "Gestion des utilisateurs" donne la liste des utilisateurs ayant demandé une inscription, et permet d'autoriser ou non chaque inscription.
A partir de la page de gestion des utilisateurs, il est aussi possible de :
La page de gestion des projets permet de créer de nouveaux projets, importer, exporter un projet, et de modifier la liste de contributions et de participants pour chaque projet. Il n'y a pas de lien direct entre les contributions et les utilisateurs: les liens passent par les projets.
L'administrateur peut organiser les projets sous forme d'un arbre, ce qui est pratique quand il y a un grand nombre de contributions. Pour changer l'arborescence, il faut cliquer sur le bouton "Sous-projets" du projet parent dans la page de gestion des projets. On peut alors changer la liste des sous-projets pour ce projet. Un utilisateur associé à un projet est implicitement associé à tous les projets descendants. Un export du projet parent contiendra l'ensemble des contributions du projet parent et des projets descendants.
Chaque contribution est associée à un projet et un seul.
La page de gestion des contributions liste chaque contribution, et permet pour chacune de changer le projet associé, de l'éditer, de la supprimer, de la renommer, et de l'exporter.
Des formulaires en bas de la page permet de créer ou d'importer une contribution.
Cette page permet aussi d'éditer une contribution (en redirigeant vers la partie "utilisateur" de WebJaxe), et de supprimer une contribution.
WebJaxe est livré avec une configuration pour le langage XML "XPAGES", et une autre pour le langage XML "XHTML strict 1.0". Il est possible d'ajouter de nouvelles configurations pour éditer des documents dans d'autres langages XML, et générer des sites correspondants.
Pour ajouter une nouvelle configuration, qu'on appelera par exemple "MACONFIG", il faut :
XPAGES permet de créer rapidement et facilement des sites web. Le principe sur lequel repose XPAGES est la séparation du contenu et de la forme : avec XPAGES, on spécifie un contenu (texte, images, animations), et on le structure en donnant un sens à chaque partie. A l'édition, on ne préoccupe absolument pas de la façon dont le contenu sera affiché plus tard, ce qui permet de gagner du temps et de ne pas mélanger le sens avec la forme. La façon dont le contenu sera affiché est spécifié séparément, par des feuilles de style. Il est ainsi possible de changer l'affichage indépendamment de l'édition.
XPAGES est un langage XML, c'est à dire un ensemble d'éléments et de règles permettant de structurer un texte. Des feuilles de style associées permettent de transformer automatiquement des documents XPAGES en fichiers HTML pour qu'ils puissent être consultés sur le web. Les documents XPAGES peuvent être édités avec Jaxe et WebJaxe grâce à un fichier de configuration décrivant une interface d'édition.
XPAGES est un langage très simple, et facile à apprendre : il ne comporte que 59 éléments (46 sans les exercices), à comparer par exemple aux 91 éléments de HTML, aux 390 éléments de DocBook, ou aux 526 éléments de OpenDocument.
Les documents XPAGES comportent un élément racine, Ensemble XPAGES, qui est utilisé dans tous les documents comme élément de premier niveau. Sous cet élément, on trouve les éléments Informations, Page, Réf. document XPAGES et Ensemble XPAGES.
A l'intérieur d'une page, il est possible de créer des sections avec l'élément Section. Cet élément comporte un titre, un rôle qui spécifie le sens de la section et peut permettre un affichage différent en fonction, et une importance qui permet de mettre en valeur la section si celle-ci est importante.
Le texte est ajouté à l'intérieur de paragraphes, avec l'élément Paragraphe. Il est facile d'insérer un nouveau paragraphe avec le raccourci-clavier commande-P ou contrôle-P dans Jaxe.
Il possible de créer plusieurs contributions, chacune comprenant un fichier XML XPAGES et les fichiers attachés (images, applets Java, ...). Chaque contribution doit alors correspondre à un dossier dont le nom est égal au label donné dans le bloc Informations du fichier XML. Ce dossier contient le fichier XML et les fichiers associés.
Le bloc d'informations renseigne sur le document, et permet aussi de choisir un habillage pour les pages qui seront générées. Il est obligatoire, et se place au début du document. Il comporte les éléments suivants :
Les éléments de bloc sont les éléments XML que l'on peut insérer directement à l'intérieur d'un élément PAGE. Ils permettent de structurer le document, mais ne sont pas mélangés à du texte : il est ainsi impossible d'insérer du texte directement sous PAGE, le texte devant être placé à l'intérieur d'un élément de bloc.
XPAGES comporte les éléments de bloc suivants :
Certains éléments de XPAGES peuvent être mélangés avec du texte, par exemple à l'intérieur d'un paragraphe. Ce sont les éléments suivants :
XPAGES peut être utilisé pour de nombreuses applications, mais il est en particulier pratique pour créer un cours en ligne, et a été créé dans ce contexte. Pour ces raisons, le langage contient des éléments spécifiques à la définition d'exercices, même si ces éléments ne seront pas forcément utiles en-dehors du contexte des cours en ligne.
Il existe deux types d'exercices : les exercices de type question-réponse, et les QCM. Dans les deux cas, un exercice peut avoir un titre (attribut titre), un énoncé (élement Enoncé), une indication de la difficulté (élément Difficulté), une indication du temps nécessaire (élément Temps), et des questions (élements Question et Question de QCM).
Chaque question peut avoir un énoncé et une ou plusieurs aides (élement Aide). Les questions des exercices de type question-réponses ont une solution (élément Solution) et un nombre de points qui peuvent être accordés si la réponse est correcte (élément Points). Les questions de QCM ont des réponses possibles (élément Réponse de QCM), chaque réponse pouvant être bonne ou pas (attribut bonne), avec à chaque fois le texte de la réponse (élément Texte de réponse) et un commentaire qui sera affiché si l'utilisateur choisit cette réponse, par exemple pour lui expliquer en quoi la réponse est fausse (élément Commentaire de réponse).
Dans Jaxe, les réponses des exercices d'évaluations ne sont pas ajoutées aux fichiers HTML quand on génère le "site public". Elles ne sont ajoutées que lorsque l'on génère le "site de production". Dans WebJaxe, c'est toujours le site de production qui est généré; il faut donc exporter la contribution et l'ouvrir dans Jaxe pour générer le site public. On peut ainsi, à partir des mêmes fichiers XML, générer un site pour les étudiants, et un site pour les tuteurs d'une formation à distance.
Le document suivant présente l'ensemble des éléments du langage XPAGES, avec un index et un arbre des éléments. Il a été généré automatiquement à partir du schéma XML de XPAGES.