/** * Test new user email notifications. */ public function test_version1importnewenrolmentemailgenerate() { global $CFG; // This is needed by the required files. require_once dirname(__FILE__) . '/other/rlip_importplugin_version1elis_fakeemail.php'; $importplugin = new rlip_importplugin_version1elis_fakeemail(); $course = $this->getDataGenerator()->create_course(); $user = $this->getDataGenerator()->create_user(); $templatetext = '<p>Hi %%user_fullname%%, you have been enroled in %%course_shortname%% Sitename: %%sitename%% User Username: %%user_username%% User Idnumber: %%user_idnumber%% User First Name: %%user_firstname%% User Last Name: %%user_lastname%% User Full Name: %%user_fullname%% User Email Address: %%user_email%% Course Fullname: %%course_fullname%% Course Shortname: %%course_shortname%% Course Idnumber: %%course_idnumber%% Course Summary: %%course_summary%% </p>'; $actualtext = $importplugin->newenrolmentemail_generate($templatetext, $user, $course); $expectedtext = '<p>Hi ' . datahub_fullname($user) . ', you have been enroled in ' . $course->shortname . ' Sitename: PHPUnit test site User Username: '******' User Idnumber: ' . $user->idnumber . ' User First Name: ' . $user->firstname . ' User Last Name: ' . $user->lastname . ' User Full Name: ' . datahub_fullname($user) . ' User Email Address: ' . $user->email . ' Course Fullname: ' . $course->fullname . ' Course Shortname: ' . $course->shortname . ' Course Idnumber: ' . $course->idnumber . ' Course Summary: ' . $course->summary . ' </p>'; $this->assertEquals($expectedtext, $actualtext); }
function display_default() { global $OUTPUT, $USER; $this->get_base_page_params(); $display_name = $this->get_ip_plugin(); // TBD: more user-friendly $ipscheds = rlip_get_scheduled_jobs($this->get_ip_plugin(), is_siteadmin() ? 0 : $USER->id); if (!empty($ipscheds) && $ipscheds->valid()) { echo $OUTPUT->notification(get_string("rlip_jobs_heading_jobs", 'local_datahub', get_string('pluginname', $display_name)), 'rlip_bold_header', 'left'); echo $OUTPUT->notification(get_string('rlip_jobs_heading_fullinstructions', 'local_datahub', $display_name), 'rlip_italic_header', 'left'); $table = new html_table(); $table->head = array(get_string('rlip_jobs_header_label', 'local_datahub'), get_string('rlip_jobs_header_owner', 'local_datahub'), get_string('rlip_jobs_header_lastran', 'local_datahub'), get_string('rlip_jobs_header_nextrun', 'local_datahub'), get_string('rlip_jobs_header_modified', 'local_datahub'), ''); $table->align = array('left', 'center', 'left', 'left', 'left', 'center'); $table->size = array('5%', '15%', '25%', '25%', '25%', '5%'); $table->data = array(); $table->rowclasses = array(); //TBD $edit = get_string('edit'); $delete = get_string('delete'); foreach ($ipscheds as $ipjob) { $ustr = "{$ipjob->username}<br/>(" . datahub_fullname($ipjob) . ')'; $tz = $ipjob->timezone; $data = unserialize($ipjob->config); $lastruntime = !empty($ipjob->lastruntime) ? userdate($ipjob->lastruntime, '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('no_lastruntime', 'local_datahub'); $nextruntime = !empty($ipjob->nextruntime) ? userdate($ipjob->nextruntime, '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('na', 'local_datahub'); $modified = !empty($data['timemodified']) ? userdate($data['timemodified'], '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('na', 'local_datahub'); $target = $this->get_new_page(array('id' => $ipjob->id, 'plugin' => $ipjob->plugin)); $label = '<a name="edit" href="' . $target->url->out(true, array('action' => 'form')) . '">' . $data['label'] . '</a>'; $edit_link = '<a name="edit" href="' . $target->url->out(true, array('action' => 'form')) . '"><img alt="' . $edit . '" title="' . $edit . '" src="' . $OUTPUT->pix_url('t/edit') . '" /></a>'; $delete_link = '<a name="delete" href="' . $target->url->out(true, array('action' => 'delete')) . '"><img alt="' . $delete . '" title="' . $delete . '" src="' . $OUTPUT->pix_url('t/delete') . '" /></a>'; $table->rowclasses[] = ''; //TBD $table->data[] = array($label, $ustr, $lastruntime, $nextruntime, $modified, "{$edit_link} {$delete_link}"); } echo html_writer::table($table); echo $OUTPUT->notification(get_string('schedulingtime', 'local_datahub', $display_name), 'rlip_italic_header', 'left'); } else { echo $OUTPUT->notification(get_string('rlip_jobs_heading_nojobs', 'local_datahub', get_string('pluginname', $display_name)), 'rlip_bold_header', 'left'); echo $OUTPUT->notification(get_string('rlip_jobs_heading_instructions', 'local_datahub', $display_name), 'rlip_italic_header', 'left'); } echo $OUTPUT->spacer(); $submit = $this->get_new_page(array('action' => 'form', 'plugin' => $this->get_ip_plugin())); $this->add_submit_cancel_buttons($submit->url, get_string('rlip_new_job', 'local_datahub')); }
/** * Obtains a table object representing the current page of logs * * @param object $logs The recordset representing our log data * @return object The html table object representing our data set */ function rlip_get_log_table($logs) { global $DB; //used for the display of all time values in this table $timeformat = get_string('displaytimeformat', 'local_datahub'); $table = new html_table(); //alignment $table->align = array('left', 'left', 'left', 'left', 'left', 'left', 'left', 'right', 'right', 'left'); //column headers $table->head = array(get_string('logtasktype', 'local_datahub'), get_string('logplugin', 'local_datahub'), get_string('logexecution', 'local_datahub'), get_string('loguser', 'local_datahub'), get_string('logscheduledstart', 'local_datahub'), get_string('logstart', 'local_datahub'), get_string('logend', 'local_datahub'), get_string('logfilesuccesses', 'local_datahub'), get_string('logfilefailures', 'local_datahub'), get_string('logstatus', 'local_datahub'), get_string('logentitytype', 'local_datahub'), get_string('logdownload', 'local_datahub')); $table->data = array(); $logstr = get_string('log', 'local_datahub'); //fill in table data foreach ($logs as $log) { // TODO: cache user records here so we aren't constantly fetching records from the DB? $user = $DB->get_record('user', array('id' => $log->userid)); if ($log->export == 1) { //export case $plugintype = get_string('export', 'local_datahub'); //can't have failures in export files $filefailures = get_string('na', 'local_datahub'); $entitytype = get_string('na', 'local_datahub'); } else { $plugintype = get_string('import', 'local_datahub'); //use tracked number of failures for display $filefailures = $log->filefailures; $entitytype = $log->entitytype; } if ($log->targetstarttime == 0) { //process was run manually $executiontype = get_string('manual', 'local_datahub'); $targetstarttime = get_string('na', 'local_datahub'); } else { //process was run automatically (cron) $executiontype = get_string('automatic', 'local_datahub'); $targetstarttime = userdate($log->targetstarttime, $timeformat, 99, false); } // ELIS-5199 Only display a link to the file if a viable file exists if (rlip_log_file_exists($log)) { $link = "<a href=\"download.php?id={$log->id}\">{$logstr}</a>"; } else { $link = ''; } // Construct data row $table->data[] = array($plugintype, get_string('pluginname', $log->plugin), $executiontype, datahub_fullname($user), $targetstarttime, userdate($log->starttime, $timeformat, 99, false), userdate($log->endtime, $timeformat, 99, false), $log->filesuccesses, $filefailures, $log->statusmessage, $entitytype, $link); } return $table; }
/** * Generate a new enrolment email based on an email template, a user, and a course. * * @param string $templatetext The template for the message. * @param object $user The user object to use for placeholder substitutions. * @param object $course The course object to use for placeholder substitutions. * @return string The generated email. */ public function newenrolmentemail_generate($templatetext, $user, $course) { global $SITE; $placeholders = array('%%sitename%%' => $SITE->fullname, '%%user_username%%' => isset($user->username) ? $user->username : '', '%%user_idnumber%%' => isset($user->idnumber) ? $user->idnumber : '', '%%user_firstname%%' => isset($user->firstname) ? $user->firstname : '', '%%user_lastname%%' => isset($user->lastname) ? $user->lastname : '', '%%user_fullname%%' => datahub_fullname($user), '%%user_email%%' => isset($user->email) ? $user->email : '', '%%course_fullname%%' => isset($course->fullname) ? $course->fullname : '', '%%course_shortname%%' => isset($course->shortname) ? $course->shortname : '', '%%course_idnumber%%' => isset($course->idnumber) ? $course->idnumber : '', '%%course_summary%%' => isset($course->summary) ? $course->summary : ''); return str_replace(array_keys($placeholders), array_values($placeholders), $templatetext); }