Skip to content
Snippets Groups Projects
Unverified Commit 55288884 authored by Tobias Reischmann's avatar Tobias Reischmann
Browse files

Email subplugin now offers html mail template as well

parent 219d0d59
No related branches found
No related tags found
No related merge requests found
......@@ -145,7 +145,7 @@ class form_step_instance extends \moodleform {
}
// Insert the subplugin specific settings.
$this->lib->extend_add_instance_form_definition_after_data($mform);
$this->lib->extend_add_instance_form_definition_after_data($mform, $this->stepsettings);
}
}
......@@ -45,6 +45,10 @@ class settings_manager {
foreach ($settingsfields as $setting) {
if (object_property_exists($data, $setting->name)) {
$value = $data->{$setting->name};
// Needed for editor support.
if (is_array($value) && array_key_exists('text', $value)) {
$value = $value['text'];
}
$cleanedvalue = clean_param($value, $setting->paramtype);
$record = $DB->get_record('tool_cleanupcourses_settings',
array(
......
......@@ -27,4 +27,5 @@ $string['pluginname'] = 'Email Step';
$string['email_subject'] = 'Subject Template';
$string['email_content'] = 'Content Template';
$string['email_content_html'] = 'Content HTML Template';
$string['email:preventdeletion'] = 'Prevent Deletion';
......@@ -65,6 +65,8 @@ class email extends base {
$stepinstances = step_manager::get_step_instances_by_subpluginname($this->get_subpluginname());
foreach ($stepinstances as $step) {
$settings = settings_manager::get_settings($step->id);
// Format the raw string in the DB to FORMAT_HTML.
$settings['contenthtml'] = format_text($settings['contenthtml'], FORMAT_HTML);
$userstobeinformed = $DB->get_records('cleanupcoursesstep_email',
array('instanceid' => $step->id), '', 'distinct touser');
......@@ -79,8 +81,9 @@ class email extends base {
$subject = $parsedsettings['subject'];
$content = $parsedsettings['content'];
$contenthtml = $parsedsettings['contenthtml'];
// TODO: use course info to parse content template!
email_to_user($user, \core_user::get_noreply_user(), $subject, $content);
email_to_user($user, \core_user::get_noreply_user(), $subject, $content, $contenthtml);
$DB->delete_records('cleanupcoursesstep_email',
array('instanceid' => $step->id,
'touser' => $user->id));
......@@ -113,7 +116,8 @@ class email extends base {
public function instance_settings() {
return array(
new instance_setting('subject', PARAM_TEXT),
new instance_setting('content', PARAM_TEXT),
new instance_setting('content', PARAM_RAW),
new instance_setting('contenthtml', PARAM_RAW),
);
}
......@@ -129,5 +133,13 @@ class email extends base {
$elementname = 'content';
$mform->addElement('textarea', $elementname, get_string('email_content', 'cleanupcoursesstep_email'));
$mform->setType($elementname, PARAM_TEXT);
$elementname = 'contenthtml';
$mform->addElement('editor', $elementname, get_string('email_content_html', 'cleanupcoursesstep_email'));
$mform->setType($elementname, PARAM_RAW);
}
public function extend_add_instance_form_definition_after_data($mform, $settings) {
$mform->setDefault('contenthtml', array('text' => $settings['contenthtml'], 'format' => FORMAT_HTML));
}
}
......@@ -84,8 +84,9 @@ abstract class base {
* This method can be overriden, to set default values to the form_step_instance.
* It is called in definition_after_data().
* @param \MoodleQuickForm $mform
* @param array $settings array containing the settings from the db.
*/
public function extend_add_instance_form_definition_after_data($mform) {
public function extend_add_instance_form_definition_after_data($mform, $settings) {
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment