uawdijnntqw1x1x1
IP : 216.73.216.249
Hostname : webm001.cluster110.gra.hosting.ovh.net
Kernel : Linux webm001.cluster110.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
etiennec
/
www
/
e6335
/
..
/
ecrire
/
inc
/
cvt_autosave.php
/
/
<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; /** * Nettoyer les echappements * @param $val * @return string */ function autosave_clean_value($val){ return stripslashes(urldecode($val)); } /** * Reperer une demande de formulaire autosave * et la conditionner * * @param array $flux * @return array */ function cvtautosave_formulaire_charger($flux){ if (is_array($flux['data']) AND isset($flux['data']['_autosave_id']) AND $cle_autosave = $flux['data']['_autosave_id']){ $form = $flux['args']['form']; $je_suis_poste = $flux['args']['je_suis_poste']; $cle_autosave = serialize($cle_autosave); $cle_autosave = $form."_".md5($cle_autosave); // si on a un backup en session et qu'on est au premier chargement, non poste // on restitue les donnees if (isset($GLOBALS['visiteur_session']['session_autosave_'.$cle_autosave]) AND !$je_suis_poste) { parse_str($GLOBALS['visiteur_session']['session_autosave_'.$cle_autosave], $vars); foreach ($vars as $key=>$val) { if (isset($flux['data'][$key])) $flux['data'][$key] = (is_string($val)?autosave_clean_value($val):array_map('autosave_clean_value',$val)); } } /** * Envoyer le input hidden et le bout de js qui l'utilisera */ $flux['data']['_hidden'] .= "<input type='hidden' name='autosave' class='autosaveactive' value='$cle_autosave' />" .'<script type="text/javascript">/*<![CDATA[*/if (window.jQuery) jQuery(function(){ $("input.autosaveactive").closest("form:not(.autosaveon)").autosave({url:"'.$GLOBALS['meta']['adresse_site'].'/"}).addClass("autosaveon"); });/*]]>*/</script>'; } return $flux; } /** * Quand on poste definitivement un formulaire autosave, * on peut vider la session autosave * et on vide aussi toutes les autosave de plus de 72H (delai par defaut) ou sans __timestamp (vieilles sessions) * @param $flux * @return */ function cvtautosave_formulaire_traiter($flux){ // si on poste 'autosave' c'est qu'on n'a plus besoin de sauvegarder : // on elimine les donnees de la session if ($cle_autosave = _request('autosave')){ include_spip('inc/session'); session_set('session_autosave_'.$cle_autosave, null); // delai par defaut avant purge d'un backup de form : 72H if (!defined('_AUTOSAVE_GB_DELAY')) define('_AUTOSAVE_GB_DELAY',72*3600); $time_too_old = time() - _AUTOSAVE_GB_DELAY; // purger aussi toutes les vieilles autosave $session = $GLOBALS['visiteur_session']; foreach($session as $k=>$v){ if (strncmp($k,'session_autosave_',17)==0){ $timestamp = 0; if (preg_match(",&__timestamp=(\d+)$,",$v,$m)){ $timestamp = intval($m[1]); } if ($timestamp<$time_too_old) session_set($k, null); } } } return $flux; }
/home/etiennec/www/e6335/../ecrire/inc/cvt_autosave.php