Ejemplo n.º 1
0
// require our module objects
require_once Settings::getSettingsVars('CONTROLLER_URL') . 'modulesController.php';
$registry_objects = ModulesController::singleton();
// Setting path of model db
$registry->setDataBaseObject('database', 'db');
$oBD = $registry->getObject('db')->newConnection(DATABASE_GESTOR, BD_SERVER, BD_USER, BD_PASSWORD, BD_DATABASE, DATABASE_CHARSET);
// Include Language Class
include Settings::getSettingsVars('CLASS_URL') . 'localizer.class.php';
// Include Smarty Class smarty.php.
require_once 'smarty.class.php';
$oSesion->inicioSesion();
$datos_usuario = $oSesion->getSesion('datos_usuario');
if (isset($datos_usuario['id_usuario'])) {
    Settings::setSettingsVars('DEFAULT_LANG', $datos_usuario['codigo_idioma']);
    Settings::setSettingsVars('ID_ZONE', $datos_usuario['id_zone']);
    $name_zone = Combos::getNameTimeZone($datos_usuario['id_zone']);
    Settings::setSettingsVars('NAME_ZONE', $name_zone);
    date_default_timezone_set($name_zone);
    $oSmarty->assign('LOGUEADO', true);
    $aDatosSesionUsuario = $oSesion->getSesion('datos_usuario');
    $oSmarty->assign('datos_sesion', $aDatosSesionUsuario);
} else {
    $oSmarty->assign('LOGUEADO', false);
    $oSesion->cierreSesion();
    $oSmarty->assign('datos_sesion', '');
    Settings::setSettingsVars('DEFAULT_LANG', 'en');
    Settings::setSettingsVars('NAME_ZONE', 'Europe/London');
    date_default_timezone_set('Europe/London');
}
Localizer::init(Settings::getSettingsVars('DEFAULT_LANG'));
// Assign Global language variable
Ejemplo n.º 2
0
 /**
  * Returns array('success'=>true) or array('error'=>'error message')
  */
 function handleUpload($uploadDirectory, $replaceOldFile = FALSE, $id_user, $id_padre)
 {
     if (!is_writable($uploadDirectory)) {
         return array('error' => "Server error. Upload directory isn't writable.");
     }
     if (!$this->file) {
         return array('error' => 'No files were uploaded.');
     }
     $size = $this->file->getSize();
     if ($size == 0) {
         return array('error' => 'File is empty');
     }
     if ($size > $this->sizeLimit) {
         return array('error' => 'File is too large');
     }
     $type_file = $this->file->getType();
     $pathinfo = pathinfo($this->file->getName());
     $filename = $pathinfo['filename'];
     //$filename = md5(uniqid());
     $ext = $pathinfo['extension'];
     if ($this->allowedExtensions && !in_array(strtolower($ext), $this->allowedExtensions)) {
         $these = implode(', ', $this->allowedExtensions);
         return array('error' => 'File has an invalid extension, it should be one of ' . $these . '.');
     }
     //Primero comprobamos que no existe un fichero con el mismo nombre en el nivel de carpeta en el que está
     $file_version = 0;
     $consulta_sql = "SELECT a.nombre, a.id_archivo FROM " . $this->sTablaArchivo . " as a, " . $this->sTablaUsuarioArchivo . " as ua WHERE a.tipo=1 AND a.id_archivo_padre='" . $id_padre . "' AND a.nombre = '" . $filename . "' AND a.ext = '" . $ext . "' AND a.type_file='" . $type_file . "' AND a.id_archivo = ua.id_archivo AND ua.id_usuario =" . $id_user . ";";
     $rs = $this->oBD->Execute($consulta_sql);
     $aResultado = $rs->GetRows();
     $rs->Close();
     if ($rs->RecordCount() > 0) {
         //Si existe ya un fichero en el mismo nivel actualizamos la versión
         $file_version = 1;
         $id_archivo_version = $aResultado[0]['id_archivo'];
     }
     if (!$replaceOldFile) {
         //Generamos un número único para el fichero
         $filename_new = md5(uniqid());
         $filename_new = "f" . $filename_new . rand(0, 999999999999999);
         while (file_exists($uploadDirectory . $filename_new)) {
             $filename_new = "f" . $filename_new . rand(0, 999999999999999);
         }
     }
     if ($this->file->save($uploadDirectory . $filename_new . '.' . $ext)) {
         //. '.' . $ext
         //Upload and insert file in DDBB
         $result = false;
         if ($file_version == 0) {
             $name_zone = Combos::getNameTimeZone(Settings::getSettingsVars('ID_ZONE'));
             $fecha = Combos::getDateTimeZone($name_zone);
             // Insertamos la información en la base de datos.
             $consulta_sql = "INSERT INTO " . $this->sTablaArchivo . " (tipo,fecha, nombre, id_archivo_padre, privacidad, fecha_update,name_file,type_file,type_size,max_size,ext) ";
             $consulta_sql .= " VALUES(1,'{$fecha}','" . $filename . "', '" . $id_padre . "', 1 , '{$fecha}','" . $filename_new . "','" . $type_file . "','" . $size . "','" . $size . "', '" . $ext . "')";
             if (!$this->oBD->Execute($consulta_sql)) {
                 return array('error' => 'Error insert File in Data Base');
             } else {
                 $id_file = $this->oBD->Insert_ID();
                 $consulta_sql = "INSERT INTO " . $this->sTablaUsuarioArchivo . " (id_usuario, id_archivo, propietario) ";
                 $consulta_sql .= " VALUES({$id_user}, {$id_file}, 1 )";
                 if (!$this->oBD->Execute($consulta_sql)) {
                     return array('error' => 'Error insert File in Data Base');
                 } else {
                     //Comprobamos el último id
                     $consulta_sql = "SELECT MAX(v.id_version) as version FROM " . $this->sTablaArchivoVersion . " as v WHERE v.id_archivo='" . $id_file . "';";
                     $rs = $this->oBD->Execute($consulta_sql);
                     $aResultado = $rs->GetRows();
                     $rs->Close();
                     $version = 1;
                     if ($aResultado[0]['version'] != "" || $aResultado[0]['version'] != NULL) {
                         $version = $aResultado[0]['version'] + 1;
                     }
                     $consulta_sql = "INSERT INTO " . $this->sTablaArchivoVersion . " (id_version,id_archivo, fecha, nombre, size) ";
                     $consulta_sql .= " VALUES({$version},{$id_file},'{$fecha}','{$filename}','{$size}')";
                     if (!$this->oBD->Execute($consulta_sql)) {
                         $consulta_sql = "UPDATE " . $this->sTablaArchivo . " as a INNER JOIN (" . $this->sTablaUsuarioArchivo . " as ua INNER JOIN " . $this->sTablaUsuario . " as u ON ua.id_usuario = u.id_usuario AND u.id_usuario = " . $id_user . ") ON  a.id_archivo = ua.id_archivo SET a.max_size=a.max_size+{$size} WHERE a.tipo=0 AND a.id_archivo = '" . $id_padre . "' ;";
                         if (!$this->oBD->Execute($consulta_sql)) {
                             return array('error' => 'Error insert File in Data Base');
                         } else {
                             //Convert PDF to SWF
                             PdfToSwfConverter::convertPdfToSwf($uploadDirectory . $filename_new . '.' . $ext, $uploadDirectory . $filename_new . '.swf');
                             return array('success' => true);
                         }
                     } else {
                         //Convert PDF to SWF
                         PdfToSwfConverter::convertPdfToSwf($uploadDirectory . $filename_new . '.' . $ext, $uploadDirectory . $filename_new . '.swf');
                         return array('success' => true);
                     }
                 }
             }
         } else {
             //if $file_version == 1 update version of file
             $name_zone = Combos::getNameTimeZone(Settings::getSettingsVars('ID_ZONE'));
             $fecha = Combos::getDateTimeZone($name_zone);
             // Insertamos la información en la base de datos.
             if ($id_padre != 0) {
                 $consulta_sql = "UPDATE " . $this->sTablaArchivo . " as a INNER JOIN (" . $this->sTablaUsuarioArchivo . " as ua INNER JOIN " . $this->sTablaUsuario . " as u ON ua.id_usuario = u.id_usuario AND u.id_usuario = " . $id_user . ") ON  a.id_archivo = ua.id_archivo SET a.max_size=a.max_size+{$size} WHERE a.tipo=0 AND a.id_archivo = '" . $id_padre . "' ;";
                 if (!$this->oBD->Execute($consulta_sql)) {
                     return array('error' => 'Error insert File in Data Base');
                 }
             }
             //Comprobamos el último id
             $consulta_sql = "SELECT MAX(v.id_version) as version FROM " . $this->sTablaArchivoVersion . " as v WHERE v.id_archivo='" . $id_archivo_version . "';";
             $rs = $this->oBD->Execute($consulta_sql);
             $aResultado = $rs->GetRows();
             $rs->Close();
             $version = 1;
             if ($aResultado[0]['version'] != "" || $aResultado[0]['version'] != NULL) {
                 $version = $aResultado[0]['version'] + 1;
             }
             $consulta_sql = "INSERT INTO " . $this->sTablaArchivoVersion . " (id_version,id_archivo, fecha, nombre, size) ";
             $consulta_sql .= " VALUES({$version},{$id_archivo_version},'{$fecha}','{$filename}','{$size}')";
             if (!$this->oBD->Execute($consulta_sql)) {
                 return array('error' => 'Error insert File in Data Base');
             } else {
                 //Convert PDF to SWF
                 PdfToSwfConverter::convertPdfToSwf($uploadDirectory . $filename_new . '.' . $ext, $uploadDirectory . $filename_new . '.swf');
                 return array('success' => true);
             }
         }
     } else {
         return array('error' => 'Could not save uploaded file.' . 'The upload was cancelled, or server error encountered');
     }
 }