/**
  * @param string $json_argument_array
  * @return integer
  * @throws BaseUserAccessDeniedException
  */
 public static function count_templates($json_argument_array)
 {
     global $user;
     if ($user->is_admin()) {
         return Data_Wrapper::count_list_value_templates();
     } else {
         throw new BaseUserAccessDeniedException();
     }
 }
示例#2
0
 /**
  * @param string $json_argument_array
  * @return integer
  * @throws FileIDMissingException
  */
 public static function count_versions($json_argument_array)
 {
     $argument_array = json_decode($json_argument_array);
     $file_id = $argument_array[1];
     if (is_numeric($file_id)) {
         return Data_Wrapper::count_file_versions($file_id);
     } else {
         throw new FileIDMissingException();
     }
 }
示例#3
0
 /**
  * @param string $sql
  * @param integer $item_id
  * @param object $pdf
  * @return object
  */
 public static function get_data_item_report($sql, $item_id, $pdf)
 {
     global $regional;
     if ($sql and is_object($pdf)) {
         // Values
         $value_array = Data_Wrapper::list_item_values($sql);
         if (is_array($value_array) and count($value_array) >= 1) {
             foreach ($value_array as $key => $value) {
                 $value_object = Value::get_instance($value['id']);
                 $value_object_value_array = $value_object->get_value_content(false);
                 $pdf->addPage();
                 $pdf->SetFont('dejavusans', 'B', 14, '', true);
                 $pdf->Write(0, 'Value - ' . $value_object->get_name() . '', '', 0, 'C', true, 0, false, false, 0);
                 $pdf->Write(0, '', '', 0, 'L', true, 0, false, false, 0);
                 $pdf->SetFont('dejavusans', '', 12, '', true);
                 if (is_array($value_object_value_array) and count($value_object_value_array) >= 1) {
                     foreach ($value_object_value_array as $sub_key => $sub_value) {
                         $sub_value['content'][0] = str_replace("\n", "<br />", $sub_value['content'][0]);
                         if ($sub_value['type'] == "textarea") {
                             $pdf->SetFont('dejavusans', 'B', 12, '', true);
                             $pdf->MultiCell(190, 9, $sub_value['title'], 1, 'L', 1, 1, '', '', true, 0, true, true, 0, "T");
                             $pdf->SetFont('dejavusans', '', 12, '', true);
                             $string_height = $pdf->getStringHeight(110, $sub_value['content'][0], true, true, '', 1);
                             $pdf->MultiCell(190, $string_height, $sub_value['content'][0], 1, 'L', 1, 1, '', '', true, 0, true, true, 0, "T");
                         } else {
                             $pdf->SetFont('dejavusans', 'B', 12, '', true);
                             $string_height1 = $pdf->getStringHeight(80, $sub_value['title'], true, true, '', 1);
                             $pdf->SetFont('dejavusans', '', 12, '', true);
                             $string_height2 = $pdf->getStringHeight(110, $sub_value['content'][0], true, true, '', 1);
                             if ($string_height1 > $string_height2) {
                                 $height = $string_height1;
                             } else {
                                 $height = $string_height2;
                             }
                             $pdf->SetFont('dejavusans', 'B', 12, '', true);
                             $pdf->MultiCell(80, $height, $sub_value['title'], 1, 'L', 1, 0, '', '', true, 0, true, true, 0, "T");
                             $pdf->SetFont('dejavusans', '', 12, '', true);
                             $pdf->MultiCell(110, $height, $sub_value['content'][0], 1, 'L', 1, 1, '', '', true, 0, true, true, 0, "T");
                         }
                     }
                 }
                 $value_object_version_array = $value_object->get_value_internal_revisions();
                 if (is_array($value_object_version_array) and count($value_object_version_array) >= 1) {
                     $pdf->Write(0, '', '', 0, 'L', true, 0, false, false, 0);
                     $header_array = array(array("name" => "name", "title" => "Name", "width" => 60), array("name" => "version", "title" => "Version", "width" => 25), array("name" => "datetime", "title" => "Date/Time", "width" => 55), array("name" => "user", "title" => "User", "width" => 50));
                     $report_table = new ReportTable_IO($pdf, '', '12');
                     $report_table->add_header($header_array);
                     foreach ($value_object_version_array as $sub_key => $sub_value) {
                         $value_version = clone $value_object;
                         $value_version->open_internal_revision($sub_value);
                         $datetime_handler = new DatetimeHandler($value_version->get_datetime());
                         $owner = new User($value_version->get_version_owner_id());
                         $line_array = array(array("name" => "name", "content" => $value_version->get_name()), array("name" => "version", "content" => $value_version->get_version()), array("name" => "datetime", "content" => $datetime_handler->get_datetime(false)), array("name" => "user", "content" => $owner->get_full_name(true)));
                         $report_table->add_line($line_array);
                     }
                 }
                 $pdf = $report_table->get_pdf();
             }
         }
         // Files
         $file_array = Data_Wrapper::list_item_files($sql, null, null, null, null);
         if (is_array($file_array) and count($file_array) >= 1) {
             $pdf->addPage();
             $pdf->SetFont('dejavusans', 'B', 14, '', true);
             $pdf->Write(0, 'Files', '', 0, 'C', true, 0, false, false, 0);
             $pdf->Write(0, '', '', 0, 'L', true, 0, false, false, 0);
             $pdf->SetFont('dejavusans', '', 14, '', true);
             $header_array = array(array("name" => "name", "title" => "Name", "width" => 62), array("name" => "version", "title" => "Version", "width" => 25), array("name" => "datetime", "title" => "Date/Time", "width" => 55), array("name" => "user", "title" => "User", "width" => 48));
             $report_table = new ReportTable_IO($pdf, '', '12');
             $report_table->add_header($header_array);
             foreach ($file_array as $key => $value) {
                 $file = File::get_instance($value['id']);
                 $owner = new User($value['owner_id']);
                 $datetime_handler = new DatetimeHandler($value['datetime']);
                 $line_array = array(array("name" => "name", "content" => $value['name']), array("name" => "version", "content" => $file->get_version()), array("name" => "datetime", "content" => $datetime_handler->get_datetime(false)), array("name" => "user", "content" => $owner->get_full_name(true)));
                 $report_table->add_line($line_array);
             }
             $pdf = $report_table->get_pdf();
         }
         // Parameters
         $parameter_array = Data_Wrapper::list_item_parameters($sql);
         if (is_array($parameter_array) and count($parameter_array) >= 1) {
             foreach ($parameter_array as $key => $value) {
                 $parameter_object = Parameter::get_instance($value['id']);
                 $parameter_template = new ParameterTemplate($parameter_object->get_template_id());
                 $parameter_template_field_array = $parameter_template->get_fields();
                 $parameter_template_limit_array = $parameter_template->get_limits();
                 $parameter_value_array = $parameter_object->get_values();
                 $parameter_method_array = $parameter_object->get_methods();
                 $parameter_status_array = $parameter_object->get_status();
                 $parameter_limit_array = $parameter_object->geT_limits();
                 $pdf->addPage();
                 $pdf->SetFont('dejavusans', 'B', 14, '', true);
                 $pdf->Write(0, '' . $parameter_object->get_name() . '', '', 0, 'L', true, 0, false, false, 0);
                 $pdf->Write(0, '', '', 0, 'L', true, 0, false, false, 0);
                 $pdf->SetFont('dejavusans', '', 12, '', true);
                 $header_array = array(array("name" => "parameter", "title" => "Parameter", "width" => 44), array("name" => "value", "title" => "Value", "width" => 25), array("name" => "unit", "title" => "Unit", "width" => 25), array("name" => "min", "title" => "Min", "width" => 20), array("name" => "max", "title" => "Max", "width" => 20), array("name" => "method", "title" => "Method", "width" => 30), array("name" => "status", "title" => "Status", "width" => 25));
                 $report_table = new ReportTable_IO($pdf, '', '12');
                 $report_table->add_header($header_array);
                 if (is_array($parameter_template_field_array) and count($parameter_template_field_array) >= 1) {
                     foreach ($parameter_template_field_array as $key => $value) {
                         if (is_numeric($parameter_value_array[$value['pk']])) {
                             $regionalized_value = str_replace(".", $regional->get_decimal_separator(), $parameter_value_array[$value['pk']]);
                         } else {
                             $regionalized_value = "";
                         }
                         if (is_numeric($value['unit'])) {
                             if ($value['unit_exponent'] < 0) {
                                 $unit_exponent = $value['unit_exponent'] * -1;
                                 $unit_prefix = MeasuringUnit::get_prefix($unit_exponent, false);
                             } else {
                                 $unit_prefix = MeasuringUnit::get_prefix($value['unit_exponent'], true);
                             }
                             $measuring_unit = new MeasuringUnit($value['unit']);
                             $unit = $unit_prefix[1] . "" . $measuring_unit->get_unit_symbol();
                         } elseif (is_numeric($value['unit_ratio'])) {
                             $measuring_unit_ratio = new MeasuringUnitRatio($value['unit_ratio']);
                             $unit = $measuring_unit_ratio->get_symbol();
                         } else {
                             $unit = "";
                         }
                         if ($parameter_limit_array[$value['pk']]) {
                             if (is_numeric($parameter_limit_array[$value['pk']]['usl'])) {
                                 $usl = $parameter_limit_array[$value['pk']]['usl'];
                             } else {
                                 $usl = "";
                             }
                             if (is_numeric($parameter_limit_array[$value['pk']]['lsl'])) {
                                 $lsl = $parameter_limit_array[$value['pk']]['lsl'];
                             } else {
                                 $lsl = "";
                             }
                         } else {
                             if (is_numeric($parameter_template_limit_array[0]['usl'][$key])) {
                                 $usl = $parameter_template_limit_array[0]['usl'][$key];
                             } else {
                                 $usl = "";
                             }
                             if (is_numeric($parameter_template_limit_array[0]['lsl'][$key])) {
                                 $lsl = $parameter_template_limit_array[0]['lsl'][$key];
                             } else {
                                 $lsl = "";
                             }
                         }
                         if ($parameter_method_array[$key]) {
                             $method = $parameter_method_array[$key];
                         } else {
                             $method = "none";
                         }
                         if ($parameter_status_array[$value['pk']]) {
                             switch ($parameter_status_array[$value['pk']]) {
                                 case "max":
                                     $status = ">max";
                                     break;
                                 case "min":
                                     $status = "<min";
                                     break;
                                 default:
                                     $status = "OK";
                                     break;
                             }
                         } else {
                             $status = "none";
                         }
                         $line_array = array(array("name" => "parameter", "content" => $value['name']), array("name" => "value", "content" => $regionalized_value), array("name" => "unit", "content" => $unit), array("name" => "min", "content" => $lsl), array("name" => "max", "content" => $usl), array("name" => "method", "content" => $method), array("name" => "status", "content" => $status));
                         $report_table->add_line($line_array);
                         unset($regionalized_value);
                         unset($unit);
                         unset($lsl);
                         unset($usl);
                         unset($method);
                         unset($status);
                     }
                 }
                 $pdf = $report_table->get_pdf();
             }
         }
         return $pdf;
     } else {
         return null;
     }
 }
