Welcome to the DesktopServer developer pages. Here you can learn about advanced topics such as how to extend the DesktopServer application or create advanced blueprint configurations. The following documentation requires that the user is already familiar with how to use DesktopServer and it’s core functionality. These topics center around the DesktopServer API (Application Programming Interface) and are geared for programmers, advanced users, and/or value added resellers that wish to extend DesktopServer’s core functionality and capabilities. The advanced DesktopServer 5 API includes an extensive feature set to extend DesktopServer in new ways unique to version 5:

  • Extend the base application user interface via HTML, JavaScript, and PHP.
  • Create background tasks that allow for periodic PHP code execution without having to display the main application interface.
  • New plugin API that allows inserting optional application user interface screens, windows, menu items, or extend existing application screens.
  • New blueprints API that allows inserting additional application user interface screens before and after site creation.
  • New automatic updates allows plugins to self-update via an automated repository synchronization routine.

In addition to the new API functionality; DesktopServer 5’s new API provides enhanced support for the original API hooks and actions:

  • Dynamic modification of the localhost, developer “View Sites” page.
  • Load DesktopServer plugins as a ”Global Plugin” in all WordPress virtual host instances.
  • Priority execution in the PHP runtime (run code even before WordPress loads) for all virtual host instances.

Extending DesktopServer

To extend the DesktopServer 5 application, you will first want to determine what kind of application extension you would like to create:

  • Dynamic Blueprint – This type of extension exists as a PHP file called “blueprint.php” and lives within a uniquely named sub-folder inside the DesktopServer ‘blueprints’ folder (i.e. C:\ProgramFiles\.ds\blueprints on Windows or /Users/Shared/.ds/blueprints on Macintosh). A blueprint is a folder containing a series of files, often WordPress core files, themes, plugins, and the blueprint.php file; serving as a template for creating a new website. The blueprint.php file is only executed when a user wishes to create a new WordPress website and selects the given blueprint. The blueprint.php file is capable of inserting additional DesktopServer user interface screens before and after the given WordPress blueprint’s website is created. To learn more about blueprints; see the Creating DesktopServer Blueprints page.
  • DesktopServer Plugin – This type of extension may consist of one or more files grouped within a sub-folder of the plugins folder (at C:\ProgramFiles\.ds\plugins on Windows or /Users/Shared/.ds/plugins on Macintosh). A DesktopServer plugin can be turned on or off from DesktopServer’s ‘Services’ page and is executed immediately upon activation. A plugin may alter or extend almost any aspect of the DesktopServer application user interface, virtual host instances, as well as implement a background service, and/or extend or modify the localhost (aka “View Sites”) webpage. A DesktopServer plugin is by far the most powerful way to extend the functionality of the DesktopServer application. To learn more about DesktopServer plugins; view the Creating DesktopServer Plugins page.