Programmer avec SPIP 3.0
Documentation technique sur SPIP 3.0

> > > Installer des librairies externes

Installer des librairies externes

Les plugins peuvent aussi demander à télécharger des librairies externes dont ils dépendent. Cela nécessite plusieurs choses : une déclaration spécifique dans le fichier plugin.xml, et la présence d’un répertoire /lib accessible en écriture à la racine de SPIP dans lequel sera téléchargée la librairie (ou mise manuellement).

  1. <necessite id="lib:nom" src="adresse du fichier zip" />
  • nom indique le nom du dossier décompressé du zip
  • src est l’adresse de l’archive de la librairie, au format .zip

Exemple

Un plugin « loupe photo » utilise une librairie javascript qu’il installe en tant que librairie (fournie en dehors du plugin donc) de cette façon :

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

Dans le plugin, il retrouve le nom des fichiers qu’il utilise comme ceci :

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

Le plugin « Open ID » utilise aussi une librairie externe au plugin. Il la télécharge de la même façon :

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

Et l’utilise ainsi :

  1. // options
  2. if (!defined('_DIR_LIB')) define('_DIR_LIB', _DIR_RACINE . 'lib/');
  3. define('_DIR_OPENID_LIB', _DIR_LIB . 'php-openid-2.1.2/');
  4.  
  5. // utilisation (c'est plus complexe !)
  6. function init_auth_openid() {
  7. // ...
  8. $cwd = getcwd();
  9. chdir(realpath(_DIR_OPENID_LIB));
  10. require_once "Auth/OpenID/Consumer.php";
  11. require_once "Auth/OpenID/FileStore.php";
  12. require_once "Auth/OpenID/SReg.php";
  13. chdir($cwd);
  14. // ...
  15. }

Télécharger