!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\Intranet\C\xampp\php\PEAR\HTML\Progress2\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.35%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Monitor.php (19.3 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Monitoring of HTML loading bar into a dialog box.
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.01 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_01.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   HTML
 * @package    HTML_Progress2
 * @author     Laurent Laville <pear@laurent-laville.org>
 * @copyright  2005-2007 The PHP Group
 * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
 * @version    CVS: $Id: Monitor.php,v 1.9 2007/01/02 10:58:28 farell Exp $
 * @link       http://pear.php.net/package/HTML_Progress2
 * @since      File available since Release 2.0.0RC1
 */

require_once 'HTML/Progress2.php';
require_once 
'HTML/QuickForm.php';

/**
 * Monitoring of HTML loading bar into a dialog box.
 *
 * The HTML_Progress2_Monitor class allow an easy way to display progress bar
 * into a dialog box, and observe all changes easily. User-end can stop task
 * at anytime.
 *
 * Here is a basic example:
 * <code>
 * <?php
 * require_once 'HTML/Progress2/Monitor.php';
 *
 * $pm = new HTML_Progress2_Monitor();
 *
 * $pb =& $pm->getProgressElement();
 * $pb->setAnimSpeed(200);
 * $pb->setIncrement(10);
 * ?>
 * <html>
 * <head>
 * <?php
 * echo $pm->getStyle(false);
 * echo $pm->getScript(false);
 * ?>
 * </head>
 * <body>
 * <?php
 * $pm->display();
 * $pm->run();
 * ?>
 * </body>
 * </html>
 * </code>
 *
 * @category   HTML
 * @package    HTML_Progress2
 * @author     Laurent Laville <pear@laurent-laville.org>
 * @copyright  2005-2007 The PHP Group
 * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
 * @version    Release: 2.2.0
 * @link       http://pear.php.net/package/HTML_Progress2
 * @since      Class available since Release 2.0.0RC1
 */

class HTML_Progress2_Monitor
{
    
/**
     * Instance-specific unique identification number.
     *
     * @var        integer
     * @since      2.0.0
     * @access     private
     */
    
var $_id;

    
/**#@+
     * Attributes of monitor form.
     *
     * @var        string
     * @since      2.0.0
     * @access     public
     */
    
var $windowname;
    var 
$buttonStart;
    var 
$buttonCancel;
    var 
$autorun;
    
/**#@-*/

    /**
     * Monitor status (text label of progress bar).
     *
     * @var        array
     * @since      2.0.0
     * @access     public
     */
    
var $caption = array();

    
/**
     * The progress object renders into this monitor.
     *
     * @var        object
     * @since      2.0.0
     * @access     private
     */
    
var $_progress;

    
/**
     * The quickform object that allows the presentation.
     *
     * @var        object
     * @since      2.0.0
     * @access     private
     */
    
var $_form;

    
/**
     * Stores the event dispatcher which handles notifications
     *
     * @var        array
     * @since      2.0.0RC2
     * @access     protected
     */
    
var $dispatcher;

    
/**
     * Count the number of observer registered.
     * The Event_Dispatcher will be add on first observer registration, and
     * will be removed with the last observer.
     *
     * @var        integer
     * @since      2.0.0RC2
     * @access     private
     */
    
var $_observerCount;


    
/**
     * Constructor (ZE1)
     *
     * @since      2.0.0
     * @access     public
     */
    
function HTML_Progress2_Monitor($formName 'ProgressMonitor'$attributes = array(),
                                    
$errorPrefs = array())
    {
        
$this->__construct($formName$attributes$errorPrefs);
    }

    
/**
     * Constructor (ZE2) Summary
     *
     * o Creates a standard progress bar into a dialog box (QuickForm).
     *   Form name, buttons 'start', 'cancel' labels and style, and
     *   title of dialog box may also be changed.
     *   <code>
     *   $monitor = new HTML_Progress2_Monitor();
     *   </code>
     *
     * o Creates a progress bar into a dialog box, with only a new
     *   form name.
     *   <code>
     *   $monitor = new HTML_Progress2_Monitor($formName);
     *   </code>
     *
     * o Creates a progress bar into a dialog box, with a new form name,
     *   new buttons name and style, and also a different title box.
     *   <code>
     *   $monitor = new HTML_Progress2_Monitor($formName, $attributes);
     *   </code>
     *
     * @param      string    $formName      (optional) Name of monitor dialog box (QuickForm)
     * @param      array     $attributes    (optional) List of renderer options
     * @param      array     $errorPrefs    (optional) Hash of params to configure error handler
     *
     * @since      2.0.0
     * @access     protected
     * @throws     HTML_PROGRESS2_ERROR_INVALID_INPUT
     */
    
function __construct($formName 'ProgressMonitor'$attributes = array(),
                         
$errorPrefs = array())
    {
        
$this->_progress = new HTML_Progress2($errorPrefs);

        if (!
is_string($formName)) {
            return 
$this->_progress->raiseError(HTML_PROGRESS2_ERROR_INVALID_INPUT'exception',
                array(
'var' => '$formName',
                      
'was' => gettype($formName),
                      
'expected' => 'string',
                      
'paramnum' => 1));

        } elseif (!
is_array($attributes)) {
            return 
$this->_progress->raiseError(HTML_PROGRESS2_ERROR_INVALID_INPUT'exception',
                array(
'var' => '$attributes',
                      
'was' => gettype($attributes),
                      
'expected' => 'array',
                      
'paramnum' => 2));

        }

        
$this->_id md5(microtime());
        
$this->_observerCount 0;

        
$this->_form = new HTML_QuickForm($formName);
        
$this->_form->removeAttribute('name');        // XHTML compliance

        
$captionAttr = array('id' => 'monitorStatus''valign' => 'bottom''left' => 0);

        
$this->windowname   = isset($attributes['title'])  ? $attributes['title']  : 'In progress ...';
        
$this->buttonStart  = isset($attributes['start'])  ? $attributes['start']  : 'Start';
        
$this->buttonCancel = isset($attributes['cancel']) ? $attributes['cancel'] : 'Cancel';
        
$buttonAttr         = isset($attributes['button']) ? $attributes['button'] : '';
        
$this->autorun      = isset($attributes['autorun'])? $attributes['autorun']: false;
        
$this->caption      = isset($attributes['caption'])? $attributes['caption']: $captionAttr;

        
$this->_progress->addLabel(HTML_PROGRESS2_LABEL_TEXT$this->caption['id']);
        
$captionAttr $this->caption;
        unset(
$captionAttr['id']);
        
$this->_progress->setLabelAttributes($this->caption['id'], $captionAttr);
        
$this->_progress->setProgressAttributes('top=0 left=0');

        
$this->_form->addElement('header''windowname'$this->windowname);
        
$this->_form->addElement('static''progressBar');

        if (
$this->isStarted()) {
            
$style = array('disabled'=>'true');
        } else {
            
$style null;
        }

        
$buttons[] =& $this->_form->createElement('submit''start',  $this->buttonStart$style);
        
$buttons[] =& $this->_form->createElement('submit''cancel'$this->buttonCancel);

        
$buttons[0]->updateAttributes($buttonAttr);
        
$buttons[1]->updateAttributes($buttonAttr);

        
$this->_form->addGroup($buttons'buttons''''&nbsp;'false);

        
// default embedded progress element with look-and-feel
        
$this->setProgressElement($this->_progress);
    }

    
/**
     * Adds a new observer.
     *
     * Adds a new observer to the Event Dispatcher that will listen
     * for all messages emitted by this HTML_Progress2 instance.
     *
     * @param      mixed     $callback      PHP callback that will act as listener
     *
     * @return     void
     * @since      2.0.0
     * @access     public
     * @throws     HTML_PROGRESS2_ERROR_INVALID_CALLBACK
     * @see        removeListener()
     */
    
function addListener($callback)
    {
        if (!
is_callable($callback)) {
            return 
$this->raiseError(HTML_PROGRESS2_ERROR_INVALID_CALLBACK'exception',
                array(
'var' => '$callback',
                      
'element' => 'valid Class-Method/Function',
                      
'was' => 'callback',
                      
'paramnum' => 1));
        }

        
$this->dispatcher =& Event_Dispatcher::getInstance();
        
$this->dispatcher->addObserver($callback);
        
$this->_observerCount++;
    }

    
/**
     * Removes a registered observer.
     *
     * This function removes a registered observer, and if there are no more
     * observer, remove the event dispatcher interface too.
     *
     * @param      mixed     $callback      PHP callback that act as listener
     *
     * @return     bool                     True if observer was removed, false otherwise
     * @since      2.0.0
     * @access     public
     * @throws     HTML_PROGRESS2_ERROR_INVALID_CALLBACK
     * @see        addListener()
     */
    
function removeListener($callback)
    {
        if (!
is_callable($callback)) {
            return 
$this->raiseError(HTML_PROGRESS2_ERROR_INVALID_CALLBACK'exception',
                array(
'var' => '$callback',
                      
'element' => 'valid Class-Method/Function',
                      
'was' => 'callback',
                      
'paramnum' => 1));
        }

        
$result $this->dispatcher->removeObserver($callback);

        if (
$result) {
            
$this->_observerCount--;
            if (
$this->_observerCount == 0) {
                unset(
$this->dispatcher);
            }
        }
        return 
$result;
    }

    
/**
     * Detect if progress monitor is started.
     *
     * This function returns TRUE if progress monitor was started by user,
     * FALSE otherwise.
     *
     * @return     bool
     * @since      2.0.0
     * @access     public
     */
    
function isStarted()
    {
        
$action $this->_form->getSubmitValues();
        return (isset(
$action['start']) || $this->autorun);
    }

    
/**
     * Detect if progress monitor is stopped.
     *
     * This function returns TRUE if progress monitor was canceled by user,
     * FALSE otherwise.
     *
     * @return     bool
     * @since      2.0.0
     * @access     public
     */
    
function isCanceled()
    {
        
$action $this->_form->getSubmitValues();
        return (isset(
$action['cancel']));
    }

    
/**
     * Runs the progress monitor.
     *
     * This function accept both modes: indeterminate and determinate,
     * and execute all actions defined in the user callback identified by
     * HTML_Progress2::setProgressHandler() method.
     *
     * All observers are also notified of main changes (start, stop meter).
     *
     * @return     void
     * @since      2.0.0
     * @access     public
     */
    
function run()
    {
        if (
$this->isCanceled()) {
            
$this->_postNotification('onCancel',
                array(
'handler' => __FUNCTION__'value' => $this->_progress->getValue()));
        }
        if (
$this->isStarted()) {
            
$this->_progress->_status 'show';

            
$this->_postNotification('onSubmit',
                array(
'handler' => __FUNCTION__'value' => $this->_progress->getValue()));
            
$this->_progress->run();
            
$this->_postNotification('onLoad',
                array(
'handler' => __FUNCTION__'value' => $this->_progress->getValue()));
        }
    }

    
/**
     * Links a progress bar to this monitor.
     *
     * This function allow to define a complete progress bar from scratch.
     *
     * @param      object    $bar           a html_progress2 instance
     *
     * @return     void
     * @since      2.0.0
     * @access     public
     * @throws     HTML_PROGRESS2_ERROR_INVALID_INPUT
     * @see        getProgressElement()
     */
    
function setProgressElement(&$bar)
    {
        if (!
is_a($bar'HTML_Progress2')) {
            return 
$this->_progress->raiseError(HTML_PROGRESS2_ERROR_INVALID_INPUT'exception',
                array(
'var' => '$bar',
                      
'was' => gettype($bar),
                      
'expected' => 'HTML_Progress2 object',
                      
'paramnum' => 1));
        }
        
$this->_progress $bar;

        
$bar =& $this->_form->getElement('progressBar');
        
$bar->setText$this->_progress->toHtml() );
    }

    
/**
     * Returns a reference to the progress bar.
     *
     * This function returns a reference to the progress meter
     * used with the monitor. Its allow to change easily part or all basic options.
     *
     * @return     object
     * @since      2.0.0
     * @access     public
     * @see        setProgressElement()
     */
    
function &getProgressElement()
    {
        return 
$this->_progress;
    }

    
/**
     * Returns the cascading style sheet (CSS).
     *
     * Get the CSS required to display the progress meter in a HTML document.
     *
     * @param      boolean   (optional) html output with script tags or just raw data
     *
     * @return     string
     * @since      2.0.0
     * @access     public
     * @throws     HTML_PROGRESS2_ERROR_INVALID_INPUT
     */
    
function getStyle($raw true)
    {
        if (!
is_bool($raw)) {
            return 
$this->raiseError(HTML_PROGRESS2_ERROR_INVALID_INPUT'exception',
                array(
'var' => '$raw',
                      
'was' => gettype($raw),
                      
'expected' => 'boolean',
                      
'paramnum' => 1));
        }

        return 
$this->_progress->getStyle($raw);
    }

    
/**
     * Returns javascript progress meter handler.
     *
     * Get the javascript URL or inline code that will handle the progress meter
     * refresh.
     *
     * @param      boolean   (optional) html output with script tags or just raw data
     *
     * @return     string
     * @since      2.0.0
     * @throws     HTML_PROGRESS2_ERROR_INVALID_INPUT
     * @access     public
     */
    
function getScript($raw true)
    {
        if (!
is_bool($raw)) {
            return 
$this->raiseError(HTML_PROGRESS2_ERROR_INVALID_INPUT'exception',
                array(
'var' => '$raw',
                      
'was' => gettype($raw),
                      
'expected' => 'boolean',
                      
'paramnum' => 1));
        }

        return 
$this->_progress->getScript($raw);
    }

    
/**
     * Returns the progress monitor structure as HTML.
     *
     * Get html code required to display the progress monitor in any html document.
     *
     * @return     string
     * @since      2.0.0
     * @access     public
     */
    
function toHtml()
    {
        
$barAttr $this->_progress->getProgressAttributes();
        
$width $barAttr['width'] + 70;

        
$formTpl "\n<form{attributes}>"
                 
"\n<div>"
                 
"\n{hidden}"
                 
"<table width=\"{$width}\" border=\"0\">"
                 
"\n{content}"
                 
"\n</table>"
                 
"\n</div>"
                 
"\n</form>";
        
$renderer =& $this->_form->defaultRenderer();
        
$renderer->setFormTemplate($formTpl);

        return 
$this->_form->toHtml();
    }

    
/**
     * Renders the initial state of progress monitor.
     *
     * This function should be used only to display initial state of the
     * progress monitor with default QF renderer. If you use another QF renderer
     * (Smarty, ITDynamic, ...) read template engine renderer related documentation.
     *
     * @return     void
     * @since      2.0.0RC2
     * @access     public
     */
    
function display()
    {
        echo 
$this->toHtml();
    }

    
/**
     * Accepts a renderer.
     *
     * Accepts a QF renderer for design pattern.
     *
     * @param      object    $renderer      An HTML_QuickForm_Renderer object
     *
     * @return     void
     * @since      2.0.0
     * @access     public
     */
    
function accept(&$renderer)
    {
        if (!
is_a($renderer'HTML_QuickForm_Renderer')) {
            return 
$this->_progress->raiseError(HTML_PROGRESS2_ERROR_INVALID_INPUT'exception',
                array(
'var' => '$renderer',
                      
'was' => gettype($renderer),
                      
'expected' => 'HTML_QuickForm_Renderer object',
                      
'paramnum' => 1));
        }
        
$this->_form->accept($renderer);
    }

    
/**
     * Display a caption on action in progress.
     *
     * The idea of a simple utility function for replacing variables
     * with values in an message template, come from sprintfErrorMessage
     * function of Error_Raise package by Greg Beaver.
     *
     * This simple str_replace-based function can be used to have an
     * order-independent sprintf, so messages can be passed in
     * with different grammar ordering, or other possibilities without
     * changing the source code.
     *
     * Variables should simply be surrounded by % as in %varname%
     *
     * @param      string    $caption       (optional) message template
     * @param      array     $args          (optional) associative array of
     *                                      template var -> message text
     * @since      2.0.0
     * @access     public
     */
    
function setCaption($caption '&nbsp;'$args = array())
    {
        if (!
is_string($caption)) {
            return 
$this->_progress->raiseError(HTML_PROGRESS2_ERROR_INVALID_INPUT'exception',
                array(
'var' => '$caption',
                      
'was' => gettype($caption),
                      
'expected' => 'string',
                      
'paramnum' => 1));

        } elseif (!
is_array($args)) {
            return 
$this->_progress->raiseError(HTML_PROGRESS2_ERROR_INVALID_INPUT'exception',
                array(
'var' => '$args',
                      
'was' => gettype($args),
                      
'expected' => 'array',
                      
'paramnum' => 2));
        }

        foreach(
$args as $name => $value) {
            
$caption str_replace("%$name%"$value$caption);
        }
        
$this->_progress->setLabelAttributes($this->caption['id'], array('value' => $caption));
    }

    
/**
     * Post a new notification to all observers registered.
     *
     * This notification occured only if a dispatcher exists. That means if
     * at least one observer was registered.
     *
     * @param      string    $event         Name of the notification handler
     * @param      array     $info          (optional) Additional information about the notification
     *
     * @return     void
     * @since      2.0.0RC2
     * @access     private
     */
    
function _postNotification($event$info = array())
    {
        if (isset(
$this->dispatcher)) {
            
$info['sender'] = get_class($this);
            
$info['time']   = microtime();
            
$this->dispatcher->post($this$event$info);
        }
    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--