示例#4
0
 /**
  * @param integer $id
  */
 public static function get_children($id)
 {
     if (is_numeric($id) and $id != 0) {
         $return_array = array();
         $folder = Folder::get_instance($id);
         $folder_array = $folder->get_subfolder_array();
         if (is_array($folder_array) and count($folder_array) >= 1) {
             $counter = 0;
             foreach ($folder_array as $key => $value) {
                 $folder = Folder::get_instance($value);
                 $return_array[$counter][0] = -1;
                 $return_array[$counter][1] = $value;
                 $return_array[$counter][2] = $folder->get_name();
                 $return_array[$counter][3] = "folder.png";
                 if ($folder->is_read_access() == true) {
                     $return_array[$counter][4] = true;
                 } else {
                     $return_array[$counter][4] = false;
                 }
                 $return_array[$counter][5] = true;
                 // Clickable
                 $paramquery['username'] = $_GET['username'];
                 $paramquery['session_id'] = $_GET['session_id'];
                 $paramquery['nav'] = "data";
                 $paramquery['folder_id'] = $value;
                 $params = http_build_query($paramquery, '', '&#38;');
                 $return_array[$counter][6] = $params;
                 //link
                 $return_array[$counter][7] = false;
                 //open
                 $return_array[$counter][8] = Data_Wrapper::has_folder_children($value);
                 //has children
                 $counter++;
             }
         }
         echo json_encode($return_array);
     }
 }
