Thèmes : présentation et développement: Revision

Définition, utilisation et développement des thèmes

Liste des thèmes communautaires : https://elgg.org/plugins/search?f%5Bc%5D%5B%5D=themes&f%5Bt%5D=&sb=Search

à compléter et traduire depuis http://learn.elgg.org/en/2.0/guides/themes.html

 

Dans Elgg, un thème est un plugin : les tèmes sont construits et installés comme n'importe quel plugin. Pour démarrer, il est recommandé de vous familiariser d'abord avec le système des Plugins et des Vues.

 

Les thèmes pour Elgg sont à la fois très rapides à développer et extrèmement puissants. L'utilisation de thèmes peut complètement changer l'apparence et le comportement d'un site construit avec Elgg.

Les échanges sur les thèmes Elgg sont nombreux, et il peut être utile de détailler un peu le mode de conception de ces thèmes.

Les thèmes utilisent 2 concepts-clefs d'Elgg : l'architecture (l'arborescence) du plugin, et le systèmes des Vues.

Le système le plus simple, et de loin, pour construire un thème Elgg consiste à créer un plugin. Cela permet de le distribuer aisément (puisque tout est inclus dedans), et vous permet de le configurer depuis votre interface d'administration (ce qui rend la construction des thèmes moins invasive.

La première chose à faire pour créer un thème est de créer un nouveau dossier pour votre plugin, dans le dossier /mod . Très rapidement : créez le répertoire de votre plugin, et deux ficheirs start.php et manifest.xml dans ce dossier..

Une fois cela fait vous pouvez commencer à modifier les vues. Ce qui peut être fait soit en les "étendant" (extend), soit en les remplaçant (override).

 

Créez votre plugin

La première étape consiste à créer votre plugin comme cela est détaillé dans la partie dévelppement des plugins.

  • Créer un dossier dans mod/
  • Créer un fichier start.php
  • Créer un fichier manifest.xml qui décrit votre thème.

Construisez votre thème

Vous pouvez modifier les vues de 2 manières :

Extension des vues

La première consiste à ajouter des éléments à une vue existante, via la fonction extend_view utilisée depuis la fonction d'initialisation du start.php.

Par exemple, le fichier start.php suivant ajoute mytheme/spotlight au "projecteur" (spotlight) existant :

 
    function mytheme_init()
    {
        extend_view('page_elements/spotlight','mytheme/spotlight');
    }
 
    register_elgg_event_handler('init','system','mytheme_init');
 
    ?>

Surcharge ("overload") des vues

Les plugins peuvent avoir une hiérarchie de vues, chaque fichier défini dans l'arborescences du dossier /views du plugin remplaçant alors la vue du même nom dans l'arborescence du core (coeur du système). Ainsi, si un plugin a un fichgier :

/mod/myplugin/views/default/page_elements/spotlight.php

ce fichier remplacera :

/views/default/page_elements/spotlight.php

Mais, et c'est essentiel, seulement si le plugin est activé.

Une fois cela fait, rendez-vous donc dans l'interface d'administration pour activer votre plugin : le "projecteur" est dorénavant remplacé par le vôtre. Pratique , non ?

 

Bien entendu, cela fonctionne avec n'importe quelle vue.

La combinaison de ces deux méthodes permet de modifier totalement le site, toutefois il est préférable de commencer par de petites modifications dans un premier temps, pour bien se familiariser avec ce système..

 

Ceci vous donne un contrôle total sur la manière dont Elgg apparaît et se comporte. Cela vous offre la possibilité à la fois de modifier sensiblement, ou de remplacer totalement les vues existantes.