aboutsummaryrefslogtreecommitdiffstats
path: root/doc/ChangeLog
blob: a925f9e379143511da0acc8b29100e1f6681ec20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
2005-10-22 Pierrick LE GALL

	* bug 173 fixed: due to phpBB user identifiers management, the
	method to find the next user identifier has changer to MAX+1.

	* improvement: information message when new user added

	* bug fixed: language item "Username" used instead of "login".
	
2005-10-20 chrisaga

	* bug 176 fixed: need a javascript to handle transparent PNG
	background in IE (tribute to Bob Osola
	http://homepage.ntlworld.com/bobosola/index.htm)

	* display: fixed another IE childselector bug in Categories
	Management admin page and improved display of this page in all
	browsers too.

2005-10-18 Pierrick LE GALL

	* bug 174 fixed: use_exif_mapping configuration parameter was not
	used to list database fields to update from EXIF values.

2005-10-18 Pierrick LE GALL

	* bug 172 fixed: crash when changing password with an external
	users table. The same kind of correction was also made in
	picture.php and register.php.

2005-10-18 Pierrick LE GALL

	* bug 159 and 166 fixed: parameter "options" for mail() function
	disabled by default.

2005-10-18 chrisaga

	* display : smaller font-size and, as requested, fonts more like 1.4

	* bug 165 fixed : La largeur par défaut en PIXELS pas en Kb

2005-10-18 chrisaga

	* display : in group_list.tpl - wrong form class, mixed html tags, ...

	* display : suppress bullets in admin->synchronize and checkbox under select

	* display : set standard font size to 12pt

2005-10-17 Pierrick LE GALL

	* improvement: use new function get_language_filepath in about.php
	(complement of bug 168 correction)
	
2005-10-17 Pierrick LE GALL

	* bug 154 fixed: "Calendar category, too precise dates". Bug came
	from the bigger precision of creation_date and available_date in
	images tables. Need to retrieve only the year-month-day
	information.
	
2005-10-17 volcom

	* new: history details by month,day
	
2005-10-15 Pierrick LE GALL

	* modification: localized labels in Administration>Pictures>Caddie

	* translation: bug fixed on special categories title in French

	* translation: all help pages were translated in french

2005-10-09 Pierrick LE GALL

	* new: "quick start" section in Administration>General>Instructions
	
2005-10-08 Pierrick LE GALL

	* translation: new items related to configuration parameters
	gallery_title and gallery_description in GUI.

2005-10-08 Pierrick LE GALL

	* modification: configuration parameters gallery_title and
	gallery_description are GUI managed in
	Administration>Configuration>General

	* bug fixed: configuration parameters (use|show)_(exif|iptc) and
	authorize_remembering should have been deleted from config table
	some time ago.
	
2005-10-08 Pierrick LE GALL

	* new: mass virtual categories movement manager in
	Administration>Categories>Move screen.

2005-10-05 Pierrick LE GALL

	* bug 160 fixed: (part one of the bug) hard coded column name of
	users table had to be replaced by the configurable column
	name. This correction was made by a full rewrite of filtered users
	list management. The other bug (not submited in bugtracker) that
	needed this rewrite was that when you choose "all" as target for
	mass users modification, you expected to apply modification on
	filtered users, not all users.

	* bug 160 fixed: (part two of the bug) hard coded column name for
	primary key in mass_updates function.

	* modification: configuration parameter users_page is now located
	in the correct file (include/config_default.inc.php instead of
	admin/user_list.php)

2005-09-27 Pierrick LE GALL
	
	* bug 168 fixed: crash when language file does not
	exists. Constant PHPWG_DEFAULT_LANGUAGE added. New function
	get_language_filepath always used to find language files.

2005-09-26 Pierrick LE GALL

	* bug 158 fixed: display error on "double selects" screens (with
	MSIE, strange behavior). VDigital modification optimizes width
	usage :-)

2005-09-25 Pierrick LE GALL

	* bug 163 fixed: link error when cookies disabled in admin/stats

2005-09-24 Pierrick LE GALL

	* bug fixed: HTML error on nested UL in categories menu.

	* bug 161 fixed: guest_id not taken into account for history table
	insert.

	* bug 164 fixed: category inserted in history table becomes too
	long if HTML tags are kept.

2005-09-24 Pierrick LE GALL

	* bug 162 fixed: division by zero when trying to view "all" items
	in admin/element_set_(global|unit)

	* bug 156 fixed: error when selection is empty was not catched.
	
