Extension

Les extensions permettent d'étendre les fonctionnalités ou de personnaliser Ekylibre. Le système d'extension fournit donc une liste de point d'entrée dans le logiciel.

Un des objectifs est de pouvoir installer une extension seulement en la plaçant dans le dossier plugins/ à la racine d'Ekylibre. Les routes, menus, droits, assets, contrôleurs/vues etc. doivent se mettre en place automatiquement sans configuration dans Ekylibre.

Plugfile
Gemfile
Rakefile
README.rdoc
app/
  assets/
    fonts/
    images/
    javascripts/
    stylesheets/
  controllers/
  themes/
  views/
config/
  rights.yml
  navigation.xml
  routes.rb
  locales/
lib/
  <extension>.rb
  <extension>/
    version.rb (?)
test/

Fichiers

Plugfile

Ce fichier permet de définir comment brancher l'extension dans Ekylibre. À la manière d'une gem, il permet aussi de poser les contraintes d'intégration.

Initialement créée pour se distinguer d'un gemspec, il est possible que le fichier évolue pour se conformer au gemspec. L'intérêt serait de pouvoir créer des gems en tant que plugin pour Ekylibre. Le problème technique a régler est celui de la contrainte de version sur Ekylibre qui n'est pas actuellement pas une gem.

add_theme_stylesheet

add_theme_stylesheet 'tekyla', 'things'
add_theme_stylesheet '*', 'things'
add_theme_stylesheet /^tekyla-*/, 'things'

app

Définit la dépendance vis-à-vis d'Ekylibre.

app '1.1.3'
app '~> 1.1.3'
app '> 1.0.0'
app '>= 1.1.0', '< 2.0'

author

author 'Brice Texier <brice@ekylibre.com>'

name

Cet appel est nécessaire.

name 'super-fonctionnalite'

require_javascript

Cette directive permet d'appeler le script depuis application.js.

require_javascript 'foo/bar/baz'

Dans l'exemple ci-dessus, le fichier se trouve dans <plugin_root>/app/assets/javascripts/foo/bar/baz.js.coffee.

version

version '0.0.0'

config/rights.yml

config/navigation.xml

config/routes.rb