コード例 #1
0
ファイル: item_common.io.php プロジェクト: suxinde2009/www
 /**
  * Generates an item menu entry with sub-items
  * @param array $element_array
  * @param integer $key
  * @param integer $counter
  * @param array $link_base
  * @param string $holder_class
  * @param string $holder_id
  * @return array
  */
 public static function get_menu_element($element_array, $key, $counter, $link_base, $holder_class, $holder_id)
 {
     $result = array();
     $amount = count($element_array['fulfilled']);
     if ($element_array['display'] == true) {
         if ($element_array['occurrence'] == "multiple" and $amount > 0) {
             $result[$counter]['name'] = $element_array['name'] . " (" . $amount . ")";
         } else {
             $result[$counter]['name'] = $element_array['name'];
         }
         $result[$counter]['depends'] = false;
         $item_handling_cass = $element_array['handling_class'];
         $paramquery = $link_base;
         $paramquery['run'] = "item_add";
         $paramquery['dialog'] = $element_array['type'];
         $paramquery['key'] = $key;
         $paramquery['retrace'] = Retrace::create_retrace_string();
         $item_add_occurrence_array = $item_handling_cass::get_item_add_occurrence($element_array['type']);
         if (!is_array($item_add_occurrence_array) or count($item_add_occurrence_array) != 3) {
             $item_add_occurrence_array = array(true, true, "deny");
         }
         if ($element_array['occurrence'] == "once" and $item_add_occurrence_array[0] == true and $item_add_occurrence_array[2] == "edit" and is_array($element_array['fulfilled']) and $amount >= 1) {
             $paramquery['run'] = "item_edit";
         }
         $item_add_dialog_array = $item_handling_cass::get_item_add_dialog($element_array['type']);
         if (is_array($item_add_dialog_array)) {
             if (in_array($element_array['dialog'], $item_add_dialog_array[0])) {
                 $item_array_type = $element_array['dialog'];
             } else {
                 $item_array_type = $item_add_dialog_array[1];
             }
             if (trim($item_array_type) == "window") {
                 $result[$counter]['type'] = "ajax";
                 $ajax_handling_array = $item_handling_cass::get_item_add_script_handling_class($element_array['type']);
                 require_once "core/modules/" . $ajax_handling_array[0];
                 $ajax_init_array = $ajax_handling_array[1]::$ajax_handling_array[2]($element_array['pos_id'], $paramquery, $element_array['type_id'], $element_array['category_id'], $holder_class, $holder_id);
                 $result[$counter]['script'] = $ajax_init_array['script'];
                 $result[$counter]['window_title'] = $ajax_init_array['window_title'];
                 $result[$counter]['window_id'] = $ajax_init_array['window_id'];
                 $result[$counter]['click_id'] = $ajax_init_array['click_id'];
             } else {
                 $result[$counter]['type'] = "link";
             }
         } else {
             $result[$counter]['type'] = "link";
         }
         if (is_array($element_array['fulfilled']) and $amount >= 1) {
             if ($element_array['occurrence'] == "multiple" and $item_add_occurrence_array[1] == true or $element_array['occurrence'] == "once" and $item_add_occurrence_array[0] == false or $element_array['occurrence'] == "once" and $item_add_occurrence_array[0] == true and $item_add_occurrence_array[2] == "edit") {
                 $result[$counter]['image'] = "add_done";
             } else {
                 $result[$counter]['type'] = false;
                 $result[$counter]['image'] = "add_done_na";
             }
         } else {
             $result[$counter]['image'] = "add";
         }
         if ($element_array['requirement'] == "optional") {
             $result[$counter]['name'] = $result[$counter]['name'] . " (optional)";
         }
         $params = http_build_query($paramquery, '', '&');
         $result[$counter]['params'] = $params;
         $counter++;
     }
     if (is_array($element_array['sub_items']) and count($element_array['sub_items']) >= 1) {
         $result[$counter]['type'] = "line";
         $counter++;
         $sub_item_irgnore_array = array();
         foreach ($element_array['sub_items'] as $sub_item_key => $sub_item_value) {
             foreach ($sub_item_value as $sub_sub_item_key => $sub_sub_item_value) {
                 if (!in_array($sub_sub_item_key, $sub_item_irgnore_array)) {
                     if ($sub_sub_item_value['element_type'] == "item") {
                         $paramquery = $link_base;
                         $paramquery['run'] = "sub_item_add";
                         $paramquery['dialog'] = $sub_sub_item_value['type'];
                         $paramquery['key'] = $sub_sub_item_value['pos_id'];
                         $paramquery['parent'] = $element_array['type'];
                         $paramquery['parent_key'] = $element_array['pos_id'];
                         if ($sub_sub_item_value['takeover'] == false) {
                             $paramquery['parent_id'] = $element_array['fulfilled'][$sub_item_key]['id'];
                         }
                         $paramquery['retrace'] = Retrace::create_retrace_string();
                         $item_handling_cass = $sub_sub_item_value['handling_class'];
                         $item_add_occurrence_array = $item_handling_cass::get_item_add_occurrence($sub_sub_item_value['type']);
                         if (!is_array($item_add_occurrence_array) or count($item_add_occurrence_array) != 3) {
                             $item_add_occurrence_array = array(true, true, "deny");
                         }
                         if ($sub_sub_item_value['occurrence'] == "once" and $item_add_occurrence_array[0] == true and $item_add_occurrence_array[2] == "edit" and is_array($sub_sub_item_value['fulfilled']) and count($sub_sub_item_value['fulfilled']) >= 1) {
                             $paramquery['run'] = "sub_item_edit";
                         }
                         $item_add_dialog_array = $item_handling_cass::get_item_add_dialog($sub_sub_item_value['type']);
                         if (is_array($item_add_dialog_array)) {
                             if (in_array($sub_sub_item_value['dialog'], $item_add_dialog_array[0])) {
                                 $item_array_type = $sub_sub_item_value['dialog'];
                             } else {
                                 $item_array_type = $item_add_dialog_array[1];
                             }
                             if (trim($item_array_type) == "window") {
                                 $result[$counter]['type'] = "ajax";
                                 $ajax_handling_array = $item_handling_cass::get_item_add_script_handling_class($sub_sub_item_value['type']);
                                 require_once "core/modules/" . $ajax_handling_array[0];
                                 $item_holder = Item::get_holder_handling_class_by_name($element_array['type']);
                                 // Type of the ItemHolder
                                 $ajax_init_array = $ajax_handling_array[1]::$ajax_handling_array[2]($sub_sub_item_value['pos_id'], $paramquery, $sub_sub_item_value['type_id'], $sub_sub_item_value['category_id'], $item_holder, $element_array['fulfilled'][$sub_item_key]['id']);
                                 $result[$counter]['script'] = $ajax_init_array['script'];
                                 $result[$counter]['window_title'] = $ajax_init_array['window_title'];
                                 $result[$counter]['window_id'] = $ajax_init_array['window_id'];
                                 $result[$counter]['click_id'] = $ajax_init_array['click_id'];
                             } else {
                                 $result[$counter]['type'] = "link";
                             }
                         } else {
                             $result[$counter]['type'] = "link";
                         }
                         if ($sub_sub_item_value['takeover'] == true) {
                             $result[$counter]['name'] = $sub_sub_item_value['name'] . " (all)";
                             array_push($sub_item_irgnore_array, $sub_sub_item_key);
                         } else {
                             if ($element_array['fulfilled'][$sub_item_key]['name']) {
                                 $result[$counter]['name'] = $sub_sub_item_value['name'] . " (" . $element_array['fulfilled'][$sub_item_key]['name'] . ")";
                             } else {
                                 $result[$counter]['name'] = $sub_sub_item_value['name'];
                             }
                         }
                         if (is_array($sub_sub_item_value['fulfilled'])) {
                             if ($sub_sub_item_value['occurrence'] == "multiple" and $item_add_occurrence_array[1] == true or $sub_sub_item_value['occurrence'] == "once" and $item_add_occurrence_array[0] == false or $sub_sub_item_value['occurrence'] == "once" and $item_add_occurrence_array[0] == true and $item_add_occurrence_array[2] == "edit") {
                                 $result[$counter]['image'] = "add_done";
                             } else {
                                 $result[$counter]['type'] = false;
                                 $result[$counter]['image'] = "add_done_na";
                             }
                         } else {
                             $result[$counter]['image'] = "add";
                         }
                         $params = http_build_query($paramquery, '', '&');
                         $result[$counter]['depends'] = true;
                         $result[$counter]['params'] = $params;
                         $counter++;
                     }
                 }
             }
             if ($result[$counter - 1]['type'] != "line") {
                 $result[$counter]['type'] = "line";
                 $counter++;
             }
         }
     }
     return array(0 => $result, 1 => $counter);
 }