2005-09-21 Pierrick LE GALL

	* bug 151 fixed: default maxheight was not proposed as "set to"
	option in admin/user_list

2005-09-21 Pierrick LE GALL

	* bug 150 fixed: in category permissions management, wrong column
	name when using an external users table.

2005-09-20 Pierrick LE GALL

	* update: upgrade from 1.4.0 or 1.4.1. Upgrade from 1.3.x is not
	available anymore.

	* update: README files updated for very near branch 1.5 :-)

	* new: file tools/config_local.inc.php as example for optional
	include/config_local.inc.php

	* bug fixed: configuration parameter show_picture_name_on_title
	was useless

2005-09-18 Pierrick LE GALL

	* bug 111 fixed: "Can't add virtual category when cookie
	disabled". Correction reported from branch 1.4.

	* bug 109 fixed : "disabled "best rated" menu item when rating is
	not enabled". Correction reported from branch 1.4.

	* bug 95 fixed : "default maxwidth and maxheight not registered
	". Correction reported from branch 1.4.

2005-09-18 Pierrick LE GALL

	* bug 107 fixed: crash when logging visit on a category containing
	"'" character. Correction reported from branch 1.4

	* bug fixed: in admin/stats, incorrect SQL queries gave no result.

2005-09-18 Pierrick LE GALL

	* bug 101 fixed: "problem with IE search on keywords". correction
	reported from branch 1.4

2005-09-17 Pierrick LE GALL

	* new: automatic new password sent by mail when requested by user

2005-09-17 Pierrick LE GALL

	* improvement: add information about how to use an external table
	for users
	
	* bug fixed: uses user configuration fields for filtering in
	admin/user_list

	* bug fixed: don't try to create feeds automatically during
	sync_users (when line in user_infos is missing)

	* bug fixed: create_user_infos function gives status admin if user
	id matches $conf['webmaster_id']

2005-09-17 Pierrick LE GALL

	* new: the number of elements waiting for validation is notified
	in RSS feed.

2005-09-17 Pierrick LE GALL

	* translation: common and admin strings translated in french from
	english files

2005-09-14 Pierrick LE GALL

	* improvement: long localized messages are in HTML files instead
	of $lang array. This is the case of admin/help and about pages.

	* deletion: of unused functions (ts_to_mysqldt, is_image,
	TN_exists, check_date_format, date_convert,
	get_category_directories, get_used_metadata_list, array_remove,
	pwg_write_debug, get_group_restrictions,
	get_all_group_restrictions, is_group_allowed, style_select,
	deprecated_getAttribute).

	* new: many new contextual help pages to replace descriptions
	previously included in pages.

	* modification: reorganisation of language files. Deletion of
	unused language keys, alphabetical sort. No faq.lang.php anymore
	(replaced by help.html). Only done for en_UK.iso-8859-1.

2005-09-03 Pierrick LE GALL

	* bug fixed : no display of first added element date in
	admin/intro if no element in the gallery.

2005-09-03 Pierrick LE GALL

	* new : template yoga, made by yoDan, helped by chrisaga for
	integration becomes the official template.

2005-09-03 Pierrick LE GALL

	* modification : less configuration parameters in administration
	screen. These parameters are move to
	include/config_default.inc.php.

	* new : ability to add a single picture to caddie from picture.php

	* new : contextual help, only a few pages are available.

	* new : ability to delete users from admin/user_list

	* modification : reorganization of configuration file

	* new : configuration parameter use_exif_mapping

	* improvement : MOD hidemail added to standard

2005-08-26 Pierrick LE GALL

	* new : HTML BODY identifier to let CSS stylesheets manage
	specific behaviour.

	* deletion : admin/search useless

	* improvement : in admin/user_list, special behaviour for
	true/false fields (expand, show_comments)

	* new : gallery_title and gallery_description are displayed at the
	top of each page.

	* improvement : simplification in HTML for categories menu.

	* improvement : standardization of presentation in all public
	pages (identification, registration, search, profile,
	notification, comments, etc.)

2005-08-25 Pierrick LE GALL

	* deletion : no mail notification anymore. Feature replaced by RSS
	feed notification.

	* improvement : on waiting pictures management. Ability to
	validate all or reject all in one clic.

2005-08-21 Pierrick LE GALL

	* modification : adaptation of template variables and blocks in
	comments page to display comment by comment instead of picture by
	picture.

