Files
ogre-alert/templates/alert.php
dcooperdalrymple 22f6c8188e Initial commit.
2021-02-19 16:43:21 -06:00

66 lines
2.4 KiB
PHP

<?php
/**
* @package CleverOgre
* @subpackage OgreAlert
* @since OgreAlert 0.1.7
*/
if (!defined('ABSPATH')) exit;
if (!isset($id) || !\OgreAlert\Alert::valid($id)) return;
// Initialize Attribute Arrays
$data = array(
'id' => $id,
);
$classes = array(
'ogrealert-message',
);
$style = array(
'display' => 'none',
);
// Priority
$priority = get_post_meta($id, '_ogrealert_priority', true);
if (empty($priority)) $priority = 'normal';
$data['priority'] = $priority;
$classes[] = "ogrealert-message__priority-{$priority}";
$style['background-color'] = \OgreAlert\Settings::get("message_{$priority}_background_color");
$style['color'] = \OgreAlert\Settings::get("message_{$priority}_text_color");
// Dismiss Duration
$dismiss_type = get_post_meta($id, '_ogrealert_duration', true);
if (empty($dismiss_type)) $dismiss_type = \OgreAlert\Settings::get('message_dismiss_duration');
$dismiss_duration = \OgreAlert\Settings::parse_dismiss_duration($dismiss_type);
$data['dismiss-type'] = $dismiss_type;
$data['dismiss-duration'] = $dismiss_duration;
$classes[] = "ogrealert-message__dismiss-{$dismiss_type}";
// Filter Attribute Arrays
$data = apply_filters('ogrealert/message_template_data', $data, $id);
$classes = apply_filters('ogrealert/message_template_classes', $classes, $id);
$style = apply_filters('ogrealert/message_template_style', $style, $id);
// Format data attributes
array_walk($data, function (&$value, $prop) {
$value = "data-{$prop}=\"" . esc_attr($value) . '"';
});
// Format styling
array_walk($style, function (&$value, $prop) {
$value = "{$prop}: {$value};";
});
?>
<li class="ogrealert-messages__list-item">
<article id="ogrealert-<?php esc_attr_e($id); ?>" <?php echo implode(' ', $data); ?> class="<?php esc_attr_e(implode(' ', $classes)); ?>" style="<?php esc_attr_e(implode(' ', $style)); ?>">
<h3 class="ogrealert-title screen-reader-text"><?php esc_html_e(get_the_title($id)); ?></h3>
<div class="ogrealert-container" style="width: <?php esc_attr_e(\OgreAlert\Settings::get('message_container')); ?>px;">
<div class="ogrealert-content content"><?php \OgreAlert\Alert::get_content($id, true); ?></div>
</div>
<?php if ($dismiss_type != 'none') { ?>
<a class="ogrealert-action ogrealert-dismiss" href="#" title="<?php esc_attr_e('Dismiss message', 'ogrealert'); ?>"><?php esc_html_e('Dismiss', 'ogrealert'); ?></a>
<?php } ?>
</article>
</li>