コード例 #2
0
ファイル: project.ajax.php プロジェクト: suxinde2009/www
 /**
  * @param string $get_array
  * @return string
  * @throws ProjectIDMissingException
  */
 public static function get_project_menu($get_array)
 {
     global $project_security;
     if ($get_array) {
         $_GET = unserialize($get_array);
     }
     if ($_GET['project_id']) {
         $project = new Project($_GET['project_id']);
         $folder_id = ProjectStatusFolder::get_folder_by_project_id_and_project_status_id($_GET['project_id'], $project->get_current_status_id());
         $template = new HTMLTemplate("project/ajax/detail_menu.html");
         switch ($project->is_next_status_available()) {
             case 0:
                 if ($project->get_current_status_id() == 0) {
                     $template->set_var("proceed", 3);
                 } else {
                     $template->set_var("proceed", 4);
                 }
                 break;
             case 1:
                 if ($project_security->is_access(3, false) == true) {
                     if ($project->is_current_status_fulfilled()) {
                         $template->set_var("proceed", 1);
                     } else {
                         $template->set_var("proceed", 2);
                     }
                 }
                 break;
             case 2:
                 if ($project_security->is_access(3, false) == true) {
                     if ($project->is_current_status_fulfilled()) {
                         $template->set_var("proceed", 5);
                     } else {
                         $template->set_var("proceed", 6);
                     }
                 }
                 break;
             default:
                 $template->set_var("proceed", 7);
                 break;
         }
         $template->set_var("next_status_name", $project->get_next_status_name());
         if ($project_security->is_access(3, false) == true) {
             $project_template = new ProjectTemplate($project->get_template_id());
             $current_status_requirements = $project->get_current_status_requirements($project->get_current_status_id());
             $result = array();
             $counter = 0;
             if (is_array($current_status_requirements) and count($current_status_requirements) >= 1) {
                 foreach ($current_status_requirements as $key => $value) {
                     switch ($value['element_type']) {
                         case "item":
                             $paramquery = array();
                             $paramquery['username'] = $_GET['username'];
                             $paramquery['session_id'] = $_GET['session_id'];
                             $paramquery['nav'] = "project";
                             $paramquery['project_id'] = $_GET['project_id'];
                             require_once "core/modules/item/common/item_common.io.php";
                             $menu_element_array = ItemCommonIO::get_menu_element($value, $key, $counter, $paramquery, "Project", $_GET['project_id']);
                             $result = array_merge($result, $menu_element_array[0]);
                             $counter = $menu_element_array[1];
                             break;
                         case "extension":
                             $paramquery = array();
                             $paramquery['username'] = $_GET['username'];
                             $paramquery['session_id'] = $_GET['session_id'];
                             $paramquery['nav'] = "project";
                             $paramquery['run'] = "extension";
                             $paramquery['project_id'] = $_GET['project_id'];
                             $paramquery['extension'] = $value['extension'];
                             $paramquery['retrace'] = Retrace::create_retrace_string();
                             $params = http_build_query($paramquery, '', '&');
                             $result[$counter]['name'] = "Run " . $value['name'];
                             $result[$counter]['depends'] = false;
                             $result[$counter]['params'] = $params;
                             if ($value['fulfilled'] == 1) {
                                 if ($value['occurrence'] == "multiple") {
                                     $result[$counter]['type'] = "link";
                                     $result[$counter]['image'] = "add_extension_done";
                                 } else {
                                     $result[$counter]['type'] = false;
                                     $result[$counter]['image'] = "add_extension_done_na";
                                 }
                             } elseif ($value['fulfilled'] == 0) {
                                 if ($value['occurrence'] == "multiple") {
                                     $result[$counter]['type'] = "link";
                                     $result[$counter]['image'] = "add_extension_wait";
                                 } else {
                                     $result[$counter]['type'] = false;
                                     $result[$counter]['image'] = "add_extension_wait_na";
                                 }
                             } else {
                                 $result[$counter]['type'] = "link";
                                 $result[$counter]['image'] = "add_extension";
                             }
                             if ($value['requirement'] == "optional" and $value['fulfilled'] != 0) {
                                 $result[$counter]['name'] = $result[$counter]['name'] . " (optional)";
                             }
                             $counter++;
                             break;
                     }
                 }
             }
             if ($counter > 0) {
                 $template->set_var("status_action", $result);
             }
             $template->set_var("write", true);
         } else {
             $template->set_var("write", false);
         }
         $paramquery = array();
         $paramquery['username'] = $_GET['username'];
         $paramquery['session_id'] = $_GET['session_id'];
         $paramquery['nav'] = "project";
         $paramquery['run'] = "common_dialog";
         $paramquery['folder_id'] = ProjectFolder::get_supplementary_folder($_GET['project_id']);
         $paramquery['dialog'] = "file_add";
         $paramquery['retrace'] = Retrace::create_retrace_string();
         unset($paramquery['nextpage']);
         $supplementary_params = http_build_query($paramquery, '', '&');
         $template->set_var("supplementary_params", $supplementary_params);
         $log_paramquery = $_GET;
         $log_paramquery['run'] = "log_add";
         unset($log_paramquery['nextpage']);
         $log_params = http_build_query($log_paramquery, '', '&');
         $template->set_var("log_params", $log_params);
         $add_task_paramquery = $_GET;
         $add_task_paramquery['run'] = "add_task";
         unset($add_task_paramquery['nextpage']);
         $add_task_params = http_build_query($add_task_paramquery, '', '&');
         $template->set_var("add_task_params", $add_task_params);
         $show_tasks_paramquery = $_GET;
         $show_tasks_paramquery['run'] = "show_tasks";
         unset($show_tasks_paramquery['nextpage']);
         $show_tasks_params = http_build_query($show_tasks_paramquery, '', '&');
         $template->set_var("show_tasks_params", $show_tasks_params);
         $subproject_paramquery = $_GET;
         $subproject_paramquery['run'] = "new_subproject";
         unset($subproject_paramquery['nextpage']);
         $subproject_params = http_build_query($subproject_paramquery, '', '&');
         $template->set_var("add_subproject_params", $subproject_params);
         $template->output();
     } else {
         throw new ProjectIDMissingException();
     }
 }
