Viewing File: /usr/local/cpanel/whostmgr/docroot/templates/announcements/announcement.tmpl
[%# WHM Announcements template.
Rendered by Cpanel::Plugins::Components::whostmgr::home::Announcement.
Builds a localized JSON payload from the selected announcement config and emits the
<whm-announcement> web component. Content is data-driven; see the plugin README. -%]
[% USE JSON;
items_out = [];
FOREACH item IN announcement.items;
badges_out = [];
FOREACH b IN item.badges;
badges_out.push({
text => b.text ? locale.lextext(b.text) : '',
variant => b.variant
});
END;
cta_out = '';
IF item.cta;
cta_out = {
button_text => item.cta.button_text ? locale.lextext(item.cta.button_text) : '',
url => item.cta.url,
offsite => item.cta.offsite ? 1 : 0
};
END;
items_out.push({
id => item.id,
badges => badges_out,
title => item.title ? locale.lextext(item.title) : '',
subtitle => item.subtitle ? locale.lextext(item.subtitle) : '',
description => item.description ? locale.lextext(item.description) : '',
image => item.image,
cta => cta_out
});
END;
header_out = {
eyebrow => announcement.header.eyebrow ? locale.lextext(announcement.header.eyebrow) : '',
title => announcement.header.title ? locale.lextext(announcement.header.title) : '',
logo => announcement.header.logo,
subtitle => announcement.header.subtitle ? locale.lextext(announcement.header.subtitle) : '',
background_image => announcement.header.background_image,
background_animation => announcement.header.background_animation
};
payload = {
id => announcement.id,
header => header_out,
items => items_out
};
-%]
<whm-announcement
announcement-id="[% announcement.id | html %]"
announcement-version="[% announcement.announcement_version | html %]"
cp-security-token="[% cp_security_token | html %]"
close-title="[% locale.maketext('Close') %]"
dialog-label="[% header_out.title | html %]"
>
[%# Cpanel's JSON plugin escapes "<" as a unicode escape, so this is safe in a script tag. -%]
<script type="application/json">[% payload.json %]</script>
</whm-announcement>
Back to Directory