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