Your IP : 216.73.216.240


Current Path : /home/s/u/n/sunflowe/www2/vacancesfloride/_AncienSite/_installation/includes/logic/
Upload File :
Current File : /home/s/u/n/sunflowe/www2/vacancesfloride/_AncienSite/_installation/includes/logic/finish.php

<?php
/**
 * @package akeebainstaller
 * @copyright Copyright (C) 2009-2010 Nicholas K. Dionysopoulos. All rights reserved.
 * @author Nicholas K. Dionysopoulos - http://www.dionysopoulos.me
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL v3 or later
 *
 * Akeeba Backup Installer Logic: Finish up
 */

defined('_ABI') or die('Direct access is not allowed');

require_once(JPATH_INSTALLATION.DS.'includes'.DS.'db.php');
require_once(JPATH_INSTALLATION.DS.'includes'.DS.'ftp.php');
require_once(JPATH_INSTALLATION.DS.'includes'.DS.'configuration.php');

global $view;

/**
 * Changes the email and password of the administrator user
 * @return bool True on success, false otherwise
 */
function changeAdminUser()
{
	// Get the request parameters
	$uid = getParam('sauser', 62);
	$password = getParam('sapass1', '');
	$password_confirm = getParam('sapass2', '');
	$email = getParam('saemail', '');

	// Bail out 1 - passwords don't match
	if( $password != $password_confirm ) return;

	// Bail out 2 - password empty
	if( empty($password) ) return;

	// Get a connection to the main site database
	$storage =& ABIStorage::getInstance();
	$databases = $storage->get('databases');
	$dbkeys = array_keys($databases);
	$firstkey = array_shift($dbkeys);
	$d = $databases[$firstkey];
	$db =& ABIDatabase::getInstance($d['dbtype'], $d['dbhost'], $d['dbuser'], $d['dbpass'],
		$d['dbname'], $d['prefix']);
	$db->connect(); // Required to initiate the actual connection to the db server!
	unset($d); unset($databases);

	// Generate encrypted password string
	$salt = genRandomPassword(32);
	$crypt = md5($password.$salt);
	$cryptpass = $crypt.':'.$salt;

	// Update database
	$query = 'UPDATE `#__users` SET `password` = "'.$db->escape($cryptpass).
		'", `email` = "'.$db->escape($email).'" WHERE `id` = "'.$uid.'"';
	$res = $db->query($query);

	return $res;
}

function genRandomPassword($length = 8)
{
	$salt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	$len = strlen($salt);
	$makepass = '';

	$stat = @stat(__FILE__);
	if(empty($stat) || !is_array($stat)) $stat = array(php_uname());

	mt_srand(crc32(microtime() . implode('|', $stat)));

	for ($i = 0; $i < $length; $i ++) {
		$makepass .= $salt[mt_rand(0, $len -1)];
	}

	return $makepass;
}

$storage =& ABIStorage::getInstance();
$valid = $storage->get('installerflag', '0');
if(!$valid) {
	$output->setError(ABIText::_('ERROR_STORAGE_NOT_WORKING'));
}

// 1. Change the Super Administrator settings
changeAdminUser();

// 2. Update the configuration
$configuration =& ABIConfiguration::getInstance();
// FTP Settings
$configuration->set('ftp_enable', in_array(getParam('ftp_enable'), array('checked','on','true')) ? '1' : '0' );
$configuration->set('ftp_host', getParam('ftp_host'));
$configuration->set('ftp_port', getParam('ftp_port'));
$configuration->set('ftp_user', getParam('ftp_user'));
$configuration->set('ftp_pass', getParam('ftp_pass'));
$configuration->set('ftp_root', getParam('ftp_root'));
// Site Parameters
$configuration->set('sitename', getParam('sitename'));
$configuration->set('mailfrom', getParam('mailfrom'));
$configuration->set('fromname', getParam('fromname'));
// Fine tuning values
$configuration->set('tmp_path', getParam('tmp_path'));
$configuration->set('log_path', getParam('log_path'));
$configuration->set('live_site', getParam('live_site',''));
// Create a new, random, secret word
$configuration->set('secret', genRandomPassword(16));

// 3. Check if we can write to the configuration
$confdata = $configuration->getConfiguration();
$view['confwritten'] = false;
// First try with PHP
if(@is_writable(JPATH_SITE.DS.'configuration.php'))
{
	// It's writable, so let's write it straight away using PHP only
	if(function_exists('file_put_contents'))
	{
		// We can do this easily w/ file_put_contents
		if(@file_put_contents(JPATH_SITE.DS.'configuration.php', $confdata) !== false)
		{
			$view['confwritten'] = true;
		}
	}
	else
	{
		// Crap... the long way around...
		$file = @fopen(JPATH_SITE.DS.'configuration.php', 'w');
		if($file !== false)
		{
			@fwrite($file, $confdata);
		}
		fclose($file);
		$view['confwritten'] = true;
	}
}
// If this wasn't possible, try FTP
if(($configuration->get('ftp_enable') == 1) && !$view['confwritten'])
{
	// At least we have FTP. Let's try this one out
	$ftp = ABIFtp::getInstance(getParam('ftp_host'),getParam('ftp_port'),getParam('ftp_user'),getParam('ftp_pass'),getParam('ftp_root'));
	if($ftp->connect(false))
	{
		if($ftp->write('configuration.php', $confdata) === true)
		{
			$view['confwritten'] = true;
		}
	}
}

// 4. Gotta pass on the configuration data if we couldn't write it to the configuration.php
if(!$view['confwritten'])
{
	$view['confdata'] =& $confdata;
}

// 5. Update buttons etc.
$output =& ABIOutput::getInstance();
$storage =& ABIStorage::getInstance();
$output->setButtons("submitForm('setup')",null);
$output->setActiveStep('finish');
$storage->set('step', 'finish');

$automation =& ABIAutomation::getInstance();
if($automation->hasAutomation() && $view['confwritten'])
{
	$output->setAutomation("opener.onRunCleanupClick(); window.close();");
}