2005-08-20 Pierrick LE GALL

	* improvement : dedicated page for user comments validation/reject
	in administration. (screen is not shared with public part of the
	gallery). Ability to validate all or reject all in one clic.

2005-08-19 Pierrick LE GALL

	* improvement : less compact presentation of screen
	admin/element_set_unit.

2005-08-19 Pierrick LE GALL

	* improvement : standardization of categories navigation bar on
	top of administration screen element_set_(global|unit),
	cat_modify, cat_list, cat_perm.

	* new : direct link to admin/cat_modify from category.php.

2005-08-19 Pierrick LE GALL

	* modification : RSS feed work only with a given feed
	identifier. Thus we can avoid fixed frequency notification to
	concentrate on variable frequency notification, which is much more
	interesting. To do this, feeds have moved to a dedicated table
	allowing each user (including guest user) to have more than on
	feed.
	
2005-08-18 Pierrick LE GALL

	* bug 133 fixed : (report from branch 1.4) Deleting user favorites
	is too restrictive. Instead of deleting a favorite because it
	belongs to at least one forbidden category, a favorite is deleted
	if it belongs to no authorized category (which was the expected
	behaviour).

2005-08-18 Pierrick LE GALL

	* bug 134 fixed : "Nb of images incorectly rendered in "tool tip"
	near category in category menu". Correction reported (and
	improved) from branch 1.4

2005-08-18 Pierrick LE GALL

	* improvement : screen admin/picture_modify
	rewritten. Presentation copied from admin/cat_modify : fieldsets
	regroup fields. Ability to synchronize metadata for the displayed
	item.

	* bug 110 fixed : "return to element view from element edition
	fails depending on permissions". If a reachable (for the connected
	admin) category is available, a "jump to" link is displayed, by
	default, using the category given in URL.

	* bug fixed : in mass_updates function, the first item of
	$fields['update'] has not always 0 for id (as in any array).

	* modification : get_keywords function understands spaces as
	separator, allow less than 3 chars keywords, allow quotes.

	* new : ability to allow HTML in picture or category description
	(false by default)

2005-08-17 Pierrick LE GALL

	* improvement : in admin/user_perm, already authorized categories
	thanks to group associations are displayed and not taken into
	account for user specific permissions.

2005-08-17 Pierrick LE GALL

	* modification : major simplification of admin.php. Titles are
	managed by included page, localized items are managed directly in
	the template.

	* new : sub template admin/double_select is included in templates
	admin/cat_options, admin/user_perm and admin/group_perm. I haven't
	been able to use it in admin/picture_modify because it seems
	impossible to have two instance of the same sub-template without
	interfering.

	* modification : bug 99, in profile manager, no auto submit when
	changing language (useless and generate accessibility problem).

	* improvement : HTML semantically correct for administration menu,
	simpler syntax, less tags, correct tags (dl/dt/dd instead of
	div/div).

	* modification : number of waiting elements and unvalidated
	comments are displayed in admin/intro instead of administration
	menu (with a link to the dedicated pages).

	* deletion : no link to profile from admin/user_list anymore (no
	need).

2005-08-16 Pierrick LE GALL

	* modification : admin/group_list screen completely rewrite to
	present the list of existing groups and a form to add a new
	group. Here you can delete a group, go to permissions management
	for a group, go to member list of a group (on admin/user_list with
	a filter on group).
	
	* modification : admin/user_perm and admin/group_perm are not
	directly reachable by the admin menu anymore. Only the user/group
	list lets you reach user/group permissions management screen.

2005-08-15 Pierrick LE GALL

	* new : introduction page to administration section. This page
	gives informations about PhpWebGallery version, PHP version, MySQL
	version, gallery database informations (number of categories,
	elements, users, comments). Ability to request phpwebgallery.net
	for upgrade.

	* deletion : of obsolete admin/admin_phpinfo.php page replaced by
	a link in introduction page.

2005-08-14 Pierrick LE GALL

	* modification : simplification of HTML/CSS code for double select
	screen to manage categories properties (admin/cat_options)

2005-08-14 Pierrick LE GALL

	* new : ability to set an element as representant of its category
	directly from picture.php screen.

	* improvement : dedicated icon to add elements into caddie. Ths
	icon is displayed in the category title bar.
	
