Changeset 24497 in spip-zone


Ignore:
Timestamp:
Nov 20, 2008, 5:56:42 PM (11 years ago)
Author:
kent1@…
Message:

bon ... là on devrait pouvoir modifier correctement les infos sur la page auteurs_infos

Location:
_plugins_/_test_/inscription2/inscription2_193
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_test_/inscription2/inscription2_193/inc/legender_auteur_supp.php

    r22942 r24497  
    1313if (!defined("_ECRIRE_INC_VERSION")) return;
    1414
    15 // http://doc.spip.org/@inc_legender_auteur_dist
    16 function inc_legender_auteur_supp_dist($auteur)
    17 {
     15function inc_legender_auteur_supp_dist($auteur){
    1816        if (!$auteur['id_auteur']) {
    1917                if (_request('new') == 'oui') {
     
    2422                }
    2523        }
    26        
     24   
    2725        if (!$new) {
    2826                if (autoriser('modifier', 'auteur', $auteur['id_auteur'])) {
    29                 $auteur_infos_voir_supp = legender_auteur_supp_voir($auteur, $redirect);
    30                 $corps = legender_auteur_supp_saisir($auteur, $auteur_infos_voir_supp, $redirect);
    31         } else {
    32                 $corps = ' ';
    33         }
    34        
    35         }else {
    36                 $corps = '';
     27                        $auteur_infos_voir_supp = legender_auteur_supp_voir($auteur, $redirect);
     28                }
     29        }
     30        return $auteur_infos_voir_supp;
    3731}
    38        
    39 
    40         return $corps;
    41 }
    42 
    4332// La partie affichage du formulaire...
    44 function legender_auteur_supp_saisir($auteur, $auteur_infos_voir_supp, $redirect){
    45 
    46         global $options, $connect_statut, $connect_id_auteur, $connect_toutes_rubriques;
    47 
    48         include_spip('inc/autoriser');
    49 
     33function legender_auteur_supp_saisir($auteur){
    5034        $id_auteur = $auteur['id_auteur'];
    51         $setconnecte = ($connect_id_auteur == $id_auteur);
    52 
     35       
     36        $corps_supp = '<li class="editer_inscription2 fieldset">';
     37        $corps_supp .= '<fieldset><h3 class="legend">Inscription 2</h3>';
     38        $corps_supp .= '<ul>';
     39       
    5340        // Elaborer le formulaire
    54         $corps_supp = '';
    5541        $var_user['b.id_auteur'] = '0';
    5642        $var_user['a.login'] = '0';
     
    9783        foreach ($query as $cle => $val){
    9884                if(($cle == 'id_pays') || ($cle == 'id_pays_pro') ||  ($cle == 'login') || ($cle == 'nom') || ($cle == 'email')){
    99                         $corps_supp .= "<input type='hidden' id='$cle' name='$cle' value='$val'>";
     85                        $corps_supp .= "<input type='hidden' id='$cle' name='$cle' value='$val' />";
    10086                }
    10187                elseif($cle == 'pays'){
    102                         $corps_supp .= "<strong>"._T('inscription2:'.$cle)."</strong><br />"
    103                                 . "<select name='$cle' id='$cle' class='formo' style='width:auto'>"
     88                        $corps_supp .= "<li><label>"._T('inscription2:'.$cle)."</label>"
     89                                . "<select name='$cle' id='$cle' class='text' style='width:auto'>"
    10490                                . "<option value=''>"._T('inscription2:pays')."</option>";
    10591                        include(_DIR_PLUGIN_INSCRIPTION2."/inc/pays.php");
     
    10995                                else
    11096                                        $corps_supp .= "<option value='$cle'>$val</option>";
    111                         }$corps_supp .= "</select>";
     97                        }$corps_supp .= "</select></li>";
    11298                }
    11399                elseif($cle == 'pays_pro'){
    114                         $corps_supp .= "<strong>"._T('inscription2:'.$cle)."</strong><br />"
    115                                 . "<select name='$cle' id='$cle' class='formo' style='width:auto'>"
     100                        $corps_supp .= "<li><label>"._T('inscription2:'.$cle)."</label>"
     101                                . "<select name='$cle' id='$cle' class='text' style='width:auto'>"
    116102                                . "<option value=''>"._T('inscription2:pays')."</option>";
    117103                        include(_DIR_PLUGIN_INSCRIPTION2."/inc/pays.php");
     
    121107                                else
    122108                                        $corps_supp .= "<option value='$cle'>$val</option>";
    123                         }$corps_supp .= "</select>";
     109                        }$corps_supp .= "</select></li>";
    124110                }
    125111                elseif ($cle == 'latitude'){
     
    128114                                $corps_supp .= $geomap_append_moveend_map("map",'latitude','longitude',$query['latitude'],$query['longitude'], NULL,NULL,true);
    129115                        }
    130                         $corps_supp .= "<strong>"._T('inscription2:'.$cle)."</strong><br />"
    131                         . "<input type='text' id='$cle' name='$cle' class='formo' value='$val'><br />";
     116                        $corps_supp .= "<li><label>"._T('inscription2:'.$cle)."</label>"
     117                        . "<input type='text' id='$cle' name='$cle' class='text' value='$val' /></li>";
    132118                }
    133119                elseif($cle!= 'id_auteur' and $cle != 'statut_nouveau')
    134                 $corps_supp .= "<strong>"._T('inscription2:'.$cle)."</strong><br />"
    135                 . "<input type='text' id='$cle' name='$cle' class='formo' value='".typo($val)."'><br />";
     120                $corps_supp .= "<li><label>"._T('inscription2:'.$cle)."</label>"
     121                . "<input type='text' id='$cle' name='$cle' class='text' value='".typo($val)."' /><li>";
    136122        }
    137123        if($news){
    138124                if ($aux4){
    139                 $corps_supp .= "<strong>"._T('inscription2:newsletter')."</strong><br />"
     125                $corps_supp .= "<li><label>"._T('inscription2:newsletter')."</label>"
    140126                . "<select name='news[]' id='news' multiple>";
    141127                foreach($aux4 as $val){
     
    148134                }
    149135        }
    150                 $corps_supp .= "\n<br />";
    151 
    152 
    153         //
    154         // Retour
    155         //
    156 
    157         $corps_supp = $auteur_infos_voir_supp
    158                 . "<div id='auteur_infos_edit_supp'>\n"
    159                 . "\n<div class='serif'>"
    160                 . debut_cadre_relief("fiche-perso-24.gif",
    161                         true, "", _T("icone_informations_personnelles"))
    162                 . $corps_supp
    163                 . fin_cadre_relief(true)
    164                 . "</div>\n" # /serif
    165                 . "</div>\n"; # /auteur_infos_edit
    166 
    167         // Installer la fiche "auteur_infos_voir"
    168         // et masquer le formulaire si on n'en a pas besoin
    169         $new = ($auteur_infos_voir_supp == '');
    170         if (!$new
    171         AND !_request('echec')
    172         AND !_request('edit')) {
    173                 $corps_supp .= "<script>jQuery('#auteur_infos_edit_supp').hide()</script>\n";
    174         } else {
    175                 $corps_supp .= "<script>jQuery('#auteur_infos_voir_supp').hide()</script>\n";
    176         }
    177 
    178         // Redirection apres enregistrement ?
    179         if ($redirect)
    180                 $corps_supp .= "<input type='hidden' name='redirect' value=\"".attribut_html($redirect)."\" />\n";
    181 
    182         $corps_supp .= "<div style='text-align: right'><input type='submit' value='"._T('bouton_enregistrer')."' class='fondo' /></div>";
    183 
    184         $arg = intval($id_auteur);
    185         $ret .= generer_action_auteur('editer_auteur_supp', $arg, $redirect, $corps_supp, ' method="POST"');
    186 
    187         return $ret;
     136                $corps_supp .= "\n</li></ul>";
     137                $corps_supp .= "\n</fieldset></li>";
     138        return $corps_supp;
    188139}
    189140
    190141// L'affichage des infos supplémentaires...
    191 function legender_auteur_supp_voir($auteur, $redirect)
    192 {
    193         global $connect_toutes_rubriques, $connect_statut, $connect_id_auteur, $champs_extra, $options, $spip_lang_right;
    194         $res = "";
    195 
    196         if (!$id_auteur = $auteur['id_auteur']) {
    197                 $new = true;
    198         }
    199 
    200         // Bouton "modifier" ?
    201         if (autoriser('modifier', 'auteur', $id_auteur)) {
    202                 $res .= "<span id='bouton_modifier_auteur_supp'>";
    203 
    204                 if (_request('edit_supp') == 'oui') {
    205                         $clic = _T('icone_retour');
    206                         $retour = _T('inscription2:admin_modifier_auteur_supp');
    207                 } else {
    208                         $clic = _T('inscription2:admin_modifier_auteur_supp');
    209                         $retour = _T('icone_retour');
    210                 }
    211 
    212                 $h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&edit_supp=oui");
    213                 $h = "<a\nhref='$h'>$clic</a>";
    214                 $res .= icone_inline($clic, $h, "redacteurs-24.gif", "edit.gif", $spip_lang_right);
    215 
    216                 $res .= "<script type='text/javascript'><!--
    217                 var intitule_bouton = ".sql_quote($retour).";
    218                 jQuery('#bouton_modifier_auteur_supp a')
    219                 .click(function() {
    220                         jQuery('#auteur_infos_edit_supp')
    221                         .toggle();
    222                         jQuery('#auteur_infos_voir_supp')
    223                         .toggle();
    224                         jQuery('#bouton_modifier_auteur_supp > a > span')
    225                         .each(function(){
    226                                 var tmp = jQuery(this).html();
    227                                 jQuery(this).html(intitule_bouton);
    228                                 intitule_bouton = tmp;
    229                         });
    230                         return false;
    231                 });
    232                 // --></script>\n";
    233                 $res .= "</span>\n";
    234         }
    235        
    236         $res .= "<h2 class='titrem'>Inscription2</h2>";
     142function legender_auteur_supp_voir($auteur)
     143{       
     144        $res = "<h2 class='titrem'>Inscription2</h2>";
    237145
    238146        $res .= "<div class='nettoyeur'></div>";
  • _plugins_/_test_/inscription2/inscription2_193/inscription2_pipelines.php

    r23138 r24497  
    5757        return substr_replace($page, $incHead, strpos($page, '</head>'), 0);
    5858}
    59                                
     59
     60// ajouter les champs I2 sur le formulaire CVT editer_auteur
     61function inscription2_editer_contenu_objet($flux){
     62        if ($flux['args']['type']=='auteur') {
     63                include_spip('public/assembler');
     64                include_spip('inc/legender_auteur_supp');
     65                $flux['args']['contexte']['inscription2'] = sql_fetsel('*','spip_auteurs_elargis','id_auteur='.sql_quote($flux['args']['contexte']['id_auteur']));
     66                $inscription2 = legender_auteur_supp_saisir($flux['args']['contexte']['id_auteur']);
     67                $flux['data'] = preg_replace('%(<li class="editer_pgp(.*?)</li>)%is', '$1'."\n".$inscription2, $flux['data']);
     68        }
     69        return $flux;
     70}
     71
     72// ajouter l'open_id soumis lors de la soumission du formulaire CVT editer_auteur
     73function inscription2_post_edition($flux){
     74        if ($flux['args']['table']=='spip_auteurs') {
     75                $id_auteur = $flux['args']['id_objet'];
     76                spip_log("editer_auteur_supp_dits","inscription2");
     77                        global $visiteur_session;
     78                        spip_log("editer_auteur_supp $r");
     79                        $echec = array();
     80               
     81                                foreach(lire_config('inscription2') as $cle => $val){
     82                                        if($val!='' and !ereg("^(accesrestreint|categories|zone|news).*$", $cle)){
     83                                                $cle = ereg_replace("_(obligatoire|fiche|table).*$", "", $cle);
     84                                                if($cle == 'nom' or $cle == 'email' or $cle == 'login')
     85                                                        $var_user['a.'.$cle] = sql_quote(_request($cle));
     86                                                elseif($cle == 'statut_nouveau'){
     87                                                }
     88                                                elseif(ereg("^statut_rel.*$", $cle))
     89                                                        $var_user['b.statut_relances'] =  sql_quote(_request('statut_relances'));
     90                                                else
     91                                                        $var_user['b.'.$cle] = sql_quote(_request($cle));
     92                                        }
     93                                        elseif ($val!='' and $cle == 'accesrestreint'){
     94                                                $aux = sql_select("id_zone","spip_zones_auteurs","id_auteur = $id_auteur");
     95                                                while($q = sql_fetch($aux))
     96                                                        $acces[]=$q['id_zone'];
     97                                                $acces_array = _request('acces');
     98                                                if(!empty($acces) and empty($acces_array))
     99                                                        sql_delete("spip_zones_auteurs","id_auteur = $id_auteur");
     100                                                elseif(empty($acces) and !empty($acces_array))
     101                                                        spip_query("insert into spip_zones_auteurs (id_zone, id_auteur) values (".join(", $id_auteur), (", $acces_array).", $id_auteur)");
     102                                                elseif(!empty($acces) and !empty($acces_array)){
     103                                                        $diff1 = array_diff($acces_array, $acces);
     104                                                        $diff2 = array_diff($acces, $acces_array);
     105                                                        if (!empty($diff1))
     106                                                                spip_query("insert into spip_zones_auteurs (id_zone, id_auteur) values (".join(", $id_auteur), (", $diff1).", $id_auteur)");
     107                                                        if(!empty($diff2))
     108                                                                foreach($diff2 as $val)
     109                                                                        spip_query("delete from spip_zones_auteurs where id_auteur= $id_auteur and id_zone = $val");
     110                                                }
     111                                        }
     112                                        elseif ($val!='' and $cle == 'newsletter'){
     113                                                $aux = sql_select("id_liste","spip_auteurs_listes","id_auteur = $id_auteur");
     114                                                while($q = sql_fetch($aux))
     115                                                        $listes[]=$q['id_liste'];
     116                                                $listes_array = _request('news');
     117                                                if(!empty($listes) and empty($listes_array))
     118                                                        sql_delete("spip_auteurs_listes","$id_auteur");
     119                                                elseif(empty($listes) and !empty($listes_array))
     120                                                        spip_query("insert into spip_auteurs_listes (id_liste, id_auteur) values (".join(", $id_auteur), (", $listes_array).", $id_auteur)");
     121                                                elseif(!empty($listes) and !empty($listes_array)){
     122                                                        $diff1 = array_diff($listes_array, $listes);
     123                                                        $diff2 = array_diff($listes, $listes_array);
     124                                                        if (!empty($diff1))
     125                                                                spip_query("insert into spip_auteurs_listes (id_liste, id_auteur) values (".join(", $id_auteur), (", $diff1).", $id_auteur)");
     126                                                        if(!empty($diff2))
     127                                                                foreach($diff2 as $val)
     128                                                                        sql_delete("spip_auteurs_listes","$id_auteur and id_liste = $val");
     129                                                }
     130                                        }
     131                                }
     132                                sql_update("spip_auteurs a left join spip_auteurs_elargis b on a.id_auteur=b.id_auteur",$var_user, "a.id_auteur=$id_auteur");
     133                       
     134                        // Notifications, gestion des revisions, reindexation...
     135                        pipeline('post_edition',
     136                                array(
     137                                        'args' => array(
     138                                                'table' => 'spip_auteurs_elargis',
     139                                                'id_objet' => $id_auteur
     140                                        ),
     141                                        'data' => $auteur
     142                                )
     143                        );
     144               
     145                        $echec = $echec ? '&echec=' . join('@@@', $echec) : '';
     146        }
     147        return $flux;
     148}
     149
    60150?>
  • _plugins_/_test_/inscription2/inscription2_193/plugin.xml

    r23951 r24497  
    4040                <inclure>inscription2_pipelines.php</inclure>
    4141        </pipeline>
     42
     43         <pipeline>
     44                <nom>editer_contenu_objet</nom>
     45                <inclure>inscription2_pipelines.php</inclure>
     46        </pipeline>     
     47        <pipeline>
     48                <nom>post_edition</nom>
     49                <inclure>inscription2_pipelines.php</inclure>
     50        </pipeline>
    4251        <pipeline>
    4352                <nom>affiche_milieu</nom>
Note: See TracChangeset for help on using the changeset viewer.