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. |