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