function definition() { global $CFG, $USER, $COURSE; $mform =& $this->_form; /// Print the required moodle fields first $mform->addElement('header', 'matches', get_string('messagematches', 'block_email_list')); // And or Or. $radiobuttons = array(); $radiobuttons[] =& MoodleQuickForm::createElement('radio', 'connector', get_string('matchanyquery', 'block_email_list'), get_string('matchanyquery', 'block_email_list'), 'OR'); $radiobuttons[] =& MoodleQuickForm::createElement('radio', 'connector', get_string('matchaallquery', 'block_email_list'), get_string('matchallquery', 'block_email_list'), 'AND'); $mform->addGroup($radiobuttons, 'messagematches', '', ' ', false); $mform->setDefault('connector', 'AND'); // Words $mform->addElement('header', 'words', get_string('search', 'search')); $mform->addElement('text', 'to', get_string('to', 'block_email_list'), 'maxlength="254" size="60"'); $mform->setType('to', PARAM_TEXT); $mform->addElement('text', 'from', get_string('from', 'block_email_list'), 'maxlength="254" size="60"'); $mform->setType('from', PARAM_TEXT); $mform->addElement('text', 'subject', get_string('subject', 'block_email_list'), 'maxlength="254" size="60"'); $mform->setType('subject', PARAM_TEXT); $mform->addElement('text', 'body', get_string('body', 'block_email_list'), 'maxlength="254" size="60"'); $mform->setType('body', PARAM_TEXT); // Folders $mform->addElement('header', 'folder', get_string('messagefolders', 'block_email_list')); // Get my root folders $folders = email_get_root_folders($USER->id, false); if (!empty($folders)) { $choose = array(); // Get courses foreach ($folders as $folder) { $choose[] =& MoodleQuickForm::createElement('checkbox', $folder->id, $folder->name, $folder->name); // Now, get all subfolders it $subfolders = email_get_subfolders($folder->id); // If subfolders if ($subfolders) { foreach ($subfolders as $subfolder) { $choose[] =& MoodleQuickForm::createElement('checkbox', $subfolder->id, $subfolder->name, $subfolder->name); } } } $mform->addGroup($choose, 'folders', get_string('folders', 'block_email_list'), ' <br /> '); $mform->setDefault('folders[' . $folders[0]->id . ']', true); $mform->addRule('folders', get_string('nosearchfolders', 'block_email_list'), 'required', null, 'server'); } $mform->addElement('hidden', 'courseid', $COURSE->id); // buttons $this->add_action_buttons(true, get_string('search', 'search')); }
/** * This function return my folders. it's recursive function * */ function email_my_folders($folderid, $courseid, $myfolders, $space) { $space .= '   '; $folders = email_get_subfolders($folderid, $courseid); if ($folders) { foreach ($folders as $folder) { $myfolders[$folder->id] = $space . $folder->name; $myfolders = email_my_folders($folder->id, $courseid, $myfolders, $space); } } return $myfolders; }
$from = ' FROM {user} u, {block_email_list_mail} m, {block_email_list_send} s, {block_email_list_foldermail} fm'; // FOLDERS $wherefolders = ''; $folders = email_get_root_folders($USER->id, false); if (!empty($folders)) { $wherefolders .= ' AND ( '; $i = 0; foreach ($folders as $folder) { $wherefolders .= $i > 0 ? " OR fm.folderid = {$folder->id}" : " fm.folderid = {$folder->id} "; // Select this folder $i++; // Now, get all subfolders it $subfolders = email_get_subfolders($folder->id); // If subfolders if ($subfolders) { foreach ($subfolders as $subfolder) { $wherefolders .= $i > 0 ? " OR fm.folderid = {$subfolder->id}" : " fm.folderid = {$subfolder->id} "; // Select this folder $i++; } } } $wherefolders .= ' ) '; } else { print_error('nosearchfolders', 'block_email_list'); } $groupby = ' GROUP BY m.id, m.userid, m.course, m.subject, m.timecreated, m.body, u.firstname,u.lastname'; // TO