Пример #1
0
    $db->query_write("\r\n\t\tDELETE FROM " . TABLE_PREFIX . "pt_projectversion\r\n\t\tWHERE projectversiongroupid = {$projectversiongroup['projectversiongroupid']}\r\n\t");
    if ($group_versions) {
        // updated applies version
        $db->query_write("\r\n\t\t\tUPDATE " . TABLE_PREFIX . "pt_issue SET\r\n\t\t\t\tappliesversionid = " . $vbulletin->GPC['appliesversionid'] . "\r\n\t\t\tWHERE appliesversionid IN (" . implode(',', $group_versions) . ")\r\n\t\t");
        // update addressed version
        if ($vbulletin->GPC['addressedversionid'] == -1) {
            $db->query_write("\r\n\t\t\t\tUPDATE " . TABLE_PREFIX . "pt_issue SET\r\n\t\t\t\t\taddressedversionid = 0,\r\n\t\t\t\t\tisaddressed = 1\r\n\t\t\t\tWHERE addressedversionid IN (" . implode(',', $group_versions) . ")\r\n\t\t\t");
        } else {
            if ($vbulletin->GPC['addressedversionid'] == 0) {
                $db->query_write("\r\n\t\t\t\tUPDATE " . TABLE_PREFIX . "pt_issue SET\r\n\t\t\t\t\taddressedversionid = 0,\r\n\t\t\t\t\tisaddressed = 0\r\n\t\t\t\tWHERE addressedversionid IN (" . implode(',', $group_versions) . ")\r\n\t\t\t");
            } else {
                $db->query_write("\r\n\t\t\t\tUPDATE " . TABLE_PREFIX . "pt_issue SET\r\n\t\t\t\t\taddressedversionid = " . $vbulletin->GPC['addressedversionid'] . ",\r\n\t\t\t\t\tisaddressed = 1\r\n\t\t\t\tWHERE addressedversionid IN (" . implode(',', $group_versions) . ")\r\n\t\t\t");
            }
        }
    }
    build_version_cache();
    define('CP_REDIRECT', 'project.php?do=projectversion&projectid=' . $project['projectid']);
    print_stop_message('project_version_deleted');
}
// ########################################################################
if ($_REQUEST['do'] == 'projectversiongroupdelete') {
    $vbulletin->input->clean_array_gpc('r', array('projectversiongroupid' => TYPE_UINT));
    $projectversiongroup = $db->query_first("\r\n\t\tSELECT *\r\n\t\tFROM " . TABLE_PREFIX . "pt_projectversiongroup\r\n\t\tWHERE projectversiongroupid = " . $vbulletin->GPC['projectversiongroupid']);
    $project = fetch_project_info($projectversiongroup['projectid'], false);
    if (!$project) {
        print_stop_message('invalid_action_specified');
    }
    $version_groups = array();
    $version_query = $db->query_read("\r\n\t\tSELECT projectversion.projectversionid, projectversion.versionname, projectversiongroup.groupname\r\n\t\tFROM " . TABLE_PREFIX . "pt_projectversion AS projectversion\r\n\t\tINNER JOIN " . TABLE_PREFIX . "pt_projectversiongroup AS projectversiongroup ON\r\n\t\t\t(projectversion.projectversiongroupid = projectversiongroup.projectversiongroupid)\r\n\t\tWHERE projectversion.projectid = {$project['projectid']}\r\n\t\t\tAND projectversiongroup.projectversiongroupid <> " . $vbulletin->GPC['projectversiongroupid'] . "\r\n\t\tORDER BY projectversion.effectiveorder DESC\r\n\t");
    while ($version = $db->fetch_array($version_query)) {
        $version_groups["{$version['groupname']}"]["{$version['projectversionid']}"] = $version['versionname'];
Пример #2
0
 /**
  * Additional data to update after a delete call (such as denormalized values in other tables).
  *
  * @param	boolean	Do the query?
  */
 function post_delete($doquery = true)
 {
     $projectid = intval($this->fetch_field('projectid'));
     $db =& $this->registry->db;
     // project related data
     $db->query_write("\r\n\t\t\tDELETE FROM " . TABLE_PREFIX . "pt_projecttype\r\n\t\t\tWHERE projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE FROM " . TABLE_PREFIX . "pt_projecttypeprivatelastpost\r\n\t\t\tWHERE projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE FROM " . TABLE_PREFIX . "pt_projectpermission\r\n\t\t\tWHERE projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE FROM " . TABLE_PREFIX . "pt_projectversion\r\n\t\t\tWHERE projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE FROM " . TABLE_PREFIX . "pt_projectversiongroup\r\n\t\t\tWHERE projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE FROM " . TABLE_PREFIX . "pt_projectcategory\r\n\t\t\tWHERE projectid = {$projectid}\r\n\t\t");
     // MySQL 4 needs to use the non-aliased tables in multi-table deletes (#23024)
     $mysqlversion = $db->query_first("SELECT version() AS version");
     $include_prefix = version_compare($mysqlversion['version'], '4.1.0', '<');
     // clear out all the issue data
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issueassign\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issueassign AS issueassign\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issueassign.issueid)\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issueattach\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issueattach AS issueattach\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issueattach.issueid)\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issuechange\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issuechange AS issuechange\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issuechange.issueid)\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issuesubscribe\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issuesubscribe AS issuesubscribe\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issuesubscribe.issueid)\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issuetag\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issuetag AS issuetag\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issuetag.issueid)\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issuevote\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issuevote AS issuevote\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issuevote.issueid)\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issuedeletionlog\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issuedeletionlog AS issuedeletionlog\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issuedeletionlog.primaryid AND issuedeletionlog.type = 'issue')\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issuenote\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issuenote AS issuenote\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issuenote.issueid)\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE " . ($include_prefix ? TABLE_PREFIX . 'pt_' : '') . "issueprivatelastpost\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_issueprivatelastpost AS issueprivatelastpost\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "pt_issue AS issue ON (issue.issueid = issueprivatelastpost.issueid)\r\n\t\t\tWHERE issue.projectid = {$projectid}\r\n\t\t");
     $db->query_write("\r\n\t\t\tDELETE FROM " . TABLE_PREFIX . "pt_issue\r\n\t\t\tWHERE projectid = {$projectid}\r\n\t\t");
     require_once DIR . '/includes/adminfunctions_projecttools.php';
     build_project_cache();
     build_version_cache();
     build_assignable_users();
     // builds bitfields and perms as well
     build_pt_user_list('pt_report_users', 'pt_report_user_cache');
     $this->update_project_forum_setting(false);
     ($hook = vBulletinHook::fetch_hook('pt_projectdata_delete')) ? eval($hook) : false;
     return true;
 }