Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/ecole/plugins-dist/svp/base/ |
<?php /** * Déclarations relatives à la base de données * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Pipelines **/ /** * Déclarer les objets éditoriaux de SVP * * - Dépot : table spip_depots * - Plugin : table spip_plugins * - Paquet : table spip_paquets * * @pipeline declarer_tables_objets_sql * @param array $tables * Description des tables * @return array * Description complétée des tables */ function svp_declarer_tables_objets_sql($tables) { include_spip('inc/config'); // Table des depots $tables['spip_depots'] = [ // Base de donnees 'table_objet' => 'depots', 'type' => 'depot', 'field' => [ 'id_depot' => 'bigint(21) NOT NULL', 'titre' => "text DEFAULT '' NOT NULL", 'descriptif' => "text DEFAULT '' NOT NULL", 'type' => "varchar(10) DEFAULT '' NOT NULL", 'url_serveur' => "varchar(255) DEFAULT '' NOT NULL", // url du serveur svn ou git 'url_brouteur' => "varchar(255) DEFAULT '' NOT NULL", // url de l'interface de gestion du repository (trac, redmine...) 'url_archives' => "varchar(255) DEFAULT '' NOT NULL", // url de base des zips 'url_commits' => "varchar(255) DEFAULT '' NOT NULL", // url du flux rss des commits du serveur svn ou git 'xml_paquets' => "varchar(255) DEFAULT '' NOT NULL", // chemin complet du fichier xml du depot 'sha_paquets' => "varchar(40) DEFAULT '' NOT NULL", 'nbr_paquets' => 'integer DEFAULT 0 NOT NULL', 'nbr_plugins' => 'integer DEFAULT 0 NOT NULL', 'nbr_autres' => 'integer DEFAULT 0 NOT NULL', // autres contributions, non plugin 'maj' => 'timestamp' ], 'key' => [ 'PRIMARY KEY' => 'id_depot' ], 'tables_jointures' => ['id_plugin' => 'depots_plugins'], 'principale' => 'oui', // Titre, date et gestion du statut 'titre' => "titre, '' AS lang", // Edition, affichage et recherche 'page' => 'depot', 'url_voir' => 'depot', 'url_edit' => 'depot_edit', 'editable' => lire_config('svp/depot_editable', 'non'), 'champs_editables' => ['titre', 'descriptif'], 'icone_objet' => 'depot', // Textes standard 'texte_retour' => 'icone_retour', 'texte_modifier' => 'svp:bouton_modifier_depot', 'texte_creer' => '', 'texte_creer_associer' => '', 'texte_signale_edition' => '', 'texte_objet' => 'svp:titre_depot', 'texte_objets' => 'svp:titre_depots', 'info_aucun_objet' => 'svp:info_aucun_depot', 'info_1_objet' => 'svp:info_1_depot', 'info_nb_objets' => 'svp:info_nb_depots', 'texte_logo_objet' => 'svp:titre_logo_depot', ]; // Table des plugins $tables['spip_plugins'] = [ // Base de donnees 'table_objet' => 'plugins', 'type' => 'plugin', 'field' => [ 'id_plugin' => 'bigint(21) NOT NULL', 'prefixe' => "varchar(48) DEFAULT '' NOT NULL", 'nom' => "text DEFAULT '' NOT NULL", 'slogan' => "text DEFAULT '' NOT NULL", 'vmax' => "varchar(24) DEFAULT '' NOT NULL", // version la plus elevee des paquets du plugin 'date_crea' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus ancienne des paquets du plugin 'date_modif' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus recente des paquets du plugin 'compatibilite_spip' => "varchar(24) DEFAULT '' NOT NULL", // union des intervalles des paquets du plugin 'branches_spip' => "varchar(255) DEFAULT '' NOT NULL" ], // union des branches spip supportees par les paquets du plugin 'key' => [ 'PRIMARY KEY' => 'id_plugin', 'KEY prefixe' => 'prefixe' ], 'tables_jointures' => ['id_depot' => 'depots_plugins'], 'principale' => 'oui', // Titre, date et gestion du statut 'titre' => "prefixe AS titre, '' AS lang", // Edition, affichage et recherche 'page' => 'plugin', 'url_voir' => 'plugin', 'editable' => 'non', 'champs_editables' => [], 'rechercher_champs' => ['prefixe' => 8, 'nom' => 8, 'slogan' => 4], 'rechercher_jointures' => ['paquet' => ['auteur' => 8, 'description' => 2]], 'icone_objet' => 'plugin', // Textes standard 'texte_retour' => 'icone_retour', 'texte_modifier' => '', 'texte_creer' => '', 'texte_creer_associer' => '', 'texte_signale_edition' => '', 'texte_objet' => 'svp:titre_plugin', 'texte_objets' => 'svp:titre_plugins', 'info_aucun_objet' => 'svp:info_aucun_plugin', 'info_1_objet' => 'svp:info_1_plugin', 'info_nb_objets' => 'svp:info_nb_plugins', 'texte_logo_objet' => 'svp:titre_logo_plugin', ]; $tables['spip_paquets'] = [ // Base de donnees 'table_objet' => 'paquets', 'type' => 'paquet', 'field' => [ 'id_paquet' => 'bigint(21) NOT NULL', 'id_plugin' => 'bigint(21) NOT NULL', 'prefixe' => "varchar(48) DEFAULT '' NOT NULL", 'logo' => "varchar(255) DEFAULT '' NOT NULL", // chemin du logo depuis la racine du plugin 'version' => "varchar(24) DEFAULT '' NOT NULL", 'version_base' => "varchar(24) DEFAULT '' NOT NULL", 'compatibilite_spip' => "varchar(24) DEFAULT '' NOT NULL", 'branches_spip' => "varchar(255) DEFAULT '' NOT NULL", // branches spip supportees (cf meta) 'description' => "text DEFAULT '' NOT NULL", 'auteur' => "text DEFAULT '' NOT NULL", 'credit' => "text DEFAULT '' NOT NULL", 'licence' => "text DEFAULT '' NOT NULL", 'copyright' => "text DEFAULT '' NOT NULL", 'lien_doc' => "text DEFAULT '' NOT NULL", // lien vers la documentation 'lien_demo' => "text DEFAULT '' NOT NULL", // lien vers le site de demo 'lien_dev' => "text DEFAULT '' NOT NULL", // lien vers le site de dev 'etat' => "varchar(16) DEFAULT '' NOT NULL", 'etatnum' => 'int(1) DEFAULT 0 NOT NULL', // 0 aucune indication - 1 exp - 2 dev - 3 test - 4 stable 'dependances' => "text DEFAULT '' NOT NULL", 'procure' => "text DEFAULT '' NOT NULL", 'date_crea' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", 'date_modif' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", 'id_depot' => 'bigint(21) DEFAULT 0 NOT NULL', // 0 pour un paquet local 'nom_archive' => "VARCHAR(255) DEFAULT '' NOT NULL", // nom du zip du paquet, depuis l'adresse de la zone 'nbo_archive' => 'integer DEFAULT 0 NOT NULL', // taille de l'archive en octets 'maj_archive' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // date de mise a jour de l'archive 'src_archive' => "VARCHAR(255) DEFAULT '' NOT NULL", // source de l'archive sur le depot 'traductions' => "text DEFAULT '' NOT NULL", // tableau serialise par module des langues traduites et de leurs traducteurs 'actif' => "varchar(3) DEFAULT 'non' NOT NULL", // est actif ? oui / non 'installe' => "varchar(3) DEFAULT 'non' NOT NULL", // est desinstallable ? oui / non 'recent' => 'int(2) DEFAULT 0 NOT NULL', // a ete utilise recemment ? > 0 : oui 'maj_version' => "VARCHAR(255) DEFAULT '' NOT NULL", // version superieure existante (mise a jour possible) 'superieur' => "varchar(3) DEFAULT 'non' NOT NULL", // superieur : version plus recente disponible (distant) d'un plugin (actif?) existant 'obsolete' => "varchar(3) DEFAULT 'non' NOT NULL", // obsolete : version plus ancienne (locale) disponible d'un plugin local existant 'attente' => "varchar(3) DEFAULT 'non' NOT NULL", // attente : plugin semi actif (il etait actif, mais il lui manque maintenant une dependance : il reste coche actif jusqu'a resolution ou desactivation manuelle) 'constante' => "VARCHAR(30) DEFAULT '' NOT NULL", // nom de la constante _DIR_(PLUGINS|EXTENSIONS|PLUGINS_SUPP) 'signature' => "VARCHAR(32) DEFAULT '' NOT NULL" ], // hash MD5 d'un paquet 'key' => [ 'PRIMARY KEY' => 'id_paquet', 'KEY id_plugin' => 'id_plugin' ], 'join' => [ 'id_paquet' => 'id_paquet', 'id_plugin' => 'id_plugin' ], 'principale' => 'oui', // Titre, date et gestion du statut 'titre' => "nom_archive AS titre, '' AS lang", // Edition, affichage et recherche 'page' => 'paquet', 'url_voir' => '', 'editable' => 'non', 'champs_editables' => [], 'rechercher_champs' => [], 'rechercher_jointures' => [], 'icone_objet' => 'paquet', // Textes standard 'texte_retour' => '', 'texte_modifier' => '', 'texte_creer' => '', 'texte_creer_associer' => '', 'texte_signale_edition' => '', 'texte_objet' => 'svp:titre_paquet', 'texte_objets' => 'svp:titre_paquets', 'info_aucun_objet' => 'svp:info_aucun_paquet', 'info_1_objet' => 'svp:info_1_paquet', 'info_nb_objets' => 'svp:info_nb_paquets', 'texte_logo_objet' => '', ]; return $tables; } /** * Déclarer les tables de liaisons de SVP * * Déclare la table spip_depots_plugins * * @pipeline declarer_tables_auxiliaires * @param array $tables_auxiliaires * Description des tables auxiliaires * @return array * Description complétée des tables auxiliaires */ function svp_declarer_tables_auxiliaires($tables_auxiliaires) { // Tables de liens entre plugins et depots : spip_depots_plugins $spip_depots_plugins = [ 'id_depot' => 'bigint(21) NOT NULL', 'id_plugin' => 'bigint(21) NOT NULL' ]; $spip_depots_plugins_key = [ 'PRIMARY KEY' => 'id_depot, id_plugin' ]; $tables_auxiliaires['spip_depots_plugins'] = ['field' => &$spip_depots_plugins, 'key' => &$spip_depots_plugins_key]; return $tables_auxiliaires; } /** * Déclare les alias de boucle et traitements automatiques de certaines balises * * @pipeline declarer_tables_interfaces * @param array $interface * Déclarations d'interface pour le compilateur * @return array * Déclarations d'interface pour le compilateur */ function svp_declarer_tables_interfaces($interface) { // Les tables : permet d'appeler une boucle avec le *type* de la table uniquement $interface['table_des_tables']['depots'] = 'depots'; $interface['table_des_tables']['plugins'] = 'plugins'; $interface['table_des_tables']['paquets'] = 'paquets'; $interface['table_des_tables']['depots_plugins'] = 'depots_plugins'; // Les traitements // - table spip_plugins $interface['table_des_traitements']['SLOGAN']['plugins'] = _TRAITEMENT_RACCOURCIS; $interface['table_des_traitements']['VMAX']['plugins'] = 'denormaliser_version(%s)'; // - table spip_paquets $interface['table_des_traitements']['DESCRIPTION']['paquets'] = _TRAITEMENT_RACCOURCIS; $interface['table_des_traitements']['VERSION']['paquets'] = 'denormaliser_version(%s)'; $interface['table_des_traitements']['MAJ_VERSION']['paquets'] = 'denormaliser_version(%s)'; return $interface; }