Exemple #1
0
        $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;
}