if ($show['quick_reply']) { require_once DIR . '/includes/functions_editor.php'; $editorid = construct_edit_toolbar('', false, 'pt', $vbulletin->options['pt_allowsmilies'], true, false, 'qr'); } // 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'], "project.php?" . $vbulletin->session->vars['sessionurl'] . "do=issuelist&projectid={$project['projectid']}&issuetypeid={$issue['issuetypeid']}" => $vbphrase["issuetype_{$issue['issuetypeid']}_singular"], '' => $issue['title'])); eval('$navbar = "' . fetch_template('navbar') . '";'); ($hook = vBulletinHook::fetch_hook('project_issue_complete')) ? eval($hook) : false; eval('print_output("' . fetch_template('pt_issue') . '");'); } // ####################################################################### if ($_REQUEST['do'] == 'issuelist') { $vbulletin->input->clean_array_gpc('r', array('projectid' => TYPE_UINT, 'issuetypeid' => TYPE_NOHTML, 'appliesversionid' => TYPE_NOHTML, 'issuestatusid' => TYPE_INT, 'pagenumber' => TYPE_UINT, 'sortfield' => TYPE_NOHTML, 'sortorder' => TYPE_NOHTML)); $project = verify_project($vbulletin->GPC['projectid']); if ($vbulletin->GPC['issuetypeid']) { verify_issuetypeid($vbulletin->GPC['issuetypeid'], $project['projectid']); $issuetype_printable = $vbphrase['issuetype_' . $vbulletin->GPC['issuetypeid'] . '_singular']; $issuetype_printable_plural = $vbphrase['issuetype_' . $vbulletin->GPC['issuetypeid'] . '_plural']; $vbphrase['applies_version_issuetype'] = $vbphrase["applies_version_" . $vbulletin->GPC['issuetypeid']]; $vbphrase['post_new_issue_issuetype'] = $vbphrase["post_new_issue_" . $vbulletin->GPC['issuetypeid']]; } else { $issuetype_printable = ''; $vbphrase['applies_version_issuetype'] = ''; $vbphrase['post_new_issue_issuetype'] = ''; } ($hook = vBulletinHook::fetch_hook('project_issuelist_start')) ? eval($hook) : false; // issues per page = 0 means "unlmiited" if (!$vbulletin->options['pt_issuesperpage']) { $vbulletin->options['pt_issuesperpage'] = 999999; } // activity list
} 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(); } // ####################################################################### if ($_POST['do'] == 'save') {
$issuedata->set('isaddressed', 1); $issuedata->set('addressedversionid', $vbulletin->GPC['addressedversionid']); break; } $issuedata->save(); $vbulletin->url = 'project.php?' . $vbulletin->session->vars['sessionurl'] . "issueid={$issue['issueid']}"; eval(print_standard_redirect('pt_issue_state_modified')); } // ####################################################################### if ($_POST['do'] == 'moveissue2') { $vbulletin->input->clean_array_gpc('r', array('issueid' => TYPE_UINT, 'project-issuetype' => TYPE_NOHTML)); list($projectid, $issuetypeid) = explode('-', $vbulletin->GPC['project-issuetype']); $issue = verify_issue($vbulletin->GPC['issueid'], true, array('milestone')); $project = verify_project($issue['projectid']); $new_project = verify_project($projectid); verify_issuetypeid($issuetypeid, $new_project['projectid']); $new_issuetype = $vbphrase["issuetype_{$issuetypeid}_singular"]; $issueperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid'], $issue['issuetypeid']); $new_issueperms = fetch_project_permissions($vbulletin->userinfo, $new_project['projectid'], $issuetypeid); $posting_perms = prepare_issue_posting_pemissions($issue, $issueperms); $new_posting_perms = prepare_issue_posting_pemissions($issue, $new_issueperms); $show['status_edit'] = ($posting_perms['status_edit'] and $new_posting_perms['status_edit']); if (!($issueperms['generalpermissions'] & $vbulletin->pt_bitfields['general']['canmoveissue'])) { print_no_permission(); } // Check we can both view and post the target issue type if (!($new_issueperms['generalpermissions'] & $vbulletin->pt_bitfields['general']['canview']) or !($new_issueperms['postpermissions'] & $vbulletin->pt_bitfields['post']['canpostnew'])) { print_no_permission(); } // categories $category_options = '';