SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT. V 1.0 27 janvier 2011



Documents pareils
Le meilleur de l'open source dans votre cyber cafe

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

MEDIAplus elearning. version 6.6

MESVISITEURSPRO.COM. TUTO : Comment intégrer Google Analytics à mon site?

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

UwAmp. Serveur d'evaluation

La double authentification dans SharePoint 2007

Guide utilisateur Archivage intermédiaire Messagerie. Enterprise Connect pour Outlook 2010 EC V 1.0

Comment développer et intégrer un module à PhpMyLab?

Service d'authentification LDAP et SSO avec CAS

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

8 Mars Guide du Wiki Confluence

Utilisation de GLPI. 1.Page d'accueil. Introduction

Sage CRM. 7.2 Guide de Portail Client

Manuel du composant CKForms Version 1.3.2

Drupal Développeur. Theming et développement pour Drupal. Une formation Formateur : Fabien Crépin. Drupal Développeur.

@telier d'initiation

Premiers pas sur e-lyco

Application de lecture de carte SESAM-Vitale Jeebop

Gestion des documents associés

Maarch V1.4

Documentation module hosting

Administration du site (Back Office)

contact@nqicorp.com - Web :

Fonctionnement général de Tiny ERP

Manuel d'utilisation

Internet : Naviguer en toute sérénité

Gestion de parc informatique - Prise en main

Table des matières. 1 À propos de ce manuel Icônes utilisées dans ce manuel Public visé Commentaires...

Tutoriel : Comment installer une compte (une adresse ) sur un logiciel de messagerie (ou client messagerie)?

Nouveautés joomla 3 1/14


Guide de l'utilisateur de l'application mobile

Manuel d utilisation du site web de l ONRN

Tutoriel pour la création d'un Google Sites

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

GLPI (Gestion Libre. 2 ième édition. Nouvelle édition. de Parc Informatique)

AFTEC SIO 2. Christophe BOUTHIER Page 1

Présentation du Framework BootstrapTwitter

Manuel utilisateur. des. listes de diffusion. Sympa. l'université Lille 3

MODE D'EMPLOI DU CONTRIBUTEUR WEB UAPV "CONTRIBUER DANS UNE RUBRIQUE DU SITE WEB"

F O R M A T I O N S LOTUS NOTES. 8.5 Utilisateurs rue de la Bôle. E U R L. a u c a p i t a l d e

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Didacticiel de mise à jour Web

De EnvOLE 1.5 à EnvOLE 2. Document pour l administrateur

PARAMETRER LA MESSAGERIE SOUS THUNDERBIRD

1. Installation du Module

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Guide de création de site web optimisé

VTigerCRM. CRM : Logiciel de gestion des activités commerciales d'une (petite) entreprise

Navigation dans Windows

Guide de démarrage de Business Objects Crystal Decisions

Installation locale de JOOMLA SEPIA

Edutab. gestion centralisée de tablettes Android

Le transfert de fichiers avec Filezilla Initiation à l'utilisation d'un client FTP

PHP 5.4 Développez un site web dynamique et interactif

WEBSEMINAIRE INTRODUCTION AU REFERENCEMENT

Faire Le Ménage. Faire le ménage lié à l utilisation de son PC

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Éditeur WordPress. Illustration 1. Kerniolen Pluneret Tel : Mob : info@formation-auray.fr

GROUPE CAHORS EXTRANET

Keyyo Unify Application de téléphonie intégrée pour Salesforce

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

Assistance à distance sous Windows

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

Business Sharepoint Contenu

SI7 GLPI : Le helpdesk

contact@nqicorp.com - Web :

Groupe Eyrolles, 2003, ISBN : X

FreeNAS Shere. Par THOREZ Nicolas

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

Sage 100 CRM - Guide de démarrage rapide Version 8. Mise à jour : 2015 version 8

Pour paramétrer l'extranet Pré-inscription, sélectionner Pré-inscriptions dans le menu Paramètre.

Tutoriel TYPO3 pour les rédacteurs

Java 7 Les fondamentaux du langage Java

ECLIPSE ET PDT (Php development tools)

Optimiser le référencement de votre site

Documentation utilisateur du front-office de Géo-IDE Catalogue

Dans la série. présentés par le site FRAMASOFT

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

TecLocal 4.0. Nouveautés de la version 4.0 (notes de mise à jour)

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

Les Enseignants de l Ere Technologique - Tunisie. Niveau 1

italc supervision de salle

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

TeamViewer 7 Manuel Manager

Freeway 7. Nouvelles fonctionnalités

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

Comment utiliser mon compte alumni?

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration

