Changeset 52365 in spip-zone


Ignore:
Timestamp:
Oct 3, 2011, 12:02:37 PM (8 years ago)
Author:
kent1@…
Message:

Des vieux trucs pas commités

Location:
_plugins_/inscription2/inscription2_societes
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/inscription2/inscription2_societes/base/i2_societes.php

    r27587 r52365  
    11<?php
    22function i2_societes_declarer_tables_interfaces($interface){
    3         $interface['tables_jointures']['spip_auteurs_elargis'][] = 'societes';
    4        
     3        $interface['tables_jointures']['spip_auteurs_liens'][] = 'societes';
     4
    55        //-- Table des tables ----------------------------------------------------
    66        $interface['table_des_tables']['societes']='societes';
     
    1010
    1111function i2_societes_declarer_tables_principales($tables_principales){
    12        
     12
    1313        $spip_societes['id_societe'] = "BIGINT(21) NOT NULL";
    1414        $spip_societes['nom'] = "VARCHAR(255) NOT NULL";
     
    2121        $spip_societes['fax'] = "VARCHAR(255) NOT NULL";
    2222        $spip_societes['maj'] = "TIMESTAMP";
    23        
     23
    2424        $spip_societes_key = array('PRIMARY KEY' => 'id_societe', 'KEY id_pays' => 'id_pays');
    25        
     25
    2626        $tables_principales['spip_societes'] = array(
    27                 'field' => &$spip_societes, 
     27                'field' => &$spip_societes,
    2828                'key' => &$spip_societes_key);
    29        
     29
    3030        return $tables_principales;
    3131}
  • _plugins_/inscription2/inscription2_societes/base/i2_societes_installer.php

    r28062 r52365  
    11<?php
    22
    3 $GLOBALS['i2_societes_version'] = 0.02;
     3include_spip('base/create');
     4function i2_societes_upgrade($nom_meta_base_version,$version_cible){
    45
    5 function i2_societes_upgrade(){
    6         $version_base = $GLOBALS['i2_societes_version'];
    7         $current_version = 0.0;
    8        
    9         // Si la version installee est la derniere en date, on ne fait rien
    10         if ( (isset($GLOBALS['meta']['i2_societes_version']) )
    11                 && (($current_version = $GLOBALS['meta']['i2_societes_version'])==$version_base))
    12         return;
    13        
     6        if (isset($GLOBALS['meta'][$nom_meta_base_version]))
     7                $current_version = $GLOBALS['meta'][$nom_meta_base_version];
     8
    149        //Si c est une nouvelle installation toute fraiche
    15         include_spip('base/i2_societes');
    16         if ($current_version==0.0){
     10        if ($current_version=="0.0") {
     11                include_spip('base/i2_societes');
    1712                $config_inscription2 = $GLOBALS['meta']['inscription2'];
    18                
     13
    1914                if (!is_array(unserialize($config_inscription2))) {
    2015                unset($config_inscription2);
    2116                }
    22                
     17
    2318                $config_societes =      array(
    2419                                'id_societe' => NULL,
     
    3025
    3126                $config_finale = array_merge(unserialize($config_inscription2),$config_societes);
    32                
     27
    3328                ecrire_config('inscription2',$config_finale);
    34                
     29
    3530                include_spip('base/create');
    3631                include_spip('base/abstract_sql');
     
    3833                ecrire_meta('i2_societes_version',$current_version=$version_base,'non');
    3934        }
    40         if ($current_version==0.01){
     35        if (version_compare($current_version,"0.02","<")){
    4136                sql_alter("TABLE spip_societes ADD maj TIMESTAMP after fax");
    4237                echo "I2_societes @ 0.02<br />";
    43                 ecrire_meta('i2_societes_version',$current_version='0.02','non');
     38                ecrire_meta($nom_meta_base_version,$current_version="0.02");
     39        }
     40        if (version_compare($current_version,"0.03","<")){
     41                include_spip('base/i2_societe');
     42                creer_base();
     43                maj_societes_3();
     44                echo "I2_societes @ 0.03<br />";
     45                ecrire_meta($nom_meta_base_version,$current_version="0.03");
    4446        }
    4547}
    4648
    47 function i2_societes_vider_tables() {
     49function i2_societes_vider_tables($nom_meta_base_version) {
    4850        include_spip('base/abstract_sql');
    4951        sql_drop_table('spip_societes');
    50         effacer_meta('i2_societes');
    51         ecrire_metas();
     52        effacer_meta($nom_meta_base_version);
    5253}
    5354
    54 function i2_societes_install($action){
    55         $version_base = $GLOBALS['i2_societes_version'];
    56         switch ($action){
    57                 case 'test':
    58                         return (isset($GLOBALS['meta']['i2_societes_version']) AND ($GLOBALS['meta']['i2_societes_version']>=$version_base));
    59                         break;
    60                 case 'install':
    61                         i2_societes_upgrade();
    62                         break;
    63                 case 'uninstall':
    64                         i2_societes_vider_tables();
    65                         break;
     55function maj_societes_3(){
     56        $auteurs_societes = sql_select('id_auteur,id_societe','spip_auteurs_elargis','id_societe != ""');
     57        while($auteur = sql_fetch($auteurs_societes)){
     58                if(is_array(unserialize($auteur['id_societe']))){
     59                        foreach(unserialize($auteur['id_societe']) as $societe){
     60                                sql_insertq('spip_auteurs_liens',array('id_auteur'=>$auteur['id_auteur'],'objet'=>'societe','id_objet'=>$societe));
     61                        }
     62                }else{
     63                        sql_insertq('spip_auteurs_liens',array('id_auteur'=>$auteur['id_auteur'],'objet'=>'societe','id_objet'=>$auteur['id_societe']));
     64                }
    6665        }
    6766}
  • _plugins_/inscription2/inscription2_societes/i2_societes_pipelines.php

    r28577 r52365  
    11<?php
    22/**
    3  * 
     3 *
    44 * Insertion dans le pipeline i2_cfg_form
    5  * @return 
     5 * @return
    66 * @param object $flux
    77 */
     
    1212
    1313/**
    14  * 
     14 *
    1515 * Insertion dans le pipeline affiche_droite
    1616 * Dans certaines pages définies, afficher le lien d'accès à la page des comptes utilisateurs
    17  * 
    18  * @return array Le même tableau qu'il reçoit en argument 
     17 *
     18 * @return array Le même tableau qu'il reçoit en argument
    1919 * @param array $flux Un tableau donnant des informations sur le contenu passé au pipeline
    2020 */
     
    3131        return $flux;
    3232}
     33
     34function i2_societes_editer_contenu_objet($flux){
     35        if ($flux['args']['type']=='auteur') {
     36                /**
     37                 *
     38                 * Insertion des champs dans le formulaire aprs le textarea PGP
     39                 *
     40                 */
     41                $inscription2 = recuperer_fond('prive/inscription2_champs_id_societe',array('id_auteur' => $flux['args']['id']));
     42                $flux['data'] = preg_replace('%(<li class="editer_inscription2 fieldset(.*?)</li>)%is', '$1'."\n".$inscription2, $flux['data']);
     43        }
     44        return $flux;
     45}
     46
     47/**
     48 *
     49 * Insertion dans le pipeline post_edition
     50 * ajouter les champs inscription2 soumis lors de la soumission du formulaire CVT editer_auteur
     51 *
     52 * @return
     53 * @param object $flux
     54 */
     55function i2_societes_post_edition($flux){
     56        if ($flux['args']['table']=='spip_auteurs') {
     57                $id_auteur = $flux['args']['id_objet'];
     58                $societes = sql_select('id_objet','spip_auteurs_liens',"id_auteur=$id_auteur AND objet='societe'");
     59                $societes_voulues = _request('id_societe');
     60                if(lire_config('inscription2/id_societe') == 'on'){
     61                        if(lire_config('i2_societes/forme') == 'multiple'){
     62                                $societe_existantes = array();
     63                                while($societe=sql_fetch($societes)){
     64                                        if(!in_array($societe['id_objet'],$societes_voulues)){
     65                                                sql_delete("spip_auteurs_liens","id_auteur=$id_auteur AND objet='societe' AND id_objet=".$societe['id_objet']);
     66                                        }else{
     67                                                $societe_existantes[] = $societe['id_objet'];
     68                                        }
     69                                }
     70                                foreach($societes_voulues as $societe_voulue){
     71                                        if(!in_array($societe_voulue,$societe_existantes)){
     72                                                sql_insertq("spip_auteurs_liens",array("id_auteur"=>$id_auteur,"objet"=>"societe","id_objet"=>$societe_voulue));
     73                                        }
     74                                }
     75                        }else{
     76                                while($societe=sql_fetch($societes)){
     77                                        if($societe != $societes_voulues){
     78                                                sql_delete("spip_auteurs_liens","id_auteur=$id_auteur AND objet='societe' AND id_objet=".$societe['id_objet']);
     79                                        }else{
     80                                                $societe_existe = true;
     81                                        }
     82                                }
     83                                if(!$societe_existe){
     84                                        sql_insertq("spip_auteurs_liens",array("id_auteur"=>$id_auteur,"objet"=>"societe","id_objet"=>$societes_voulues));
     85                                }
     86                        }
     87                }
     88        }
     89        return $flux;
     90}
     91
     92function i2_societes_i2_exceptions_des_champs_auteurs_elargis($array){
     93        // Des choses spécifiques à inscription2
     94        $array[] = 'id_societe';
     95
     96        return $array;
     97}
     98
     99function i2_societes_i2_exceptions_chargement_champs_auteurs_elargis($array){
     100        // Des choses spécifiques à inscription2
     101        $array[] = 'id_societe';
     102
     103        return $array;
     104}
    33105?>
  • _plugins_/inscription2/inscription2_societes/plugin.xml

    r34494 r52365  
    77        </auteur>
    88        <version>
    9                 0.02
     9                0.03
    1010        </version>
     11        <version_base>
     12                0.03
     13        </version_base>
    1114        <etat>
    1215                dev
     
    3740        </pipeline>
    3841        <pipeline>
     42                <nom>i2_exceptions_des_champs_auteurs_elargis</nom>
     43                <inclure>i2_societes_pipelines.php</inclure>
     44        </pipeline>
     45        <pipeline>
     46                <nom>i2_exceptions_chargement_champs_auteurs_elargis</nom>
     47                <inclure>i2_societes_pipelines.php</inclure>
     48        </pipeline>
     49        <pipeline>
     50                <nom>editer_contenu_objet</nom>
     51                <inclure>i2_societes_pipelines.php</inclure>
     52        </pipeline>
     53        <pipeline>
     54                <nom>post_edition</nom>
     55                <inclure>i2_societes_pipelines.php</inclure>
     56        </pipeline>
     57        <pipeline>
    3958                <nom>autoriser</nom>
    4059                <inclure>inc/i2_societes_autoriser.php</inclure>
  • _plugins_/inscription2/inscription2_societes/prive/inscription2_champs_id_societe.html

    r28573 r52365  
     1[(#CONFIG{i2_societes/forme}|=={multiple}|oui)
     2        #SET{multiple,oui}
     3]
     4#SET{societes_auteurs,#ARRAY}
     5<BOUCLE_societes_auteurs(SOCIETES auteurs_liens){id_auteur}>
     6[(#SET{societes_auteurs,[(#GET{societes_auteurs}|push{#ID_SOCIETE})]})]
     7</BOUCLE_societes_auteurs>
     8
    19<li>
    2         <label><:societe:societe:></label>
    3         <select id='id_societe' class='text' style='width:auto'[(#CONFIG{i2_societes/forme}|=={multiple}|oui) name='id_societe&#91;&#93' multiple][(#CONFIG{i2_societes/forme}|=={multiple}|non) name='id_societe']>
    4                 <option value=''><:societe:societe_choisir:></option>
     10        <label><:societe:societe:> #ENV{id_auteur}</label>
     11        <select id='id_societe' class='text' style='width:auto'[(#GET{multiple}|oui) name='id_societe&#91;&#93' multiple][(#GET{multiple}|non) name='id_societe']>
     12                [(#GET{multiple}|non)<option value=''><:societe:societe_choisir:></option>]
    513                <BOUCLE_societe(SOCIETES){par nom}>
    6                         <option value='#ID_SOCIETE'[(#ID_SOCIETE|=={#ENV{val}}|oui) selected='selected']>#NOM</option>
     14                        <option value='#ID_SOCIETE'[(#ID_SOCIETE|in_array{[(#GET{societes_auteurs})]}|oui) selected='selected']>#NOM</option>
    715                </BOUCLE_societe>
    816        </select>
Note: See TracChangeset for help on using the changeset viewer.