Project

General

Profile

Personnalisation de l'interface publique » History » Version 26

Simon, 07/04/2012 04:50 PM

1 18 Simon
{{>toc}}
2 1 Simon
3 22 Simon
h1. Personnalisation de l'interface publique
4 1 Simon
5
6 17 Simon
7
8 26 Simon
h2. Personnalisation graphique
9 1 Simon
10 24 Simon
h3. Les thèmes
11 1 Simon
12 24 Simon
13 20 Simon
Pour ajouter un thème, procéder en 3 étapes :
14
* Dupliquer le dossier _/templates/public/default/_ et renommer le (par exemple en _/templates/public/montheme/_ ).
15 23 Simon
* Rendez-vous sur l'interface d'administration, menu _configuration_. Dépliez l'onglet _Thèmes des interfaces_. Votre nouveau thème apparaît et vous pouvez désormais le sélectionner.
16 17 Simon
* Modifiez les fichiers contenus dans _/templates/public/montheme/_ à votre convenance.
17
18 1 Simon
19 24 Simon
h3. Les templates publics - mise en page
20 17 Simon
21
Vous souhaitez modifier une page ou ajouter dynamiquement du contenu en créant vos propres fonctions, c'est possible. Tous les fichiers contenus dans _/public/dist/_ peuvent être réécris. 
22 1 Simon
23 24 Simon
La logique de l'application est simple : si l'utilisateur a défini son fichier alors celui-ci est prioritaire sur le fichier par défaut. 
24 1 Simon
25
Par exemple, pour la page d'accueil, linea21 charge par défaut le fichier _/public/dist/tpl_home.php_. Si vous souhaitez modifier ce fichier, copiez _tpl_home.php_ dans _/templates/public/montheme/_ et faites vos modifications. Rafraîchissez la page depuis votre navigateur, vous constaterez que les changements ont étés pris en compte.
26
27 24 Simon
Les templates publics sont pris en charge par la fonction *distInclude()*.
28 1 Simon
29
30 24 Simon
h2. Personnalisation fonctionnelle
31 1 Simon
32
33
34 24 Simon
h3. L'override
35
36
L'override s'applique aussi bien à l'interface publique qu'à l'interface d'administration. Une [[Override|page dédiée]] expliquant le principe est disponible sur ce wiki.
37
38
Attention, le dossier _override_ doit contenir la même arborescence que le fichier d'origine. Par exemple  : _/templates/public/montheme/override/news/display.php_.
39
40
41
42
h3. Le fichier _display.php_
43
44
45 8 Simon
Il est possible d'implémenter vos propres fonctions d'affichage, définir des traitements ou même re-définir les fonctions livrées avec l'application.
46
47
Prenons un exemple concret :
48
49 24 Simon
Je souhaite pouvoir utiliser ma propre fonction hello_world() dans le module d'actualités. Comme précédemment expliqué, je crée donc le fichier _/templates/public/montheme/override/news/display.php_ avec le code suivant :
50 1 Simon
51 17 Simon
<pre>
52
<code class="php">
53 1 Simon
include_once('../news/display.php');
54
55
// no need if the default module file is included
56 8 Simon
// include_once(themePath('../news/' . SQL . '.inc.php'));
57
58
59 1 Simon
function hello_world() {
60
  return 'hello World !';
61 17 Simon
}
62 8 Simon
63 17 Simon
function DisplayOneNews($news_id) [
64 8 Simon
  echo hello_world();
65 17 Simon
  // la suite de mon traitement
66 8 Simon
}
67
</code></pre>
68
69
La première ligne de code me permet d'inclure les méthodes de base (sans avoir à les redéfinir - *version >= 1.4* ).
70
71
J'inclue le fichier SQL si je choisis de ne pas faire appel au fichier de référence du module. Dans le cas contraire (comme dans cet exemple), il est appelé automatiquement.
72 1 Simon
73 8 Simon
Je définis ma fonction hello_world() jusqu'alors inexistante.
74 1 Simon
75 7 Simon
Enfin, je re-définis la fonction DisplayOneNews() afin qu'elle réalise l'appel à ma fonction précédemment définie. Le "comportement de PHP concernant les fonctions conditionnelles":http://www.php.net/manual/fr/functions.user-defined.php va donner la priorité à la fonction définie par l'utilisateur.