コード例 #3
0
ファイル: file.io.php プロジェクト: suxinde2009/www
 /**
  * @throws FileIDMissingException
  * @throws DataSecurityAccessDeniedException
  */
 public static function detail()
 {
     global $regional;
     if ($_GET['file_id']) {
         $file = File::get_instance($_GET['file_id']);
         if ($file->is_read_access()) {
             $template = new HTMLTemplate("data/file_detail.html");
             $folder = Folder::get_instance($file->get_parent_folder_id());
             if ($_GET['version'] and is_numeric($_GET['version'])) {
                 $file->open_internal_revision($_GET['version']);
                 $internal_revision = $_GET['version'];
             } else {
                 $internal_revision = $file->get_internal_revision();
             }
             $template = new HTMLTemplate("data/file_detail.html");
             $folder = Folder::get_instance($file->get_parent_folder_id());
             $user = new User($file->get_owner_id());
             $file_version_array = $file->get_file_internal_revisions();
             if (is_array($file_version_array) and count($file_version_array) > 0) {
                 $result = array();
                 $counter = 1;
                 $result[0]['version'] = 0;
                 $result[0]['text'] = "----------------------------------------------";
                 $file_version = File::get_instance($_GET['file_id'], true);
                 foreach ($file_version_array as $key => $value) {
                     $file_version->open_internal_revision($value);
                     $version_datetime_handler = new DatetimeHandler($file_version->get_datetime());
                     $result[$counter]['version'] = $file_version->get_internal_revision();
                     $result[$counter]['text'] = "Version " . $file_version->get_version() . " - " . $version_datetime_handler->get_datetime();
                     $counter++;
                 }
                 $template->set_var("version_option", $result);
             }
             $result = array();
             $counter = 0;
             foreach ($_GET as $key => $value) {
                 if ($key != "version") {
                     $result[$counter]['value'] = $value;
                     $result[$counter]['key'] = $key;
                     $counter++;
                 }
             }
             $template->set_var("get", $result);
             $template->set_var("version", $file->get_version());
             $paramquery = $_GET;
             $paramquery['action'] = "file_history";
             $params = http_build_query($paramquery, '', '&');
             $template->set_var("version_list_link", $params);
             $template->set_var("title", $file->get_name());
             $template->set_var("name", $file->get_name());
             $template->set_var("path", $folder->get_object_path());
             $template->set_var("size", Convert::convert_byte_1024($file->get_size()));
             $template->set_var("size_in_byte", $regional->format_number($file->get_size()));
             $create_datetime_handler = new DatetimeHandler($file->get_datetime());
             $version_datetime_handler = new DatetimeHandler($file->get_version_datetime());
             $template->set_var("creation_datetime", $create_datetime_handler->get_datetime());
             $template->set_var("version_datetime", $version_datetime_handler->get_datetime());
             $template->set_var("mime_type", $file->get_mime_type());
             $template->set_var("owner", $user->get_full_name(false));
             $template->set_var("checksum", $file->get_checksum());
             $template->set_var("permission", $file->get_permission_string());
             $template->set_var("comment", "");
             if ($file->is_image() == true) {
                 $template->set_var("thumbnail_image", "<img src='image.php?session_id=" . $_GET['session_id'] . "&file_id=" . $_GET['file_id'] . "&max_width=340&max_height=350' alt='' />");
             } else {
                 $template->set_var("thumbnail_image", "");
             }
             $paramquery = array();
             $paramquery['username'] = $_GET['username'];
             $paramquery['session_id'] = $_GET['session_id'];
             $paramquery['file_id'] = $_GET['file_id'];
             if ($_GET['version']) {
                 $paramquery['version'] = $_GET['version'];
             }
             $params = http_build_query($paramquery, '', '&#38;');
             $template->set_var("download_params", $params);
             $paramquery = $_GET;
             $paramquery['action'] = "file_update";
             $paramquery['version'] = $internal_revision;
             $paramquery['retrace'] = Retrace::create_retrace_string();
             $params = http_build_query($paramquery, '', '&#38;');
             $template->set_var("update_params", $params);
             $paramquery = $_GET;
             $paramquery['action'] = "file_update_minor";
             $paramquery['version'] = $file->get_internal_revision();
             $paramquery['retrace'] = Retrace::create_retrace_string();
             $params = http_build_query($paramquery, '', '&#38;');
             $template->set_var("update_minor_params", $params);
             $paramquery = $_GET;
             $paramquery['action'] = "permission";
             $params = http_build_query($paramquery, '', '&#38;');
             $template->set_var("set_permission_params", $params);
             $template->set_var("write_access", $file->is_write_access());
             if ($file->is_control_access() == true or $file->get_owner_id() == $user->get_user_id()) {
                 $template->set_var("change_permission", true);
             } else {
                 $template->set_var("change_permission", false);
             }
             $template->set_var("delete_access", $file->is_delete_access());
             $paramquery = $_GET;
             $paramquery['action'] = "file_delete";
             unset($paramquery['sure']);
             $params = http_build_query($paramquery, '', '&#38;');
             $template->set_var("delete_file_params", $params);
             $paramquery = $_GET;
             $paramquery['action'] = "file_delete_version";
             $paramquery['version'] = $internal_revision;
             unset($paramquery['sure']);
             $params = http_build_query($paramquery, '', '&#38;');
             $template->set_var("delete_file_version_params", $params);
             $paramquery = $_GET;
             unset($paramquery['file_id']);
             unset($paramquery['version']);
             unset($paramquery['action']);
             $params = http_build_query($paramquery, '', '&#38;');
             $template->set_var("back_link", $params);
             $template->output();
         } else {
             throw new DataSecurityAccessDeniedException();
         }
     } else {
         throw new FileIDMissingException();
     }
 }
コード例 #4
0
ファイル: data.io.php プロジェクト: suxinde2009/www
 /**
  * @param integer $user_id
  * @return array
  */
 public static function get_user_module_detail_setting($user_id)
 {
     if ($user_id) {
         $data_user_data = new DataUserData($user_id);
         $paramquery = $_GET;
         $paramquery['run'] = "module_value_change";
         $paramquery['dialog'] = "user_quota";
         $paramquery['retrace'] = Retrace::create_retrace_string();
         $params = http_build_query($paramquery, '', '&#38;');
         $return_array = array();
         $return_array['value'] = Convert::convert_byte_1024($data_user_data->get_quota());
         $return_array['params'] = $params;
         return $return_array;
     } else {
         return null;
     }
 }