source: spip-zone/_plugins_/produits/trunk/base/produits.php @ 112839

Last change on this file since 112839 was 112839, checked in by arnaud.berard@…, 2 years ago

Associer les produits a un auteur

  • ajout du formulaire d'association
  • force la jointure et autorise l'utilisation de id_auteur dans les boucle PRODUITS
  • ajoute la liste des produits sur la vue d'un auteur
  • associe l'auteur en cours lors de la création d'un nouveau produit
  • + au passage … correction d'un warning non_numeric value quand le champ taxe est vide (j'ai mis la taxe definie par defaut dans la saisie si elle n'est pas remplie, c'est ptet pas le mieux … j'ai fait au plus simple )

+z

File size: 3.8 KB
Line 
1<?php
2
3/**
4 * Déclarations relatives à la base de données
5 *
6 * @plugin         produits
7 * @copyright  2014
8 * @author         Les Développements Durables, http://www.ldd.fr
9 * @licence        GNU/GPL
10 * @package        SPIP\Produits\Pipelines
11 */
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16/**
17 * Déclaration des alias de tables et filtres automatiques de champs
18 *
19 * @pipeline declarer_tables_interfaces
20 * @param array $interfaces
21 *         Déclarations d'interface pour le compilateur
22 * @return array
23 *         Déclarations d'interface pour le compilateur
24 */
25function produits_declarer_tables_interfaces($interfaces) {
26
27        $interfaces['table_des_tables']['produits'] = 'produits';
28
29        // Champs date sur les tables
30        $interfaces['table_date']['produits'] = 'date';
31
32        // Déclaration du titre
33        $interfaces['table_titre']['produits'] = 'titre, "" as lang';
34        // autoriser l'id_auteur dans les boucles produit
35        $interfaces['jointures']['spip_produits'][] = 'spip_auteurs_liens';
36
37        // pour pouvoir faire une boucle par id_groupe de mot clé
38        $interfaces['exceptions_des_jointures']['spip_produits']['id_groupe'] = array('spip_mots', 'id_groupe');
39
40        return $interfaces;
41}
42
43/**
44 * Déclaration des objets éditoriaux
45 *
46 * @pipeline declarer_tables_objets_sql
47 * @param array $tables
48 *         Description des tables
49 * @return array
50 *         Description complétée des tables
51 */
52function produits_declarer_tables_objets_sql($tables) {
53
54        $tables['spip_produits'] = array(
55                'type' => 'produit',
56                'principale' => 'oui',
57                'field' => array(
58                        'id_produit' => 'bigint(21) NOT NULL',
59                        'id_rubrique' => 'bigint(21) NOT NULL DEFAULT 0',
60                        'id_secteur' => 'bigint(21) NOT NULL DEFAULT 0',
61                        'titre' => 'text NOT NULL',
62                        'reference' => "tinytext NOT NULL DEFAULT ''",
63                        'descriptif' => "text NOT NULL DEFAULT ''",
64                        'texte' => 'longtext NOT NULL',
65                        'prix_ht' => 'decimal(20,6) NOT NULL DEFAULT 0',
66                        'taxe' => 'decimal(4,4) DEFAULT NULL',
67                        'statut' => "varchar(20)  DEFAULT '0' NOT NULL",
68                        'lang' => "VARCHAR(10) NOT NULL DEFAULT ''",
69                        'date' => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
70                        'date_com' => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
71                        'langue_choisie' => "VARCHAR(3) DEFAULT 'non'",
72                        'id_trad' => 'bigint(21) NOT NULL DEFAULT 0',
73                        'immateriel' => 'tinyint(1) NOT NULL DEFAULT 0',
74                        'poids' => 'bigint(21) NOT NULL DEFAULT 0', // poids en g
75                        'largeur' => 'bigint(21) NOT NULL DEFAULT 0', // largeur en cm
76                        'longueur' => 'bigint(21) NOT NULL DEFAULT 0', // longueur en cm
77                        'hauteur' => 'bigint(21) NOT NULL DEFAULT 0', // hauteur en cm
78                        'maj' => 'TIMESTAMP'
79                ),
80                'key' => array(
81                        'PRIMARY KEY' => 'id_produit',
82                        'KEY id_rubrique' => 'id_rubrique',
83                        'KEY id_secteur' => 'id_secteur',
84                        'KEY lang' => 'lang',
85                        'KEY id_trad' => 'id_trad',
86                        'KEY statut' => 'statut',
87                ),
88                'titre' => 'titre AS titre, lang AS lang',
89                'date' => 'date',
90                'champs_editables' => array('titre', 'reference', 'prix_ht', 'taxe', 'descriptif', 'texte', 'immateriel', 'poids', 'largeur', 'longueur', 'hauteur'),
91                'champs_versionnes' => array('titre', 'reference', 'prix_ht', 'taxe', 'descriptif', 'texte'),
92                'rechercher_champs' => array('titre' => 4, 'reference' => 4, 'descriptif' => 2, 'texte' => 1),
93                'statut_textes_instituer' => array(
94                        'prepa' => 'texte_statut_en_cours_redaction',
95                        'prop' => 'texte_statut_propose_evaluation',
96                        'publie' => 'texte_statut_publie',
97                        'refuse' => 'texte_statut_refuse',
98                        'poubelle' => 'texte_statut_poubelle',
99                ),
100                'statut' => array(
101                        array(
102                                'champ' => 'statut',
103                                'publie' => 'publie',
104                                'previsu' => 'publie,prop,prepa',
105                                'post_date' => 'date',
106                                'exception' => array('statut', 'tout')
107                        )
108                ),
109                'texte_changer_statut' => 'produits:produit_statut',
110                'join' => array(
111                        'id_produit' => 'id_produit',
112                        'id_rubrique' => 'id_rubrique'
113                ),
114                'tables_jointures' => array(
115                        'profondeur' => 'rubriques'
116                ),
117        );
118
119        return $tables;
120}
Note: See TracBrowser for help on using the repository browser.