Hosting companies can add value to hosting plans and enhance the Panel capabilities by adding third-party services to Panel. In the terms of Panel, such services are called additional. An additional service can be any resource available at a certain URL (like a Panel extension, web app, and so on), even if it is completely independent from Panel. It can be a spam filter, statistics analytic tool, helpdesk or other services.
The administrator and resellers associate these additional services with hosting plans when setting up a distribution strategy. For example, if you have a service that performs custom mail filtering, Panel lets you offer this service with, say, the Silver hosting plan and do not offer with others.
To make Panel aware of an additional service, you should add the service to Panel. In the simplest case, when the service resides on a remote URL and does not require any notifications from Panel, add it from the Panel GUI, page Service Plans > Additional Services. From there, you can also associate the service with a custom button that is instantly added to the Websites & Domains page of each subscriber.
Another way to add a service is to make a programming call to Panel. The benefit of this approach is that it lets your service to receive Panel notifications about the object changes. For example, the mail filtering service we mentioned earlier must track account name changes to serve renamed accounts as well. Though you can make a call that adds a service and does not subscribe it to notifications, this operation does not make much sense as it is easier to add such services through the GUI. Thus, we consider that you will generally use programming means to both add services and register them with Panel Notifications (PN).
The possible inconvenience of adding services by a call is that you are unable to edit details of the services through the Panel GUI. Please consider it when designing service names and descriptions. Another peculiar feature of adding services by a call is that are not automatically visible to customers. We recommend that you use custom buttons or write an extension to display the service in the Control Panel.
PN sends notifications about subscriptions, sites, and e-mail accounts related to the service. The relation subscription - service is derived from plans: A service is associated with plans, whereas subscriptions are plan instances. If a subscription has sites or e-mail accounts, the changes of these supplementary objects are also tracked.
If you wish to register your service with the PN, do the following:
By implementing this interface, you specify the service properties in Panel and define what type of changes it should receive and how it should handle them. When a change happens, Panel executes the change handling code from this class. This code runs in the Administrator context.
For details on interface Plan_Item_Interface and instructions on how to implement it, see section Preparing a Service for Registration.
To learn how to register a prepared class, see section Registering the Service.
Note: This section does not explain how to write third-party services, integrate them into the Panel GUI, or get access to the Panel resources. If you wish to make a registered service available to customers, create a custom button pointing to the service URL and place it on pages available to customers. This can be done through the command line interface (CLI) and will work only if your service receives enough information from PN. If your service requires access to other Panel resources or you want to build your service into the Panel GUI, consider writing an extension.