Installing external libraries

Plpugins may also require external libraries that they are dependent upon to be downloaded. This requires several things: a specific declaration in the plugin.xml file, and the existence of a /lib directory that is write accessible in the SPIP root directory, into which the library will be automatically (or manually) loaded.

<necessite id="lib:nom" src="address of the zip file" />
  • nom specifies the name of the zip’s uncompressed folder
  • src is the address of the library archive in zip format

Example

A plugin called "loupe photo"" uses a javascript library that it installs as a library (therefore outside of the plugin itself) in this manner:

<necessite id="lib:tjpzoom" src="http://valid.tjp.hu/tjpzoom/tjpzoom.zip" />

In the plugin, the names of the files that the plugin uses are listed like this:

$tjp = find_in_path('lib/tjpzoom/tjpzoom.js');

The "Open ID" plugin also uses a library that is external to the plugin. It loads it in the following manner:

<necessite id="lib:php-openid-2.1.2" src="http://openidenabled.com/files/php-openid/packages/php-openid-2.1.2.zip" />

And then uses that library as below:

// options
if (!defined('_DIR_LIB')) define('_DIR_LIB', _DIR_RACINE . 'lib/');
define('_DIR_OPENID_LIB', _DIR_LIB . 'php-openid-2.1.2/');

// usage (somewhat more complicated!)
function init_auth_openid() {
    // ...
    $cwd = getcwd();
    chdir(realpath(_DIR_OPENID_LIB));
    require_once "Auth/OpenID/Consumer.php";
    require_once "Auth/OpenID/FileStore.php";
    require_once "Auth/OpenID/SReg.php";
    chdir($cwd);
    // ...
}

Author Mark Baber Published :

Translations : English, français