<?php
if(!defined("MCR")){ exit("Hacking Attempt!"); }
class module{
private $core, $db, $config, $lng, $lng_m, $user;
public function __construct($core){
$this->core = $core;
$this->db = $core->db;
$this->user = $core->user;
$this->config = $core->config;
$this->lng = $core->lng;
$this->lng_m = $core->lng_m;
$this->core->title = $this->lng_m['mod_name'].' — '.$this->lng_m['step_1'];
$bc = array(
$this->lng_m['mod_name'] => BASE_URL."install/",
$this->lng_m['step_1'] => BASE_URL."install/?mode=step_1"
);
$this->core->bc = $this->core->gen_bc($bc);
}
private function check_write_all($folder){
if(!is_writable($folder) || !is_readable($folder)){ return false; }
$scan = scandir($folder);
$result = true;
foreach($scan as $key => $value) {
if($value=='.' || $value=='..'){ continue; }
$path = $folder.'/'.$value;
if(!is_writable($path) || !is_readable($path)){ $result = false; }
}
return $result;
}
public function content(){
if(isset($_SESSION['step_1'])){ $this->core->notify('', '', 4, 'install/?mode=step_2'); }
if($_SERVER['REQUEST_METHOD']=='POST'){
if(phpversion()<5.1){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_php_version'], 2, 'install/?mode=step_1'); }
if(@ini_get('register_globals')=='off'){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_register_globals'], 2, 'install/?mode=step_1'); }
if(@ini_get('allow_url_fopen')=='0' || @ini_get('allow_url_fopen')=='false'){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_fopen'], 2, 'install/?mode=step_1'); }
if(!function_exists('ImageCreateFromJpeg')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_gd'], 2, 'install/?mode=step_1'); }
if(!function_exists('mysql_query') && !function_exists('mysqli_query')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_mysql_not_found'], 2, 'install/?mode=step_1'); }
if(!function_exists('ob_start')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_buffer'], 2, 'install/?mode=step_1'); }
if(!$this->check_write_all(MCR_ROOT.'configs')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_configs'], 2, 'install/?mode=step_1'); }
if(!$this->check_write_all(MCR_ROOT.'configs/modules')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_modules'], 2, 'install/?mode=step_1'); }
if(!$this->check_write_all(MCR_ROOT.'cache')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_cache'], 2, 'install/?mode=step_1'); }
if(!is_writable(MCR_ROOT.'uploads') || !is_readable(MCR_ROOT.'uploads')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_uploads'], 2, 'install/?mode=step_1'); }
if(!is_writable(MCR_ROOT.'uploads/cloaks') || !is_readable(MCR_ROOT.'uploads/cloaks')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_cloaks'], 2, 'install/?mode=step_1'); }
if(!is_writable(MCR_ROOT.'uploads/panel-icons') || !is_readable(MCR_ROOT.'uploads/panel-icons')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_icons'], 2, 'install/?mode=step_1'); }
if(!is_writable(MCR_ROOT.'uploads/skins') || !is_readable(MCR_ROOT.'uploads/skins')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_skins'], 2, 'install/?mode=step_1'); }
if(!is_writable(MCR_ROOT.'uploads/skins/interface') || !is_readable(MCR_ROOT.'uploads/skins/interface')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_intf'], 2, 'install/?mode=step_1'); }
if(!is_writable(MCR_ROOT.'uploads/smiles') || !is_readable(MCR_ROOT.'uploads/smiles')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_perm_smiles'], 2, 'install/?mode=step_1'); }
$_SESSION['step_1'] = true;
$this->core->notify($this->lng_m['step_2'], $this->lng_m['db_settings'], 4, 'install/?mode=step_2');
}
$data = array(
"PHP" => (phpversion()<5.1) ? '<b class="text-error">'.phpversion().'</b>' : '<b class="text-success">'.phpversion().'</b>',
"REG_GLOB" => (@ini_get('register_globals')=='on') ? '<b class="text-error">'.$this->lng_m['on'].'</b>' : '<b class="text-success">Выкл.</b>',
"URL_FOPEN" => (@ini_get('allow_url_fopen')=='1' || @ini_get('allow_url_fopen')=='true') ? '<b class="text-success">'.$this->lng_m['on'].'</b>' : '<b class="text-error">'.$this->lng_m['off'].'</b>',
"GD" => (function_exists('ImageCreateFromJpeg')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"MYSQL" => (function_exists("mysql_query") || function_exists("mysqli_query")) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"BUFER" => (function_exists("ob_start")) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_CONFIGS" => ($this->check_write_all(MCR_ROOT.'configs')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_MODULES" => ($this->check_write_all(MCR_ROOT.'configs/modules')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_CACHE" => ($this->check_write_all(MCR_ROOT.'cache')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_UPLOADS" => (is_writable(MCR_ROOT.'uploads') && is_readable(MCR_ROOT.'uploads')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_CLOAKS" => (is_writable(MCR_ROOT.'uploads/cloaks') && is_readable(MCR_ROOT.'uploads/cloaks')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_ICONS" => (is_writable(MCR_ROOT.'uploads/panel-icons') && is_readable(MCR_ROOT.'uploads/panel-icons')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_SKINS" => (is_writable(MCR_ROOT.'uploads/skins') && is_readable(MCR_ROOT.'uploads/skins')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_INTERF" => (is_writable(MCR_ROOT.'uploads/skins/interface') && is_readable(MCR_ROOT.'uploads/skins')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
"FOLDER_SMILES" => (is_writable(MCR_ROOT.'uploads/smiles') && is_readable(MCR_ROOT.'uploads/smiles')) ? '<b class="text-success">'.$this->lng['yes'].'</b>' : '<b class="text-error">'.$this->lng['no'].'</b>',
);
return $this->core->sp(MCR_ROOT."install/theme/step_1.html", $data);
}
}
?>