Changeset 110210 in spip-zone


Ignore:
Timestamp:
May 11, 2018, 2:03:19 PM (23 months ago)
Author:
abelass@…
Message:

automatiquement ajouter la colonne de l'id de l'extension

Location:
_plugins_/prix_objets/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/prix_objets/trunk/base/prix_objets.php

    r106815 r110210  
    4242        }
    4343
    44 
    45 ?>
  • _plugins_/prix_objets/trunk/formulaires/prix.php

    r110208 r110210  
    1212        $taxes_inclus = lire_config('prix_objets/taxes_inclus');
    1313        $taxes = lire_config('prix_objets/taxes');
     14        $table = 'spip_prix_objets';
    1415
    1516        // Devise par défaut si rien configuré
    16         if (!$devises_dispos)
     17        if (!$devises_dispos) {
    1718                $devises_dispos = array(
    1819                        '0' => 'EUR'
    1920                );
     21        }
     22
    2023        $devises_choisis = array();
    2124        $prix_choisis = array();
    22         if (is_array($id_objet))
     25        if (is_array($id_objet)) {
    2326                $id_objet_produit = implode(',', $id_objet);
     27        }
    2428
    2529        if ($id_objet) {
     
    2933        // établit les devises diponible moins ceux déjà utilisés
    3034        while ($row = sql_fetch($d)) {
    31                 // $devises_choisis[$row['code_devise']] = $row['code_devise'];
    3235                $prix_choisis[] = $row;
    3336        }
     
    5154        $valeurs['_hidden'] .= '<input type="hidden" name="id_objet" value="' . $id_objet . '">';
    5255
    53         // Inclus les extensions.
     56        // Inclure les extensions.
    5457        $valeurs['_saisies_extras'] = prix_objets_extensions_declaration($valeurs);
    55         //print_r($valeurs['_saisies_extras']);
     58        $trouver_table = charger_fonction('trouver_table', 'base');
     59        $decription_table = $trouver_table($table);
    5660        $extensions = array();
    5761        $saisies = array();
     62
    5863        foreach ($valeurs['_saisies_extras'] as $s) {
    5964                $saisies = array_merge($saisies, $s);
    6065                foreach (saisies_lister_par_nom($s) as $nom => $definition) {
    6166                        $valeurs[$nom] = _request($nom);
    62                         if (preg_match('|id_prix_extension_|', $nom)) {
    63                                 $extension = str_replace('id_prix_extension_', '', $nom);
    64                                 $extensions[] = $extension;
     67                        $objet = $definition['objet'];
     68                        $extensions[] = $objet;
     69
     70                        // Assurer que un champ d'identifiant de l'extension existe, sinon l'ajouter.
     71                        if ($identifiant_extension = id_table_objet($objet) and
     72                                        !isset($decription_table['field'][$identifiant_extension])
     73                                        ) {
     74                                sql_alter("TABLE $table ADD $identifiant_extension bigint(21) NOT NULL");
     75
     76                                // Vide le chache des déscriptions des tables.
     77                                $trouver_table('');
    6578                        }
    6679                }
    67 
    6880        }
    6981
Note: See TracChangeset for help on using the changeset viewer.