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/metiers/plugins-dist/mots/base/ |
<?php /***************************************************************************\ * SPIP, Système de publication pour l'internet * * * * Copyright © avec tendresse depuis 2001 * * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribué sous licence GNU/GPL. * \***************************************************************************/ /** * Déclarations relatives à la base de données * * @package SPIP\Mots\Pipelines **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * Déclarer les interfaces des tables mots et groupes de mots pour le compilateur * * @pipeline declarer_tables_interfaces * @param array $interfaces * Déclarations d'interface pour le compilateur * @return array * Déclarations d'interface pour le compilateur */ function mots_declarer_tables_interfaces($interfaces) { $interfaces['table_des_tables']['mots'] = 'mots'; $interfaces['table_des_tables']['groupes_mots'] = 'groupes_mots'; $interfaces['exceptions_des_tables']['mots']['titre_mot'] = 'titre'; $interfaces['table_des_traitements']['TYPE']['mots'] = _TRAITEMENT_TYPO_SANS_NUMERO; $interfaces['exceptions_des_jointures']['titre_mot'] = ['spip_mots', 'titre']; $interfaces['exceptions_des_jointures']['type_mot'] = ['spip_mots', 'type']; $interfaces['exceptions_des_jointures']['id_mot_syndic'] = ['spip_mots_liens', 'id_mot']; $interfaces['exceptions_des_jointures']['titre_mot_syndic'] = ['spip_mots', 'titre']; $interfaces['exceptions_des_jointures']['type_mot_syndic'] = ['spip_mots', 'type']; $interfaces['exceptions_des_jointures']['spip_articles']['id_groupe'] = ['spip_mots', 'id_groupe']; $interfaces['exceptions_des_jointures']['spip_rubriques']['id_groupe'] = ['spip_mots', 'id_groupe']; $interfaces['exceptions_des_jointures']['spip_syndic']['id_groupe'] = ['spip_mots', 'id_groupe']; return $interfaces; } /** * Déclarer les tables auxiliaires des mots * * @pipeline declarer_tables_auxiliaires * @param array $tables_auxiliaires * Description des tables * @return array * Description complétée des tables */ function mots_declarer_tables_auxiliaires($tables_auxiliaires) { $spip_mots_liens = [ 'id_mot' => "bigint(21) DEFAULT '0' NOT NULL", 'id_objet' => "bigint(21) DEFAULT '0' NOT NULL", 'objet' => "VARCHAR (25) DEFAULT '' NOT NULL" ]; $spip_mots_liens_key = [ 'PRIMARY KEY' => 'id_mot,id_objet,objet', 'KEY id_mot' => 'id_mot', 'KEY id_objet' => 'id_objet', 'KEY objet' => 'objet', ]; $tables_auxiliaires['spip_mots_liens'] = ['field' => &$spip_mots_liens, 'key' => &$spip_mots_liens_key]; return $tables_auxiliaires; } /** * Déclarer les objets éditoriaux des mots et groupes de mots * * @pipeline declarer_tables_objets_sql * @param array $tables * Description des tables * @return array * Description complétée des tables */ function mots_declarer_tables_objets_sql($tables) { $tables['spip_mots'] = [ 'type' => 'mot', 'type_surnoms' => ['mot-cle'], // pour les icones... 'texte_retour' => 'icone_retour', 'texte_objets' => 'public:mots_clefs', 'texte_objet' => 'public:mots_clef', 'texte_modifier' => 'mots:icone_modifier_mot', 'texte_ajouter' => 'titre_ajouter_un_mot', // # A deplacer 'texte_creer' => 'titre_ajouter_un_mot', 'texte_logo_objet' => 'mots:logo_mot_cle', 'texte_creer_associer' => 'mots:creer_et_associer_un_mot', 'info_aucun_objet' => 'mots:info_aucun_mot_cle', 'info_1_objet' => 'info_1_mot_cle', 'info_nb_objets' => 'info_nb_mots_cles', 'titre' => "titre, '' AS lang", 'date' => 'date', 'principale' => 'oui', 'field' => [ 'id_mot' => 'bigint(21) NOT NULL', 'titre' => "text DEFAULT '' NOT NULL", 'descriptif' => "text DEFAULT '' NOT NULL", 'texte' => "longtext DEFAULT '' NOT NULL", 'id_groupe' => 'bigint(21) DEFAULT 0 NOT NULL', 'type' => "text DEFAULT '' NOT NULL", 'maj' => 'TIMESTAMP' ], 'key' => [ 'PRIMARY KEY' => 'id_mot', 'KEY id_groupe' => 'id_groupe' ], 'parent' => ['type' => 'groupe_mot', 'champ' => 'id_groupe'], 'rechercher_champs' => [ 'titre' => 8, 'texte' => 1, 'descriptif' => 5 ], 'tables_jointures' => [#'mots_liens' // declare generiquement ci dessous ], 'champs_editables' => [ 'titre', 'descriptif', 'texte', 'id_groupe', ], 'champs_versionnes' => [ 'titre', 'descriptif', 'texte', 'id_groupe' ], ]; $tables['spip_groupes_mots'] = [ 'table_objet_surnoms' => [ 'groupemot', 'groupe_mots' /*hum*/, 'groupe_mot' /* hum*/, 'groupe' /*hum (EXPOSE)*/ ], 'type' => 'groupe_mots', 'type_surnoms' => ['groupes_mot', 'groupemot', 'groupe_mot'], 'texte_retour' => 'icone_retour', 'texte_objets' => 'mots:titre_groupes_mots', 'texte_objet' => 'mots:titre_groupe_mots', 'texte_modifier' => 'mots:icone_modif_groupe_mots', 'texte_creer' => 'mots:icone_creation_groupe_mots', 'texte_logo_objet' => 'mots:logo_groupe', 'info_aucun_objet' => 'mots:info_aucun_groupemots', 'info_1_objet' => 'mots:info_1_groupemots', 'info_nb_objets' => 'mots:info_nb_groupemots', 'titre' => "titre, '' AS lang", 'principale' => 'oui', 'page' => '', // pas de page publique pour les groupes 'field' => [ 'id_groupe' => 'bigint(21) NOT NULL', 'titre' => "text DEFAULT '' NOT NULL", 'descriptif' => "text DEFAULT '' NOT NULL", 'texte' => "longtext DEFAULT '' NOT NULL", 'unseul' => "varchar(3) DEFAULT '' NOT NULL", 'obligatoire' => "varchar(3) DEFAULT '' NOT NULL", 'tables_liees' => "text DEFAULT '' NOT NULL", 'minirezo' => "varchar(3) DEFAULT '' NOT NULL", 'comite' => "varchar(3) DEFAULT '' NOT NULL", 'forum' => "varchar(3) DEFAULT '' NOT NULL", 'maj' => 'TIMESTAMP' ], 'key' => [ 'PRIMARY KEY' => 'id_groupe' ], 'rechercher_champs' => [ 'titre' => 8, 'texte' => 1, 'descriptif' => 5 ], 'tables_jointures' => [ 'mots' ], 'champs_editables' => [ 'titre', 'descriptif', 'texte', 'tables_liees', 'obligatoire', 'unseul', 'comite', 'forum', 'minirezo', ], 'champs_versionnes' => [ 'titre', 'descriptif', 'texte', 'unseul', 'obligatoire', 'tables_liees', 'minirezo', 'forum', 'comite', ], ]; // jointures sur les mots pour tous les objets $tables[]['tables_jointures'][] = 'mots_liens'; $tables[]['tables_jointures'][] = 'mots'; // cas particulier des auteurs et mots : declarer explicitement mots_liens comme jointure privilegiee // cf https://core.spip.net/issues/2329 $tables['spip_auteurs']['tables_jointures'][] = 'mots_liens'; $tables['spip_auteurs']['tables_jointures'][] = 'mots'; $tables['spip_mots']['tables_jointures'][] = 'mots_liens'; $tables['spip_mots']['tables_jointures'][] = 'mots'; // recherche jointe sur les mots pour tous les objets $tables[]['rechercher_jointures']['mot'] = ['titre' => 3]; // versionner les jointures pour tous les objets $tables[]['champs_versionnes'][] = 'jointure_mots'; return $tables; }