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