$categories["{$category['projectcategoryid']}"] = $category['title']; } $categories = array(0 => $vbphrase['unknown']) + $categories; print_delete_confirmation('pt_projectcategory', $projectcategory['projectcategoryid'], 'project', 'projectcategorykill', '', 0, $vbphrase['existing_affected_issues_updated_delete_select_category'] . '<select name="destcategoryid">' . construct_select_options($categories) . '</select>', 'title'); } // ######################################################################## if ($_POST['do'] == 'projectcategorydisplayorder') { $vbulletin->input->clean_array_gpc('p', array('order' => TYPE_ARRAY_UINT, 'projectid' => TYPE_UINT)); $case = ''; foreach ($vbulletin->GPC['order'] as $id => $displayorder) { $case .= "\nWHEN " . intval($id) . " THEN " . $displayorder; } if ($case) { $db->query_write("\r\n\t\t\tUPDATE " . TABLE_PREFIX . "pt_projectcategory SET\r\n\t\t\t\tdisplayorder = CASE projectcategoryid {$case} ELSE displayorder END\r\n\t\t"); } build_project_category_cache(); define('CP_REDIRECT', 'project.php?do=projectcategory&projectid=' . $vbulletin->GPC['projectid']); print_stop_message('saved_display_order_successfully'); } // ######################################################################## if ($_REQUEST['do'] == 'projectcategory') { $vbulletin->input->clean_array_gpc('r', array('projectid' => TYPE_UINT)); $project = fetch_project_info($vbulletin->GPC['projectid'], false); if (!$project) { print_stop_message('invalid_action_specified'); } $categories = array(); $category_data = $db->query_read("\r\n\t\tSELECT *\r\n\t\tFROM " . TABLE_PREFIX . "pt_projectcategory\r\n\t\tWHERE projectid = {$project['projectid']}\r\n\t\tORDER BY displayorder\r\n\t"); while ($category = $db->fetch_array($category_data)) { $categories["{$category['projectcategoryid']}"] = $category; }
/** * Builds the cache of projects into $vbulletin->pt_projects. * Accessed as [projectid] => <info, including [types]>. * Automatically builds categories, permissions, and assignable users. * * @return array Project cache */ function build_project_cache() { global $vbulletin, $db; $cache = array(); $projects = $db->query_read("\r\n\t\tSELECT *\r\n\t\tFROM " . TABLE_PREFIX . "pt_project\r\n\t\tORDER BY displayorder\r\n\t"); while ($project = $db->fetch_array($projects)) { $project_types = array(); $project_types_query = $db->query_read("\r\n\t\t\tSELECT issuetypeid, startstatusid\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_projecttype AS projecttype\r\n\t\t\tWHERE projecttype.projectid = {$project['projectid']}\r\n\t\t"); while ($project_type = $db->fetch_array($project_types_query)) { $project_types["{$project_type['issuetypeid']}"] = $project_type['startstatusid']; } $project['types'] = $project_types; $cache["{$project['projectid']}"] = $project; } build_datastore('pt_projects', serialize($cache), 1); $vbulletin->pt_projects = $cache; build_project_category_cache(); build_project_permissions(); build_assignable_users(); build_pt_user_list('pt_report_users', 'pt_report_user_cache'); return $cache; }