1<?php
2/**
3 * Elgg message element
4 *
5 * @uses $vars['type']      The type of message (error, success, warning, help, notice, info)
6 * @uses $vars['title']     Optional title text, will default to the type
7 * @uses $vars['icon_name'] Optional iconname to override default icon
8 * @uses $vars['body']      Content of the body
9 * @uses $vars['class']     Optional additional class for message
10 */
11
12$type = elgg_extract('type', $vars, false);
13$title = elgg_extract('title', $vars);
14$body = elgg_extract('body', $vars, '');
15
16if (empty($title) && empty($body)) {
17	return;
18}
19
20$attrs = [
21	'class' => elgg_extract_class($vars, 'elgg-message'),
22];
23
24if ($type) {
25	$attrs['class'][] = "elgg-message-$type";
26}
27
28$default_icons = [
29	'error' => 'exclamation-circle',
30	'help' => 'question-circle',
31	'notice' => 'info-circle',
32	'info' => 'info-circle',
33	'warning' => 'exclamation-triangle',
34	'success' => 'check-circle',
35];
36
37$default_icon_name = elgg_extract($type, $default_icons);
38$icon_name = elgg_extract('icon_name', $vars, $default_icon_name);
39
40if (is_null($title) && !empty($type) && elgg_language_key_exists("messages:title:{$type}")) {
41	$title = elgg_echo("messages:title:{$type}");
42}
43
44$header = '';
45if (!empty($title) && !empty($icon_name)) {
46	$header .= elgg_view_icon($icon_name, ['class' => 'elgg-message-icon']);
47}
48
49if (!empty($title)) {
50	$header .= elgg_format_element('span', ['class' => 'elgg-message-title'], $title);
51}
52
53if (!empty($header)) {
54	$header = elgg_format_element('div', ['class' => 'elgg-head'], $header);
55}
56
57if (!empty($body)) {
58	$body = elgg_format_element('div', ['class' => 'elgg-body'], $body);
59}
60
61$contents = elgg_format_element('div', ['class' => 'elgg-inner'], $header . $body);
62
63echo elgg_format_element('div', $attrs, $contents);
64