Package Plugins

Fichiers du package

FichierDescription
activer_plugins.php

Gestion de l'action activer_plugins

afficher_plugin.php

Fonctions pour l'affichage des informations de plugins

desinstaller_plugin.php

Gestion de l'action desinstaller_plugin

get_infos.php

Obtention des description des plugins locaux

infos_plugin.php

Calculs des informations contenues dans un plugin.xml

installer.php

Gestion de l'installation des plugins

plugin.php

Gestion de l'activation des plugins

Proposer une amélioration

Liste des constantes

Liste des fonctions

Vérifie les droits et met à jour les méta avant de lancer l'activation des plugins

void action_activer_plugins_dist( )

Retour

  • void

Package

Proposer une amélioration

L'argument attendu est le préfixe du plugin à désinstaller.

void action_desinstaller_plugin_dist( )

Retour

  • void

Variables globales

  • array visiteur_session

Package

Proposer une amélioration
boolean actualise_plugins_actifs( boolean $pipe_recherche = false )

Paramètres

  1. boolean $pipe_recherche = false

    ?

Retour

  • boolean

    true si il y a eu des modifications sur la liste des plugins actifs, false sinon

Package

Proposer une amélioration
void affiche_bloc_plugin( $plug_file , $info , $dir_plugins = null )

Paramètres

  1. $plug_file
  2. $info
  3. $dir_plugins = null

Package

Proposer une amélioration
void ecrire_fichier_php( string $nom , string $contenu , string $comment = '' )

Paramètres

  1. string $nom

    Chemin du fichier

  2. string $contenu

    Contenu du fichier (sans les balises ouvrantes et fermantes de PHP)

  3. string $comment = ''

    Commentaire : code écrit en tout début de fichier, après la balise PHP ouvrante

Package

Proposer une amélioration
boolean ecrire_plugin_actifs( string | array<mixed,string> $plugin , boolean $pipe_recherche = false , string $operation = 'raz' )

Paramètres

  1. string | array<mixed,string> $plugin

    Plugin ou plugins concernés (leur chemin depuis le répertoire plugins)

  2. boolean $pipe_recherche = false

    ?

  3. string $operation = 'raz'
    • raz : recalcule tout
    • ajoute : ajoute le plugin indiqué à la liste des plugins actifs
    • enleve : enleve le plugin indiqué de la liste des plugins actifs
    • force : ?

Retour

  • boolean

    true si il y a eu des modifications sur la liste des plugins actifs, false sinon

Package

Note

  • Les ecrire_meta() doivent en principe aussi initialiser la valeur a vide si elle n'existe pas risque de pb en php5 a cause du typage ou de null (verifier dans la doc php)
Proposer une amélioration
void enregistre_modif_plugin( )

Retour

  • void

Variables globales

  • array $GLOBALS ['visiteur_session']
  • array $GLOBALS ['meta']

Package

Proposer une amélioration
array fast_find_plugin_dirs( string $dir , integer $max_prof = 100 )

Paramètres

  1. string $dir

    Chemin du répertoire dont on souhaite retourner les sous répertoires

  2. integer $max_prof = 100

    Profondeur maximale des sous répertoires

Retour

  • array

    Liste complète des répeertoires

Utilisé par

Package

Proposer une amélioration
void formater_credits( $infos , $sep = ', ' )

Paramètres

  1. $infos
  2. $sep = ', '

Package

Proposer une amélioration

Ajoute le clés 'path' (= dir)

array info_plugin_normalise_chemin( array $chemins )

Paramètres

  1. array $chemins

    Liste des chemins trouvés pour le plugin

Retour

  • array

    Liste des chemins modifiés.

Package

Proposer une amélioration

Ajoute les clés

  • 'nom' (= id)
  • 'compatibilite' (= version)
array info_plugin_normalise_necessite( array $necessite )

Paramètres

  1. array $necessite

    Liste des necessite trouvés pour le plugin

Retour

  • array

    Liste des necessite modifiés.

Package

Note

  • Un attribut de nom "id" à une signification particulière en XML qui ne correspond pas à l'utilissation qu'en font les plugin.xml.
    Pour éviter de complexifier la lecture de paquet.xml qui n'est pour rien dans cette bévue, on doublonne l'information sous les deux index "nom" et "id" dans l'arbre de syntaxe abstraite pour compatibilité, mais seul le premier est disponible quand on lit un paquet.xml, "id" devant être considéré comme obsolète.