2005-08-14 Pierrick LE GALL

	* new : maintenance screen in administration. There you can update
	categories informations (number of images, date of the last added
	element), update images informations (path, average rate), purge
	obsolete sessions, purge history.

	* new : ability to have random representative for categories. This
	configuration parameter is set to false by default.

	* new : ability to set an element as representative of a category
	without belonging to the category. Thus, administrator can choose
	representative even for empty categories.

	* improvement : semantically superior design for category edition
	screen by regrouping fields in fieldsets. The improved screen
	contains action buttons as in category list screen.

	* new : ability to move a virtual category (ie change its parent
	category).

	* bug fixed : the sync_users function checks all user children
	tables (access, cache, group association).

2005-08-08 Pierrick LE GALL

	* new : external authentication in another users table. Previous
	users table is divided between users (common properties with any
	web application) and user_infos (phpwebgallery specific
	informations). External table and fields can be configured.
	
	* modification : profile.php is not reachable through
	administration anymore (not useful).

	* modification : in profile.php, current password is mandatory
	only if user tries to change his password. Username can't be
	changed.

	* deletion : of obsolete functions get_user_restrictions,
	update_user_restrictions, get_user_all_restrictions,
	is_user_allowed, update_user

	* modification : $user['forbidden_categories'] equals at least
	"-1" so that category_id NOT IN ($user['forbidden_categories'])
	can always be used.

	* modification : user_forbidden table becomes user_cache so that
	not only restriction informations can be stored in this table.
	
2005-07-17 Pierrick LE GALL

	* improvement : in admin/element_set_global, javascript is not
	used anymore to select an item with its thumbnail

2005-07-17 Pierrick LE GALL

	* bug fixed : in admin/user_list, if target is "selection" and
	that no user is selected, an error occurs

2005-07-17 Pierrick LE GALL

	* new feature : use Apache authentication. If
	$conf['apache_authentication'] is set true : if no user matches
	$_SERVER['REMOTE_USER'] in "users" table, PWG automatically
	creates one. This way, users can customize the behaviour of the
	application.

	* template : new organisation of identification menu
	(category.php). Simplification is required for Apache
	authentication (no logout link even if user is externally logged
	in)

	* new : usernames can contain quotes (required because Apache
	authentication authorized quotes in usernames)

2005-07-17 Pierrick LE GALL

	* new configuration parameter : hide thumbnail captions on main
	page with $conf['show_thumbnail_caption']

	* new configuration parameter : hide picture name in title on
	picture presentation page with $conf['show_picture_name_on_title']

	* template : new CSS classes to manage picture.php title
	
