Development Guides Home

Guide to the Feature Showcase

Introduction

Warning:

cPanel & WHM displays the Feature Showcase interface after you upgrade to a new version that includes new features. Feature Showcase items can overwrite your settings.


You can add custom items to WHM's Feature Showcase interface. The Feature Showcase interface alerts WHM users to newly-released features. It appears when root-enabled users log in the first time after upgrading or installing cPanel & WHM.

The Feature Showcase interface divides items into three sections:

  1. Showcased Items — Big or very important changes.
  2. Recommended Items — Items that WebPros International, LLC recommends. cPanel & WHM usually enables these items, but not always.
  3. New Items — Everything else.

Whether and how items appear depends on which items the user has previously seen. If no new items exist, the Feature Showcase interface does not appear.

Showcase item types

Important:
  • For more information about the drivers.json files for each item type, read our The drivers.json File documentation.
  • Activation and Configuration items must include driver code.

The Feature Showcase interface supports these types of items:

Announcements

These items announce new features. They don't allow the user to enable it, disable it, or configure a setting.

Use these important parameter settings:

"readonly":1
"auto_enable":0

Example 

{
    "spec_version" : 2,
    "meta" : {
        "auto_enable" : 0,
        "meta_version" : 2,
        "content" : {
            "vendor" : "WebPros International, LLC",
            "url"  : "https://www.cpanel.net/",
            "name" : {
                "short"  : "Example Driver",
                "long"   : "Example Driver for Developer Usage"
            },  
            "readonly" : 1,
            "first_appears_in" : "74",
            "last_appears_in" : "78",
            "abstract" : "An example driver for developers to emulate.",
            "version" : 1,
            "locale_abstract_strings" : [
                "locale.maketext('An example driver for developers to emulate.')",
                "locale.maketext('Comes packed with meta examples that use cPanel’s localization system: [output,url,_1,Cpanel::Locale,target,_blank].','https://go.cpanel.net/localedocs')",
                "locale.maketext('[asis,cPanel®] does not translate strings. You will need to provide your own translations.')"]     
        },  
        "showcase" : {
            "is_recommended" : 0,
            "is_spotlight_feature" : 0
        }
    }     
}

Background

These items don't appear to users. Instead, they automatically enable the feature for new installations.

Use these important parameter settings:

"auto_enable":1
"showcase": -1
"enable": (something)

Example

{
    "spec_version" : 2,
    "meta" : {
        "auto_enable" : 1,
        "meta_version" : 2,
        "content" : {
            "vendor" : "WebPros International, LLC",
            "url" : "https://www.cpanel.net/",
            "name" : {
                "short" : "Example Driver",
                "long" : "Example Driver for Developer Usage"
            },  
            "readonly" : 0,
            "first_appears_in" : "74",
            "last_appears_in" : "78",
            "abstract" : "An example driver for developers to emulate.",
            "version" : 1,
            "locale_abstract_strings" : [
                "locale.maketext('An example driver for developers to emulate.')",
                "locale.maketext('Comes packed with meta examples that use cPanel’s localization system: [output,url,_1,Cpanel::Locale,target,_blank].','https://go.cpanel.net/localedocs')",
                "locale.maketext('[asis,cPanel®] does not translate strings. You will need to provide your own translations.')"]   
        },
        "showcase" : -1
    },
    "enable" : {
        "module" : "Whostmgr::TweakSettings",
        "method" : "set_value",
        "params" : [
            "Main",
            "userdirprotect",
            1
        ]
    }  
}

Activation

These items announce a new feature, which the user can then enable or disable. They don't allow the user to configure a setting. 

Use these important parameter settings:

"readonly":0
"auto_enable":0
"enable": (something)
"disable": (something)

Example 

{
    "spec_version" : 2,
    "meta" : {
        "auto_enable" : 1,
        "meta_version" : 2,
        "content" : {
            "vendor" : "WebPros International, LLC",
            "url" : "https://www.cpanel.net/",
            "name" : {
                "short" : "Example Driver",
                "long" : "Example Driver for Developer Usage"
            },  
            "readonly" : 0,
            "first_appears_in" : "74",
            "last_appears_in" : "78",
            "abstract" : "An example driver for developers to emulate.",
            "version" : 1,
            "locale_abstract_strings" : [
                "locale.maketext('An example driver for developers to emulate.')",
                "locale.maketext('Comes packed with meta examples that use cPanel’s localization system: [output,url,_1,Cpanel::Locale,target,_blank].','https://go.cpanel.net/localedocs')",
                "locale.maketext('[asis,cPanel®] does not translate strings. You will need to provide your own translations.')"
            ]  
        },
        "showcase" : {
            "is_recommended" : 0,
            "is_spotlight_feature" : 0        
        }
    },
    "enable" : {
        "module" : "Whostmgr::TweakSettings",
        "method" : "set_value",
        "params" : [
            "Main",
            "userdirprotect",
            1
        ]
    },
    "disable" : {
        "module" : "Whostmgr::TweakSettings",
        "method" : "set_value",
        "params" : [
            "Main",
            "userdirprotect",
            0
        ]},
    "set_default" : {
        "static" : 1
    }
}

Configuration

These items announce a new feature and allow the user to configure a setting.

Use these important parameter settings:

"readonly":0
"auto_enable":0
"handle_showcase_submission": (something)

Example 

{
    "spec_version" : 2,
    "meta" : {
        "auto_enable" : 1,
        "meta_version" : 2,
        "content" : {
            "vendor" : "WebPros International, LLC",
            "url" : "https://www.cpanel.net/",
            "name" : {
                "short" : "Example Driver",
                "long" : "Example Driver for Developer Usage"
            },  
            "readonly" : 0,
            "first_appears_in" : "74",
            "last_appears_in" : "78",
            "abstract" : "An example driver for developers to emulate.",
            "version"  : 1,
            "locale_abstract_strings" : [
                "locale.maketext('An example driver for developers to emulate.')",
                "locale.maketext('Comes packed with meta examples that use cPanel’s localization system: [output,url,_1,Cpanel::Locale,target,_blank].','https://go.cpanel.net/localedocs')",
                "locale.maketext('[asis,cPanel®] does not translate strings. You will need to provide your own translations.')"
            ]     
        },
        "showcase" : {
            "is_recommended" : 0,
            "is_spotlight_feature" : 0
        }
    },
    "handle_showcase_submission" : {
        "module" : "Whostmgr::API::1::PublicContact",
        "method" : "set_public_contact",
        "params" : [
            {
                "name" : "FORM(public_contact_name)",
                "url"  : "FORM(public_contact_url)"}
        ]
    }      
}     

Additional documentation