📄 project.php
字号:
<?php/** * @copyright Intermesh 2003 * @author Merijn Schering <mschering@intermesh.nl> * @version $Revision: 1.91 $ $Date: 2006/04/10 13:21:11 $ * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */require_once ("../../Group-Office.php");$GO_HEADER['head'] ='';$GO_SECURITY->authenticate();$GO_MODULES->authenticate('projects');require_once ($GO_LANGUAGE->get_language_file('projects'));//check for the addressbook module$ab_module = isset ($GO_MODULES->modules['addressbook']) ? $GO_MODULES->modules['addressbook'] : false;if ($ab_module && $ab_module['read_permission']) { require_once ($ab_module['class_path'].'addressbook.class.inc'); $ab = new addressbook();} else { $ab_module = false;}$page_title = $lang_modules['projects'];require_once ($GO_MODULES->class_path."projects.class.inc");$projects = new projects();$task = isset ($_REQUEST['task']) ? $_REQUEST['task'] : '';$project_id = isset ($_REQUEST['project_id']) ? $_REQUEST['project_id'] : 0;$return_to = isset ($_REQUEST['return_to']) ? $_REQUEST['return_to'] : $_SERVER['HTTP_REFERER'];$link_back = (isset ($_REQUEST['link_back']) && $_REQUEST['link_back'] != '') ? $_REQUEST['link_back'] : $_SERVER['REQUEST_URI'];switch ($task) { case 'activate_linking': $link_project = $projects->get_project($project_id); if(empty($link_project['link_id'])) { $update_project['id'] = $project_id; $update_project['link_id'] = $link_project['link_id'] = $GO_LINKS->get_link_id(); $projects->update_project($update_project); } $GO_LINKS->activate_linking($link_project['link_id'], 5, $link_project['name'], $link_back); if(!empty($_REQUEST['goto_url'])) { header('Location: '.$_REQUEST['goto_url']); exit(); } break; case 'create_link': if($link = $GO_LINKS->get_active_link()) { $link_project = $projects->get_project($project_id); $link_id = $link_project['link_id']; if(empty($link_project['link_id'])) { $update_project['id'] = $project_id; $update_project['link_id'] = $link_id = $GO_LINKS->get_link_id(); $projects->update_project($update_project); } $GO_LINKS->add_link($link['id'], $link['type'], $link_id, 5); $GO_LINKS->deactivate_linking(); header('Location: '.$link['return_to']); exit(); } break; case 'save_project' : //translate the given date stamp to unix time $project['start_date'] = date_to_unixtime($_POST['start_date']); $project['end_date'] = date_to_unixtime($_POST['end_date']); $project['name'] = smart_addslashes(trim($_POST['name'])); $project['description'] = smart_addslashes($_POST['description']); $project['comments'] =smart_addslashes($_POST['comments']); $project['status'] =$_POST['status']; $project['probability'] =$_POST['probability']; $project['budget'] =$_POST['budget']; if ($project_id > 0) { if ($project['name'] == '') { $feedback = $error_missing_field; } elseif($project['project_id'] == $project_id) { $feedback = $pm_relate_to_self; }else { $existing_project = $projects->get_project_by_name($project['name']); $project['id'] = $project_id; if ($existing_project && $existing_project['id'] != $project_id) { $feedback = $pm_project_exists; }elseif (!$projects->update_project($project, isset($_POST['shift_events']))) { $feedback = $strSaveError; } else { if ($_POST['close'] == 'true') { header('Location: '.$return_to); exit (); } } } } else { if ($project['name'] == '') { $feedback = $error_missing_field; } elseif ($projects->get_project_by_name($project['name'])) { $feedback = $pm_project_exists; } else { $project['acl_read'] = $GO_SECURITY->get_new_acl('Project read: '.$project['name']); $project['acl_write'] = $GO_SECURITY->get_new_acl('Project write: '.$project['name']); if ($project['acl_read'] > 0 && $project['acl_write'] > 0) { $project['user_id'] = $GO_SECURITY->user_id; if($link = $GO_LINKS->get_active_link()) { $project['link_id'] = $GO_LINKS->get_link_id(); } if ($GO_SECURITY->add_user_to_acl($GO_SECURITY->user_id, $project['acl_write'])) { if (!$project_id = $projects->add_project($project)) { $GO_SECURITY->delete_acl($project['acl_read']); $GO_SECURITY->delete_acl($project['acl_write']); $feedback = $strSaveError; } else { if(isset($_POST['template_id']) && $_POST['template_id'] > 0) { $projects->apply_template($_POST['template_id'], $project_id, $_POST['calendar_id']); } if(isset($link) && $link) { $GO_LINKS->add_link($link['id'], $link['type'], $project['link_id'], 5); $GO_LINKS->deactivate_linking(); header('Location: '.$link['return_to']); exit(); }elseif ($_POST['close'] == 'true') { header('Location: '.$return_to); exit (); } } } else { $GO_SECURITY->delete_acl($project['acl_read']); $GO_SECURITY->delete_acl($project['acl_write']); $feedback = $strSaveError; } } else { $feedback = $strAclError; } } } break; case 'copy_project': $project_id = $projects->copy_project($project_id); break; case 'save_custom_fields': require_once($GO_MODULES->modules['custom_fields']['class_path'].'custom_fields.class.inc'); $cf = new custom_fields(); $cf->save_fields($_POST['project_tabstrip_'.$project_id], $_POST['link_id']); if ($_POST['close'] == 'true') { header('Location: '.$return_to); exit (); } break; }$link_back = $_SERVER['PHP_SELF'].'?project_id='.$project_id.'&return_to='.urlencode($return_to);$pm_settings = $projects->get_settings($GO_SECURITY->user_id);if ($project_id > 0) { $project = $projects->get_project($project_id); if(empty($project['link_id'])) { $update_project['id'] = $project_id; $update_project['link_id'] = $project['link_id'] = $GO_LINKS->get_link_id(); $projects->update_project($update_project); } $project_name = ($project['description'] == '') ? $project['name'] : $project['name'].' ('.$project['description'].')'; $tabstrip = new tabstrip('project_tabstrip_'.$project_id, $project_name); $tabstrip->set_attribute('style','width:100%'); $tabstrip->add_tab('properties', $strProperties); $write_permissions = $GO_SECURITY->has_permission($GO_SECURITY->user_id, $project['acl_write']); $read_permissions = $GO_SECURITY->has_permission($GO_SECURITY->user_id, $project['acl_read']); if (!$write_permissions && !$read_permissions) { header('Location: '.$GO_CONFIG->host.'error_docs/403.php'); exit (); } $tabstrip->add_tab('load', $pm_load); if(isset($GO_MODULES->modules['custom_fields'])) { require_once($GO_MODULES->modules['custom_fields']['class_path'].'custom_fields.class.inc'); $cf = new custom_fields(); if($cf->get_authorized_categories(5, $GO_SECURITY->user_id)) { while($cf->next_record()) { $tabstrip->add_tab($cf->f('id'), $cf->f('name')); } } } $tabstrip->add_tab('links', $strLinks); $tabstrip->add_tab('read_permissions', $strReadRights); $tabstrip->add_tab('write_permissions', $strWriteRights); $project['start_date'] = date($_SESSION['GO_SESSION']['date_format'], $project['start_date']); $project['end_date'] = date($_SESSION['GO_SESSION']['date_format'], $project['end_date']); $project['responsible_user'] = $project['res_user_id']; } else { $tabstrip = new tabstrip('project_tab', $pm_new_project);}$tabstrip->set_attribute('style','width:100%');$tabstrip->set_return_to($return_to);if ($project_id == 0 || $task == 'save_project') { $write_permissions = true; $read_permissions = true; $project['name'] = isset ($_POST['name']) ? smart_stripslashes($_POST['name']) : ''; $project['comments'] = isset ($_POST['comments']) ? smart_stripslashes($_POST['comments']) : ''; $project['start_date'] = isset ($_POST['start_date']) ? $_POST['start_date'] : date($_SESSION['GO_SESSION']['date_format'], get_time()); $project['end_date'] = isset ($_POST['end_date']) ? $_POST['end_date'] : date($_SESSION['GO_SESSION']['date_format'], get_time()); $project['status'] = isset ($_POST['status']) ? $_POST['status'] : '-3'; //$project['responsible_user'] = isset ($_POST['responsible_user']['id']) ? $_POST['responsible_user']['id'] : $GO_SECURITY->user_id; $project['probability'] = isset ($_POST['probability']) ? $_POST['probability'] : 0; $project['budget'] = isset ($_POST['budget']) ? $_POST['budget'] : 0; $project['description'] = isset ($_POST['description']) ? smart_stripslashes($_POST['description']) : ''; $project['ctime'] = $project['mtime'] = get_gmt_time(); $project['user_id'] = $GO_SECURITY->user_id;}$form = new form('projects_form');$form->add_html_element(new input('hidden', 'close', 'false'));$form->add_html_element(new input('hidden', 'project_id', $project_id, false));$form->add_html_element(new input('hidden', 'task', '', false));$form->add_html_element(new input('hidden', 'return_to',$return_to));$form->add_html_element(new input('hidden', 'link_back',$link_back));$form->add_html_element(new input('hidden', 'goto_url','', false));if ($project_id > 0 && $write_permissions) { $menu = new button_menu(); $menu->add_button('enter_data_big', $pm_enter_data, $GO_MODULES->url.'book.php?project_id='.$project_id.'&return_to='.urlencode($link_back)); $menu->add_button('pr_new_project', $strNewProject, 'javascript:activate_linking(\''.$GO_MODULES->url.'project.php?parent_project_id='.$project_id.'&return_to='.rawurlencode($link_back).'\');' ); if (isset($GO_MODULES->modules['notes']) && $GO_MODULES->modules['notes']['read_permission']) { $menu->add_button( 'ab_notes', $strNewNote, 'javascript:activate_linking(\''.$GO_MODULES->modules['notes']['url']. 'note.php?project_id='.$project_id.'&return_to='.rawurlencode($link_back).'\');' ); } if (isset($GO_MODULES->modules['calendar']) && $GO_MODULES->modules['calendar']['read_permission']) { $menu->add_button( 'cal_compose', $strNewEvent, 'javascript:activate_linking(\''.$GO_MODULES->modules['calendar']['url']. 'index.php?project_id='.$project_id.'&link_back='.rawurlencode($link_back).'\');' ); $menu->add_button( 'todos_new', $strNewTodo, 'javascript:activate_linking(\''.$GO_MODULES->modules['calendar']['url']. 'event.php?todo=1&project_id='.$project_id.'&return_to='.rawurlencode($link_back).'\');' ); } if (isset($GO_MODULES->modules['filesystem']) && $GO_MODULES->modules['filesystem']['read_permission']) { $menu->add_button( 'upload', $strUpload, 'javascript:activate_linking(\''.$GO_MODULES->modules['filesystem']['url']. '?return_to='.rawurlencode($link_back).'\');' ); } if($GO_LINKS->linking_is_active()) { if($GO_LINKS->get_active_link()) { $menu->add_button('link', $strCreateLink, "javascript:document.projects_form.task.value='create_link';document.projects_form.submit();"); } }else { $menu->add_button('link', $strCreateLink, "javascript:document.projects_form.task.value='activate_linking';document.projects_form.submit();"); } if($tabstrip->get_active_tab_id() == 'links') { $GO_HEADER['head'] = datatable::get_header(); $links_list = new links_list($project['link_id'], '0', $link_back); $menu->add_button( 'unlink', $cmdUnlink, $links_list->get_unlink_handler()); $menu->add_button( 'delete_big', $cmdDelete, $links_list->get_delete_handler()); $menu->add_button( 'print',
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -