1 | <?php |
---|
2 | // +-----------------------------------------------------------------------+ |
---|
3 | // | PhpWebGallery - a PHP based picture gallery | |
---|
4 | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | |
---|
5 | // | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net | |
---|
6 | // +-----------------------------------------------------------------------+ |
---|
7 | // | branch : BSF (Best So Far) |
---|
8 | // | file : $RCSfile$ |
---|
9 | // | last update : $Date: 2006-04-12 22:49:42 +0000 (Wed, 12 Apr 2006) $ |
---|
10 | // | last modifier : $Author: rub $ |
---|
11 | // | revision : $Revision: 1156 $ |
---|
12 | // +-----------------------------------------------------------------------+ |
---|
13 | // | This program is free software; you can redistribute it and/or modify | |
---|
14 | // | it under the terms of the GNU General Public License as published by | |
---|
15 | // | the Free Software Foundation | |
---|
16 | // | | |
---|
17 | // | This program is distributed in the hope that it will be useful, but | |
---|
18 | // | WITHOUT ANY WARRANTY; without even the implied warranty of | |
---|
19 | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
---|
20 | // | General Public License for more details. | |
---|
21 | // | | |
---|
22 | // | You should have received a copy of the GNU General Public License | |
---|
23 | // | along with this program; if not, write to the Free Software | |
---|
24 | // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | |
---|
25 | // | USA. | |
---|
26 | // +-----------------------------------------------------------------------+ |
---|
27 | |
---|
28 | /** |
---|
29 | * configuration page |
---|
30 | * |
---|
31 | * Set configuration parameters that are not in the table config. In the |
---|
32 | * application, configuration parameters are considered in the same way |
---|
33 | * coming from config table or config_default.inc.php. |
---|
34 | * |
---|
35 | * It is recommended to let config_default.inc.php as provided and to |
---|
36 | * overwrite configuration in your local configuration file |
---|
37 | * config_local.inc.php. See tools/config_local.inc.php as an example. |
---|
38 | * |
---|
39 | * Why having some parameters in config table and others in |
---|
40 | * config_*.inc.php? Modifying config_*.inc.php is a "hard" task for low |
---|
41 | * skilled users, they need a GUI for this : admin/configuration. But only |
---|
42 | * parameters that might be modified by low skilled users are in config |
---|
43 | * table, other parameters are in config_*.inc.php |
---|
44 | */ |
---|
45 | |
---|
46 | // +-----------------------------------------------------------------------+ |
---|
47 | // | misc | |
---|
48 | // +-----------------------------------------------------------------------+ |
---|
49 | |
---|
50 | // order_by : how to change the order of display for images in a category ? |
---|
51 | // |
---|
52 | // There are several fields that can order the display : |
---|
53 | // |
---|
54 | // - date_available : the date of the adding to the gallery |
---|
55 | // - file : the name of the file |
---|
56 | // - id : element identifier |
---|
57 | // - date_creation : date of element creation |
---|
58 | // |
---|
59 | // Once you've chosen which field(s) to use for ordering, you must chose the |
---|
60 | // ascending or descending order for each field. examples : |
---|
61 | // |
---|
62 | // 1. $conf['order_by'] = " order by date_available desc, file asc"; |
---|
63 | // will order pictures by date_available descending & by filename ascending |
---|
64 | // |
---|
65 | // 2. $conf['order_by'] = " order by file asc"; |
---|
66 | // will only order pictures by file ascending without taking into account |
---|
67 | // the date_available |
---|
68 | $conf['order_by'] = ' ORDER BY date_available DESC, file ASC, id ASC'; |
---|
69 | |
---|
70 | // slideshow_period : waiting time in seconds before loading a new page |
---|
71 | // during automated slideshow |
---|
72 | $conf['slideshow_period'] = 4; |
---|
73 | |
---|
74 | // file_ext : file extensions (case sensitive) authorized |
---|
75 | $conf['file_ext'] = array('jpg','JPG','png','PNG','gif','GIF','mpg','zip', |
---|
76 | 'avi','mp3','ogg'); |
---|
77 | |
---|
78 | // picture_ext : file extensions for picture file, must be a subset of |
---|
79 | // file_ext |
---|
80 | $conf['picture_ext'] = array('jpg','JPG','png','PNG','gif','GIF'); |
---|
81 | |
---|
82 | // top_number : number of element to display for "best rated" and "most |
---|
83 | // visited" categories |
---|
84 | $conf['top_number'] = 15; |
---|
85 | |
---|
86 | // anti-flood_time : number of seconds between 2 comments : 0 to disable |
---|
87 | $conf['anti-flood_time'] = 60; |
---|
88 | |
---|
89 | // calendar_datefield : date field of table "images" used for calendar |
---|
90 | // catgory |
---|
91 | $conf['calendar_datefield'] = 'date_creation'; |
---|
92 | |
---|
93 | // calendar_show_any : the calendar shows an aditional 'any' button in the |
---|
94 | // year/month/week/day navigation bars |
---|
95 | $conf['calendar_show_any'] = true; |
---|
96 | |
---|
97 | // calendar_show_empty : the calendar shows month/weeks/days even if there are |
---|
98 | //no elements for these |
---|
99 | $conf['calendar_show_empty'] = true; |
---|
100 | |
---|
101 | // calendar_month_cell_width, calendar_month_cell_height : define the |
---|
102 | // width and the height of a cell in the monthly calendar when viewing a |
---|
103 | // given month. a value of 0 means that the pretty view is not shown. |
---|
104 | // a good suggestion would be to have the width and the height equal |
---|
105 | // and smaller than tn_width and tn_height. NOTE THAT tn_width AND tn_height |
---|
106 | // MUST CORRESPOND APPROXIMATIVELY TO YOUR REAL THUMBNAIL SIZE, OTHERWISE |
---|
107 | // THE IMAGES WILL NOT SHOW CORRECTLY |
---|
108 | $conf['calendar_month_cell_width'] =80; |
---|
109 | $conf['calendar_month_cell_height']=80; |
---|
110 | |
---|
111 | // newcat_default_commentable : at creation, must a category be commentable |
---|
112 | // or not ? |
---|
113 | $conf['newcat_default_commentable'] = 'true'; |
---|
114 | |
---|
115 | // newcat_default_uploadable : at creation, must a category be uploadable or |
---|
116 | // not ? |
---|
117 | $conf['newcat_default_uploadable'] = 'false'; |
---|
118 | |
---|
119 | // newcat_default_visible : at creation, must a category be visible or not ? |
---|
120 | // Warning : if the parent category is invisible, the category is |
---|
121 | // automatically create invisible. (invisible = locked) |
---|
122 | $conf['newcat_default_visible'] = 'true'; |
---|
123 | |
---|
124 | // newcat_default_status : at creation, must a category be public or private |
---|
125 | // ? Warning : if the parent category is private, the category is |
---|
126 | // automatically create private. |
---|
127 | $conf['newcat_default_status'] = 'public'; |
---|
128 | |
---|
129 | // newuser_default_enabled_high : at creation, must a user with enabled_high or not |
---|
130 | $conf['newuser_default_enabled_high'] = 'true'; |
---|
131 | |
---|
132 | // level_separator : character string used for separating a category level |
---|
133 | // to the sub level. Suggestions : ' / ', ' » ', ' → ', ' - ', |
---|
134 | // ' >' |
---|
135 | $conf['level_separator'] = ' / '; |
---|
136 | |
---|
137 | // paginate_pages_around : on paginate navigation bar, how many pages |
---|
138 | // display before and after the current page ? |
---|
139 | $conf['paginate_pages_around'] = 2; |
---|
140 | |
---|
141 | // tn_width : default width for thumbnails creation |
---|
142 | $conf['tn_width'] = 128; |
---|
143 | |
---|
144 | // tn_height : default height for thumbnails creation |
---|
145 | $conf['tn_height'] = 128; |
---|
146 | |
---|
147 | // show_version : shall the version of PhpWebGallery be displayed at the |
---|
148 | // bottom of each page ? |
---|
149 | $conf['show_version'] = true; |
---|
150 | |
---|
151 | // links : list of external links to add in the menu. An example is the best |
---|
152 | // than a long explanation : |
---|
153 | // |
---|
154 | // $conf['links'] = array( |
---|
155 | // 'http://phpwebgallery.net' => 'PWG website', |
---|
156 | // 'http://forum.phpwebgallery.net' => 'PWG forum', |
---|
157 | // 'http://phpwebgallery.net/doc' => 'PWG wiki' |
---|
158 | // ); |
---|
159 | // |
---|
160 | // If the array is empty, the "Links" box won't be displayed on the main |
---|
161 | // page. |
---|
162 | $conf['links'] = array(); |
---|
163 | |
---|
164 | // show_thumbnail_caption : on thumbnails page, show thumbnail captions ? |
---|
165 | $conf['show_thumbnail_caption'] = true; |
---|
166 | |
---|
167 | // show_picture_name_on_title : on picture presentation page, show picture |
---|
168 | // name ? |
---|
169 | $conf['show_picture_name_on_title'] = true; |
---|
170 | |
---|
171 | // subcatify: display thumbnails representing a category a different way |
---|
172 | // than thumbnails representing a picture. |
---|
173 | $conf['subcatify'] = true; |
---|
174 | |
---|
175 | // allow_random_representative : do you wish PhpWebGallery to search among |
---|
176 | // categories elements a new representative at each reload ? |
---|
177 | // |
---|
178 | // If false, an element is randomly or manually chosen to represent its |
---|
179 | // category and remains the representative as long as an admin does not |
---|
180 | // change it. |
---|
181 | // |
---|
182 | // Warning : setting this parameter to true is CPU consuming. Each time you |
---|
183 | // change the value of this parameter from false to true, an administrator |
---|
184 | // must update categories informations in screen [Admin > General > |
---|
185 | // Maintenance]. |
---|
186 | $conf['allow_random_representative'] = false; |
---|
187 | |
---|
188 | // allow_html_descriptions : authorize administrators to use HTML in |
---|
189 | // category and element description. |
---|
190 | $conf['allow_html_descriptions'] = true; |
---|
191 | |
---|
192 | // prefix_thumbnail : string before filename. Thumbnail's prefix must only |
---|
193 | // contain characters among : a to z (case insensitive), "-" or "_". |
---|
194 | $conf['prefix_thumbnail'] = 'TN-'; |
---|
195 | |
---|
196 | // users_page: how many users to display in screen |
---|
197 | // Administration>Identification>Users? |
---|
198 | $conf['users_page'] = 20; |
---|
199 | |
---|
200 | // mail_options: only set it true if you have a send mail warning with |
---|
201 | // "options" parameter missing on mail() function execution. |
---|
202 | $conf['mail_options'] = false; |
---|
203 | |
---|
204 | // send_bcc_mail_webmaster: send bcc mail to webmaster. Set true for debug |
---|
205 | // or test. |
---|
206 | $conf['send_bcc_mail_webmaster'] = false; |
---|
207 | |
---|
208 | // check_upgrade_feed: check if there are database upgrade required. Set to |
---|
209 | // true, a message will strongly encourage you to upgrade your database if |
---|
210 | // needed. |
---|
211 | // |
---|
212 | // This configuration parameter is set to true in BSF branch and to false |
---|
213 | // elsewhere. |
---|
214 | $conf['check_upgrade_feed'] = true; |
---|
215 | |
---|
216 | // rate_items: available rates for a picture |
---|
217 | $conf['rate_items'] = array(0,1,2,3,4,5); |
---|
218 | |
---|
219 | // +-----------------------------------------------------------------------+ |
---|
220 | // | metadata | |
---|
221 | // +-----------------------------------------------------------------------+ |
---|
222 | |
---|
223 | // show_iptc: Show IPTC metadata on picture.php if asked by user |
---|
224 | $conf['show_iptc'] = false; |
---|
225 | |
---|
226 | // show_iptc_mapping : is used for showing IPTC metadata on picture.php |
---|
227 | // page. For each key of the array, you need to have the same key in the |
---|
228 | // $lang array. For example, if my first key is 'iptc_keywords' (associated |
---|
229 | // to '2#025') then you need to have $lang['iptc_keywords'] set in |
---|
230 | // language/$user['language']/common.lang.php. If you don't have the lang |
---|
231 | // var set, the key will be simply displayed |
---|
232 | // |
---|
233 | // To know how to associated iptc_field with their meaning, use |
---|
234 | // tools/metadata.php |
---|
235 | $conf['show_iptc_mapping'] = array( |
---|
236 | 'iptc_keywords' => '2#025', |
---|
237 | 'iptc_caption_writer' => '2#122', |
---|
238 | 'iptc_byline_title' => '2#085', |
---|
239 | 'iptc_caption' => '2#120' |
---|
240 | ); |
---|
241 | |
---|
242 | // use_iptc: Use IPTC data during database synchronization with files |
---|
243 | // metadata |
---|
244 | $conf['use_iptc'] = false; |
---|
245 | |
---|
246 | // use_iptc_mapping : in which IPTC fields will PhpWebGallery find image |
---|
247 | // information ? This setting is used during metadata synchronisation. It |
---|
248 | // associates a phpwebgallery_images column name to a IPTC key |
---|
249 | $conf['use_iptc_mapping'] = array( |
---|
250 | 'keywords' => '2#025', |
---|
251 | 'date_creation' => '2#055', |
---|
252 | 'author' => '2#122', |
---|
253 | 'name' => '2#005', |
---|
254 | 'comment' => '2#120' |
---|
255 | ); |
---|
256 | |
---|
257 | // show_exif: Show EXIF metadata on picture.php (table or line presentation |
---|
258 | // avalaible) |
---|
259 | $conf['show_exif'] = true; |
---|
260 | |
---|
261 | // show_exif_fields : in EXIF fields, you can choose to display fields in |
---|
262 | // sub-arrays, for example ['COMPUTED']['ApertureFNumber']. for this, add |
---|
263 | // 'COMPUTED;ApertureFNumber' in $conf['show_exif_fields'] |
---|
264 | // |
---|
265 | // The key displayed in picture.php will be $lang['exif_field_Make'] for |
---|
266 | // example and if it exists. For compound fields, only take into account the |
---|
267 | // last part : for key 'COMPUTED;ApertureFNumber', you need |
---|
268 | // $lang['exif_field_ApertureFNumber'] |
---|
269 | // |
---|
270 | // for PHP version newer than 4.1.2 : |
---|
271 | // $conf['show_exif_fields'] = array('CameraMake','CameraModel','DateTime'); |
---|
272 | // |
---|
273 | $conf['show_exif_fields'] = array( |
---|
274 | 'Make', |
---|
275 | 'Model', |
---|
276 | 'DateTimeOriginal', |
---|
277 | 'COMPUTED;ApertureFNumber' |
---|
278 | ); |
---|
279 | |
---|
280 | // use_exif: Use EXIF data during database synchronization with files |
---|
281 | // metadata |
---|
282 | $conf['use_exif'] = false; |
---|
283 | |
---|
284 | // use_exif_mapping: same behaviour as use_iptc_mapping |
---|
285 | $conf['use_exif_mapping'] = array( |
---|
286 | 'date_creation' => 'DateTimeOriginal' |
---|
287 | ); |
---|
288 | |
---|
289 | // +-----------------------------------------------------------------------+ |
---|
290 | // | sessions | |
---|
291 | // +-----------------------------------------------------------------------+ |
---|
292 | |
---|
293 | // session_use_cookies: specifies to use cookie to store |
---|
294 | // the session id on client side |
---|
295 | $conf['session_use_cookies'] = true; |
---|
296 | |
---|
297 | // session_use_only_cookies: specifies to only use cookie to store |
---|
298 | // the session id on client side |
---|
299 | $conf['session_use_only_cookies'] = true; |
---|
300 | |
---|
301 | // session_use_trans_sid: do not use transparent session id support |
---|
302 | $conf['session_use_trans_sid'] = false; |
---|
303 | |
---|
304 | // session_name: specifies the name of the session which is used as cookie name |
---|
305 | $conf['session_name'] = 'pwg_id'; |
---|
306 | |
---|
307 | // session_save_handler: comment the line below |
---|
308 | // to use file handler for sessions. |
---|
309 | $conf['session_save_handler'] = 'db'; |
---|
310 | |
---|
311 | // authorize_remembering : permits user to stay logged for a long time. It |
---|
312 | // creates a cookie on client side. |
---|
313 | $conf['authorize_remembering'] = true; |
---|
314 | |
---|
315 | // remember_me_length : time of validity for "remember me" cookies, in |
---|
316 | // seconds. |
---|
317 | $conf['remember_me_length'] = 31536000; |
---|
318 | |
---|
319 | // session_length : time of validity for normal session, in seconds. |
---|
320 | $conf['session_length'] = 3600; |
---|
321 | |
---|
322 | // +-----------------------------------------------------------------------+ |
---|
323 | // | debug | |
---|
324 | // +-----------------------------------------------------------------------+ |
---|
325 | |
---|
326 | // show_queries : for debug purpose, show queries and execution times |
---|
327 | $conf['show_queries'] = false; |
---|
328 | |
---|
329 | // show_gt : display generation time at the bottom of each page |
---|
330 | $conf['show_gt'] = true; |
---|
331 | |
---|
332 | // debug_l10n : display a warning message each time an unset language key is |
---|
333 | // accessed |
---|
334 | $conf['debug_l10n'] = false; |
---|
335 | |
---|
336 | // +-----------------------------------------------------------------------+ |
---|
337 | // | authentication | |
---|
338 | // +-----------------------------------------------------------------------+ |
---|
339 | |
---|
340 | // apache_authentication : use Apache authentication as reference instead of |
---|
341 | // users table ? |
---|
342 | $conf['apache_authentication'] = false; |
---|
343 | |
---|
344 | // users_table: which table is the reference for users? Can be a different |
---|
345 | // table than PhpWebGallery table |
---|
346 | // |
---|
347 | // If you decide to use another table than the default one, you need to |
---|
348 | // prepare your database by deleting some datas : |
---|
349 | // |
---|
350 | // delete from phpwebgallery_user_access; |
---|
351 | // delete from phpwebgallery_user_cache; |
---|
352 | // delete from phpwebgallery_user_feed; |
---|
353 | // delete from phpwebgallery_user_group; |
---|
354 | // delete from phpwebgallery_user_infos; |
---|
355 | // delete from phpwebgallery_sessions; |
---|
356 | // delete from phpwebgallery_rate; |
---|
357 | // update phpwebgallery_images set average_rate = NULL; |
---|
358 | // delete from phpwebgallery_caddie; |
---|
359 | // delete from phpwebgallery_favorites; |
---|
360 | // |
---|
361 | // All informations contained in these tables and column are related to |
---|
362 | // phpwebgallery_users table. |
---|
363 | $conf['users_table'] = $prefixeTable.'users'; |
---|
364 | |
---|
365 | // user_fields : mapping between generic field names and table specific |
---|
366 | // field names. For example, in PWG, the mail address is names |
---|
367 | // "mail_address" and in punbb, it's called "email". |
---|
368 | $conf['user_fields'] = array( |
---|
369 | 'id' => 'id', |
---|
370 | 'username' => 'username', |
---|
371 | 'password' => 'password', |
---|
372 | 'email' => 'mail_address' |
---|
373 | ); |
---|
374 | |
---|
375 | // pass_convert : function to crypt or hash the clear user password to store |
---|
376 | // it in the database |
---|
377 | $conf['pass_convert'] = create_function('$s', 'return md5($s);'); |
---|
378 | |
---|
379 | // guest_id : id of the anonymous user |
---|
380 | $conf['guest_id'] = 2; |
---|
381 | |
---|
382 | // webmaster_id : webmaster'id. |
---|
383 | $conf['webmaster_id'] = 1; |
---|
384 | |
---|
385 | // allow to use adviser mode |
---|
386 | $conf['allow_adviser'] = false; |
---|
387 | |
---|
388 | // +-----------------------------------------------------------------------+ |
---|
389 | // | upload | |
---|
390 | // +-----------------------------------------------------------------------+ |
---|
391 | |
---|
392 | // upload_maxfilesize: maximum filesize for the uploaded pictures. In |
---|
393 | // kilobytes. |
---|
394 | $conf['upload_maxfilesize'] = 200; |
---|
395 | |
---|
396 | // upload_maxheight: maximum height authorized for the uploaded images. In |
---|
397 | // pixels. |
---|
398 | $conf['upload_maxheight'] = 800; |
---|
399 | |
---|
400 | // upload_maxwidth: maximum width authorized for the uploaded images. In |
---|
401 | // pixels. |
---|
402 | $conf['upload_maxwidth'] = 800; |
---|
403 | |
---|
404 | // upload_maxheight_thumbnail: maximum height authorized for the uploaded |
---|
405 | // thumbnails |
---|
406 | $conf['upload_maxheight_thumbnail'] = 100; |
---|
407 | |
---|
408 | // upload_maxwidth_thumbnail: maximum width authorized for the uploaded |
---|
409 | // thumbnails |
---|
410 | $conf['upload_maxwidth_thumbnail'] = 150; |
---|
411 | |
---|
412 | // +-----------------------------------------------------------------------+ |
---|
413 | // | history | |
---|
414 | // +-----------------------------------------------------------------------+ |
---|
415 | |
---|
416 | // nb_logs_page : how many logs to display on a page |
---|
417 | $conf['nb_logs_page'] = 300; |
---|
418 | |
---|
419 | // history_admin : history admin visits ? |
---|
420 | $conf['history_admin'] = false; |
---|
421 | |
---|
422 | // +-----------------------------------------------------------------------+ |
---|
423 | // | urls | |
---|
424 | // +-----------------------------------------------------------------------+ |
---|
425 | |
---|
426 | // question_mark_in_urls : the generated urls contain a ? sign. This can be |
---|
427 | // changed to false only if the server translates PATH_INFO variable |
---|
428 | // (depends on the server AcceptPathInfo directive configuration) |
---|
429 | $conf['question_mark_in_urls'] = true; |
---|
430 | |
---|
431 | // php_extension_in_urls : if true, the urls generated for picture and |
---|
432 | // category will not contain the .php extension. This will work only if |
---|
433 | // .htaccess defines Options +MultiViews parameter or url rewriting rules |
---|
434 | // are active. |
---|
435 | $conf['php_extension_in_urls'] = true; |
---|
436 | |
---|
437 | // category_url_style : one of 'id' (default) or 'id-name'. 'id-name' |
---|
438 | // means that an simplified ascii represntation of the category name will |
---|
439 | // appear in the url |
---|
440 | $conf['category_url_style'] = 'id'; |
---|
441 | |
---|
442 | // picture_url_style : one of 'id' (default), 'id-file' or 'file'. 'id-file' |
---|
443 | // or 'file' mean that the file name (without extension will appear in the |
---|
444 | // url). Note that one aditionnal sql query will occur if 'file' is choosen. |
---|
445 | // Note that you might experience navigation issues if you choose 'file' |
---|
446 | // and your file names are not unique |
---|
447 | $conf['picture_url_style'] = 'id'; |
---|
448 | |
---|
449 | // tag_url_style : one of 'id-tag' (default), 'id' or 'tag'. |
---|
450 | // Note that if you choose 'tag' and the url (ascii) representation of your |
---|
451 | // tags is not unique, all tags with the same url representation will be shown |
---|
452 | $conf['tag_url_style'] = 'id-tag'; |
---|
453 | |
---|
454 | // +-----------------------------------------------------------------------+ |
---|
455 | // | tags | |
---|
456 | // +-----------------------------------------------------------------------+ |
---|
457 | |
---|
458 | // full_tag_cloud_items_number: number of tags to show in the full tag |
---|
459 | // cloud. Only the most represented tags will be shown |
---|
460 | $conf['full_tag_cloud_items_number'] = 200; |
---|
461 | |
---|
462 | // tags_levels: number of levels to use for display. Each level is bind to a |
---|
463 | // CSS class tagLevelX. |
---|
464 | $conf['tags_levels'] = 5; |
---|
465 | |
---|
466 | // +-----------------------------------------------------------------------+ |
---|
467 | // | Notification by mail | |
---|
468 | // +-----------------------------------------------------------------------+ |
---|
469 | |
---|
470 | // Default Value for nbm user |
---|
471 | $conf['nbm_default_value_user_enabled'] = false; |
---|
472 | |
---|
473 | // Search List user to send with quick (List all without check news) |
---|
474 | // More quickly but less fun to use |
---|
475 | $conf['nbm_list_all_enabled_users_to_send'] = false; |
---|
476 | |
---|
477 | // Max mails sended on one pass |
---|
478 | $conf['nbm_max_treatment_timeout_percent'] = 0.8; |
---|
479 | |
---|
480 | ?> |
---|