| Server IP : 180.180.241.3 / Your IP : 216.73.216.25 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/AppServ/www/news/installation1/installer/ |
Upload File : |
<?php
/**
* @version $Id: jajax.php 14401 2010-01-26 14:10:00Z louis $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
define( '_JEXEC', 1 );
//Global definitions
define( 'DS', DIRECTORY_SEPARATOR );
//Joomla framework path definitions
$parts = explode( DS, dirname(__FILE__) );
array_pop( $parts );
define( 'JPATH_BASE', implode( DS, $parts ) );
array_pop( $parts );
define( 'JPATH_ROOT', implode( DS, $parts ) );
define( 'JPATH_SITE', JPATH_ROOT );
define( 'JPATH_CONFIGURATION', JPATH_ROOT );
define( 'JPATH_LIBRARIES', JPATH_ROOT . DS . 'libraries' );
define( 'JXPATH_BASE', JPATH_BASE.DS.'includes' );
// Make sure that Joomla! is not yet installed
if (file_exists(JPATH_CONFIGURATION.DS.'configuration.php') && (filesize(JPATH_CONFIGURATION.DS.'configuration.php') > 10)) {
header( 'Location: ../../index.php' );
exit();
}
// System includes
require_once( JPATH_LIBRARIES .DS.'joomla'.DS.'import.php');
require_once( JPATH_BASE . DS. 'installer' . DS . 'helper.php' );
// Require the xajax library
require_once (JXPATH_BASE.DS.'xajax'.DS.'xajax.inc.php');
$xajax = new xajax();
$xajax->errorHandlerOn();
$xajax->registerFunction(array('getFtpRoot', 'JAJAXHandler', 'ftproot'));
$xajax->registerFunction(array('FTPVerify', 'JAJAXHandler', 'ftpverify'));
$xajax->registerFunction(array('instDefault', 'JAJAXHandler', 'sampledata'));
JError::setErrorHandling(E_ERROR, 'callback', array('JAJAXHandler','handleError'));
JError::setErrorHandling(E_WARNING, 'callback', array('JAJAXHandler','handleError'));
JError::setErrorHandling(E_NOTICE, 'callback', array('JAJAXHandler','handleError'));
require_once(JPATH_SITE.DS.'libraries'.DS.'joomla'.DS.'utilities'.DS.'compat'.DS.'compat.php');
/**
* AJAX Task handler class
*
* @static
* @package Joomla
* @subpackage Installer
* @since 1.5
*/
class JAJAXHandler
{
/**
* Method to get the path from the FTP root to the Joomla root directory
*/
function ftproot($args)
{
jimport( 'joomla.application.application' );
jimport( 'joomla.registry.registry' );
$lang = new JAJAXLang($args['lang']);
// $lang->setDebug(true);
$objResponse = new xajaxResponse();
$args = $args['vars'];
$root = JInstallationHelper::findFtpRoot($args['ftpUser'], $args['ftpPassword'], $args['ftpHost'], $args['ftpPort']);
if (JError::isError($root)) {
$objResponse->addScript('document.getElementById(\'ftpdisable\').checked = true;');
$objResponse->addAlert($lang->_($root->get('message')));
} else {
$objResponse->addAssign('ftproot', 'value', $root);
$objResponse->addAssign('rootPath', 'style.display', '');
$objResponse->addScript('document.getElementById(\'verifybutton\').click();');
}
return $objResponse;
}
/**
* Method to verify the ftp values are valid
*/
function ftpverify($args)
{
jimport( 'joomla.application.application' );
jimport( 'joomla.registry.registry' );
$lang = new JAJAXLang($args['lang']);
// $lang->setDebug(true);
$objResponse = new xajaxResponse();
$args = $args['vars'];
$status = JInstallationHelper::FTPVerify($args['ftpUser'], $args['ftpPassword'], $args['ftpRoot'], $args['ftpHost'], $args['ftpPort']);
if (JError::isError($status)) {
if (($msg = $status->get('message')) != 'INVALIDROOT') {
$msg = $lang->_('INVALIDFTP') ."\n". $lang->_($msg);
} else {
$msg = $lang->_($msg);
}
$objResponse->addScript('document.getElementById(\'ftpdisable\').checked = true;');
$objResponse->addAlert($msg);
} else {
$objResponse->addScript('document.getElementById(\'ftpenable\').checked = true;');
$objResponse->addAlert($lang->_('VALIDFTP'));
}
return $objResponse;
}
/**
* Method to load and execute a sql script
*/
function sampledata($args)
{
jimport( 'joomla.database.database');
jimport( 'joomla.language.language');
jimport( 'joomla.registry.registry');
$errors = null;
$msg = '';
$objResponse = new xajaxResponse();
$lang = new JAJAXLang($args['lang']);
// $lang->setDebug(true);
/*
* execute the default sample data file
*/
$type = $args['DBtype'];
if ($type == 'mysqli') {
$type = 'mysql';
}
$dbsample = '../sql'.DS.$type.DS.'sample_data.sql';
$db = & JInstallationHelper::getDBO($args['DBtype'], $args['DBhostname'], $args['DBuserName'], $args['DBpassword'], $args['DBname'], $args['DBPrefix']);
$result = JInstallationHelper::populateDatabase($db, $dbsample, $errors);
/*
* prepare sql error messages if returned from populate
*/
if (!is_null($errors)){
foreach($errors as $error){
$msg .= stripslashes( $error['msg'] );
$msg .= chr(13)."-------------".chr(13);
$txt = '<textarea cols="35" rows="5" name="instDefault" readonly="readonly" >'.$lang->_('Database Errors Reported').chr(13).$msg.'</textarea>';
}
} else {
// consider other possible errors from populate
$msg = $result == 0 ? $lang->_("Sample data installed successfully") : $lang->_("Error installing SQL script") ;
$txt = '<input size="35" name="instDefault" value="'.$msg.'" readonly="readonly" />';
}
$objResponse->addAssign("theDefault", "innerHTML", $txt);
return $objResponse;
}
/**
* Handle a raised error : for now just silently return
*
* @access private
* @param object $error JError object
* @return object $error JError object
* @since 1.5
*/
function &handleError(&$error)
{
return $error;
}
}
/**
* Languages/translation handler class
*
* @package Joomla.Framework
* @subpackage I18N
* @since 1.5
*/
class JAJAXLang extends JObject
{
/**
* Debug language, If true, highlights if string isn't found
*
* @var boolean
* @access protected
*/
var $_debug = false;
/**
* Identifying string of the language
*
* @var string
* @access protected
*/
var $_identifyer = null;
/**
* The language to load
*
* @var string
* @access protected
*/
var $_lang = null;
/**
* Transaltions
*
* @var array
* @access protected
*/
var $_strings = null;
/**
* Constructor activating the default information of the language
*
* @access protected
*/
function __construct($lang = null)
{
$this->_strings = array ();
if ($lang == null) {
$lang = 'en-GB';
}
$this->_lang= $lang;
$this->load();
}
/**
* Translator function, mimics the php gettext (alias _) function
*
* @access public
* @param string $string The string to translate
* @param boolean $jsSafe Make the result javascript safe
* @return string The translation of the string
*/
function _($string, $jsSafe = false)
{
//$key = str_replace( ' ', '_', strtoupper( trim( $string ) ) );echo '<br />'.$key;
$key = strtoupper($string);
$key = substr($key, 0, 1) == '_' ? substr($key, 1) : $key;
if (isset ($this->_strings[$key])) {
$string = $this->_debug ? "•".$this->_strings[$key]."•" : $this->_strings[$key];
} else {
if (defined($string)) {
$string = $this->_debug ? "!!".constant($string)."!!" : constant($string);
} else {
$string = $this->_debug ? "??".$string."??" : $string;
}
}
if ($jsSafe) {
$string = addslashes($string);
}
return $string;
}
/**
* Loads a single language file and appends the results to the existing strings
*
* @access public
* @param string $prefix The prefix
* @param string $basePath The basepath to use
* $return boolean True, if the file has successfully loaded.
*/
function load( $prefix = '', $basePath = JPATH_BASE )
{
$path = JAJAXLang::getLanguagePath( $basePath, $this->_lang);
$filename = empty( $prefix ) ? $this->_lang : $this->_lang . '.' . $prefix ;
$result = false;
$newStrings = $this->_load( $path.DS.$filename.'.ini' );
if (is_array($newStrings)) {
$this->_strings = array_merge( $this->_strings, $newStrings);
$result = true;
}
return $result;
}
/**
* Loads a language file and returns the parsed values
*
* @access private
* @param string The name of the file
* @return mixed Array of parsed values if successful, boolean False if failed
*/
function _load( $filename )
{
if ($content = @file_get_contents( $filename )) {
if( $this->_identifyer === null ) {
$this->_identifyer = basename( $filename, '.ini' );
}
$registry = new JRegistry();
$registry->loadINI($content);
return $registry->toArray( );
}
return false;
}
/**
* Set the Debug property
*
* @access public
*/
function setDebug($debug) {
$this->_debug = $debug;
}
/**
* Determines is a key exists
*
* @access public
* @param key $key The key to check
* @return boolean True, if the key exists
*/
function hasKey($key) {
return isset ($this->_strings[strtoupper($key)]);
}
/**
* Get the path to a language
*
* @access public
* @param string $basePath The basepath to use
* @param string $language The language tag
* @return string language related path or null
*/
function getLanguagePath($basePath = JPATH_BASE, $language = null )
{
$dir = $basePath.DS.'language';
if (isset ($language)) {
$dir .= DS.$language;
}
return $dir;
}
}
/*
* Process the AJAX requests
*/
$xajax->cleanBufferOff(); //Needed for suPHP compilance
$xajax->processRequests();