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).
<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):
<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:
$tjp = find_in_path('lib/tjpzoom/tjpzoom.js');
De plugin «Open ID» gebruikt ook een externe bibliotheek. Deze wordt als volgt gedownload:
<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