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:27.43 GB of 70.42 GB (38.96%)
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/ guitar.1/ libraries/ joomla/ - drwxr-xr-x

Directory:
Viewing file:     factory.php (19.65 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @package    Joomla.Platform
 *
 * @copyright  Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Joomla Platform Factory class
 *
 * @package  Joomla.Platform
 * @since    11.1
 */
abstract class JFactory
{
    
/**
     * @var    JApplication
     * @since  11.1
     */
    
public static $application null;

    
/**
     * @var    JCache
     * @since  11.1
     */
    
public static $cache null;

    
/**
     * @var    JConfig
     * @since  11.1
     */
    
public static $config null;

    
/**
     * @var    array
     * @since  11.3
     */
    
public static $dates = array();

    
/**
     * @var    JSession
     * @since  11.1
     */
    
public static $session null;

    
/**
     * @var    JLanguage
     * @since  11.1
     */
    
public static $language null;

    
/**
     * @var    JDocument
     * @since  11.1
     */
    
public static $document null;

    
/**
     * @var    JAccess
     * @since  11.1
     */
    
public static $acl null;

    
/**
     * @var    JDatabase
     * @since  11.1
     */
    
public static $database null;

    
/**
     * @var    JMail
     * @since  11.1
     */
    
public static $mailer null;

    
/**
     * Get a application object.
     *
     * Returns the global {@link JApplication} object, only creating it if it doesn't already exist.
     *
     * @param   mixed   $id      A client identifier or name.
     * @param   array   $config  An optional associative array of configuration settings.
     * @param   string  $prefix  Application prefix
     *
     * @return  JApplication object
     *
     * @see     JApplication
     * @since   11.1
     */
    
public static function getApplication($id null$config = array(), $prefix 'J')
    {
        if (!
self::$application)
        {
            if (!
$id)
            {
                
JError::raiseError(500'Application Instantiation Error');
            }

            
self::$application JApplication::getInstance($id$config$prefix);
        }

        return 
self::$application;
    }

    
/**
     * Get a configuration object
     *
     * Returns the global {@link JRegistry} object, only creating it if it doesn't already exist.
     *
     * @param   string  $file  The path to the configuration file
     * @param   string  $type  The type of the configuration file
     *
     * @return  JRegistry
     *
     * @see     JRegistry
     * @since   11.1
     */
    
public static function getConfig($file null$type 'PHP')
    {
        if (!
self::$config)
        {
            if (
$file === null)
            {
                
$file JPATH_PLATFORM '/config.php';
            }

            
self::$config self::createConfig($file$type);
        }

        return 
self::$config;
    }

    
/**
     * Get a session object.
     *
     * Returns the global {@link JSession} object, only creating it if it doesn't already exist.
     *
     * @param   array  $options  An array containing session options
     *
     * @return  JSession object
     *
     * @see     JSession
     * @since   11.1
     */
    
public static function getSession($options = array())
    {
        if (!
self::$session)
        {
            
self::$session self::createSession($options);
        }

        return 
self::$session;
    }

    
/**
     * Get a language object.
     *
     * Returns the global {@link JLanguage} object, only creating it if it doesn't already exist.
     *
     * @return  JLanguage object
     *
     * @see     JLanguage
     * @since   11.1
     */
    
public static function getLanguage()
    {
        if (!
self::$language)
        {
            
self::$language self::createLanguage();
        }

        return 
self::$language;
    }

    
/**
     * Get a document object.
     *
     * Returns the global {@link JDocument} object, only creating it if it doesn't already exist.
     *
     * @return  JDocument object
     *
     * @see     JDocument
     * @since   11.1
     */
    
public static function getDocument()
    {
        if (!
self::$document)
        {
            
self::$document self::createDocument();
        }

        return 
self::$document;
    }

    
/**
     * Get an user object.
     *
     * Returns the global {@link JUser} object, only creating it if it doesn't already exist.
     *
     * @param   integer  $id  The user to load - Can be an integer or string - If string, it is converted to ID automatically.
     *
     * @return  JUser object
     *
     * @see     JUser
     * @since   11.1
     */
    
public static function getUser($id null)
    {
        if (
is_null($id))
        {
            
$instance self::getSession()->get('user');
            if (!(
$instance instanceof JUser))
            {
                
$instance JUser::getInstance();
            }
        }
        else
        {
            
$current self::getSession()->get('user');
            if (
$current->id != $id)
            {
                
$instance JUser::getInstance($id);
            }
            else
            {
                
$instance self::getSession()->get('user');
            }
        }

        return 
$instance;
    }

    
/**
     * Get a cache object
     *
     * Returns the global {@link JCache} object
     *
     * @param   string  $group    The cache group name
     * @param   string  $handler  The handler to use
     * @param   string  $storage  The storage method
     *
     * @return  JCache object
     *
     * @see     JCache
     */
    
public static function getCache($group ''$handler 'callback'$storage null)
    {
        
$hash md5($group $handler $storage);
        if (isset(
self::$cache[$hash]))
        {
            return 
self::$cache[$hash];
        }
        
$handler = ($handler == 'function') ? 'callback' $handler;

        
$options = array('defaultgroup' => $group);

        if (isset(
$storage))
        {
            
$options['storage'] = $storage;
        }

        
$cache JCache::getInstance($handler$options);

        
self::$cache[$hash] = $cache;

        return 
self::$cache[$hash];
    }

    
/**
     * Get an authorization object
     *
     * Returns the global {@link JACL} object, only creating it
     * if it doesn't already exist.
     *
     * @return  JACL object
     */
    
public static function getACL()
    {
        if (!
self::$acl)
        {
            
self::$acl = new JAccess;
        }

        return 
self::$acl;
    }

    
/**
     * Get a database object.
     *
     * Returns the global {@link JDatabase} object, only creating it if it doesn't already exist.
     *
     * @return  JDatabase object
     *
     * @see     JDatabase
     * @since   11.1
     */
    
public static function getDbo()
    {
        if (!
self::$database)
        {
            
//get the debug configuration setting
            
$conf self::getConfig();
            
$debug $conf->get('debug');

            
self::$database self::createDbo();
            
self::$database->setDebug($debug);
        }

        return 
self::$database;
    }

    
/**
     * Get a mailer object.
     *
     * Returns the global {@link JMail} object, only creating it if it doesn't already exist.
     *
     * @return  JMail object
     *
     * @see     JMail
     * @since   11.1
     */
    
public static function getMailer()
    {
        if (!
self::$mailer)
        {
            
self::$mailer self::createMailer();
        }
        
$copy = clone self::$mailer;

        return 
$copy;
    }

    
/**
     * Get a parsed XML Feed Source
     *
     * @param   string   $url         Url for feed source.
     * @param   integer  $cache_time  Time to cache feed for (using internal cache mechanism).
     *
     * @return  mixed  SimplePie parsed object on success, false on failure.
     *
     * @since   11.1
     */
    
public static function getFeedParser($url$cache_time 0)
    {
        
jimport('simplepie.simplepie');

        
$cache self::getCache('feed_parser''callback');

        if (
$cache_time 0)
        {
            
$cache->setLifeTime($cache_time);
        }

        
$simplepie = new SimplePie(nullnull0);

        
$simplepie->enable_cache(false);
        
$simplepie->set_feed_url($url);
        
$simplepie->force_feed(true);

        
$contents $cache->get(array($simplepie'init'), nullfalsefalse);

        if (
$contents)
        {
            return 
$simplepie;
        }
        else
        {
            
JError::raiseWarning('SOME_ERROR_CODE'JText::_('JLIB_UTIL_ERROR_LOADING_FEED_DATA'));
        }

        return 
false;
    }

    
/**
     * Get an XML document
     *
     * @param   string  $type     The type of XML parser needed 'DOM', 'RSS' or 'Simple'
     * @param   array   $options  ['rssUrl'] the rss url to parse when using "RSS", ['cache_time'] with '
     *                             RSS' - feed cache time. If not defined defaults to 3600 sec
     *
     * @return  object  Parsed XML document object
     *
     * @deprecated    12.1   Use JXMLElement instead.
     * @see           JXMLElement
     */
    
public static function getXMLParser($type ''$options = array())
    {
        
// Deprecation warning.
        
JLog::add('JFactory::getXMLParser() is deprecated.'JLog::WARNING'deprecated');

        
$doc null;

        switch (
strtolower($type))
        {
            case 
'rss':
            case 
'atom':
                
$cache_time = isset($options['cache_time']) ? $options['cache_time'] : 0;
                
$doc self::getFeedParser($options['rssUrl'], $cache_time);
                break;

            case 
'simple':
                
// JError::raiseWarning('SOME_ERROR_CODE', 'JSimpleXML is deprecated. Use self::getXML instead');
                
jimport('joomla.utilities.simplexml');
                
$doc = new JSimpleXML;
                break;

            case 
'dom':
                
JError::raiseWarning('SOME_ERROR_CODE'JText::_('JLIB_UTIL_ERROR_DOMIT'));
                
$doc null;
                break;

            default:
                
$doc null;
        }

        return 
$doc;
    }

    
/**
     * Reads a XML file.
     *
     * @param   string   $data    Full path and file name.
     * @param   boolean  $isFile  true to load a file or false to load a string.
     *
     * @return  mixed    JXMLElement on success or false on error.
     *
     * @see     JXMLElement
     * @since   11.1
     * @todo    This may go in a separate class - error reporting may be improved.
     */
    
public static function getXML($data$isFile true)
    {
        
jimport('joomla.utilities.xmlelement');

        
// Disable libxml errors and allow to fetch error information as needed
        
libxml_use_internal_errors(true);

        if (
$isFile)
        {
            
// Try to load the XML file
            
$xml simplexml_load_file($data'JXMLElement');
        }
        else
        {
            
// Try to load the XML string
            
$xml simplexml_load_string($data'JXMLElement');
        }

        if (empty(
$xml))
        {
            
// There was an error
            
JError::raiseWarning(100JText::_('JLIB_UTIL_ERROR_XML_LOAD'));

            if (
$isFile)
            {
                
JError::raiseWarning(100$data);
            }

            foreach (
libxml_get_errors() as $error)
            {
                
JError::raiseWarning(100'XML: ' $error->message);
            }
        }

        return 
$xml;
    }

    
/**
     * Get an editor object.
     *
     * @param   string  $editor  The editor to load, depends on the editor plugins that are installed
     *
     * @return  JEditor object
     *
     * @since   11.1
     */
    
public static function getEditor($editor null)
    {
        
jimport('joomla.html.editor');

        
//get the editor configuration setting
        
if (is_null($editor))
        {
            
$conf self::getConfig();
            
$editor $conf->get('editor');
        }

        return 
JEditor::getInstance($editor);
    }

    
/**
     * Return a reference to the {@link JURI} object
     *
     * @param   string  $uri  Uri name.
     *
     * @return  JURI object
     *
     * @see     JURI
     * @since   11.1
     */
    
public static function getURI($uri 'SERVER')
    {
        
jimport('joomla.environment.uri');

        return 
JURI::getInstance($uri);
    }

    
/**
     * Return the {@link JDate} object
     *
     * @param   mixed  $time      The initial time for the JDate object
     * @param   mixed  $tzOffset  The timezone offset.
     *
     * @return  JDate object
     *
     * @see     JDate
     * @since   11.1
     */
    
public static function getDate($time 'now'$tzOffset null)
    {
        
jimport('joomla.utilities.date');
        static 
$classname;
        static 
$mainLocale;

        
$language self::getLanguage();
        
$locale $language->getTag();

        if (!isset(
$classname) || $locale != $mainLocale)
        {
            
//Store the locale for future reference
            
$mainLocale $locale;

            if (
$mainLocale !== false)
            {
                
$classname str_replace('-''_'$mainLocale) . 'Date';

                if (!
class_exists($classname))
                {
                    
//The class does not exist, default to JDate
                    
$classname 'JDate';
                }
            }
            else
            {
                
//No tag, so default to JDate
                
$classname 'JDate';
            }
        }

        
$key $time '-' . ($tzOffset instanceof DateTimeZone $tzOffset->getName() : (string) $tzOffset);

        if (!isset(
self::$dates[$classname][$key]))
        {
            
self::$dates[$classname][$key] = new $classname($time$tzOffset);
        }

        
$date = clone self::$dates[$classname][$key];

        return 
$date;
    }

    
/**
     * Create a configuration object
     *
     * @param   string  $file       The path to the configuration file.
     * @param   string  $type       The type of the configuration file.
     * @param   string  $namespace  The namespace of the configuration file.
     *
     * @return  JRegistry
     *
     * @see     JRegistry
     * @since   11.1
     * @deprecated 12.3
     */
    
protected static function _createConfig($file$type 'PHP'$namespace '')
    {
        
JLog::add(__METHOD__ '() is deprecated.'JLog::WARNING'deprecated');

        return 
self::createConfig($file$type$namespace);
    }

    
/**
     * Create a configuration object
     *
     * @param   string  $file       The path to the configuration file.
     * @param   string  $type       The type of the configuration file.
     * @param   string  $namespace  The namespace of the configuration file.
     *
     * @return  JRegistry
     *
     * @see     JRegistry
     * @since   11.1
     */
    
protected static function createConfig($file$type 'PHP'$namespace '')
    {
        if (
is_file($file))
        {
            include_once 
$file;
        }

        
// Create the registry with a default namespace of config
        
$registry = new JRegistry;

        
// Sanitize the namespace.
        
$namespace ucfirst((string) preg_replace('/[^A-Z_]/i'''$namespace));

        
// Build the config name.
        
$name 'JConfig' $namespace;

        
// Handle the PHP configuration type.
        
if ($type == 'PHP' && class_exists($name))
        {
            
// Create the JConfig object
            
$config = new $name;

            
// Load the configuration values into the registry
            
$registry->loadObject($config);
        }

        return 
$registry;
    }

    
/**
     * Create a session object
     *
     * @param   array  $options  An array containing session options
     *
     * @return  JSession object
     *
     * @since   11.1
     * @deprecated 12.3
     */
    
protected static function _createSession($options = array())
    {
        
JLog::add(__METHOD__ '() is deprecated.'JLog::WARNING'deprecated');

        return 
self::createSession($options);
    }

    
/**
     * Create a session object
     *
     * @param   array  $options  An array containing session options
     *
     * @return  JSession object
     *
     * @since   11.1
     */
    
protected static function createSession($options = array())
    {
        
// Get the editor configuration setting
        
$conf self::getConfig();
        
$handler $conf->get('session_handler''none');

        
// Config time is in minutes
        
$options['expire'] = ($conf->get('lifetime')) ? $conf->get('lifetime') * 60 900;

        
$session JSession::getInstance($handler$options);
        if (
$session->getState() == 'expired')
        {
            
$session->restart();
        }

        return 
$session;
    }

    
/**
     * Create an database object
     *
     * @return  JDatabase object
     *
     * @see     JDatabase
     * @since   11.1
     * @deprecated 12.3
     */
    
protected static function _createDbo()
    {
        
JLog::add(__METHOD__ '() is deprecated.'JLog::WARNING'deprecated');

        return 
self::createDbo();
    }

    
/**
     * Create an database object
     *
     * @return  JDatabase object
     *
     * @see     JDatabase
     * @since   11.1
     */
    
protected static function createDbo()
    {
        
jimport('joomla.database.table');

        
$conf self::getConfig();

        
$host $conf->get('host');
        
$user $conf->get('user');
        
$password $conf->get('password');
        
$database $conf->get('db');
        
$prefix $conf->get('dbprefix');
        
$driver $conf->get('dbtype');
        
$debug $conf->get('debug');

        
$options = array('driver' => $driver'host' => $host'user' => $user'password' => $password'database' => $database'prefix' => $prefix);

        
$db JDatabase::getInstance($options);

        if (
$db instanceof Exception)
        {
            if (!
headers_sent())
            {
                
header('HTTP/1.1 500 Internal Server Error');
            }
            
jexit('Database Error: ' . (string) $db);
        }

        if (
$db->getErrorNum() > 0)
        {
            die(
sprintf('Database connection error (%d): %s'$db->getErrorNum(), $db->getErrorMsg()));
        }

        
$db->setDebug($debug);

        return 
$db;
    }

    
/**
     * Create a mailer object
     *
     * @return  JMail object
     *
     * @see     JMail
     * @since   11.1
     * @deprecated 12.3
     */
    
protected static function _createMailer()
    {
        
JLog::add(__METHOD__ '() is deprecated.'JLog::WARNING'deprecated');

        return 
self::createMailer();
    }

    
/**
     * Create a mailer object
     *
     * @return  JMail object
     *
     * @see     JMail
     * @since   11.1
     */
    
protected static function createMailer()
    {
        
$conf self::getConfig();

        
$smtpauth = ($conf->get('smtpauth') == 0) ? null 1;
        
$smtpuser $conf->get('smtpuser');
        
$smtppass $conf->get('smtppass');
        
$smtphost $conf->get('smtphost');
        
$smtpsecure $conf->get('smtpsecure');
        
$smtpport $conf->get('smtpport');
        
$mailfrom $conf->get('mailfrom');
        
$fromname $conf->get('fromname');
        
$mailer $conf->get('mailer');

        
// Create a JMail object
        
$mail JMail::getInstance();

        
// Set default sender without Reply-to
        
$mail->SetFrom(JMailHelper::cleanLine($mailfrom), JMailHelper::cleanLine($fromname), 0);

        
// Default mailer is to use PHP's mail function
        
switch ($mailer)
        {
            case 
'smtp':
                
$mail->useSMTP($smtpauth$smtphost$smtpuser$smtppass$smtpsecure$smtpport);
                break;

            case 
'sendmail':
                
$mail->IsSendmail();
                break;

            default:
                
$mail->IsMail();
                break;
        }

        return 
$mail;
    }

    
/**
     * Create a language object
     *
     * @return  JLanguage object
     *
     * @see     JLanguage
     * @since   11.1
     * @deprecated 12.3
     */
    
protected static function _createLanguage()
    {
        
JLog::add(__METHOD__ ' is deprecated.'JLog::WARNING'deprecated');

        return 
self::createLanguage();
    }

    
/**
     * Create a language object
     *
     * @return  JLanguage object
     *
     * @see     JLanguage
     * @since   11.1
     */
    
protected static function createLanguage()
    {
        
$conf self::getConfig();
        
$locale $conf->get('language');
        
$debug $conf->get('debug_lang');
        
$lang JLanguage::getInstance($locale$debug);

        return 
$lang;
    }

    
/**
     * Create a document object
     *
     * @return  JDocument object
     *
     * @see     JDocument
     * @since   11.1
     * @deprecated 12.3
     */
    
protected static function _createDocument()
    {
        
JLog::add(__METHOD__ ' is deprecated.'JLog::WARNING'deprecated');

        return 
self::createDocument();
    }

    
/**
     * Create a document object
     *
     * @return  JDocument object
     *
     * @see     JDocument
     * @since   11.1
     */
    
protected static function createDocument()
    {
        
$lang self::getLanguage();

        
// Keep backwards compatibility with Joomla! 1.0
        // @deprecated 12.1 This will be removed in the next version
        
$raw JRequest::getBool('no_html');
        
$type JRequest::getWord('format'$raw 'raw' 'html');

        
$attributes = array('charset' => 'utf-8''lineend' => 'unix''tab' => '  ''language' => $lang->getTag(),
            
'direction' => $lang->isRTL() ? 'rtl' 'ltr');

        return 
JDocument::getInstance($type$attributes);
    }

    
/**
     * Creates a new stream object with appropriate prefix
     *
     * @param   boolean  $use_prefix   Prefix the connections for writing
     * @param   boolean  $use_network  Use network if available for writing; use false to disable (e.g. FTP, SCP)
     * @param   string   $ua           UA User agent to use
     * @param   boolean  $uamask       User agent masking (prefix Mozilla)
     *
     * @return  JStream
     *
     * @see JStream
     * @since   11.1
     */
    
public static function getStream($use_prefix true$use_network true$ua null$uamask false)
    {
        
jimport('joomla.filesystem.stream');

        
// Setup the context; Joomla! UA and overwrite
        
$context = array();
        
$version = new JVersion;
        
// set the UA for HTTP and overwrite for FTP
        
$context['http']['user_agent'] = $version->getUserAgent($ua$uamask);
        
$context['ftp']['overwrite'] = true;

        if (
$use_prefix)
        {
            
$FTPOptions JClientHelper::getCredentials('ftp');
            
$SCPOptions JClientHelper::getCredentials('scp');

            if (
$FTPOptions['enabled'] == && $use_network)
            {
                
$prefix 'ftp://' $FTPOptions['user'] . ':' $FTPOptions['pass'] . '@' $FTPOptions['host'];
                
$prefix .= $FTPOptions['port'] ? ':' $FTPOptions['port'] : '';
                
$prefix .= $FTPOptions['root'];
            }
            elseif (
$SCPOptions['enabled'] == && $use_network)
            {
                
$prefix 'ssh2.sftp://' $SCPOptions['user'] . ':' $SCPOptions['pass'] . '@' $SCPOptions['host'];
                
$prefix .= $SCPOptions['port'] ? ':' $SCPOptions['port'] : '';
                
$prefix .= $SCPOptions['root'];
            }
            else
            {
                
$prefix JPATH_ROOT '/';
            }

            
$retval = new JStream($prefixJPATH_ROOT$context);
        }
        else
        {
            
$retval = new JStream(''''$context);
        }

        return 
$retval;
    }
}
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: 1.9183 seconds