/** * Runs and exports, through email, the report instance specified by the * provided report schedule * * @param stdClass $report_schedule The PHP report schedule containing the information * about the specific report to be exported * * @return boolean true on success, otherwise false */ function php_report_schedule_export_instance($report_schedule, $now = 0) { global $CFG, $USER; if ($now == 0) { $now = time(); } $data = unserialize($report_schedule->config); // Create report to be emailed to recipient $shortname = $report_schedule->report; $format = $data['format']; // Initialize a temp path name $tmppath = '/temp'; // Create a unique temporary filename to use for this schedule $filename = tempnam($CFG->dataroot.$tmppath, 'php_report_'); $parameterdata = $data['parameters']; // Generate the report file $result = php_report::export_default_instance($shortname, $format, $filename, $parameterdata, $report_schedule->userid, php_report::EXECUTION_MODE_SCHEDULED); if (!$result) { //handle failure case unlink($filename); return false; } // Attach filename to an email - so get recipient... $recipients_array = explode(',',$data['recipients']); $from = get_string('noreplyname'); $subject = get_string('email_subject','local_elisreports').$data['label']; $messagetext = html_to_text($data['message']); $messagehtml = $data['message']; $start = strlen($CFG->dataroot); $attachment = substr($filename,$start); $attachname = $report_schedule->report.$now.'.'.$data['format']; // $user->id & all other fields now required by Moodle 2.6+ email_to_user() API which also calls fullname($user) $user = new stdClass; $allfields = get_all_user_name_fields(); foreach ($allfields as $field) { $user->$field = null; } $user->id = $USER->id; // let's just use this user as default (TBD) $user->mailformat = 1; // Attach the file to the recipients foreach ($recipients_array as $recipient) { $user->email = trim($recipient); email_to_user($user, $from, $subject, $messagetext, $messagehtml, $attachment, $attachname); } // Remove the file that was created for this report unlink($filename); return true; }
/** * Runs and exports, through email, the report instance specified by the * provided report schedule * * @param stdClass $report_schedule The PHP report schedule containing the information * about the specific report to be exported * * @return boolean true on success, otherwise false */ function php_report_schedule_export_instance($report_schedule, $now = 0) { global $CFG; if ($now == 0) { $now = gmmktime(); // time(); } $data = unserialize($report_schedule->config); // Create report to be emailed to recipient $shortname = $report_schedule->report; $format = $data['format']; // Initialize a temp path name $tmppath = '/temp'; // Create a unique temporary filename to use for this schedule $filename = tempnam($CFG->dataroot . $tmppath, 'php_report_'); $parameterdata = $data['parameters']; // Generate the report file $result = php_report::export_default_instance($shortname, $format, $filename, $parameterdata, $report_schedule->userid, php_report::EXECUTION_MODE_SCHEDULED); if (!$result) { //handle failure case unlink($filename); return false; } // Attach filename to an email - so get recipient... $recipients_array = explode(',', $data['recipients']); $from = get_string('noreplyname'); $subject = get_string('email_subject', 'block_php_report') . $data['label']; $messagetext = html_to_text($data['message']); $messagehtml = $data['message']; $start = strlen($CFG->dataroot); $attachment = substr($filename, $start); $attachname = $report_schedule->report . $now . '.' . $data['format']; // Attach the file to the recipients foreach ($recipients_array as $recipient) { $user = new stdClass(); $user->email = $recipient; $user->mailformat = 1; email_to_user($user, $from, $subject, $messagetext, $messagehtml, $attachment, $attachname); } // Remove the file that was created for this report unlink($filename); return true; }