source: spip-zone/_plugins_/identifiants/trunk/base/identifiants.php @ 93843

Last change on this file since 93843 was 93843, checked in by tcharlss@…, 4 years ago

Premier jet d'un petit plugin expérimental pour ajouter des identifiants aux objets. Les identifiants sont stockés dans une table de liens spip_identifiants. La balise #IDENTIFIANT retourne en priorité celui de la table si la colonne existe, sinon la valeur dans la table des identifiants. Il faut faire une jointure explicite sur la table des identifiants : <BOUCLE_rub(RUBRIQUES identifiants){identifiant=x}>. TODO : ajouter des autorisations afin que seuls les admins puissent gérer les identifiants, forcer la jointure partout pour ne pas avoir à mettre la jointure explicite. Et sans doute d'autres trucs.

File size: 1.8 KB
Line 
1<?php
2/**
3 * Déclarations relatives à la base de données
4 *
5 * @plugin     Identifiants
6 * @copyright  2015
7 * @author     C.R
8 * @licence    GNU/GPL
9 * @package    SPIP\Identifiants\Pipelines
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14
15/**
16 * Déclaration des alias de tables et filtres automatiques de champs
17 *
18 * @pipeline declarer_tables_interfaces
19 * @param array $interfaces
20 *     Déclarations d'interface pour le compilateur
21 * @return array
22 *     Déclarations d'interface pour le compilateur
23 */
24function identifiants_declarer_tables_interfaces($interfaces) {
25
26        $interfaces['table_des_tables']['identifiants'] = 'identifiants';
27
28        return $interfaces;
29}
30
31
32/**
33 * Déclaration des tables secondaires (liaisons)
34 *
35 * @pipeline declarer_tables_auxiliaires
36 * @param array $tables
37 *     Description des tables
38 * @return array
39 *     Description complétée des tables
40 */
41function identifiants_declarer_tables_auxiliaires($tables) {
42
43        // PRIX
44        $tables['spip_identifiants'] = array(
45                'field'=> array(
46                        "identifiant"   => "VARCHAR (255) DEFAULT '' NOT NULL",
47                        "objet"         => "VARCHAR (25) DEFAULT '' NOT NULL",
48                        "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
49                        "maj"           => "TIMESTAMP"
50                ),
51                'key' => array(
52                        "PRIMARY KEY"       => "identifiant",
53                        "KEY identifiant"   => "identifiant",
54                        "KEY objet"         => "objet",
55                        "KEY id_objet"      => "id_objet",
56                )
57        );
58
59        return $tables;
60}
61
62
63/**
64 * Déclaration des tables des objets éditoriaux
65 *
66 * @pipeline declarer_tables_objets_sql
67 * @param array $tables
68 *     Description des tables
69 * @return array
70 *     Description complétée des tables
71 */
72function gis_declarer_tables_objets_sql($tables){
73
74        // jointure sur spip_identifiants pour tous les objets
75        $tables[]['tables_jointures'][]= 'identifiants';
76
77        return $tables;
78}
79
80
81?>
Note: See TracBrowser for help on using the repository browser.