Proposer une amélioration

Ajoute la cle 'nom' (= id)

array info_plugin_normalise_procure( array $procure )

Paramètres

  1. array $procure

    Liste des procure trouvés pour le plugin

Retour

  • array

    Liste des procure modifiés.

Package

Proposer une amélioration

Ajoute les clés

  • 'nom' (= id)
  • 'compatibilite' (= version)
array info_plugin_normalise_utilise( array $utilise )

Paramètres

  1. array $utilise

    Liste des utilise trouvés pour le plugin

Retour

  • array

    Liste des utilise modifiés.

Package

Proposer une amélioration

Vérifie le ou les chemins relatifs transmis pour vérifier qu'ils contiennent un plugin.xml ou un paquet.xml. Les chemins valides sont retournés.

string | array<mixed,string> is_plugin_dir( string | array<mixed,string> $dir , string | null $dir_plugins = null )

Paramètres

  1. string | array<mixed,string> $dir

    Chemin (relatif à $dir_plugins), ou liste de chemins à tester

  2. string | null $dir_plugins = null
    • string : Chemin de répertoire (relatif à la _DIR_RACINE), départ des chemin(s) à tester
    • null (par défaut) : utilise le chemin _DIR_PLUGINS

Retour

  • string | array<mixed,string>
    • string : Le chemin accepté (c'était un plugin)
    • '' : ce n'était pas un chemin valide
    • array : Ensemble des chemins acceptés (si $dir était array)

Package

Proposer une amélioration

Sélectionne au passage ceux qui sont dans $dir_plugins uniquement si valeur non vide

array liste_chemin_plugin( array $liste , string $dir_plugins = _DIR_PLUGINS )

Paramètres

  1. array $liste
  2. string $dir_plugins = _DIR_PLUGINS

Retour

  • array

Package

Proposer une amélioration
array liste_chemin_plugin_actifs( string $dir_plugins = _DIR_PLUGINS )

Paramètres

  1. string $dir_plugins = _DIR_PLUGINS

    Chemin du répertoire de plugins

Retour

  • array

Package

Proposer une amélioration

Retourne la meta plugin désérialisée. Chaque élément du tableau est lui-même un tableau contenant les détails du plugin en question : répertoire et version.

array liste_plugin_actifs( )

Retour

  • array

    Tableau des plugins actifs

Package

Note

  • Si le contenu de la meta n’est pas un tableau, cette fonction transforme l’ancien format en tableau sérialisé pour être conforme au nouveau fonctionnement (SPIP >= 1.9.2)
Proposer une amélioration

Lecture des sous repertoire plugin existants

array liste_plugin_files( string | null $dir_plugins = null )

Paramètres

  1. string | null $dir_plugins = null
    • string : Chemin (relatif à la racine du site) du répertoire à analyser.
    • null : utilise le chemin _DIR_PLUGINS.

Retour

  • array

Exemples

    • liste_plugin_files()
    • liste_plugin_files(_DIR_PLUGINS_DIST)
    • liste_plugin_files(_DIR_PLUGINS_SUPPL)

Package

Proposer une amélioration

Complète la globale spip_pipeline des fonctions que doit traverser un pipeline, et la globale spip_matrice des fichiers à charger qui contiennent ces fonctions.

Retourne aussi pour certaines balises présentes dans les paquet.xml (script, style, genie), un code PHP à insérer au début de la chaîne du ou des pipelines associés à cette balise (insert_head, insert_head_css, taches_generales_cron, ...). Ce sont des écritures raccourcies pour des usages fréquents de ces pipelines.

array pipeline_matrice_precompile( array $plugin_valides , array $ordre , string $pipe_recherche )

Paramètres

  1. array $plugin_valides

    Couples (prefixe => description) des plugins qui seront actifs

  2. array $ordre

    Couples (prefixe => infos complètes) des plugins qui seront actifs, dans l'ordre de leurs dépendances

  3. string $pipe_recherche

Retour

  • array

    Couples (nom du pipeline => Code PHP à insérer au début du pipeline)

Package

Proposer une amélioration

Crée le fichier d'exécution des pipelines dont le chemin est défini par _CACHE_PIPELINES

La liste des pipelines est définie par la globale spip_pipeline qui a été remplie soit avec les fichiers d'options, soit avec des descriptions de plugins (plugin.xml ou paquet.xml) dont celui de SPIP lui-même.

Les fichiers à charger pour accéder aux fonctions qui doivent traverser un pipeline se trouve dans la globale spip_matrice.

void pipeline_precompile( array $prepend_code = array() )

Paramètres

  1. array $prepend_code = array()

    Code PHP à insérer avant le passage dans la chaîne des fonctions d'un pipeline Couples 'Nom du pipeline' => Code PHP à insérer

Package

Proposer une amélioration
void plugin_bouton_config( $nom , $infos , $dir )

Paramètres

  1. $nom
  2. $infos
  3. $dir

Package

Proposer une amélioration
void plugin_checkbox( $id_input , $file , $actif )

Paramètres

  1. $id_input
  2. $file
  3. $actif

Package

Proposer une amélioration
void plugin_controler_lib( $lib , $url )

Paramètres

  1. $lib
  2. $url

Utilisé par

Package

Proposer une amélioration
\string. plugin_controler_necessite( $liste , $nom , $intervalle , $balise )

Paramètres

  1. $liste

    Liste de description des plugins

  2. $nom

    Le plugin donc on cherche la presence

  3. $intervalle

    L'éventuelle intervalle de compatibilité de la dépendance. ex: [1.1.0;]

  4. $balise

    Permet de définir si on teste un utilise ou un nécessite

Retour

  • \string.

    Vide si ok, Message d'erreur lorsque la dépendance est absente.

Utilisé par

Package

Proposer une amélioration
void plugin_desintalle( $plug_file , $nom , $dir_plugins = null )

Paramètres

  1. $plug_file
  2. $nom
  3. $dir_plugins = null

Package

Proposer une amélioration
string | array plugin_donne_erreurs( boolean $raw = false , boolean $raz = true )

Paramètres

  1. boolean $raw = false
    • true : pour obtenir le tableau brut des erreurs
    • false : Code HTML
  2. boolean $raz = true
    • true pour effacer la meta qui stocke les erreurs.

Retour

  • string | array
    • Liste des erreurs ou code HTML des erreurs

Package

Proposer une amélioration
boolean plugin_est_installe( string $plug_path )

Paramètres

  1. string $plug_path

    Chemin du plugin

Retour

  • boolean

    true si le plugin est actif, false sinon

Package

Proposer une amélioration

Si l'état n'existe pas, prendra par défaut 'developpement'

string plugin_etat_en_clair( string $etat )

Paramètres

  1. string $etat

    Le type d'état (stable, test, ...)

Retour

  • string

    Traduction de l'état dans la langue en cours

Package

Proposer une amélioration

les balises <procure> sont considerées comme des plugins proposés, mais surchargeables (on peut activer un plugin qui procure ça pour l'améliorer, donc avec le même prefixe, qui sera pris en compte si il a une version plus grande)

void plugin_fixer_procure( array & $liste , array & $infos )

Paramètres

  1. array & $liste
  2. array & $infos

Utilisé par

Package

Proposer une amélioration

Elle ajoute ensuite les plugins qui ont été installés dans la valeur "plugin_installes" de la table meta. Cette meta ne contient que les noms des plugins qui ont une version_base.

void plugin_installes_meta( )

Package

Proposer une amélioration
string plugin_message_incompatibilite( string $intervalle , string $version , string $nom , string $balise )

Paramètres

  1. string $intervalle

    L'éventuelle intervalle de compatibilité de la dépendance. ex: [1.1.0;]

  2. string $version

    La version en cours active pour le plugin demandé (ou php ou extension php demandée)

  3. string $nom

    Le plugin (ou php ou extension php) qui est absent

  4. string $balise

    Le type de balise utilisé (necessite ou utilise)

Retour

  • string

    Le message d'erreur.

Package

Proposer une amélioration

Et vérifie que chaque dépendance est présente dans la liste de plugins donnée

array plugin_necessite( array $n , array $liste , $balise = 'necessite' )

Paramètres

  1. array $n

    Tableau de dépendances dont on souhaite vérifier leur présence

  2. array $liste

    Tableau des plugins présents

  3. $balise = 'necessite'

Retour

  • array

    Tableau des messages d'erreurs reçus. Il sera vide si tout va bien.

Utilisé par

Package

Proposer une amélioration
void plugin_nom( $info , $dir_plugins , $plug_file )

Paramètres

  1. $info
  2. $dir_plugins
  3. $plug_file

Package

Proposer une amélioration

Génère et retourne un code php (pour enregistrement dans un fichier de cache) permettant d'obtenir la liste des entrées de menus, ou des onglets de l'espace privé.

Définit également une constante (UPDATED$nom et _UPDATEDmd5$nom), signalant une modification de ces menus

string plugin_ongletbouton( string $nom , array $val )

Paramètres

  1. string $nom

    Nom du type de menu Exemple: boutons_plugins, onglets_plugins

  2. array $val

    Liste des entrées de ce menu

Retour

  • string

    Code php

Package

Proposer une amélioration
void plugin_propre( $texte , $module = '' )

Paramètres

  1. $texte
  2. $module = ''

Package

Proposer une amélioration
void plugin_resume( $info , $dir_plugins , $plug_file , $url_page )

Paramètres

  1. $info
  2. $dir_plugins
  3. $plug_file
  4. $url_page

Package

Proposer une amélioration

Pour tester "utilise", il faut connaître tous les plugins qui seront forcément absents à la fin, car absent de la liste des plugins actifs.

Il faut donc construire une liste ordonnée.

Cette fonction détecte des dépendances circulaires, avec un doute sur un "utilise" qu'on peut ignorer. Mais ne pas insérer silencieusement et risquer un bug sournois latent

array plugin_trier( array $infos , array $liste_non_classee )

Paramètres

  1. array $infos

    Répertoire (plugins, plugins-dist, ...) => Couples (prefixes => infos completes) des plugins qu'ils contiennent

  2. array $liste_non_classee

    Couples (prefixe => description) des plugins qu'on souhaite utiliser

Retour

  • array

    Tableau de 3 éléments :

    • $liste : couples (prefixes => description) des plugins valides
    • $ordre : couples (prefixes => infos completes) des plugins triés (les plugins nécessités avant les plugins qui les utilisent)

    • $liste_non_classee : couples (prefixes => description) des plugins qui n'ont pas satisfait leurs dépendances

Package

Proposer une amélioration
string | array plugin_valide_resume( array & $liste , string $plug , array $infos , string $dir_type )

Paramètres

  1. array & $liste
  2. string $plug
  3. array $infos
  4. string $dir_type

Retour

  • string | array

    string prefixe dans $liste si on a accepte le plugin array description short si on ne le retient pas (pour memorisation dans une table des erreurs)

Utilisé par

Package

Proposer une amélioration

Cette fonction peut être volontairement trompée (phase de développement) : voir commentaire infra sur l'utilisation de la constante _DEV_VERSION_SPIP_COMPAT

boolean plugin_version_compatible( string $intervalle , string $version , string $avec_quoi = '' )

Paramètres

  1. string $intervalle

    Un intervalle entre 2 versions. ex: [2.0.0-dev;2.1.*]

  2. string $version

    Un numéro de version. ex: 3.1.99]

  3. string $avec_quoi = ''

    Ce avec quoi est testée la compatibilité. par défaut ('') avec un plugin (cas des 'necessite'), parfois ('spip') avec SPIP.

Retour

  • boolean

    True si dans l'intervalle, false sinon.

Package

Proposer une amélioration
void plugins_afficher_plugin_dist( $url_page , $plug_file , $checked , $actif , $expose = false , $class_li = "item" , $dir_plugins = _DIR_PLUGINS )

Paramètres

  1. $url_page
  2. $plug_file
  3. $checked
  4. $actif
  5. $expose = false
  6. $class_li = "item"
  7. $dir_plugins = _DIR_PLUGINS

Package

Proposer une amélioration

Les fichiers d'options peuvent déclarer des pipelines ou de nouveaux chemins.

La connaissance chemins peut être nécessaire pour la construction du fichier d'exécution des pipelines.

void plugins_amorcer_plugins_actifs( )

Package

Proposer une amélioration
void plugins_erreurs( array $liste_non_classee , array $liste , array $infos , $msg = array() )

Paramètres

  1. array $liste_non_classee

    Couples (prefixe => description) des plugins en erreur

  2. array $liste

    Couples (prefixe => description) des plugins qu'on souhaite utiliser

  3. array $infos

    Répertoire (plugins, plugins-dist, ...) => Couples (prefixes => infos completes) des plugins qu'ils contiennent

  4. $msg = array()

Package

Proposer une amélioration
array plugins_get_infos_dist( string | array | boolean $plug = false , boolean $reload = false , string $dir = _DIR_PLUGINS , boolean $clean_old = false )

Paramètres

  1. string | array | boolean $plug = false
  2. boolean $reload = false
  3. string $dir = _DIR_PLUGINS
  4. boolean $clean_old = false

Retour

  • array

Package

Staticvar

  • string $filecache
  • array $cache
Proposer une amélioration
void plugins_get_infos_un( $plug , $reload , $dir , & $cache )

Paramètres

  1. $plug
  2. $reload
  3. $dir
  4. & $cache

Package

Proposer une amélioration
void plugins_infos_plugin( $desc , $plug = '' , $dir_plugins = _DIR_PLUGINS )

Paramètres

  1. $desc
  2. $plug = ''
  3. $dir_plugins = _DIR_PLUGINS

Package

Proposer une amélioration

Permet d'installer ou retirer un plugin en incluant les fichiers associés et en lançant les fonctions spécifiques.

  1. d'abord sur l'argument test,
  2. ensuite sur l'action demandée si le test repond false
  3. enfin sur l'argument test à nouveau.

L'index install_test du tableau résultat est un tableau formé :

  • du résultat 3
  • des echo de l'étape 2
array | boolean plugins_installer_dist( string $plug , string $action , string $dir_type = '_DIR_PLUGINS' )

Paramètres

  1. string $plug

    Nom du plugin

  2. string $action

    Nom de l'action (install|uninstall)

  3. string $dir_type = '_DIR_PLUGINS'

    Répertoire du plugin

Retour

  • array | boolean
    • False si le plugin n'a pas d'installation,
    • true si déjà installé,
    • le tableau de get_infos sinon

Package

Note

  • La fonction quitte (retourne false) si le plugin n'a pas de version d'installation définie (information version_base dans le paquet.xml)
Proposer une amélioration

Le fichier créé, une fois exécuté permet à SPIP de rechercher des fichiers dans les répertoires des plugins concernés.

void plugins_precompile_chemin( array $plugin_valides , array $ordre )

Paramètres

  1. array $plugin_valides

    Couples (prefixe => description) des plugins qui seront actifs

  2. array $ordre

    Couples (prefixe => infos complètes) des plugins qui seront actifs, dans l'ordre de leurs dépendances

Package

Proposer une amélioration

Les onglets et menus déclarés dans le fichier paquet.xml des plugins sont également ajoutés au fichier de fonctions créé.

void plugins_precompile_xxxtions( array $plugin_valides , array $ordre )

Paramètres

  1. array $plugin_valides

    Couples (prefixe => description) des plugins qui seront actifs

  2. array $ordre

    Couples (prefixe => infos complètes) des plugins qui seront actifs, dans l'ordre de leurs dépendances

Package

Proposer une amélioration
void spip_plugin_install( $action , $infos , $version_cible )

Paramètres

  1. $action
  2. $infos
  3. $version_cible

Package

Proposer une amélioration

Cette fonction est identique (arguments et retours) a la fonction PHP version_compare() qu'elle appelle. Cependant, cette fonction reformate les numeros de versions pour ameliorer certains usages dans SPIP ou bugs dans PHP. On permet ainsi de comparer 3.0.4 à 3.0.* par exemple.

integer | boolean spip_version_compare( string $v1 , string $v2 , string $op = null )

Paramètres

  1. string $v1

    Numero de version servant de base a la comparaison. Ce numero ne peut pas comporter d'etoile.

  2. string $v2

    Numero de version a comparer. Il peut posseder des etoiles tel que 3.0.*

  3. string $op = null

    Un operateur eventuel (<, >, <=, >=, =, == ...)

Retour

  • integer | boolean

    Sans operateur : int. -1 pour inferieur, 0 pour egal, 1 pour superieur Avec operateur : bool.

Package

Proposer une amélioration