Skip to content

Commit

Permalink
MDL-49682 mod_forum: Build forum email templates
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewnicols committed Oct 12, 2015
1 parent 74fad2c commit 3179383
Show file tree
Hide file tree
Showing 18 changed files with 1,520 additions and 317 deletions.
71 changes: 71 additions & 0 deletions mod/forum/classes/output/email/renderer.php
@@ -0,0 +1,71 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Forum post renderable.
*
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace mod_forum\output\email;

defined('MOODLE_INTERNAL') || die();

/**
* Forum post renderable.
*
* @since Moodle 3.0
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renderer extends \mod_forum_renderer {

/**
* The template name for this renderer.
*
* @return string
*/
public function forum_post_template() {
return 'forum_post_email_htmlemail';
}

/**
* The HTML version of the e-mail message.
*
* @param \stdClass $forum
* @param \stdClass $post
* @return string
*/
public function format_message_text($forum, $post) {
$options = new \stdClass();
$options->para = true;
return format_text($post->message, $post->messageformat, $options);
}

/**
* The HTML version of the attachments list.
*
* @param \stdClass $cm
* @param \stdClass $post
* @return string
*/
public function format_message_attachments($cm, $post) {
return forum_print_attachments($post, $cm, "html");
}
}
72 changes: 72 additions & 0 deletions mod/forum/classes/output/email/renderer_textemail.php
@@ -0,0 +1,72 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Forum post renderable.
*
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace mod_forum\output\email;

defined('MOODLE_INTERNAL') || die();

/**
* Forum post renderable.
*
* @since Moodle 3.0
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renderer_textemail extends renderer {

/**
* The template name for this renderer.
*
* @return string
*/
public function forum_post_template() {
return 'forum_post_email_textemail';
}

/**
* The plaintext version of the e-mail message.
*
* @param \stdClass $forum
* @param \stdClass $post
* @return string
*/
public function format_message_text($forum, $post) {
$message = file_rewrite_pluginfile_urls($post->message, 'pluginfile.php',
\context_module::instance($forum->id)->id,
'mod_forum', 'post', $post->id);
return format_text_email($message, $post->messageformat);
}

/**
* The plaintext version of the attachments list.
*
* @param \stdClass $cm
* @param \stdClass $post
* @return string
*/
public function format_message_attachments($cm, $post) {
return forum_print_attachments($post, $cm, "text");
}
}
47 changes: 47 additions & 0 deletions mod/forum/classes/output/emaildigestbasic/renderer.php
@@ -0,0 +1,47 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Forum post renderable.
*
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace mod_forum\output\emaildigestbasic;

defined('MOODLE_INTERNAL') || die();

/**
* Forum post renderable.
*
* @since Moodle 3.0
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renderer extends \mod_forum\output\email\renderer {

/**
* The template name for this renderer.
*
* @return string
*/
public function forum_post_template() {
return 'forum_post_emaildigestbasic_htmlemail';
}
}
61 changes: 61 additions & 0 deletions mod/forum/classes/output/emaildigestbasic/renderer_textemail.php
@@ -0,0 +1,61 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Forum post renderable.
*
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace mod_forum\output\emaildigestbasic;

defined('MOODLE_INTERNAL') || die();

/**
* Forum post renderable.
*
* @since Moodle 3.0
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renderer_textemail extends \mod_forum\output\email\renderer_textemail {

/**
* The template name for this renderer.
*
* @return string
*/
public function forum_post_template() {
return 'forum_post_emaildigestbasic_textemail';
}

/**
* The plaintext version of the e-mail message.
*
* @param \stdClass $forum
* @param \stdClass $post
* @return string
*/
public function format_message_text($forum, $post) {
$message = file_rewrite_pluginfile_urls($post->message, 'pluginfile.php',
\context_module::instance($forum->id)->id,
'mod_forum', 'post', $post->id);
return format_text_email($message, $post->messageformat);
}
}
47 changes: 47 additions & 0 deletions mod/forum/classes/output/emaildigestfull/renderer.php
@@ -0,0 +1,47 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Forum post renderable.
*
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace mod_forum\output\emaildigestfull;

defined('MOODLE_INTERNAL') || die();

/**
* Forum post renderable.
*
* @since Moodle 3.0
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renderer extends \mod_forum\output\email\renderer {

/**
* The template name for this renderer.
*
* @return string
*/
public function forum_post_template() {
return 'forum_post_emaildigestfull_htmlemail';
}
}
61 changes: 61 additions & 0 deletions mod/forum/classes/output/emaildigestfull/renderer_textemail.php
@@ -0,0 +1,61 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Forum post renderable.
*
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace mod_forum\output\emaildigestfull;

defined('MOODLE_INTERNAL') || die();

/**
* Forum post renderable.
*
* @since Moodle 3.0
* @package mod_forum
* @copyright 2015 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renderer_textemail extends \mod_forum\output\email\renderer_textemail {

/**
* The template name for this renderer.
*
* @return string
*/
public function forum_post_template() {
return 'forum_post_emaildigestfull_textemail';
}

/**
* The plaintext version of the e-mail message.
*
* @param \stdClass $forum
* @param \stdClass $post
* @return string
*/
public function format_message_text($forum, $post) {
$message = file_rewrite_pluginfile_urls($post->message, 'pluginfile.php',
\context_module::instance($forum->id)->id,
'mod_forum', 'post', $post->id);
return format_text_email($message, $post->messageformat);
}
}

0 comments on commit 3179383

Please sign in to comment.