Guide de l'apprenti développeur

De WIKI-BOKEH
Aller à : navigation, rechercher

<languages /><translate> Cette page s'adresse aux développeurs ou utilisateurs souhaitant contribuer au code de Bokeh.

Introduction[ ]

Le code source de Bokeh est écrit en PHP. Il utilise le framework Zend 1.6.2. On distingue 3 parties dans l'organisation des fichiers contenant le code source (/chemin/vers/bokeh de l'endroit ou vous avez installé Bokeh):

  • OPAC /chemin/vers/bokeh/application/modules/opac: Aussi appelé "front office", il contient le code qui génère les pages visible par les utilisateurs du portail,
  • Admin /chemin/vers/bokeh/application/modules/admin: Contient tout ce qui concerne la gestion, construction, administration du portail. Plus généralement, c'est la partie "back office" de bokeh mais on retrouve certaine de ses fonctionnalités coté OPAC (Comme l'édition d'articles ou la configuration des boites),
  • Cosmogramme /chemin/vers/bokeh/cosmogramme: C'est l'intégrateur de notices de Bokeh.

Trouver le code[ ]

Ce paragraphe répond à la question Comment trouver (et donc modifier) le code qui génère CETTE fonctionnalité dans CETTE page ?.

Lorsque vous accédez à une page Bokeh, que ce soit coté admin ou opac, c'est le code PHP contenu dans un fichier appelé "contrôleur" qui est chargé (associé à un éventuel template) de renvoyer le contenu de cette page. Ces contrôleurs se trouve dans:

  • /chemin/vers/bokeh/application/modules/opac/controllers
  • /chemin/vers/bokeh/application/modules/admin/controllers

De manière assez général, c'est l'url de la page qui va nous aider à trouver le contrôleur/fichier dans lequel se trouve le code source. Si vous accédez à http://mon-bokeh.com/admin/profil/edit/id_profil/1, le framework Zend va extraire une partie de cette url (appelée le chemin) pour déterminer le code source à exécuter:

  • admin/profil/edit: Le chemin de la ressource demandée,
  • id_profil/1: Un paramètre passé à la fonction du contrôleur qui gère la réponse.

Le chemin admin/profil/edit nous donne 3 informations:

  • Le module: Le module admin ou opac. Nous irons donc dans /chemin/vers/bokeh/application/modules/admin/controllers
  • le contrôleur lui-même:. Le nom du controlleur. Pour obtenir le fichier corespondant il faut mettre en majuscule la 1ère lettre de ce nom et ajouter "Controller.php". Dans notre cas, cela donne "ProfilController.php". Nous éditerons donc /chemin/vers/bokeh/application/modules/admin/controllersProfilController.php,
  • l'action: C'est le nom de la méthode (fonction) PHP qui sera appelée dans le contrôleur. Il faut ajouter "Action" à son nom, ainsi vous devez trouver une fonction editAction dans le fichier chemin/vers/bokeh/application/modules/admin/controllersProfilController.php


Dit autrement avec un exemple concret :

  • je veux créer une page dans Bokeh qui affiche à l'opac les horaires d'ouverture de la bibliothèque. Cette page opac aura pour url /ouvertures
  • la classe Ouverture.php existe dans /library/Class
  • je crée un fichier controller dans /application/modules/opac/controllers
  • ce fichier doit être nommé selon l'url : OuverturesController.php
  • je crée un répertoire pour l'affichage dans /application/modules/opac/views/scripts/
  • ce répertoire doit avoir le nom de l'url souhaitée : ouvertures
  • dans le répertoire /application/modules/opac/views/scripts/ouvertures je crée le fichier index.phtml pour l'affichage

Accéder aux données[ ]

Bokeh s'appuie sur le framework Storm ( consulter la documentation ) </translate>

Scripts et outils[ ]

Dans le répertoire "scripts" à la racine de Bokeh, se trouve un ensembles d'outils et de scripts que nous maintenons pour faciliter certaines tâches.

emacs[ ]

Ce répertoire contient un plugin spécifique emacs ainsi que ses dépendances pour faciliter le développement de Bokeh pour les utilisateurs d'Emacs

openings_to_library_field.php[ ]

Il s'agit d'un script capable à partir des plages d'ouvertures définies pour chaque bibliothèques de générer un texte qu'il place automatiquement dans le champ "horaire" de la fiche bibliothèque.

Seules les plages récurrentes sont prises en comptes, ce script fusionne les plages adjacentes et ignore les plages indéfinies (00h00).
Exemples:

  • Tous les Jeudi : matin 00:00 à 00:00, après-midi 13:30 à 19:00 donne Jeudi : 13h30 - 19h
  • Tous les Mardi : matin 12:00 à 12:00, après-midi 12:00 à 16:30 donne Mardi : 12h - 16h30
  • Tous les Samedi : matin 9:00 à 12:00, après-midi 14:00 à 16:00 donne Samedi : 9h - 12h / 14h - 16h