Connexion à un compte  search
  • Français
  • English
Thèmes

theme Créer un thème

L'architecture de Weezo permet de modifier l'apparence visuelle du bureau distant et des partages.
La création de thèmes nécessite la connaissance des feuilles de style CSS. La connaissance du PHP permet une modification plus complète de la mise en page.


Structure d'un thème

Un thème se présente sous la forme d'une archive zip (dont l'extension est changée en ".weezoTheme") contenant la totalité des fichiers nécessaires.
Son installation dans Weezo se fait simplement en cliquant sur le fichier .weezoTheme dans l'explorateur Windows.

Cette archive regroupe le contenu du répertoire du thème, qui contient les fichiers suivants :
  • une feuille de style CSS, nommée "theme.css"
  • un script définissant les principaux paramètres du thème, nommé "menu.php"
  • un script optionnel définissant le formulaire de connexion, nommé "loginForm.php"
  • un script optionnel définissant le bureau" nommé "background.php"
  • ...ainsi que l'ensemble des éléments graphiques


Le nom du répertoire définit le nom du thème. Ce répertoire doit être placé dans /www/themes

Un thème est reconnu comme valide par l'application à partir du moment où un fichier "theme.css" est présent dans le 1er niveau de sous-répertoire de /www/themes.


Il est fortement recommandé pour la création d'un nouveau thème de se baser sur les fichiers d'un thème existant !

Fichier theme.css

Cette feuille constitue le coeur du thème. Elle définit l'apparence du bureau, des fenêtres et des partages.
Le fichier theme.css est appelé dans les pages après le fichier /www/themes/common.css qui définit les éléments communs aux différents thèmes.


Fichier menu.php

Ce script est maintenu pour des raisons de compatibilité.
Il définit principalement la position et la largeur et la hauteur de la zone de menu ($theme['menuFrame']), et le contenu HTML affiché avant chargement d'un partage ($theme['winEmptyHTML']).
Les autres variables ne doivent pas être modifiées.


Fichier background.php

Ce script assure l'affichage du bureau et de la liste des partages.
Il est inclus par le script mainFrame.php après insertion de la balise <body>, et des éléments nécessaires à l'affichage du fond d'écran.

Vous aurez besoin pour générer la page de la fonction cfResourcesGetUser(), qui retourne un tableau des partages ("ressources") associés à l'utilisateur connecté.
Ce tableau contient les éléments suivants :
  •  * name : "label" of resource
  • * type : type of resource (explorer, administration, misc, webtv, webcam, website)
  •  * subType : sub type of resource
  •  * baseFile : main script file name (without path)
  •  * resourceScriptPath : path (from document root) to resource script(s)
  •  * resourceDataDir : path to resource data directory
  •  * definition : array containing resource definition (icon, small icon...)
  •  * resourceJsLink : javascript link to main resource script
  •  * resourceTypeLabel : label of resource as specified in resource's desciber file or, if not found, resource's type label

     * resourcePreviewImage (optional) : path (from document root) to resource's preview image
  •  * resourceDescription (optional) : path (from document root) to resource's description (read from describer.ini file)
  •  * resourceStartsSession : true if resource doesn't need a session_start from security.php script
  •  * resourceConfigFile : (optional) resource configuration script name

Vous pourrez aussi avoir besoin de la fonction cfUGetVar(nom_de_la_donnée) qui permet de récupérer les informations sur l'utilisateur connecté.
Utilisez cfUGetVar() (sans paramètre) pour obtenir un tableau de toutes les propriétés.

Fichier loginForm.php 

Ce script permet de redéfinir la page de connexion.
A l'inverse de background.php, ce script est en charge de l'affichage complet de la page. La fonction cfInsertHEAD() doit être utilisée pour inclure la balise <head> contenant notamment :
  • le lien vers /themes/common.css
  • le lien vers /themes/nom_du_theme/theme.css
  • le lien vers la feuille javascript nécessaire au fonctionnement des scripts de connexion
La fonction includeLoginFormAndScripts() doit être appelée après l'ouverture de la balise &ltbody>. Elle assure l'inclusion des formulaires et scripts nécessaires à la transmission et au chiffrement RSA des données.

Le reste du script est libre, il doit uniquement satisfaire aux conditions suivantes : les informations de connexions doivent être postées vers '/index.php' sous forme de POST. Les données suivantes doivent être incluses dans un formulaire ayant la propriété name="loginForm" :

  • 'userId' : identifiant du compte. Les identifiants sont numériques et vont de 0 à n-1
  • 'password' : mot de passe
  • 'userSelectedTheme' (optionnel) : thème sélectionné par l'utilisateur (en ce qui concerne cette donnée, il est recommandé d'utiliser l'instruction " if(cfGeneralData('allowUserThemeChange')) echo outThemeSelectionControl('general',false); ", qui se charge d'afficher le contrôle, qui remplit lui-même le thème sélectionné dans le champ 'userSelectedTheme' du formulaire 'loginForm').

La soumission de ce formulaire doit se faire au travers de l'appel à la fonction javascript "startEncryption()". Celle-ci assure le cryptage du mot de passe contenu dans le champ "document.loginForm.password.value", ainsi que la soumission du formulaire.


Le traitement de données d'authentification est assuré par le script 'login.php'.


Le script loginForm.php peut (doit...) se baser sur le tableau des comptes $_ENV['users'], qui contient les informations relatives à tous les groupes utilisateurs existants et activés.

Pour chaque comptes les informations suivantes sont données :

  • 'authenticationMethod' : valorisée à 'password' ou 'noAuthentication', elle indique le type d'authentification du compte,
  • 'name' : nom du compte,
  • 'icon' : nom de l'icone associé au compte. Ce nom doit être précédé de '/gfx/icons/' pour obtenir la source d'une image.
  • 'hint' (donnée optionnelle) : indication associée au mot de passe.

 

De plus 2 variables sont définies par le script incluant loginForm.php :

  • $wrongPasswordSent : mis a vrai si l'utilisateur a saisi un mauvais mot de passe.
  • $userToLoad : identifiant du compte sélectionné (qui peut soit avoir été passé en amont au travers d'un paramètre GET, soit correspondre au compte pour lequel le faux mot de passe a été saisi).