developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Ticket #507: history.diff

File history.diff, 4.0 KB (added by Lipki, 13 years ago)
  • core/defaultconfig.ini.php

     
    231231default.config = jelix/wymeditor/config/default.js
    232232default.skin.default  = jelix/wymeditor/skins/default/screen.css
    233233
     234
     235[history]
     236maxleng = 10
     237
  • plugins/coord/history/history.coord.php

     
     1<?php
     2/**
     3* @package    jelix
     4* @subpackage coord_plugin
     5* @author     Lepeltier Kévin
     6* @copyright  2008 Lepeltier Kévin
     7*
     8* The plugin History is a plugin coord,
     9* it records the action / settings made during a session and allows for reuse.
     10*
     11* @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
     12*/
     13class historyCoordPlugin implements jICoordPlugin {
     14   
     15        private $maxleng;
     16       
     17    function __construct( $conf ){
     18       
     19                if( !isset($_SESSION['HISTORYTIME']) )
     20            $_SESSION['HISTORYTIME'] = microtime(true);
     21                $this->maxleng = $GLOBALS['gJConfig']->history['maxleng'];
     22       
     23    }
     24   
     25    public function beforeAction ($params) {
     26       
     27        if( !empty($params['history.add']) && $params['history.add'] ) {
     28            if( !isset($_SESSION['HISTORY']) )
     29                $_SESSION['HISTORY'] = array();
     30           
     31            global $gJCoord;
     32            $page['params'] = $gJCoord->request->params;
     33            unset( $page['params']['module'] );
     34            unset( $page['params']['action'] );
     35           
     36            $page['action'] = $gJCoord->action->toString();
     37            $page['label'] = ( !empty($params['history.label']) )? $params['history.label']:'';
     38            $page['title'] = ( !empty($params['history.title']) )? $params['history.title']:'';
     39            $_SESSION['HISTORY'][] = $page;
     40           
     41            $this->double();
     42                       
     43                        if( count($_SESSION['HISTORY']) > $this->maxleng )
     44                            array_shift($_SESSION['HISTORY']);
     45           
     46        }
     47       
     48    }
     49   
     50    public function double() {
     51       
     52        $old = @$_SESSION['HISTORY'][count($_SESSION['HISTORY'])-2];
     53        $page = @$_SESSION['HISTORY'][count($_SESSION['HISTORY'])-1];
     54       
     55        if(    $old['params'] == $page['params']
     56            && $old['action'] == $page['action']
     57            && $old['label']  ==  $page['label']
     58            && $old['title']  ==  $page['title'])
     59            array_pop($_SESSION['HISTORY']);
     60       
     61    }
     62   
     63    public function change( $key, $val ) {
     64        $_SESSION['HISTORY'][count($_SESSION['HISTORY'])-1][$key] = $val;
     65        $this->double();
     66    }
     67   
     68    public function beforeOutput(){}
     69   
     70    public function afterProcess (){}
     71   
     72    public function reload( $rep ) {
     73        $rep->action = end($_SESSION['HISTORY']['action']);
     74        $rep->params = end($_SESSION['HISTORY']['params']);
     75        return $rep;
     76    }
     77   
     78    public function back( $rep ) {
     79        array_pop($_SESSION['HISTORY']);
     80        $rep->action = end($_SESSION['HISTORY']['action']);
     81        $rep->params = end($_SESSION['HISTORY']['params']);
     82        return $rep;
     83    }
     84   
     85    public function time() {
     86        return microtime(true) - $_SESSION['HISTORYTIME'];
     87    }
     88   
     89}
     90
     91?>
     92 No newline at end of file
  • plugins/coord/history/plugin.xml

     
     1<?xml version="1.0" encoding="UTF-8"?>
     2<plugin name="history">
     3   <version major="0" minor="1" status="" date="03/2008" />
     4   <author name="Lepeltier kévin" email="kevin@lepeltier.info" website="" role="creator" />
     5   <description></description>
     6   <infos />
     7</plugin>
     8 No newline at end of file