Comment développer une Extension Weezo ?

Règles à respecter pour le développement et la distribution d'extensions Weezo

Modérateurs : Weezo, Modérateurs

Comment développer une Extension Weezo ?

Message par Weezo » Mer 15 Nov, 2006 11:21

Weezo permet au travers des extensions de proposer de nouveaux types de partages.

Note : les termes "partage" et "ressource" ont ci-après la même signification.

Une extension se présente sous la forme de scripts PHP auxquels est ajouté un fichier texte nommé "describer.ini".

Celui-ci, placé au répertoire racine de l'extension, permet notamment de définir :
- le nom de l'extension (dans les différentes langues supportées)
- la description de l'extension (dans les différentes langues supportées)
- le nom du script index
- le nom du script de configuration (si applicable)
- l'icône de la ressource
- une image preview
- le nom de l'auteur
- l'url du site de l'auteur

Le format du fichier et le détail des instructions sont décris dans le fichier /www/res/misc/describer.ini.readme.txt

Un fichier "license.txt" peut être ajouté au répertoire racine. Il sera alors affiché lors de l'installation de l'extension.

L'ensemble des fichiers doivent ensuite être compactés dans un fichier zip renommé en .weezoResource

L'installateur d'extension décompacte les fichiers dans le répertoire /www/res/misc/nom_du_fichier_zip puis vérifie la présence du fichier describer.ini à la racine.

L'extension est alors prête à être utilisée !


Gestion des droits d'accès

La gestion des droits d'accès est intégrée à Weezo. Vous n'avez donc pas à l'intégrer vous-même. Elle est assurée par le script security.php automatiquement exécuté avant tout autre script php (auto-prepend).
Un script php ne sera autorisé que s'il est contenu dans le répertoire (ou l'un des sous-répertoires) d'une ressource associée à l'utilisateur connecté/authentifié.

Attention : tout fichier non-php reste par défaut accessible aux utilisateurs non authentifiés. Vous pouvez intégrer des fichiers .htaccess pour en assurer la confidentialité.

Environnement

Un php.ini et un httpd.conf valant mieux qu'un long discours, je vous invite à regarder ceux utilisés par Weezo, situés dans le répertoire /data/default.

Le module "commonFunctions.php" est inclus par défaut à tout script avant son exécution. Vous avez donc directement accès à l'ensemble de ses fonctions.

Comment développer et tester l'extension ?

Le plus simple est de directement développer à partir du répertoire /www/res/misc/nom_de_l'extension

Une fois le script index défini, vous pourrez ajouter votre extension aux partages au travers de l'IU Weezo.


Règles à respecter

Variables de session
Afin d'éviter les intersection entre les variables de session de plusieurs ressources, il est conseillé d'utiliser les fonctions cfRSetVar() / cfRGetVar(), qui stockent / lisent les variables de session dans l'arborescence du tableau $_SESSION['res'][$resourceId] où $resourceId est l'identifant de la ressource courante. La fonction cfRSetVarArray() permet de définir un tableau.

Vous pouvez évidemment ne pas utiliser ces fonctions et nommer directement vos variables de session. Il est alors conseillé d'utiliser un préfixe propre à votre ressource afin d'éviter les intersections avec les autres ressources Weezo. N'oubliez pas non plus qu'un utilisateur peut se voir attribuer plusieurs ressources d'un même type. Il est donc fortement conseillé de baser à minima les variables de session sur l'identifiant de la ressource...

Formulaires
Afin de gérer efficacement les droits d'accès aux scripts, il est utile de rajouter dans les forumlaires le champ "resId" valorisé avec l'identifiant de la ressource.
Cet identifiant est accessible au travers de la variable de session $_SESSION['activeResourceId']

Le fait de passer cet identifiant permet d'éviter les collisions de variables de sessions (respectant les règles définies ci-dessus) entre 2 ressources identiques (par exemple 2 explorateurs de fichiers pointant sur des répertoires différents, associés à un même groupe d'utilisateurs).

Si vous n'utilisez pas les fonctions cfRGetVar et cfRSetVar, la transmission de resId n'est pas indispensable

Charte visuelle
Si vous souhaitez redistribuer votre extension, il est souhaitable d'utiliser les thèmes Weezo.

Les principales règles à respecter sont les suivantes :

Cadres
Weezo utilise 3 niveaux imbriqués de cadres. La balise <div> est pour cela utilisée mais rien ne l'impose.
La structure d'un cadre est la suivante :
<div class="frame1">
<div class="frame1Header">Titre du cadre</div>

Corps du cadre

<div class="frame1Footer">Pied du cadre</div>

Les 3 niveaux d'imbrication sont définis par les classes CSS "frame1"/"frame1Header"/"frame1Footer", "frame2"/"frame2Header"/"frame2Footer", "frame3"/"frame3Header"/"frame3Footer".

Vous pouvez pour cela vous aider des fonctions du module "outputFunctions.php" :
- outDivFrame (pour créer le cadre principal)
- outFrameHeaderTable (pour créer un en-tête de cadre avec une partie gauche et une partie droite)
- outFrameFooterTable (pour créer un pied de cadre avec une partie gauche et une partie droite)

Le 1er niveau de cadre est généralement entouré d'une "ombre portée" (en fonction du thème).

Il faut donc l'entourer des fonctions outShadowBefore() et outShadowAfter().
Exemple code pour un cadre de base :
echo outShadowBefore("100%");
echo outDivFrame("frame1");
echo outFrameHeaderTable("frame1Header", "Titre Gauche", "Titre Droit");
echo "hello world";
echo outFrameHeaderTable("frame1Header", "Gauche", "Droite");
echo outFrameHeaderTable("frame1Header", "Pied Gauche", "Pied Droit");

Liens / boutons
La fonction outButton() du module "outputFunctions.php" doit être utilisée pour la création de boutons et éventuellement de liens.
Les arguments de la fonctions sont disponibles en commentaires du module outputFunctions.
Weezo
Tôlier
 
Message(s) : 7053
Inscription : Mar 14 Nov, 2006 10:42

Retour vers Création d&#8217;extensions Weezo

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 0 invité(s)

cron