Framework de widgets
Le Framework de Widgets IMu est un ensemble de composants qui peuvent être ajoutés à une page HTML pour permettre de parcourir, rechercher et afficher des informations provenant d’EMu.
Les widgets d'IMu peuvent être ajoutés à n’importe quelle page HTML. La page qui inclut les widgets peut être :
- Un fichier HTML statique.
- Créé à l’aide d’un moteur de modèles tel que PHP, JSP ou ASP.
- Généré par un CMS tel que Joomla !, Drupal, Umbrarco ou l’un des nombreux autres CMS.
Les widgets d'IMu sont créés en JavaScript. Les composants eux-mêmes sont basés sur la bibliothèque jQuery. Avant d’utiliser le Framework de Widgets IMu, il est recommandé d’avoir une certaine connaissance de JavaScript et de jQuery. Des tutoriels sont disponibles sur l’excellent site web w3schools.com pour JavaScript et jQuery.
Les widgets sont conçus pour être à la fois portables et adaptables. Cela signifie qu’ils fonctionnent sur une grande variété de plateformes et de navigateurs et peuvent modifier leur apparence et leur comportement en fonction du type de navigateur utilisé.
Conseil : Pour une liste complète des environnements dans lesquels les widgets ont été testés, voir Compatibilité.
Qu'est-ce qu'un widget ?
Un widget est un élément HTML (souvent juste un simple div) dont le contenu est géré par JavaScript. La principale caractéristique d’un widget est que son contenu est créé indépendamment de la page dont il fait partie.
De nombreux sites Web utilisent des widgets pour intégrer de la publicité dans leurs pages.
Le Framework de Widgets IMu fournit un ensemble de composants JavaScript qui peuvent prendre le contrôle d’un ou plusieurs éléments HTML dans une page (c’est-à-dire transformer ces éléments en widgets) et les utiliser pour afficher les données d’EMu.
Comment fonctionnent les widgets ?
Lorsqu’une page Web est chargée par un navigateur, celui-ci exécute tout JavaScript inclus dans la page.
Dans une page utilisant les widgets d'IMu, de petits morceaux de JavaScript identifient les éléments à utiliser et le type de widgets en lesquels ils doivent être convertis.
Une fois que le code du widget prend le contrôle d’un élément, il détermine comment afficher les informations dans l’élément. De nombreux widgets fonctionnent en demandant des informations à un serveur en utilisant des requêtes AJAX, puis en créant du HTML pour afficher les informations à l’intérieur de l’élément d’origine.
Voici un exemple simple qui illustre comment les widgets d'IMu sont ajoutés à une page. Cet exemple n’entre pas dans tous les détails de la configuration d’un widget IMu. Les détails sont couverts ailleurs dans cette documentation.
Dans cet exemple, nous allons ajouter un widget IMu à une page qui affiche un enregistrement EMu. L’enregistrement affiché comprendra des liens permettant à l’utilisateur de naviguer vers d’autres enregistrements. Le widget agit comme un simple navigateur d’enregistrements EMu.
Pour utiliser les widgets d'IMu, nous devons d’abord inclure la bibliothèque de widgets IMu. Cela nécessite l’ajout d’un seul fichier JavaScript à la section <head> de la page :
<script type="text/javascript" src=".../imu.js"></script>
Note: Le ... dans l’attribut src doit en fait être le chemin d’accès au fichier imu.js par rapport à la page elle-même.
Note: Ce fichier contient le code source de plusieurs bibliothèques tierces dont dépend IMu. La plus importante d’entre elles est la bibliothèque jQuery. Cela signifie qu’il n’est pas nécessaire que la page charge jQuery séparément.
Chaque widget IMu prend le contrôle d’un élément HTML existant dans la page. Pour ajouter le navigateur d’enregistrements, nous devons créer un élément vide dans la page qu’IMu peut utiliser pour afficher les enregistrements EMu. L’élément vide est généralement un <div>. Pour que nous puissions faire référence à l’élément plus tard dans du JavaScript, nous donnons à l’élément un id :
<div id="example-widget"></div>
Pour contrôler l’espace que l’élément occupera sur la page, nous définissons sa hauteur. Nous ne définissons pas la largeur de l’élément, ce qui signifie que l’élément atteindra la largeur de son parent - dans ce cas, l’élément <body> de la page. La hauteur peut être réglée en ligne sur l’élément :
<div id="example-widget" style="height:400px"></div>
Ou, dans un exemple plus complet, dans une feuille de style CSS incluse en ligne dans l’en-tête de page ou dans un fichier CSS séparé :
#example-widget { height: 400px; }
La dernière étape (et la plus importante) consiste à indiquer au Framework de widgets de prendre le contrôle de l'élément et de l'utiliser pour afficher les enregistrements EMu. Pour ce faire, nous écrivons un petit morceau de JavaScript. Ce JavaScript peut être défini dans la section <head> après le chargement de la bibliothèque JavaScript IMu ou dans la section <body>. Dans cet exemple simple, nous allons placer le code dans le <body> juste après la définition de l’élément :
<div id="example-widget" style="height:400px"></div> <script type="text/javascript"> IMu.ready(function() { $('#example-widget').IMu('record-browser'); }); </script>
Le code est relativement simple. La méthode IMu.ready attend qu’IMu charge d’autres feuilles de style CSS ou fichiers JavaScript, puis appelle la fonction anonyme qui est passée comme argument. Ceci est très similaire à la méthode .ready de jQuery (en fait, IMu.ready appelle jQuery.ready).
La ligne de code unique de la fonction anonyme utilise le jQuery standard pour trouver l’élément HTML dont id est example-widget :
$('#example-widget')
puis appelle le plugin IMu jQuery, en passant le nom du widget (record-browser) que nous voulons afficher dans cet élément :
.IMu('record-browser')
C’est ce code qui prend le contrôle de l’élément et qui est responsable de l’affichage du ou des enregistrements EMu.
Tous les widgets d’IMu sont utilisés de manière similaire.
Voici le code d’une page HTML complète qui inclut le widget record-browser :
<html>
<head>
<title>Simple IMu Record Browser</title>
<script type="text/javascript" src="imu/imu.php"></script>
<style>
#example-widget
{
border: 1px solid black;
height: 400px;
}
</style>
</head>
<body>
<p>Below is a div which contains an IMu record-browser widget</p>
<div id="example-widget"/>
<script type="text/javascript">
IMu.ready(function()
{
$('#example-widget').IMu('record-browser');
});
</script>
</body>
</html>
L’exemple précédent était très simple, mais ne donnait qu’une idée limitée du fonctionnement réel du framework de widgets.
De nombreuses technologies web qui fournissent des données dynamiques utilisent des moteurs de modèles (tels que PHP, ASP.Net, JSP et Ruby on Rails) pour générer des pages HTML entières contenant les données requises. Ces systèmes utilisent souvent de petites quantités de JavaScript pour ajouter des fonctionnalités plus dynamiques à la page générée par le moteur de modèles. Ce n'est pas l'approche adoptée par le Framework de Widgets IMu.
L’un des principaux objectifs de ce framework est de permettre aux données dynamiques d’EMu d’être affichées dans des pages provenant d’autres sources, telles que les systèmes de gestion de contenu (CMS). Cette exigence rend impossible l’utilisation de moteurs de modèles conventionnels pour créer des pages entières. Au lieu de cela, le Framework de Widgets IMu utilise JavaScript pour construire les composants de la page (widgets) une fois que la page a été transmise au navigateur. Les widgets utilisent ensuite AJAX (JavaScript et XML asynchrones) pour récupérer les données d’EMu et les afficher.
JavaScript
En raison de la façon dont les widgets sont construits, les navigateurs affichant des pages web qui incluent des widgets d'IMu doivent avoir JavaScript activé. JavaScript ne peut pas être traité comme un mécanisme optionnel utilisé uniquement pour fournir des fonctionnalités supplémentaires. JavaScript est plutôt une pierre angulaire fondamentale du système. Si une organisation interdit l’utilisation de JavaScript dans ses pages web, les widgets d'IMu ne peuvent pas être utilisés.
Note: Heureusement, il est de plus en plus rare que les sites exigent que leurs pages Web puissent fonctionner sans JavaScript.
Cela signifie que, contrairement aux pages générées par les moteurs de modèles, une grande partie du traitement s’effectue dans le navigateur. C’est peut-être moins efficace que la technique utilisée par les moteurs de modèles, mais cela offre une bien plus grande flexibilité. Des pages allant de simples fichiers HTML statiques à des pages complexes générées à partir d’un CMS peuvent recevoir des widgets d'IMu.
Chargement d’IMu
Étant donné que le framework s’appuie sur JavaScript, il n’est pas surprenant que toute page souhaitant utiliser des widgets d'IMu doive d’abord charger un fichier JavaScript IMu. Cela se fait à l’aide d’un élément HTML standard <script> dans la section <head> de la page HTML :
<script type="text/javascript" src="imu/imu.js"></script>
C’est souvent la seule entrée liée à IMu qui est requise dans la section <head> de la page.
Localisation du fichier imu.js
Le fichier imu.js fait partie d’un répertoire imu qui doit être installé sur la machine serveur web. Le répertoire imu doit être accessible par le serveur web.

