/** * @param type $name sustituir por __CLASS__ * @param type $title es el título de la página, y el texto que aparecerá en el menú * @param type $folder es el menú dónde quieres colocar el acceso directo * @param type $admin OBSOLETO * @param type $shmenu debe ser TRUE si quieres añadir el acceso directo en el menú * @param type $important debe ser TRUE si quieres que se la primera página que ven los nuevos usuarios */ public function __construct($name = '', $title = 'home', $folder = '', $admin = FALSE, $shmenu = TRUE, $important = FALSE) { $tiempo = explode(' ', microtime()); $this->uptime = $tiempo[1] + $tiempo[0]; $this->errors = array(); $this->messages = array(); $this->advices = array(); $this->simbolo_divisas = array(); $this->extensions = array(); $this->cache = new fs_cache(); $this->db = new fs_db2(); /// comprobamos la versión de PHP if (floatval(substr(phpversion(), 0, 3)) < 5.3) { $this->new_error_msg('FacturaScripts necesita PHP 5.3 o superior, y tú tienes PHP ' . phpversion() . '.'); } if ($this->db->connect()) { $this->user = new fs_user(); $this->page = new fs_page(array('name' => $name, 'title' => $title, 'folder' => $folder, 'version' => $this->version(), 'show_on_menu' => $shmenu, 'important' => $important)); if ($name != '') { $this->page->save(); } $this->empresa = new empresa(); $this->default_items = new fs_default_items(); /// cargamos las extensiones $fsext = new fs_extension(); foreach ($fsext->all() as $ext) { if ($ext->to == $name or $ext->type == 'head' and is_null($ext->to)) { $this->extensions[] = $ext; } } if (isset($_GET['logout'])) { $this->template = 'login/default'; $this->log_out(); } else { if (isset($_POST['new_password']) and isset($_POST['new_password2'])) { $ips = array(); if ($this->ip_baneada($ips)) { $this->banear_ip($ips); $this->new_error_msg('Tu IP ha sido baneada. Tendrás que esperar 10 minutos antes de volver a intentar entrar.'); } else { if ($_POST['new_password'] != $_POST['new_password2']) { $this->new_error_msg('Las contraseñas no coinciden.'); } else { if ($_POST['new_password'] == '') { $this->new_error_msg('Tienes que escribir una contraseña nueva.'); } else { if ($_POST['db_password'] != FS_DB_PASS) { $this->banear_ip($ips); $this->new_error_msg('La contraseña de la base de datos es incorrecta.'); } else { $suser = $this->user->get($_POST['user']); if ($suser) { $suser->set_password($_POST['new_password']); if ($suser->save()) { $this->new_message('Contraseña cambiada correctamente.'); } else { $this->new_error_msg('Imposible cambiar la contraseña del usuario.'); } } } } } } $this->template = 'login/default'; } else { if (!$this->log_in()) { $this->template = 'login/default'; $this->public_core(); } else { if ($this->user->have_access_to($this->page->name)) { if ($name == '') { $this->template = 'index'; } else { $this->set_default_items(); $this->template = $name; $this->query = ''; if (isset($_REQUEST['query'])) { $this->query = $_REQUEST['query']; } $this->private_core(); } } else { if ($name == '') { $this->template = 'index'; } else { $this->template = 'access_denied'; $this->user->clean_cache(TRUE); $this->empresa->clean_cache(); } } } } } } else { $this->template = 'no_db'; $this->new_error_msg('¡Imposible conectar con la base de datos <b>' . FS_DB_NAME . '</b>!'); } }