2005-07-16 Pierrick LE GALL

	* new feature : RSS notification feed. Feed generator is an
	external tool (FeedCreator class v1.7.2). New file feed.php

	* new database field : comments.validation_date (datetime). This
	field is required for notification feed.

	* new database field : users.feed_id (varchar(50)). users.feed_id
	is an alias of users.id but is much more complicated to find (50
	characters, figures or letters, case sensitive) : the purpose is
	to keep it secret (as far as possible).

	* new database field : users.last_feed_check (datetime)

	* new database field : users.registration_date (datetime)

	* bug fixed : no need to add the (unavailable) session id to
	install.php in the installation form.

	* modified database field : images.date_available become more
	precise (date to datetime). This precision is needed for
	notification feed.

	* new index : comments_i1 (validation_date). Might be useful for
	feed queries.

	* new index : comments_i2 (image_id). Useful each time you want to
	have informations about an element and its associated comments.

	* version 9.11 of mysqldump outputs database field names and table
	names with backquote "`" (didn't find how to take them off)
	
2005-06-30 Pierrick LE GALL
	
	* category permissions management comes back! (it disappeared in
	branch 1.4) This time, it is designed to support better long users
	list. On this screen, for a particular category, admin can say
	which groups and users are permitted.
	
2005-06-30 Pierrick LE GALL

	* users managment : change display of filter (according to filter
	on user comments)

2005-06-30 Pierrick LE GALL

	* categories management : new display with icon for actions
	(delete, sub-categories, elements, edit, jump to, permissions)

	* categories management : semantic HTML layout (using common
	lists)

	* categories management : new way to order categories of the same
	level : a text field let the admin reorder all categories at once.
	
2005-06-25 Pierrick LE GALL

	* new feature : ability to add links on the main page (see
	include/config_default.inc.php)
	
2005-06-21 Pierrick LE GALL

	* comments page rewritten : comments are displayed one by one,
	with filters and display options available. The list of comments
	is paginated.
	
2005-06-21 Pierrick LE GALL

	* direct communication between templates and language items,
	without needing a mapping in the PHP code.

2005-06-21 Pierrick LE GALL

	* new function get_name_from_file to centralize the construction
	of displayed name from the filename

	* new function l10n which returns the corresponding value from
	$lang if existing. Else, the key is returned. This means that if a
	language item is not translated, the key is displayed instead
	(better than nothing).

2005-06-11 Pierrick LE GALL

	* errors and informations boxes : management centralized in
	admin.php, $errors and $infos arrays replaced by $page['errors']
	and $page['infos'], special management for admin/update.php (more
	complex management)

2005-06-11 Pierrick LE GALL

	* bug 96 (informations given by uploaders are lost) correction
	reported from branch 1.4

2005-05-10 Pierrick LE GALL

	* user list : links to profile page and permissions page are
	represented by icons (more compact)

	* user list : ability to associate to a group or to dissociate
	from a group a list of selected users

	* user list : ability to set user properties in "batch" mode (a
	selection of users at once)

	* user list : alternate background color for each line
	
2005-04-30 Pierrick LE GALL

	* user list updated : ability to filter list on status. Function
	get_enums comes back to retrieve the list of possible status in
	the database.
	
2005-04-28 Pierrick LE GALL

	* user list updated : ability to filter list on group

2005-04-25 Pierrick LE GALL

	* include/config.inc.php becomes include/config_default.inc.php :
	this file should not be modified. A new file
	include/config_local.inc.php can be used for overwriting
	configuration parameters
	
2005-04-25 Pierrick LE GALL

	* come back to previous version of include/constants.php :
	%PWGVERSION% was not a mistake

2005-04-25 Pierrick LE GALL

	* profile.php is no longer used for listing users :
	admin/user_list.php comes back (as in 1.3 branch)

	* user list updated : ability to filter list on username

2005-04-25 Gweltas

	* ability to install even if file include/mysql.inc.php doesn't
	exist

	* monthly statistics

	* installation labels updated (english only)

2005-04-16 Pierrick LE GALL <pierrick /at/ phpwebgallery {dot} net>

	* elements batch management : element_set page becomes the
	frontend to element_set_global and element_set_unit, infos_images
	(after a long time of use) become deprecated : the more powerful
	element_set is used instead. Consequently, batch management
	concerns caddie but also "normal categories".
	
	* refactoring code in admin.php to include the sub-file (clearer)

	* caddie : function fill_caddie replaces the code in category.php
	and can be used in admin/element_set.php

	* caddie : caddie table is added in delete_elements function

2005-04-16 Pierrick LE GALL <pierrick /at/ phpwebgallery {dot} net>

	* elements batch management : in addition to global mode, a unit
	mode is added : ability to manage a set of elements, element by
	element. This screen is very close to the existing "infos_images"
	(which will soon disappear).

	* elements batch management : in screen element_set_global, the
	display options are displayed at the top as in element_set_unit
	
2005-04-11 Pierrick LE GALL <pierrick /at/ phpwebgallery {dot} net>

	* functions get_day_list and get_month_list moved from search.php
	to include/functions.inc.php : these functions are now also used
	in admin/element_set_global.php

	* elements batch management improved : ability to set the number
	of elements to display per line, ability to set {author, name,
	creation date} fields, ability to add and remove keywords, ability
	to take selected elements out of caddie

2005-03-31 Pierrick LE GALL <pierrick at phpwebgallery dot net>

	* apply category name and element name separation in calendar
	special category

	* change method of counting total number of viewable pictures :
	pictures linked to more than one category are not counted twice.
	
2005-03-26 Pierrick LE GALL <pierrick at phpwebgallery dot net>

	* "add to caddie" link is visible only when categories contains
	elements. Only admin users can see this link

	* elements batch management : impossible to create a link between
	category and element that already exists

	* logical separation of category name under thumbnail and element
	name

2005-03-25 Pierrick LE GALL <pierrick at phpwebgallery dot net>

	* application version is defined at build or release
	creation. This way, include/constants.php won't change at each
	build.

2005-03-25 Pierrick LE GALL <pierrick at phpwebgallery dot net>

	* typo fixed : wrong block name closed in template

2005-03-25 Pierrick LE GALL <pierrick at phpwebgallery dot net>
	
	* new feature : caddie. The purpose is batch management,
	especially concerning elements to categories associations.This is
	the very first release, needs many improvements.