Browse Source

Remplace les champs "id_EXTENSION" par id_extension extension.

svn/root/trunk
Rainer 1 year ago
parent
commit
606efee9df
4 changed files with 75 additions and 32 deletions
  1. 38
    2
      base/prix_objets.php
  2. 1
    1
      inc/prix_objets.php
  3. 2
    2
      paquet.xml
  4. 34
    27
      prix_objets_administrations.php

+ 38
- 2
base/prix_objets.php View File

@@ -11,19 +11,21 @@ function prix_objets_declarer_tables_interfaces($tables_interfaces){
11 11
 function prix_objets_declarer_tables_principales($tables_principales){
12 12
 	$spip_prix_objets = array(
13 13
 		"id_prix_objet" 	=> "bigint(21) NOT NULL",
14
+		'objet' => 'varchar(25) not null default ""',
14 15
 		"id_objet" 	=> "bigint(21) NOT NULL",
15 16
 		"titre"   => "varchar(255)  DEFAULT '' NOT NULL",
16 17
 		"reference"   => "varchar(255)  DEFAULT '' NOT NULL",
17
-		'objet' => 'varchar(25) not null default ""',
18 18
 		"code_devise" 	=> "varchar(3) NOT NULL",
19 19
 		"prix_ht" 		=> "decimal(15,2) NOT NULL DEFAULT '0.00'",
20 20
 		"prix"       => "decimal(15,2) NOT NULL DEFAULT '0.00'",
21 21
 		"taxe"   => "varchar(10)  DEFAULT '' NOT NULL",
22
+		'extension' => 'varchar(50) not null default ""',
23
+		"id_extension" 	=> "bigint(21) NOT NULL",
22 24
 		);
23 25
 
24 26
 	$spip_prix_objets_key = array(
25 27
 		"PRIMARY KEY" 	=> "id_prix_objet",
26
-		"KEY id_objet"	=> "id_objet",
28
+		"KEY id_objet"	=> "id_objet,objet,id_extension,extension",
27 29
 		);
28 30
 
29 31
 	$spip_prix_objets_join = array(
@@ -39,5 +41,39 @@ function prix_objets_declarer_tables_principales($tables_principales){
39 41
 	);
40 42
 
41 43
 	return $tables_principales;
44
+}
45
+
46
+function po_upgrade($version_cible) {
47
+
48
+	// Remplace les champs "id_EXTENSION" par id_extension extension.
49
+	if ($version_cible == '2.0.3') {
50
+		$trouver_table = charger_fonction('trouver_table', 'base');
51
+		$table = 'spip_prix_objets';
52
+		$decription_table = $trouver_table($table);
53
+		include_spip('inc/prix_objets');
54
+		$extensions_declaration = prix_objets_extensions_declaration();
55
+		$objets = array_keys($extensions_declaration);
56
+
57
+		foreach ($objets as $objet) {
58
+			if ($identifiant_extension = id_table_objet($objet) and
59
+				isset($decription_table['field'][$identifiant_extension])
60
+				) {
61
+					$sql = sql_select($identifiant_extension . ',id_prix_objet', 'spip_prix_objets', $identifiant_extension . '>0');
62
+
63
+					while ($data = sql_fetch($sql)) {
64
+						sql_updateq(
65
+							'spip_prix_objets',
66
+							array(
67
+								'extension' => $objet,
68
+								'id_extension' => $data[$identifiant_extension],
69
+							),
70
+							'id_prix_objet=' . $data['id_prix_objet']
71
+						);
72
+					}
73
+					sql_alter("TABLE $table DROP COLUMN  $identifiant_extension");
74
+				}
75
+		}
76
+
42 77
 	}
78
+}
43 79
 

+ 1
- 1
inc/prix_objets.php View File

@@ -8,7 +8,7 @@ if (!defined("_ECRIRE_INC_VERSION"))
8 8
  * @param array $valeurs
9 9
  * @return array
10 10
  */
11
-function prix_objets_extensions_declaration($valeurs) {
11
+function prix_objets_extensions_declaration($valeurs = array()) {
12 12
 
13 13
 	return pipeline(
14 14
 			'prix_objets_extensions', array(

+ 2
- 2
paquet.xml View File

@@ -1,12 +1,12 @@
1 1
 <paquet
2 2
 	prefix="prix_objets"
3 3
 	categorie="edition"
4
-	version="1.8.1"
4
+	version="2.0.0"
5 5
 	etat="stable"
6 6
 	compatibilite="[3.0.5;3.2.*]"
7 7
 	logo="prive/themes/spip/images/prix_objets-64.png"
8 8
 	documentation="https://contrib.spip.net/Prix-Objets"
9
-	schema="1.5.0"
9
+	schema="2.0.3"
10 10
 >
11 11
 
12 12
 	<nom>Prix Objets</nom>

+ 34
- 27
prix_objets_administrations.php View File

@@ -30,35 +30,42 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
30 30
  *
31 31
  */
32 32
 function prix_objets_upgrade($nom_meta_base_version, $version_cible) {
33
-		include_spip('inc/config');
33
+	include_spip('inc/config');
34 34
 
35 35
 	$maj = array();
36
-	$maj['create'] = array(array('maj_tables', array('spip_prix_objets')));
37
-		$maj['1.1.0']  = array(
38
-				array('sql_alter','TABLE spip_prix_objets RENAME TO spip_prix_objets')
39
-				);
40
-		$maj['1.1.2']  = array(
41
-				array('sql_alter','TABLE spip_prix_objets CHANGE prix prix_ht float (38,2) NOT NULL'),
42
-				array('maj_tables', array('spip_prix_objets')),
43
-				);
44
-		$maj['1.1.3']  = array(
45
-				array('sql_alter','TABLE spip_prix_objets CHANGE prix prix float (38,2) NOT NULL'),
46
-				);
47
-		$maj['1.1.4']  = array(
48
-				array('sql_alter','TABLE spip_prix_objets CHANGE id_prix id_prix_objet bigint(21) NOT NULL'),
49
-				);
50
-		$maj['1.1.5'] = array(array('maj_tables', array('spip_prix_objets')));
51
-		$maj['1.2.4'] = array(array('maj_tables', array('spip_prix_objets')));
52
-		$maj['1.3.0'] = array(array('maj_tables', array('spip_prix_objets')));
53
-		$maj['1.4.0'] = array(
54
-				array('ecrire_config', 'prix_objets',lire_config('shop_prix',array())),
55
-				array('ecrire_config', 'shop_prix',array()),
56
-				array('effacer_meta', 'shop_prix_base_version')
57
-				);
58
-		$maj['1.5.0']  = array(
59
-			array('sql_alter','TABLE spip_prix_objets CHANGE prix prix decimal(15,2) NOT NULL DEFAULT "0.00"'),
60
-			array('sql_alter','TABLE spip_prix_objets CHANGE prix_ht prix_ht decimal(15,2) NOT NULL DEFAULT "0.00"'),
61
-		);
36
+	$maj['create'] = array(
37
+		array('maj_tables', array('spip_prix_objets'))
38
+	);
39
+	$maj['1.1.0']  = array(
40
+			array('sql_alter','TABLE spip_prix_objets RENAME TO spip_prix_objets')
41
+			);
42
+	$maj['1.1.2']  = array(
43
+			array('sql_alter','TABLE spip_prix_objets CHANGE prix prix_ht float (38,2) NOT NULL'),
44
+			array('maj_tables', array('spip_prix_objets')),
45
+			);
46
+	$maj['1.1.3']  = array(
47
+			array('sql_alter','TABLE spip_prix_objets CHANGE prix prix float (38,2) NOT NULL'),
48
+			);
49
+	$maj['1.1.4']  = array(
50
+			array('sql_alter','TABLE spip_prix_objets CHANGE id_prix id_prix_objet bigint(21) NOT NULL'),
51
+			);
52
+	$maj['1.1.5'] = array(array('maj_tables', array('spip_prix_objets')));
53
+	$maj['1.2.4'] = array(array('maj_tables', array('spip_prix_objets')));
54
+	$maj['1.3.0'] = array(array('maj_tables', array('spip_prix_objets')));
55
+	$maj['1.4.0'] = array(
56
+			array('ecrire_config', 'prix_objets',lire_config('shop_prix',array())),
57
+			array('ecrire_config', 'shop_prix',array()),
58
+			array('effacer_meta', 'shop_prix_base_version')
59
+			);
60
+	$maj['1.5.0']  = array(
61
+		array('sql_alter','TABLE spip_prix_objets CHANGE prix prix decimal(15,2) NOT NULL DEFAULT "0.00"'),
62
+		array('sql_alter','TABLE spip_prix_objets CHANGE prix_ht prix_ht decimal(15,2) NOT NULL DEFAULT "0.00"'),
63
+	);
64
+	$maj['2.0.3']  = array(
65
+		array('maj_tables', array('spip_prix_objets')),
66
+		array('sql_alter','TABLE spip_prix_objets ADD INDEX `id_objet` (`objet,id_extension,extension`)'),
67
+		array('po_upgrade',$version_cible),
68
+	);
62 69
 
63 70
 	include_spip('base/upgrade');
64 71
 	maj_plugin($nom_meta_base_version, $version_cible, $maj);

Loading…
Cancel
Save