If you’ve ever logged in to WHM as a root-level user, you’ve assuredly seen a box with a notification of a new or improved feature. This dialogue box is known as the “Feature Showcase,” and has allowed us at cPanel to present information about changes to cPanel & WHM. Since its creation, the Feature Showcase was only available for use by cPanel. However, we’ve made some changes to the functionality of the Feature Showcase which change that.

Starting in v74, the Feature Showcase system now uses individual JSON files for each Showcase item. The update allows cPanel more control over how it appears and how configuration changes to the system are triggered.

Now hosting providers and plugin developers can create notifications!

The greatest benefit the new functionality of the Feature Showcase provides is opening the feature to third-parties. Hosting providers, plugin developers, and server owners can create their own Feature Showcase boxes in an officially supported way for the first time!  This means that parties such as plugin developers can create new Feature Showcase popups upon the launch of a new feature in their plugin, or announce a change to an existing feature! This allows developers to create messaging that appears directly to WHM end-users in a way that doesn’t break the normal WHM workflow!

So what comprises the Feature Showcase?

The Showcase is split into three different sections:

  • Showcased Items Top of the list, reserved for big or very important changes
  • Recommended Items Recommended items. cPanel & WHM usually enables these items by default, but not always.
  • New Items Everything else advertised in this release

Within those sections, there are four types of items that the Feature Showcase supports:

  • Announcements Announce a new feature. Announcement features cannot be enabled or disabled by a user, nor can a user configure any settings of the announced feature.
  • Background These features do not appear in the Feature Showcase interface, and background features are enabled by default for new system installations
  • Activation Announces a new feature where users are allowed to enable or disable the feature. Activation items do not allow a user to configure a setting.
  • Configuration Announces a new feature where users can configure a setting of the feature.

There are a few different actions you can request of a user who views the Feature Showcase item.

  • enable or disable a feature (enable or disable)
  • enable or disable as the default value (set_default)
  • manage a user submitted form field (handle_showcase_submission)

Using the ability to craft Feature Showcase messaging to your end users allows a bit of flexibility in enabling, disabling, or configuring any new features you wish to spotlight. Depending on the type of action the user does, the Feature Showcase can return a different value:

  • enable and disable actions return a value of 1 for success and 0 for failure.
  • set_default actions return a value of 0 for backward compatibility with Version 1.
  • handle_showcase_submission actions return the form response.

To remove a Feature Showcase item from display simply remove the appropriate drivers.json file from the /user/local/cpanel/Cpanel/Config/ConfigObj/Driver directory.

Test Time!

Once you have created your new feature showcase item, you will definitely want to test it before you push it to end users. To test a Feature Showcase listing, follow these steps:

  1. Log in to WHM as the root user.
  2. Navigate to https://hostname:2087//scripts3/feature_showcase (make sure to replace ‘hostname’ with your server’s hostname)
  3. You should see something that resembles the following screen capture, with your new feature showcase item!

Get started!

It’s that easy! The uses for this are extremely exciting and allow our plugin developers a much deeper integration into the user experience. If you have any questions or comments about the Feature Showcase, feel free to open a ticket with our support team, or reach out to us via SlackDiscord, or the Official cPanel Subreddit.