/** * This function remove one folder * * @uses $CFG * @param int $folderid Folder ID * @param object $options Options * @return boolean Success/Fail * @todo Finish documenting this function **/ function email_removefolder($folderid, $options) { global $CFG; // Check if this folder have subfolders if (get_record('email_subfolder', 'folderparentid', $folderid)) { // This folder is parent of other/s folders. Don't remove this // Notify redirect($CFG->wwwroot . '/blocks/email_list/email/view.php?id=' . $options->id . '&action=viewmails', '<div class="notifyproblem">' . get_string('havesubfolders', 'block_email_list') . '</div>'); } // Get folder if ($folders = get_records('email_folder', 'id', $folderid)) { // For all folders . . . foreach ($folders as $folder) { // Before removing references to foldermail, move this mails to root folder parent. if ($foldermails = get_records('email_foldermail', 'folderid', $folder->id)) { // Move mails foreach ($foldermails as $foldermail) { // Get folder if ($folder = email_get_folder($foldermail->folderid)) { // Get root folder parent if ($parent = email_get_parentfolder($foldermail->folderid)) { // Assign mails it email_move2folder($foldermail->mailid, $foldermail->id, $parent->id); } else { print_error('failgetparentfolder', 'block_email_list'); } } else { print_error('failreferencemailfolder', 'block_email_list'); } } } // Delete all subfolders of this if (!delete_records('email_subfolder', 'folderparentid', $folder->id)) { return false; } // Delete all subfolders of this if (!delete_records('email_subfolder', 'folderchildid', $folder->id)) { return false; } // Delete all filters of this if (!delete_records('email_filter', 'folderid', $folder->id)) { return false; } // Delete all foldermail references if (!delete_records('email_foldermail', 'folderid', $folder->id)) { return false; } } // Delete all folders if (!delete_records('email_folder', 'id', $folderid)) { return false; } } add_to_log($folderid, "email", "remove subfolder", "{$folderid}"); notify(get_string('removefolderok', 'block_email_list')); return true; }
if ($success) { notify(get_string('tounreadok', 'block_email_list'), 'notifysuccess'); } else { notify(get_string('failmarkunreaded', 'block_email_list')); } break; case 'move2folder': // In variable folderid $success = true; // Move mails -- This variable is an array of ID's if (is_array($mailid)) { foreach ($mailid as $mail) { // Get foldermail reference $foldermail = email_get_reference2foldermail($mail, $folderoldid); // Move this mail into folder if (!email_move2folder($mail, $foldermail->id, $folderid)) { $success = false; } } // Show if (!$success) { notify(get_string('movefail', 'block_email_list')); } else { notify(get_string('moveok', 'block_email_list')); } } // Show folders $options->folderid = $folderoldid; break; } }
/** * This function remove eMail, if this does in TRASH folder remove of BBDD else move to TRASH folder. * * @access public * @version 1.0 * @param int $userid User Id * @param int $courseid Course Id * @param int $folderid Folder Id * @param boolean $silent Show or not show messages * @return boolean Success/Fail * @todo Finish documenting this function */ function remove($userid, $courseid, $folderid, $silent = false) { // First, show if folder remove or not $deletemails = false; $success = true; if (email_isfolder_type(get_record('block_email_list_folder', 'id', $folderid), EMAIL_TRASH)) { $deletemails = true; } // FIXME: Esborrar els attachments quan no hagi cap referència al mail // If delete definity mails ... if ($deletemails) { // Delete reference mail if (!delete_records('block_email_list_send', 'mailid', $this->id, 'userid', $userid, 'course', $courseid)) { return false; } } else { // Get remove folder user $removefolder = email_get_root_folder($userid, EMAIL_TRASH); // Get actual folder $actualfolder = email_get_reference2foldermail($this->id, $folderid); if ($actualfolder) { // Move mails to trash if (!email_move2folder($this->id, $actualfolder->id, $removefolder->id)) { $success = false; } else { // Mark the message as read set_field('block_email_list_send', 'readed', 1, 'mailid', $this->id, 'userid', $userid, 'course', $courseid); //Thanks Ann } } else { $success = false; } } // Notify if ($success) { add_to_log($this->course, 'email_list', 'remove mail', '', 'Remove ' . $this->subject, 0, $this->userid); if (!$silent) { notify(get_string('removeok', 'block_email_list'), 'notifysuccess'); } return true; } else { if (!$silent) { notify(get_string('removefail', 'block_email_list')); } return false; } }