Personnalisation de l'interface publique » History » Version 24
Simon, 07/04/2012 04:48 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 | 24 | 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. |
76 | 8 | Simon | |
77 | 20 | Simon | |
78 | 8 | Simon | |
79 | |||
80 | 17 | Simon | h2. Editeurs WYSIWYG |
81 | 8 | Simon | |
82 | 1 | Simon | |
83 | 17 | Simon | Dans l'interface d'administration, vous pouvez remplacer les champs de saisie simples par un Editeur WYSIWYG de votre choix parmis "CKEditor":http://ckeditor.com/, "Tiny MCE":http://tinymce.moxiecode.com/ et "FckEditor":http://www.fckeditor.net/. |
84 | |||
85 | Pour activer l'édition WYSIWYG depuis le module de configuration de l'interface d'administration, remplacez la valeur de la constante *RICH_TEXT_EDITOR* (par défaut à cke) par *cke*, *fck*,*tinymce* ou *0* (désactivé). |
||
86 | |||
87 | 13 | Simon | Par défaut, un interface simple est proposée pour chacun de ces éditeurs. Référez vous à leur documentation respective pour paramétrer votre éditeur en fonction de vos besoins. |
88 | 3 | Simon | |
89 | 17 | Simon | * http://ckeditor.com/ |
90 | * http://tinymce.moxiecode.com/ |
||
91 | * http://www.fckeditor.net/ |
||
92 | 3 | Simon | |
93 | 17 | Simon | Les fichiers de configuration se trouvent dans _/lib/js/_ : |
94 | * pour CKeditor : _/lib/js/ckeditor/config.js_ |
||
95 | * pour tinyMCE : _/lib/js/tinymce/jscripts/tiny_mce/config.js_ (voir le tutoriel de "configuration [[TinyMCE]]":http://dev.linea21.com/wiki/tinymce réalisé par "Eribar":http://dev.linea21.com/wiki/user/eribar) |
||
96 | 1 | Simon | * pour FCKeditor : _/lib/js/fckeditor/fckconfig.js_ |
97 | |||
98 | 24 | Simon | Référez-vous au système d'[[Override|override]] afin d'assurer la pérennité de votre configuration personnelle. |
99 | 1 | Simon | |
100 | 17 | Simon | Si aucun éditeur WYSIWYG n'est activé, le système autorisera seulement les balises HTML contenu dans la constante ALLOWABLE_TAGS. |