standard_error(fetch_error('product_not_installed_disabled')); } require_once DIR . '/includes/functions_projecttools.php'; require_once DIR . '/includes/class_xml.php'; if (!($vbulletin->userinfo['permissions']['ptpermissions'] & $vbulletin->bf_ugp_ptpermissions['canviewprojecttools'])) { print_no_permission(); } // ####################################################################### // ######################## START MAIN SCRIPT ############################ // ####################################################################### $vbulletin->input->clean_array_gpc('p', array('issueid' => TYPE_UINT, 'field' => TYPE_NOHTML, 'value' => TYPE_NOCLEAN)); if (is_string($vbulletin->GPC['value'])) { $vbulletin->GPC['value'] = convert_urlencoded_unicode($vbulletin->GPC['value']); } $issue = verify_issue($vbulletin->GPC['issueid']); $project = verify_project($issue['projectid']); verify_issuetypeid($issue['issuetypeid'], $project['projectid']); $projectperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid']); $issueperms = $projectperms["{$issue['issuetypeid']}"]; $posting_perms = prepare_issue_posting_pemissions($issue, $issueperms); $can_edit_issue = $posting_perms['issue_edit']; ($hook = vBulletinHook::fetch_hook('projectajax_start')) ? eval($hook) : false; // ####################################################################### function throw_ajax_error($text = '') { global $vbulletin; $xml =& new vB_AJAX_XML_Builder($vbulletin, 'text/xml'); $xml->add_tag('error', $text); $xml->print_xml(); } // #######################################################################
break; } } if ($show['search_options']) { $assignable_users = fetch_assignable_users_select($project['projectid']); $search_status_options = fetch_issue_status_search_select($projectperms); } // navbar and output $navbits = construct_navbits(array('project.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['projects'], "project.php?" . $vbulletin->session->vars['sessionurl'] . "projectid={$project['projectid']}" => $project['title_clean'], "projectmilestone.php?" . $vbulletin->session->vars['sessionurl'] . "projectid={$project['projectid']}" => $vbphrase['milestones'], '' => $milestone['title_clean'])); eval('$navbar = "' . fetch_template('navbar') . '";'); eval('print_output("' . fetch_template('pt_milestone') . '");'); } // ####################################################################### if ($_REQUEST['do'] == 'project') { $vbulletin->input->clean_array_gpc('r', array('projectid' => TYPE_UINT, 'viewall' => TYPE_BOOL)); $project = verify_project($vbulletin->GPC['projectid']); $projectperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid']); $milestone_types = fetch_viewable_milestone_types($projectperms); if (!$milestone_types) { print_no_permission(); } $milestone_data = $vbulletin->db->query_read("\r\n\t\tSELECT *\r\n\t\tFROM " . TABLE_PREFIX . "pt_milestone\r\n\t\tWHERE projectid = {$project['projectid']}\r\n\t\tORDER BY completeddate DESC, targetdate\r\n\t"); if (!$db->num_rows($milestone_data)) { standard_error(fetch_error('invalidid', $vbphrase['project'], $vbulletin->options['contactuslink'])); } $counts = fetch_milestone_count_data("\r\n\t\tmilestone.projectid = {$project['projectid']}\r\n\t\tAND milestonetypecount.issuetypeid IN ('" . implode("','", $milestone_types) . "')\r\n\t"); $active_milestones = ''; $no_target_milestones = ''; $completed_milestones = ''; $count_completed = 0; while ($milestone = $db->fetch_array($milestone_data)) {
} // ####################################################################### if (!($vbulletin->userinfo['permissions']['ptpermissions'] & $vbulletin->bf_ugp_ptpermissions['canviewprojecttools'])) { exec_header_redirect($vbulletin->options['bburl'] . '/archive/index.php'); exit; } if ($issueid) { $do = 'issue'; $issue = verify_issue($issueid); $project = verify_project($issue['projectid']); $title = "{$issue['title']} [{$vbphrase['archive']}]" . ($p > 1 ? ' - ' . construct_phrase($vbphrase['page_x'], $p) : '') . " - {$title}"; $metatags = "<meta name=\"keywords\" content=\"{$issue['title']}, {$project['title_clean']}, project tools, " . $vbulletin->options['keywords'] . "\" />\r\n\t\t<meta name=\"description\" content=\"[{$vbphrase['archive']}] {$issue['title']} " . ($p > 1 ? construct_phrase($vbphrase['page_x'], $p) . " " : "") . "\" />\r\n\t"; } else { if ($projectid) { $do = 'project'; $project = verify_project($projectid); $perms_query = build_issue_permissions_query($vbulletin->userinfo); if (empty($perms_query["{$project['projectid']}"])) { exit; } $title = "{$project['title_clean']} [{$vbphrase['archive']}]" . ($p > 1 ? ' - ' . construct_phrase($vbphrase['page_x'], $p) : '') . " - {$title}"; $metatags = "<meta name=\"keywords\" content=\"{$project['title_clean']}, project tools, " . $vbulletin->options['keywords'] . "\" />\r\n\t\t<meta name=\"description\" content=\"[{$vbphrase['archive']}] {$project['summary_clean']} " . ($p > 1 ? construct_phrase($vbphrase['page_x'], $p) . " " : "") . "\" />\r\n\t"; } else { $do = 'index'; $metatags = "<meta name=\"keywords\" content=\"project tools, " . $vbulletin->options['keywords'] . "\" />\r\n\t\t<meta name=\"description\" content=\"" . $vbulletin->options['description'] . "\" />\r\n\t"; } } ($hook = vBulletinHook::fetch_hook('projectarchive_start')) ? eval($hook) : false; $output .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"{$stylevar['textdirection']}\" lang=\"{$stylevar['languagecode']}\">\r\n<head>\r\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset={$stylevar['charset']}\" />\r\n\t{$metatags}\r\n\t<title>{$title}</title>\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"" . $vbulletin->options['bburl'] . "/archive/archive.css\" />\r\n</head>\r\n<body>\r\n<div class=\"pagebody\">\r\n"; ($hook = vBulletinHook::fetch_hook('projectarchive_postheader')) ? eval($hook) : false; // #######################################################################