Joomla! Création et administration d'un site web - Version numérique

Création d'un site neutre et présentation des éléments de la page d'accueil

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Service de Virtualisation de la DSI UJF

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Les Imprimantes EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Janvier 2014

Transcription:

SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT V 1.0 27 janvier 2011 Ce document présente l'utilisation des plugins dans Tourism System Client. Dans le Client, un plugin permet d'ajouter de nouvelles interfaces, mais aussi d'enrichir une interface existante. Pour être fonctionnel, un plugin doit être installé et actif sur le Server. La liste des plugins est récupérée une fois sur le Server, juste après l'authentification de l'utilisateur, et conservée en mémoire durant toute la durée de la session. Ils sont stockés dans le répertoire plugins se trouvant à la racine du projet. Chaque sous répertoire constitue un plugin. Le nom du répertoire sera le nom du plugin. Ci dessous, un exemple d'arborescence constituant le plugin helloworld : Certaines parties du plugin étant chargés automatiquement, celle-ci doivent donc se situer à des endroits précis de l'arborescence. Cependant rien n'est obligatoire : Le fichier nomplugin.php, se situant à la racine, est inclus à tout moment, dans chaque interface de l'application. Son contenu se retrouve dans la source HTML de la page, entre les balises head. Il peut par exemple, servir à enrichir le menu principal. Le répertoire droits, contient un fichier php par type d'utilisateur,

permettant de rajouter des constantes de droits, utilisées dans les interfaces. La classe tsdroits inclus automatiquement ces fichiers. Les types d'utilisateurs possibles sont : root, superadmin, admin, manager, desk. Le répertoire hooks, contient des fichiers php permettant d'enrichir des interfaces existantes. Pour enrichir une interface, il suffit de créer un fichier portant le même nom. Celui-ci sera alors inclus automatiquement, dans la source HTML de la page, entre les balises head. Le répertoire interfaces, contient des fichiers php permettant de créer de nouvelles interfaces. Celle-ci peuvent être appelées depuis le menu. Le répertoire langs, contient autant de sous-dossier que de langues disponibles. Chacun d'eux contenant des fichiers js permettant la traduction des libellés. Pour chaque nouvelle interface proposée par le plugin, le fichier de langue portant le même nom est chargé automatiquement. Il est possible, selon les besoins, d'en créer d'autres qui pourront être appelés manuellement, pour les hooks, ou le menu. Le répertoire proxy, contient des fichier php qui sont les points d'entrée des requêtes vers le serveur. Chaque fichier constitue un service et doit être nommé selon ce modèle : pnomservice.php. Le répertoire soapclient, contient les clients SOAP. Le découpage et le nommage des fichier n'est pas imposé, sachant que les classes sont incluses selon les besoins dans les classes proxy. Les répertoires css et images, contiennent les fichiers CSS et les images. L'organisation de ces dossiers n'est contrainte à aucun modèle. Présentation du HookMgr L'objet Ext.ts.HookMgr est une instance de la classe Ext.ts.HookGroup. Il permet de gérer l'ensemble des hooks, pour les menus et les interfaces. La méthode get permettent d'ajouter des hooks pour une interface. Elle s'utilise de la façon suivante : Ext.ts.HookMgr.add(string nomhook, object definitionhook); Le nom du hook doit être le même que le nom de l'interface qu'il est censé enrichir. De cette façon, durant l'initialisation de l'interface, les hooks référencés vont automatiquement s'appliquer. La méthode addmenu permet de rajouter des éléments au menu principal. Elle s'utilise de la façon suivante : Ext.ts.HookMgr.addMenu(object/array menu); Il est possible d'ajouter un ou plusieurs onglet à la fois, c'est pourquoi le

