Project

General

Profile

Personnalisation de l'interface publique » History » Version 13

Simon, 11/29/2009 03:39 PM

1 1 Simon
2
= Personnalisation de l'interface =
3
4
5
== Les thèmes ==
6
7 4 Simon
Pour ajouter un thème, procéder en 4 étapes :
8 12 Simon
 * dupliquer le dossier ''/templates/public/default/'' et renommer le (par exemple en ''/templates/public/montheme/'' ).
9 4 Simon
 * Editer le fichier de configuration /config/define_release.ini, chercher la variable globale '''THEME_LIST_PUBLIC''' et agréger la nouvelle valeur comme suit : "linea21|montheme". Le ''pipeline'' est le séparateur de thème.
10
 * Rendez-vous sur l'interface d'administration, menu ''configuration''. Dépliez l'onglet ''look'n feel''. Votre nouveau thème apparaît et vous pouvez désormais le sélectionner.
11 12 Simon
 * Modifiez les fichiers contenus dans ''/templates/public/montheme/'' à votre convenance.
12 1 Simon
13
14 6 Anthony
== Les templates et l'override ==
15 2 Simon
16 5 Simon
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. 
17 1 Simon
18
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. 
19
20 11 Simon
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.
21 6 Anthony
22
Vous pouvez redéfinir de la même façon un fichier de l'application en utilisant un dossier d'override.
23
Attention, ce dossier doit contenir la même arborescence que le fichier d'origine.
24
Par exemple pour redéfinir le fichier de configuration de tinyMCE pour votre thème admin contenu dont le chemin est /lib/js/tinyMCE/jscripts/tiny_mce/config.js
25 11 Simon
recréer la même arborescence dans le répertoire de votre thème pour personnaliser ce fichier ce qui donnera : /templates/admin/montheme/override/lib/js/tinyMCE/jscripts/tiny_mce/config.js
26 1 Simon
27 8 Simon
28
== Le fichier ''display.php'' ==
29
30
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.
31
32
Prenons un exemple concret :
33
34
Je souhaite pouvoir utiliser ma propre fonction hello_world() dans le module d'actualités.
35
36
Je créer donc le fichier /templates/montheme/override/news/display.php avec le code suivant :
37
38
{{{
39
#!php
40
include_once('../news/display.php');
41
42
// no need if the default module file is included
43
// include_once(themePath('../news/' . SQL . '.inc.php'));
44
45
46
function hello_world() {
47
  return 'hello World !';
48
}
49
50
function DisplayOneNews($news_id) [
51
  echo hello_world();
52
  // la suite de mon traitement
53
}
54
}}}
55
56
La première ligne de code me permet d'inclure les méthodes de base (sans avoir à les redéfinir - '''version >= 1.4''' ).[[BR]]
57
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.
58
59
Je définis ma fonction hello_world() jusqu'alors inexistante.
60
61
Enfin, je re-définis la fonction !DisplayOneNews() afin qu'elle réalise l'appel à ma fonction précédemment définie. Le [http://www.php.net/manual/fr/functions.user-defined.php comportement de PHP concernant les fonctions conditionnelles] va donner la priorité à la fonction définie par l'utilisateur.
62
63
64
== Ajout ou remplacement de texte existant ==
65
'''
66
Uniquement en version >= 1.4'''
67
68
Il est possible d'ajouter ou modifier des textes existants. Vous pouvez le faire directement dans vos templates ou bien en changeant directement la valeur des fichiers de l'application. Mais cela n'est ni très propre ni évolutif!
69
70
Il est donc possible de définir autant de variables que vous le souhaitez en créant un fichier spécial dans le répertoire /languages/XX/ (ou XX est le code de langue - par exemple ''fr'' ).
71
72
Une seule et simple règle : afin d'être chargé par l'application, le fichier doit être préfixé du caractère _ (underscore).
73
74
Je créer, par exemple, un fichier /languages/fr/_myfile.php contenant :
75
76
{{{
77
#!php
78
_def('news', 'widget_meteo', 'Voir la météo');
79
_def('menu_alt', 'search_here', 'terme de recherche');
80
}}}
81
82
Première ligne, j'ajoute une variable jusque là inexistante. L'appel de la fonction '''_t('news', 'widget_meteo')''' m'affichera "''Voir la météo''".
83
84 10 Simon
La ligne 2 redéfinit une valeur existante. L'appel de '''_t('menu_alt', 'search_here')''' ne me renverra plus la valeur "''Votre recherche ici...''" (par défaut) mais "''terme de recherche''".
85 8 Simon
86
En cas de mise à jour de l'application, copier-coller les fichiers utilisateurs afin de restaurer vos valeurs.
87
88
Par ailleurs, afin de vous laisser organiser votre application, il est possible de créer autant de fichiers que vous le souhaitez afin de mieux les différencier :
89
90
91
{{{
92
/languages/fr/_input_news.php
93
/languages/fr/_input_project.php
94
/languages/fr/_input_workshop.php
95
[...]
96
}}}
97
98
99 1 Simon
== Editeurs WYSIWYG ==
100 7 Simon
101 8 Simon
Dans l'interface d'administration, vous pouvez remplacer les champs de saisie simples par un Editeur WYSIWYG de votre choix parmis [http://ckeditor.com/ CKEditor], [http://tinymce.moxiecode.com/ Tiny MCE] et [http://www.fckeditor.net/ FckEditor].
102 1 Simon
103 8 Simon
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é).
104 3 Simon
105 8 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.
106
107
 * http://ckeditor.com/
108 1 Simon
 * http://tinymce.moxiecode.com/
109 3 Simon
 * http://www.fckeditor.net/
110
111
Les fichiers de configuration se trouvent dans ''/lib/js/'' :
112 8 Simon
 * pour CKeditor : ''/lib/js/ckeditor/config.js''
113 13 Simon
 * pour tinyMCE : ''/lib/js/tinymce/jscripts/tiny_mce/config.js'' (voir le tutoriel de [http://dev.linea21.com/wiki/tinymce configuration TinyMCE] réalisé par [http://dev.linea21.com/wiki/user/eribar Eribar])
114 3 Simon
 * pour FCKeditor : ''/lib/js/fckeditor/fckconfig.js''
115 1 Simon
116 9 Simon
Référez-vous au système [http://dev.linea21.com/wiki/Personnalisation%20de%20l%27interface#Lestemplatesetloverride d'override] afin d'assurer la pérennité de votre configuration personnelle.
117 8 Simon
118 3 Simon
Si aucun éditeur WYSIWYG n'est activé, le système autorisera seulement les balises HTML contenu dans la constante ALLOWABLE_TAGS.
119
120
121 8 Simon
'''Attention:''' le système de templates fournis nativement avec Linea21 n'est pas compatible à 100 % avec l'activation des éditeurs WYSIWYG. Si vous activez un éditeur WYSIWYG et vous souhaitez ajouter des images, préférez la prise en charge des images par l'éditeur lui-même.