/** * Fetches actual milestone select options based on templates. * * @param integer Project ID to pull milestones from * @param integer Selected milestone ID * @param array Optional list of milestone IDs to omit * * @return string Outputtable HTML */ function fetch_milestone_select($projectid, $selected_milestone = 0, $skip_ids = array()) { global $vbulletin, $vbphrase, $stylevar, $show; $milestone_array = fetch_milestone_select_list($projectid, $skip_ids); $milestone_options = ''; foreach ($milestone_array as $optgroup_label => $option_container) { if (!is_array($option_container)) { $optionvalue = $optgroup_label; $optiontitle = $option_container; $optionselected = $selected_milestone == $optionvalue ? ' selected="selected"' : ''; eval('$milestone_options .= "' . fetch_template('option') . '";'); } else { if (!empty($option_container)) { $optgroup_options = ''; foreach ($option_container as $optionvalue => $optiontitle) { $optionselected = $selected_milestone == $optionvalue ? ' selected="selected"' : ''; eval('$optgroup_options .= "' . fetch_template('option') . '";'); } eval('$milestone_options .= "' . fetch_template('optgroup') . '";'); } } } return $milestone_options; }
$xml->add_tag('item', $versionname, array('itemid' => $versionid, 'selected' => $issue[$vbulletin->GPC['field']] == $versionid ? 'yes' : 'no')); } $xml->close_group(); } $xml->close_group(); } break; // ########### MILESTONE ########### // ########### MILESTONE ########### case 'milestoneid': if (!($issueperms['generalpermissions'] & $vbulletin->pt_bitfields['general']['canviewmilestone']) or !($issueperms['postpermissions'] & $vbulletin->pt_bitfields['post']['canchangemilestone'])) { $xml->add_tag('error', ''); } else { $xml->add_group('items'); require_once DIR . '/includes/functions_pt_posting.php'; $milestones = fetch_milestone_select_list($project['projectid']); foreach ($milestones as $milestone_key => $milestone_container) { if (!is_array($milestone_container)) { $xml->add_tag('item', $milestone_container, array('itemid' => $milestone_key, 'selected' => $issue['milestoneid'] == $milestone_key ? 'yes' : 'no')); } else { if (!empty($milestone_container)) { $xml->add_group('itemgroup', array('label' => $milestone_key)); foreach ($milestone_container as $milestoneid => $milestone_title) { $xml->add_tag('item', $milestone_title, array('itemid' => $milestoneid, 'selected' => $issue['milestoneid'] == $milestoneid ? 'yes' : 'no')); } $xml->close_group(); } } } $xml->close_group(); }
$milestonedata->rebuild_milestone_counters(); $milestonedata->save(); } define('CP_REDIRECT', 'project.php?do=projectmilestone&projectid=' . $project['projectid']); print_stop_message('project_milestone_deleted'); } // ######################################################################## if ($_REQUEST['do'] == 'projectmilestonedelete') { $vbulletin->input->clean_array_gpc('r', array('milestoneid' => TYPE_UINT)); $milestone = $db->query_first("\r\n\t\tSELECT *\r\n\t\tFROM " . TABLE_PREFIX . "pt_milestone\r\n\t\tWHERE milestoneid = " . $vbulletin->GPC['milestoneid']); $project = fetch_project_info($milestone['projectid'], false); if (!$project) { print_stop_message('invalid_action_specified'); } require_once DIR . '/includes/functions_pt_posting.php'; $milestones = fetch_milestone_select_list($project['projectid'], array($milestone['milestoneid'])); print_delete_confirmation('pt_milestone', $milestone['milestoneid'], 'project', 'projectmilestonekill', '', 0, $vbphrase['existing_affected_issues_updated_delete_select_milestone'] . '<select name="destmilestoneid">' . construct_select_options($milestones) . '</select>', 'title'); } // ######################################################################## if ($_REQUEST['do'] == 'projectmilestone') { $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'); } $milestones = array(); $milestone_data = $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, targetdate DESC\r\n\t"); while ($milestone = $db->fetch_array($milestone_data)) { $milestones["{$milestone['milestoneid']}"] = $milestone; } $lastcompleted = null;