paramètre menu peut être un objet ou un tableau d'objet. La méthode findcmp permet d'explorer, et d'accéder aux items d'une interface simplement, afin de les modifier. Elle s'utilise de la façon suivante : Ext.ts.HookMgr.findCmp(object/array items, string itemid) Le premier paramètre est l'élément que l'on veut parcourir, et le deuxième, l'itemid du composant auquel on souhaite accéder. La méthode retourne le composant en question, il est ainsi possible de modifier sa configuration. Exemples Tous les exemples suivants seront issus d'un plugin de test helloworld. Ses fonctionnalités sont les suivantes : Ajout d'une interface comportant un simple bouton qui affiche une alerte. Surcharge d'une interface existante pour y intégrer ce même bouton. Comment enrichir le menu? Pour enrichir le menu, nous allons utiliser le fichier helloworld.php qui se trouve à la racine du projet. Voici un exemple de code ci dessous : Ici, on rajoute un seul onglet, on passe donc directement l'objet en paramètre de la fonction addmenu. Mais il est également possible de passer un tableau d'objet. Afin d'accéder à l'interface, il faut renseigner une url de la forme suivante : plugin_nomplugin_nominterface.php L'exemple ci dessus va donc charger l'interface suivante : plugins/helloworld/interfaces/bonjour.php La config tsdroits permet d'afficher ou non l'onglet en fonction des droits de l'utilisateur. La constante MENU_BONJOUR doit donc être définit dans les fichiers du répertoire droits : true, l'onglet s'affiche, false, il ne s'affiche pas. On utilisera la méthode statique, printdroit, de la classe tsdroits. De cette façon, si la constante n'est pas définie, on considérera qu'elle vaut false. Les configs text et iconcls sont des configs utilisées par la classe Ext.Button : le fichier menu.css permet d'associer une icône à la classe bonjourmenu, et le fichier menu.js est le fichier de traduction dans lequel est définit la variable

Ext.ts.Lang.menuBonjour. Pour charger dynamiquement le bon fichier de traductin en fonction de la langue courante, il suffit d'utiliser la constante TS_LANG pour construire l'attribut href. Voici un exemple de fichier de traduction. On utilise la fonction Ext.apply pour ajouter des traductions à l'objet Ext.ts.Lang. Comment créer une nouvelle interface? Les pages constituant de nouvelle interfaces doivent se situer dans le répertoire interfaces. La façon de les définir est exactement la même que les interfaces natives : On peut utiliser la méthode statique checkdroit de la classe tsdroits au début du fichier, pour vérifier que l'utilisateur courant a accès à l'interface. Si ce n'est pas le cas, l'application renverra le message Access denied. La définition de l'interface doit être encadré par deux inclusions de fichier : le header et le footer de la page qui se trouvent dans le répertoire include à la racine du projet (header.php et footer.php). Voici ci dessous le code minimal permettant d'afficher une interface vide : La classe Ext.ts.Container gère tout ce qui se trouve au dessus de la barre de titre (bandeau, onglet...). La seule configuration nécessaire est : title : le texte à afficher dans la barre de titre content : les composants Ext constituant l'interface Il est également possible d'ajouter des tools dans la barre de titre, qui s'afficheront à coté du bouton permettant de réduire le bandeau. La gestion des traductions est automatique : le fichier portant le même nom que l'interface dans le répertoire langs sera chargé automatiquement. Il est cependant possible d'en inclure d'autres. Enfin, n'importe quelle fichier (php/js/css) peut être inclus dans la page, en fonction des besoins. Comment enrichir une interface existante?

Pour enrichir une interface existante, il faut créer un fichier php dans le répertoire hooks, portant le même nom que cette interface. Dans ce fichier on va utiliser la fonction add du HookMgr pour déclarer le hook. Voici un exemple : Ici on va enrichir l'interface fiches. L'objet en deuxième paramètre est la définition du hook : La fonction extenditems permet de modifier les composants Ext constituant l'interface. Ceux ci sont disponibles dans l'objet this.items. En utilisant la fonction findcmp du HookMgr il est possible d'accéder facilement aux composants possédant l'attribut itemid. Dans cette exemple, on récupère le composant gridfiche, pour ajouter un bouton en première position dans sa BottomBar. Il est également possible de surcharger ou d'ajouter des fonctions. Par exemple la fonction bonjour est utilisée ici en tant que handler du bouton. La gestion des traductions n'est pas automatique. De la même manière que pour le menu, il faut inclure manuellement le fichier souhaité en utilisant la constante TS_LANG. Enfin, n'importe quelle fichier (php/js/css) peut être inclus dans la page, en fonction des besoins. Comment appeler le proxy? Dans l'application, toutes les classes permettant d'appeler les proxy utilise la fonction Ext.ts.url pour construire l'url. Cette fonction a besoin de deux informations : le service et l'action. Pour appeler les proxy d'un plugin il spécifier une troisième information : le nom du plugin.

Voici par exemple la fonction bonjourfromserver, qui affiche une alerte (comme la fonction bonjour vue précédemment) mais en allant chercher le message sur le serveur. La config contient bien l'attribut plugin. Le fonctionnement est le même avec Ext.ts.JsonStore, Ext.ts.submit et Ext.ts.location. Ensuite, la construction des fichiers de proxy est semblable aux proxy natifs de l'application. Par exemple : Le fichier pbonjour.php doit contenir la classe pbonjour, ce qui constitue le service. Chaque méthode de cette classe déclarée en public constitue une action. Enfin, la construction des fichiers soapclient n'est contrainte à aucun modèle.