Externe bibliotheken installeren

Plugins kunnen ook verzoeken om externe bibliotheken te downloaden waarvan zij afhankelijk zijn. Dit vereist verschillende zaken: een specifieke vermelding in het bestand plugin.xml en de aanwezigheid van een beschrijfbare map /lib die toegankelijk is in de root van SPIP waarin de bibliotheek wordt gedownload (of handmatig wordt geplaatst).

  1. <necessite id="lib:naam" src="adres van het zip-bestand" />
  • naam is de naam van de uitgepakte map
  • src is het adres van het archief van de bibliotheek (in zip-formaat)

Voorbeeld

Een plugin "foto loupe" maakt gebruik van een javascript bibliotheek die op deze manier als een bibliotheek wordt geïnstalleerd (voorzien buiten de plugin dus):

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

In de plugin vindt hij de namen van de bestanden die hij op deze manier gebruikt:

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

De plugin «Open ID» gebruikt ook een externe bibliotheek. Deze wordt als volgt gedownload:

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

En zo gebruikt:

// options
if (!defined('_DIR_LIB')) define('_DIR_LIB', _DIR_RACINE . 'lib/');
define('_DIR_OPENID_LIB', _DIR_LIB . 'php-openid-2.1.2/');
 
// gebruik (dit is wat ingewikkelder!)
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);
	// ...
}

Auteur hanjo Gepubliceerd op:

Vertalingen: English, français, Nederlands