1 : <?php
2 :
3 : /**
4 : * Dictionaries of Old French and Latin
5 : *
6 : * PHP 5
7 : *
8 : * @category DicFro
9 : * @package View
10 : * @subpackage Helper
11 : * @author Michel Corne <mcorne@yahoo.com>
12 : * @copyright 2008-2010 Michel Corne
13 : * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License, version 3 (GPLv3)
14 : * @link http://www.micmap.org/dicfro
15 : */
16 :
17 : require_once 'View/Helper/Base.php';
18 :
19 : /**
20 : * Dictionaries View Helper
21 : *
22 : * @category DicFro
23 : * @package View
24 : * @subpackage Helper
25 : * @author Michel Corne <mcorne@yahoo.com>
26 : * @copyright 2008-2010 Michel Corne
27 : * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License, version 3 (GPLv3)
28 : */
29 :
30 : class View_Helper_Dictionaries extends View_Helper_Base
31 : {
32 :
33 : /**
34 : * Dictionary names and descriptions
35 : * @var array
36 : */
37 : public $dictionaries = array(
38 : // dictionnaires internes
39 : 'complement-godefroy' => array(
40 : 'name' => 'Complément Godefroy',
41 : 'description' => 'Complément du dictionnaire de l\'ancienne langue française et de tous ses dialectes du IXème au XVème siècle, Frédéric Godefroy, 1895-1902',
42 : ),
43 : 'dictionnaire-godefroy' => array(
44 : 'name' => 'Dictionnaire Godefroy',
45 : 'description' => 'Dictionnaire de l\'ancienne langue française et de tous ses dialectes du IXème au XVème siècle, Frédéric Godefroy, 1880-1895',
46 : ),
47 : 'gaffiot' => array(
48 : 'name' => 'Gaffiot',
49 : 'description' => 'Dictionnaire Latin-Français, Félix Gaffiot, 1934',
50 : ),
51 : 'glossaire-chanson-de-roland' => array(
52 : 'name' => 'Chanson de Roland',
53 : 'description' => 'Glossaire de la Chanson de Roland, Joseph Bédier, 1927',
54 : ),
55 : 'glossaire-chretien-de-troyes' => array(
56 : 'name' => 'Chrétien de Troyes',
57 : 'description' => 'Dictionnaire de l\'oeuvre de Chrétien de Troyes, Wörterbuch zu Kristian von Troyes\' sämtlichen Werken, Wendelin Foerster, 1914',
58 : ),
59 : 'glossaire-couronnement-de-louis' => array(
60 : 'name' => 'Couronnement de Louis',
61 : 'description' => 'Glossaire du Couronnement de Louis, Ernest Langlois, 1888',
62 : ),
63 : 'glossaire-roman-de-la-rose' => array(
64 : 'name' => 'Roman de la Rose',
65 : 'description' => 'Glossaire du Roman de la Rose, Ernest Langlois, 1914-1924',
66 : ),
67 : 'glossaire-roman-de-tristan' => array(
68 : 'name' => 'Roman de Tristan',
69 : 'description' => 'Glossaire du Roman de Tristan par Béroul, Ernest Muret, 1903',
70 : ),
71 : 'lexique-godefroy' => array(
72 : 'name' => 'Lexique Godefroy',
73 : 'description' => 'Lexique de l\'ancien français, Frédéric Godefroy, 1901',
74 : ),
75 : 'lexique-roman' => array(
76 : 'name' => 'Lexique Roman',
77 : 'description' => 'Lexique Roman ou dictionnaire de la langue des troubadours comparée avec les autres langues de l\'Europe latine, François J. M. Raynouard, 1844',
78 : ),
79 : 'tableaux-de-conjugaison' => array(
80 : 'name' => 'Tableaux de conjugaison',
81 : 'description' => 'Tableaux de conjugaison de l\'ancien français, Machio Okada et Hitoshi Ogurisu, 2007',
82 : ),
83 : 'vandaele' => array(
84 : 'name' => 'Van Daele',
85 : 'description' => 'Petit dictionnaire de l\'ancien français, Hilaire Van Daele, 1901',
86 : ),
87 : // dictionnaire externes
88 : 'cnrtl' => array(
89 : 'name' => 'CNRTL',
90 : 'description' => 'Dictionnaire du Centre National de Ressources Textuelles et Lexicales',
91 : ),
92 : 'dmf' => array(
93 : 'name' => 'Moyen français',
94 : 'description' => 'Dictionnaire du Moyen Français par l\'Atilf',
95 : ),
96 : 'jeanneau' => array(
97 : 'name' => 'Jeanneau',
98 : 'description' => 'Dictionnaire français-latin de Gérard Jeanneau',
99 : ),
100 : 'leconjugueur' => array(
101 : 'name' => 'Le conjugueur',
102 : 'description' => 'La conjugaison française par le Conjugueur',
103 : ),
104 : 'littre' => array(
105 : 'name' => 'Littré',
106 : 'description' => 'Dictionnaire de la langue française d\'Émile Littré, 1872-1877',
107 : ),
108 : 'whitaker' => array(
109 : 'name' => 'Whitaker',
110 : 'description' => 'Dictionnaire latin-anglais de William Whitaker',
111 : ),
112 : );
113 :
114 : /**
115 : * Dictionary groups
116 : *
117 : * Groups and dictionaries are displayed as they are ordered below in the home page and select box.
118 : * @var array
119 : */
120 : public $groups = array(
121 : array(
122 : 'name' => 'Dictionnaires d\'ancien français',
123 : 'dictionaries' => array(
124 : 'dictionnaire-godefroy',
125 : 'complement-godefroy',
126 : 'lexique-godefroy',
127 : 'lexique-roman',
128 : 'tableaux-de-conjugaison',
129 : 'vandaele',
130 : ),
131 : ),
132 : array(
133 : 'name' => 'Glossaires d\'ancien français',
134 : 'dictionaries' => array(
135 : 'glossaire-chanson-de-roland',
136 : 'glossaire-chretien-de-troyes',
137 : 'glossaire-couronnement-de-louis',
138 : 'glossaire-roman-de-la-rose',
139 : 'glossaire-roman-de-tristan',
140 : ),
141 : ),
142 : array(
143 : 'name' => 'Dictionnaires de français',
144 : 'dictionaries' => array(
145 : 'cnrtl',
146 : 'leconjugueur',
147 : 'littre',
148 : 'dmf',
149 : ),
150 : ),
151 : array(
152 : 'name' => 'Dictionnaires de latin',
153 : 'dictionaries' => array(
154 : 'gaffiot',
155 : 'jeanneau',
156 : 'whitaker',
157 : ),
158 : ),
159 : );
160 :
161 : /**
162 : * Returns the dictionary description
163 : *
164 : * @return mixed the dictionary description
165 : */
166 : public function getDescription()
167 : {
168 1 : return $this->dictionaries[$this->view->dictionary]['description'];
169 : }
170 :
171 : /**
172 : * Returns the groups of dictionaries for use in a select box
173 : *
174 : * @return array the groups of dictionaries
175 : */
176 : public function getGroups()
177 : {
178 1 : $optgroups = array();
179 :
180 1 : foreach($this->groups as $group) {
181 1 : $options = array();
182 :
183 1 : foreach($group['dictionaries'] as $dictionary) {
184 1 : $options[] = array(
185 1 : 'value' => $dictionary,
186 1 : 'text' => $this->dictionaries[$dictionary]['name'],
187 1 : 'title' => $this->dictionaries[$dictionary]['description'],
188 : );
189 1 : }
190 :
191 1 : $optgroups[] = array(
192 1 : 'label' => $group['name'],
193 1 : 'options' => $options,
194 : );
195 1 : }
196 :
197 1 : return $optgroups;
198 : }
199 :
200 : /**
201 : * Returns the page title
202 : *
203 : * @return string the page title
204 : */
205 : public function getPageTitle()
206 : {
207 1 : return isset($this->dictionaries[$this->view->dictionary])?
208 1 : $this->dictionaries[$this->view->dictionary]['name'] :
209 1 : 'DicFro';
210 : }
|