en | fr | Contact  | Imprimer  | Partager

FrameBeurk documentation

7. Modules présents

Voici un survol des différents apports des modules présents dans le fichier .zip de FrameBeurk. (Pour des informations précises et détaillées, rien de mieux que de se reporter au code source)

7.1.  Beurk

Le module Beurk ne définit pas d’entité, mais apporte :

  • les 3 principaux contrôleurs : Maj, Vue et DivPatron
  • l’interpréteur : pour la réécriture d’URI
  • des fonctions serveur : gestion des clefs, des URI, des jetons, des formulaires, des messages d’erreur, centralise la gestion des autorisations
  • des fonctions client : Gestion de l’affichage des divs, navigation ajax, amélioration des balises
  • les tables : stockage des jetons clefs, déclaration des actions et type d’entité.

7.2. Kom1

Le module Kom1 centralise des fonctionnalités communes aux autres modules :

  • Les Entités Site (avec les vues recherche, modere et reaffiche) et Style (avec la maj change).
  • Des outils facilitant l'intégration au site des différents modules : Controleur Menu, widgets Recherche et Infos.
    • Le controleur Menu regroupe les menus des différents modules (déclarations dans $CONFIG['Controles']['Menu'])
    • Le widget de Recherche est un point d'entrée unique pour effectuer des recherche sur l'ensemble des entités du site. Chaque entité "recherchable" déclare les éléments nécessaires à l'affichage dans le widget, à la requête sql unique et à la restitution des données de l'entité.

    • $CONFIG['Controles']['Recherche']['Sujet'] = array( 'libelle' => 'Sujets', 'niveau' => 3, 'aInclure' => true, 'autorisation' => 'Permission', 'requete' => 'Rhum_queryRechercheSujet', 'affichage' => 'Rhum_carteSujetTrouve');

      En l'état, la fonction de recherche utilise les index FULLTEXT de MySQL, avec leurs limitations (mots de moins de 4 lettres ignorés; si moins de 3 lignes dans la table cherchée, recherche inopérante...).

    • Le widget Infos affiche les messages d'erreurs de Maj ou de Vue, le temps de traitement de la transaction sur le serveur (+ d'autres durées en bulle au survol), une liste de sélection de feuilles de style...
  • Des helpers pour l’affichage des entités, des formulaires de saisie, la gestion des BBCodes
  • Des fonctions client pour l’insertion de BBCode, l’affichage d’un calendrier de cueillette de date…

7.3. Uzers

Ce module fondamental apporte la gestion des entités utilisateurs, groupes et permissions, ainsi qu’un widget de connexion qui permet à l’utilisateur de se loguer.

7.3.1. Utilisateurs

Les utilisateurs sont créés soit par un administrateur, soit à la façon d’un forum, en s’inscrivant en ligne. Le nouvel inscrit reçoit sur son adresse e-mail personnelle un lien d’activation de son compte.

A l’installation sont créés 2 utilisateurs :

  • admin (mot-de-passe par défaut = admin)
  • anonymous : représentera les utilisateurs non logués.

7.3.2. Groupes

Les groupes permettent en 1er lieu d’associer une permission à plusieurs utilisateurs à la fois. Un utilisateur peut être associé à un ou plusieurs groupes. A l’installation sont créés 2 groupes :

  • ADMIN, auquel sont rattachés l’utilisateur Admin et tous les utilisateurs ayant les mêmes droits qu’admin.
  • ALL, groupe de tous les utilisateurs, toujours. (Il n’apparait pas dans la liste des groupe d’un user)

7.3.3. Permissions

Les permissions ont pour fonction d’autoriser ou d’interdire l’exécution d’actions de Maj ou de Vue, sur certains types d’entité, dans un certain périmètre. Exemple : interdire « cree Sujet » dans « Section 7 ».

Une permission peut être associée à plusieurs groupes. Ce sont les contrôleurs Maj et Vue qui vérifient les permissions des actions demandées avant de leur passer la main, SI ces actions ont été configurées pour utiliser les permissions. Cette fonctionnalité impose des contraintes sur les requêtes d’accès à la base de données qui doivent être préparées convenablement :

  • La requête doit être écrite sous la forme d’un tableau (voir ci-dessus la couche de communication avec la DB).
  • La clause SELECT doit contenir les champs Id des entités sur lesquels se vérifie la permission. Dans l’exemple ci-dessus : IdSection
  • Avant d’être envoyée à la DB, la requête doit être complétée par la fonction Uzers_ajoutePermissionQUERY, qui va ajouter dans la clause WHERE les conditions liées aux permissions des groupes de l’utilisateur (ou du groupe ALL s’il n’est pas logué).

La fonctionnalité de gestion des permissions a été développée dans un soucis de performances, utilise le minimum d’ordres SQL et stocke les résultats en session PHP, jusqu’à déconnexion (ou login) de l’utilisateur.

Aujourd’hui, l’interface de saisie des permissions ne vérifie pas que les combinaisons saisies d’actions, d’entités et d’Id ont un sens.

7.4. Rhum

Le module Rhum implémente un forum simplifié comprenant les entités suivantes :

  • Les commentaires
  • Les sujets, dans lesquels les utilisateurs peuvent saisir des commentaires.
  • Les sections, dans lesquelles les utilisateurs peuvent créer des sujets.
  • Le Forum (singleton) qui est composé d’une liste de sections -seulement créées par l'administrateur.
  • Les News (singleton) qui est composé d’une liste de commentaires -seulement créés par l'administrateur.

Toutes les actions utilisent les permissions. Il est donc possible de restreindre l'accès ou les mises à jour à certains groupes.

7.5. Zeek

Zeek est un embryon de module destiné à gérer de la musique. Il ne contient pour le moment qu’un widget Player, utilisant Dewplayer si Flash est disponible ou la balise HTML5 Audio sinon.
Ce player, placé en haut de la page ou dans le menu latéral, ne sera pas interrompu lors d’une navigation Ajax.

Le module Zeek sert d’exemple au chapitre « Développement ».

7.6. Zenpa (Patron)

Zenpa est le seul Patron livré avec FrameBeurk. Il apporte :

  • Les layouts par défaut pour :
    • Les pages HTML complètes renvoyées par index.php, avec fichiers d'entête et d'enqueue indépendants,
    • Les vues renvoyées par ajax.php,
    • Les fichiers de syndication renvoyés par rss.php.
  • Les fonctions Javascript :
    • Nécessaires à l'affichage des données au retour d'une transaction Ajax.
    • Permettant le défilement limité et indépendant de la vue principale de la page et du menu latéral.
  • Des fonctions PHP pour la gestion du CSS :
    • Génération de boutons,
    • Encodage en base64 (et colorisation) d'images à embarquer dans les feuilles de style,
    • Gestion des préfixes (-webkit-, -o-,...).

© ToolOscope SASU 2010-2015. © Arnaud De Rette 2016-2018. Tous droits réservés.