$partObj->copyObj($parentObj, $removeOrigional, $keepaddedby, $keepDiscussion); // If we have moved to a new site, update the site links from the hash. $newSiteObj = new site($parentObj->owningSiteObj->name); $newSiteObj->fetchSiteAtOnceForeverAndEverAndDontForgetThePermissionsAsWell_Amen(); if ($_SESSION['type'] == "section") { $newPartObj =& $newSiteObj->sections[$partObj->id]; } else { if ($_SESSION['type'] == "page") { $newPartObj =& $newSiteObj->sections[$_REQUEST['section']]->pages[$partObj->id]; } else { if ($_SESSION['type'] == "story") { $newPartObj =& $newSiteObj->sections[$_REQUEST['section']]->pages[$_REQUEST['page']]->stories[$partObj->id]; } } } updateSiteLinksFromHash($newSiteObj, $newPartObj); $newSiteObj->updateDB(1, 1); // delete the origional if ($_REQUEST['action'] == "MOVE") { $origPartObj->delete(1); delete_record_tags($_SESSION['origSiteObj']->name, $_SESSION['origStory'], "story"); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Copy/Move</title>
function copySite($newName, $clearPermissions = 1, $copyDiscussions = FALSE) { if ($newName == $this->name) { return FALSE; } if ($newName == "" || !$newName) { return FALSE; } $oldName = $this->name; $this->fetchSiteAtOnceForeverAndEverAndDontForgetThePermissionsAsWell_Amen(); // Make a hash array of site, section, and page ids so that makeSiteHash($this); $newSiteObj = $this; $newSiteObj->setSiteName($newName, 1); // Since we are specifying TRUE for the 'copy' option, each // part should add its new id to the global hash $newSiteObj->insertDB(1, 1, 0, $copyDiscussions); // Copy all the media $query = "\n\t\t\tSELECT\n\t\t\t\tmedia_id\n\t\t\tFROM\n\t\t\t\tmedia\n\t\t\t\t\tINNER JOIN\n\t\t\t\tslot\n\t\t\t\t\tON\n\t\t\t\t\t\tmedia.FK_site = slot.FK_site\n\t\t\tWHERE\n\t\t\t\tslot_name='" . addslashes($oldName) . "'\n\t\t\t\tAND \n\t\t\t\tmedia_type != 'other'\n\t\t"; $r = db_query($query); while ($a = db_fetch_assoc($r)) { copy_media($a['media_id'], $newName); } $newSiteObj = NULL; unset($newSiteObj); $newSiteObj = new site($newName); $newSiteObj->fetchSiteAtOnceForeverAndEverAndDontForgetThePermissionsAsWell_Amen(); // Remove the permissions if we are clearing them. if ($clearPermissions) { $editors = $newSiteObj->getEditors(); foreach ($editors as $editor) { $newSiteObj->delEditor($editor); } } // Parse through all the text for links refering to parts of the // old site and update them with the new ids. updateSiteLinksFromHash($newSiteObj, $newSiteObj); $newSiteObj->updateDB(1, 1); // Delete any editors that we wanted to delete. $newSiteObj->deletePendingEditors(); }