The CC PHP-AJAX Chooser is a simple way to add a license chooser to your PHP-based web application. It contains the following components:

  • PHP Web Services client code
  • PHP Web Service proxy (to accommodate browser security)
  • Javascript and PHP for running the chooser itself

The Javascript bundles the jQuery library for event handling and communication with the web service proxy.

The PHP-AJAX Chooser is licensed under the MIT License and is used in the WpLicense WordPress extension.

Getting the Code

The code is available from Subversion as part of the cctools project at SourceForge. You can retrieve the code using the Subversion command-line client using the following command:

$ svn co

Additional information: Subversion


Before deployment you must configure the Javascript portion of the chooser to point to the web services proxy. The WS_ROOT_URL variable in js/chooser.js must point to the URL ws_proxy.php is served from on your server.

The PHP Chooser code can optionally be configured in two ways:

  • to use a particular version of the web services
  • to use a proxy for web service calls

For information on available versions of the web services, see the API documentation. The code in Subversion defaults to the 1.5 version of the web services. To change the version, update the $WS_ROOT variable in ws_client.php.

To configure a proxy for web service calls, edit the the $PROXY and $USE_PROXY variables in ws_client.php The proxy server, $PROXY, should be specified without the http:// prefix.

Creating the Chooser

The index.php provided with the chooser demonstrates how to create the chooser. There are two functions provided by html_ui.php which are used in conjunction to create the chooser.

  1. scriptHeader($base)
    Call this in the header to insert <script> tags for AJAX support. The $base parameter specifies the relative path from the calling page to the cc_ajax_chooser installation.
  2. licenseChooser($base, $defaults)
    This function inserts the HTML necessary for the chooser and connects the event handlers. $base has the same meaning as for scriptHeader; $defaults is an optional hash of the default license name and URI.