You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
menus/base/menus_tables.php

133 lines
4.2 KiB
PHP

<?php
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Déclaration des alias de tables et filtres automatiques de champs
*
* @pipeline declarer_tables_interfaces
* @param array $interfaces
* Déclarations d'interface pour le compilateur
* @return array
* Déclarations d'interface pour le compilateur
*/
function menus_declarer_tables_interfaces($interface) {
// 'spip_' dans l'index de $tables_principales
$interface['table_des_tables']['menus'] = 'menus';
$interface['table_des_tables']['menus_entrees'] = 'menus_entrees';
return $interface;
}
/**
* Déclaration des objets éditoriaux
*
* @pipeline declarer_tables_objets_sql
* @param array $tables
* Description des tables
* @return array
* Description complétée des tables
*/
function menus_declarer_tables_objets_sql($tables) {
// Menus
$tables['spip_menus'] = [
'type' => 'menu',
'principale' => 'oui',
'field' => [
'id_menu' => 'bigint(21) NOT NULL',
'id_menus_entree' => "bigint(21) DEFAULT '0' NOT NULL",
'titre' => "text DEFAULT '' NOT NULL",
'identifiant' => "varchar(255) default '' not null",
'css' => "tinytext DEFAULT '' NOT NULL"
],
'key' => [
'PRIMARY KEY' => 'id_menu',
'KEY id_menus_entree' => 'id_menus_entree',
],
'titre' => 'titre AS titre, "" AS lang',
// 'date' => '',
'champs_editables' => ['id_menus_entree', 'titre', 'identifiant', 'css'],
'champs_versionnes' => ['id_menus_entree', 'titre', 'identifiant', 'css'],
'rechercher_champs' => [],
'tables_jointures' => ['spip_menus_liens'],
// chaînes de langue
'texte_modifier' => 'menus:editer_menus_editer',
'texte_creer' => 'menus:editer_menus_nouveau',
'texte_creer_associer' => 'menus:texte_creer_associer_menu',
'texte_ajouter' => 'menus:texte_ajouter_menu',
'texte_objets' => 'menus:editer_menus_titre',
'texte_objet' => 'menus:titre_menu',
'info_aucun_objet' => 'menus:info_aucun_menu',
'info_1_objet' => 'menus:info_1_menu',
'info_nb_objets' => 'menus:info_nb_menus',
];
// Entrées de menus
$tables['spip_menus_entrees'] = [
'type' => 'menus_entree',
'type_surnoms' => ['menu_entree'],
'principale' => 'oui',
'field' => [
'id_menus_entree' => 'bigint(21) NOT NULL',
'id_menu' => "bigint(21) DEFAULT '0' NOT NULL",
'rang' => "smallint DEFAULT '1' NOT NULL",
'type_entree' => "tinytext DEFAULT '' NOT NULL",
'parametres' => "text DEFAULT '' NOT NULL"
],
'key' => [
'PRIMARY KEY' => 'id_menus_entree',
'KEY id_menu' => 'id_menu',
],
// 'titre' => 'titre AS titre, "" AS lang',
// 'date' => '',
'champs_editables' => ['id_menu', 'rang', 'type_entree', 'parametres'],
'champs_versionnes' => ['id_menu', 'rang', 'type_entree', 'parametres'],
'rechercher_champs' => [],
'join' => ['id_menu' => 'id_menu'],
'tables_jointures' => [],
// chaînes de langue
'texte_modifier' => 'menus:editer_menus_entrees_editer',
'texte_creer' => 'menus:editer_menus_entrees_nouveau',
'texte_creer_associer' => 'menus:texte_creer_associer_menu_entree',
'texte_ajouter' => 'menus:texte_ajouter_menu_entree',
'texte_objets' => 'menus:editer_menus_entrees_titre',
'texte_objet' => 'menus:titre_menu_entree',
'info_aucun_objet' => 'menus:info_aucun_menu_entree',
'info_1_objet' => 'menus:info_1_menu_entree',
'info_nb_objets' => 'menus:info_nb_menus_entrees',
];
return $tables;
}
/**
* Déclaration des tables secondaires (liaisons)
*
* @pipeline declarer_tables_auxiliaires
* @param array $tables
* Description des tables
* @return array
* Description complétée des tables
*/
function menus_declarer_tables_auxiliaires($tables) {
$tables['spip_menus_liens'] = [
'field' => [
'id_menu' => 'bigint(21) DEFAULT "0" NOT NULL',
'id_objet' => 'bigint(21) DEFAULT "0" NOT NULL',
'objet' => 'VARCHAR(25) DEFAULT "" NOT NULL',
'vu' => 'VARCHAR(6) DEFAULT "non" NOT NULL',
],
'key' => [
'PRIMARY KEY' => 'id_menu,id_objet,objet',
'KEY id_menu' => 'id_menu',
]
];
return $tables;
}