Changeset 28635 in spip-zone


Ignore:
Timestamp:
May 14, 2009, 9:16:36 AM (12 years ago)
Author:
fil@…
Message:

utiliser autosave http://trac.rezo.net/trac/spip/changeset/13988 pour enregistrer les forums pas envoyes

Location:
_plugins_/_core_/forum/formulaires
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_core_/forum/formulaires/forum.html

    r26151 r28635  
    131131
    132132[(#REM)
    133         Sauver les donnees du formulaire dans un cookie, si on quitte la page,
    134         et les remettre quand on revient (dans les limites de 4ko etc)
     133        Sauver les donnees du formulaire dans la session, si on quitte la page,
     134        et proposer de les remettre quand on revient
    135135]
    136136<script type="text/javascript">/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
    137137if (window.jQuery)(function($){
    138         $.getScript('[(#CHEMIN{javascript/jquery.cookie.js}|url_absolue)]',
    139         function(){
    140                 var a = $.cookie('spip_contenu_formulaire_#ENV{_sign}');
    141                 var saveauto = true;
    142                 if (a) {
    143                         $('#formulaire_forum textarea#EVAL{chr(91)}name=texte#EVAL{chr(93)}')
    144                         .val(a);
    145                         $.cookie('spip_contenu_formulaire_#ENV{_sign}', null);
    146                 }
     138        $(function(){
    147139                $('#formulaire_forum form')
    148                 .bind('submit', function() {
    149                         saveauto = false;
    150                 });
    151                 $(window)
    152                 .bind('unload', function(){
    153                         if (saveauto)
    154                         $.cookie('spip_contenu_formulaire_#ENV{_sign}',
    155                                 $('#formulaire_forum textarea#EVAL{chr(91)}name=texte#EVAL{chr(93)}').val()
    156                         );
    157                 });
     140                .autosave();
    158141        });
    159142}(jQuery));
  • _plugins_/_core_/forum/formulaires/forum.php

    r27462 r28635  
    8585        $cle = calculer_cle_action('ajouter-document-'.join('-',array_map('intval',$ids)));
    8686
    87         return array(
     87        // Valeurs par defaut du formulaire
     88        // si le formulaire a ete sauvegarde, restituer les valeurs de session
     89        $vals = array(
     90                'titre' => str_replace('~', ' ', extraire_multi($titre)),
     91                'texte' => '',
     92                'nom_site' => '',
     93                'url_site' => 'http://'
     94        );
     95        $cle_autosave = 'forum-'. join('-',array_map('intval',$ids));
     96        $script_hidden .= "<input type='hidden' name='autosave' value='$cle_autosave' />";
     97        if (isset($GLOBALS['visiteur_session']['session_autosave_'.$cle_autosave])) {
     98                // si on poste 'autosave' c'est qu'on n'a pas besoin de sauvegarder :
     99                // on elimine les donnees de la session
     100                if (_request('autosave') == $cle_autosave)
     101                        session_set('session_autosave_'.$cle_autosave, null);
     102       
     103                // sinon on restitue les donnees
     104                else
     105                foreach (explode('&', $GLOBALS['visiteur_session']['session_autosave_'.$cle_autosave]) as $l) {
     106                        if (list($key, $val) = explode('=', $l, 2)
     107                        AND isset($vals[$key]))
     108                                $vals[$key] = urldecode($val);
     109                }
     110        }
     111
     112        return array_merge($vals, array(
    88113                'modere' => (($type != 'pri') ? '' : ' '),
    89                 'nom_site' => '',
    90114                'table' => $table,
    91                 'texte' => '',
    92115                'config' => array('afficher_barre' => ($GLOBALS['meta']['forums_afficher_barre']!='non'?' ':'')),
    93                 'titre' => str_replace('~', ' ', extraire_multi($titre)),
    94116                'action' => $script, # ce sur quoi on fait le action='...'
    95117                '_hidden' => $script_hidden, # pour les variables hidden
    96                 'url_site' => "http://",
    97118                'cle_ajouter_document' => $cle,
    98119                'formats_documents_forum' => forum_documents_acceptes(),
     
    103124                'id_forum' => $id_forum, // passer id_forum au formulaire pour lui permettre d'afficher a quoi l'internaute repond
    104125                '_sign'=>implode('_',$ids)
    105         );
     126        ));
    106127}
    107128
Note: See TracChangeset for help on using the changeset viewer.