示例#5
0
 /**
  * @param string $json_argument_array
  * @return integer
  * @throws BaseAjaxArgumentMissingException
  */
 public static function count_data($json_argument_array)
 {
     $argument_array = json_decode($json_argument_array);
     if (is_array($argument_array)) {
         $folder_id = $argument_array[0][1];
         $name = $argument_array[1][1];
         return Data_Wrapper::count_search_ffv($folder_id, $name);
     } else {
         throw new BaseAjaxArgumentMissingException();
     }
 }
示例#6
0
 /**
  * @see FileInterface::upload_file()
  * @param integer $folder_id
  * @param array $file_array
  * @return integer
  */
 public function upload_file($folder_id, $file_array)
 {
     global $user, $transaction;
     if ($folder_id) {
         $transaction_id = $transaction->begin();
         $user_data = new DataUserData($user->get_user_id());
         $folder = Folder::get_instance($folder_id);
         if ($folder->is_write_access() == true) {
             // check is file exists in folder via DataEntity
             if (Data_Wrapper::is_file_in_folder($folder_id, $file_array['name']) == false) {
                 $target = constant("BASE_DIR") . "/" . $folder->get_path() . "/" . $file_array['name'];
                 if (!empty($file_array['name']) or !file_exists($target)) {
                     $file_name_array = explode(".", $file_array['name']);
                     $file_name_array_length = substr_count($file_array['name'], ".");
                     // Forbidden file-types
                     if ($file_name_array[$file_name_array_length] == "php" or $file_name_array[$file_name_array_length] == "php3" or $file_name_array[$file_name_array_length] == "php4" or $file_name_array[$file_name_array_length] == "php5" or $file_name_array[$file_name_array_length] == "phtml" or $file_name_array[$file_name_array_length] == "phtm" or $file_name_array[$file_name_array_length] == "html" or $file_name_array[$file_name_array_length] == "htm" or $file_name_array[$file_name_array_length] == "cgi" or $file_name_array[$file_name_array_length] == "pl" or $file_name_array[$file_name_array_length] == "asp") {
                         if ($transaction_id != null) {
                             $transaction->rollback($transaction_id);
                         }
                         return 7;
                     } else {
                         // Upload new file
                         move_uploaded_file($file_array['tmp_name'], $target);
                         if (($file_upload_error_no = $file_array['error']) == 0) {
                             $file_size = filesize($target);
                             $checksum = md5_file($target);
                             $file_upload_precheck_event = new FileUploadPrecheckEvent($folder_id, $file_size);
                             $event_handler = new EventHandler($file_upload_precheck_event);
                             if ($event_handler->get_success() == false) {
                                 if ($transaction_id != null) {
                                     $transaction->rollback($transaction_id);
                                 }
                                 return 6;
                             }
                             if ($folder->get_quota_access($user->get_user_id(), $file_size) == true) {
                                 $folder->increase_filesize($user->get_user_id(), $file_size);
                                 $file_upload_event = new FileUploadEvent($folder_id, $file_size);
                                 $event_handler = new EventHandler($file_upload_event);
                                 if ($event_handler->get_success() == false) {
                                     // Nothing happens
                                 }
                                 // Create File
                                 /**
                                  * @todo Exception in whole method
                                  */
                                 try {
                                     $file_id = $this->create($file_array['name'], $folder_id, $target, $user->get_user_id());
                                 } catch (BaseException $e) {
                                     if ($transaction_id != null) {
                                         $transaction->rollback($transaction_id);
                                     }
                                     return 2;
                                 }
                                 $data_entity_id = $this->get_data_entity_id();
                                 // Rename File
                                 $extension_array = explode(".", $target);
                                 $extension_array_length = substr_count($target, ".");
                                 if ($extension_array_length == 0) {
                                     $extension = "";
                                 } else {
                                     $extension = "." . $extension_array[$extension_array_length];
                                 }
                                 $new_filename = constant("BASE_DIR") . "/" . $folder->get_path() . "/" . $data_entity_id . "-1" . $extension;
                                 // Rename file with the object id
                                 if (rename($target, $new_filename) == true) {
                                     if ($transaction_id != null) {
                                         $transaction->commit($transaction_id);
                                     }
                                     return 1;
                                 } else {
                                     if ($transaction_id != null) {
                                         $transaction->rollback($transaction_id);
                                     }
                                     return 2;
                                 }
                             } else {
                                 // Delete File - Overquota
                                 if (unlink($target)) {
                                     if ($transaction_id != null) {
                                         $transaction->rollback($transaction_id);
                                     }
                                     return 6;
                                 } else {
                                     if ($transaction_id != null) {
                                         $transaction->rollback($transaction_id);
                                     }
                                     // Write Log - Delete Error
                                     return 6;
                                 }
                             }
                         } else {
                             if ($file_upload_error_no == 1 or $file_upload_error_no == 2) {
                                 if ($transaction_id != null) {
                                     $transaction->rollback($transaction_id);
                                 }
                                 return 4;
                             } else {
                                 if ($transaction_id != null) {
                                     $transaction->rollback($transaction_id);
                                 }
                                 return 2;
                             }
                         }
                     }
                     // End If/Else - Forbidden File-Types
                 } else {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     return 5;
                 }
             } else {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 return 5;
             }
         } else {
             if ($transaction_id != null) {
                 $transaction->rollback($transaction_id);
             }
             return 8;
         }
     } else {
         return 3;
     }
 }