From b6416b6ae3723644322855fefa5c5d3dd39e1d8b Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Sat, 3 Mar 2012 20:40:30 +0100 Subject: Initial commit. --- .gitignore | 1 + CONTRIBUTORS | 6 ++++ COPYING | 18 +++++++++++ README.md | 4 +++ build.sh | 3 ++ plugin.php | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tpls/config.html | 42 +++++++++++++++++++++++++ 7 files changed, 170 insertions(+) create mode 100644 .gitignore create mode 100644 CONTRIBUTORS create mode 100644 COPYING create mode 100644 README.md create mode 100755 build.sh create mode 100644 plugin.php create mode 100644 tpls/config.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3dd92af --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +new_comment_notifier.rpk \ No newline at end of file diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000..495e1bd --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,6 @@ +People who have worked on new_comment_modifier +============================================== + +If you modified something, feel free to append your name to this list. + +* Kevin Chabowski diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..68adf1f --- /dev/null +++ b/COPYING @@ -0,0 +1,18 @@ +new_comment_notifier: Copyright (c) 2012 The Ratatöskr Team + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..7ae2a3d --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +new_comment_notifier +==================== + +This Ratatöskr plugin sends you a mail, if someone posted a new comment. \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..cb41842 --- /dev/null +++ b/build.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +r7r-plugin-packer --output=new_comment_notifier.rpk --codefile=plugin.php --classname=new_comment_notifier --pluginname=new_comment_notifier --author='The Ratatöskr Team' --versiontext="0.2" --versioncount=3 --api=5 --shortdesc="new_comment_notifier sends you a mail, if someone has written a comment." --licensefile=COPYING --tpldir=tpls diff --git a/plugin.php b/plugin.php new file mode 100644 index 0000000..8a58b55 --- /dev/null +++ b/plugin.php @@ -0,0 +1,96 @@ +get_article(); + + $msg = "Hello, +Someone posted a comment to this article: + Title: " . @$article->title[$comment->get_language()]->text . " + URL: " . $baseurl . "/" . $comment->get_language() . "/" . $article->get_section()->name . "/" . $article->urlname . " +The comment: + Author Name: " . $comment->author_name . " + Author Mail: " . $comment->author_mail . " + Comment Text: +" . implode("\n", array_map(function($l){return " " . $l;}, explode("\n", $comment->text))) . " +If you are logged in to the Ratatöskr backend, you can view the comment here: + " . $baseurl . "/backend/content/comments/" . $comment->get_id(); + + $moreheaders = "From: " . $this->config["from"] . "\r\nX-Mailer: new_comment_notifier plugin for Ratatoeskr\r\nContent-Transfer-Encoding: 8bit\r\nContent-Type: text/plain; charset=\"UTF-8\""; + + foreach($this->config["to"] as $to) + mail($to, "Comment received", $msg, $moreheaders); + } + + public function backend_page(&$data, $url_now, &$url_next) + { + $this->prepare_backend_pluginpage(); + + if(isset($_POST["send_general_settings"])) + { + if(empty($_POST["mail_from"])) + $this->ste->vars["error"] = "Mail From must not be empty."; + else + { + $this->config["from"] = $_POST["mail_from"]; + $this->config_modified = True; + $this->ste->vars["success"] = "Settings saved."; + } + } + + if(isset($_POST["add_new_recv"]) and (!empty($_POST["new_recv"]))) + { + $this->config["to"][] = $_POST["new_recv"]; + $this->config_modified = True; + $this->ste->vars["success"] = "Address added."; + } + + if(isset($_POST["delete_recvs"]) and ($_POST["really_delete"] == "yes")) + { + $this->config["to"] = array_diff($this->config["to"], $_POST["recvs_multiselect"]); + $this->config_modified = True; + $this->ste->vars["success"] = "Receivers deleted."; + } + + $this->ste->vars["mail_to"] = $this->config["to"]; + $this->ste->vars["mail_from"] = $this->config["from"]; + + echo $this->ste->exectemplate($this->get_template_dir() . "/config.html"); + } + + public function install() + { + $this->kvstorage["config"] = array("from" => "nobody@example.com", "to" => array()); + } + + public function init() + { + $this->config = $this->kvstorage["config"]; + $this->register_on_comment_store(array($this, "on_comment_store")); + $this->register_backend_pluginpage("New comment notifier", array($this, "backend_page")); + } + + public function atexit() + { + if($this->config_modified) + $this->kvstorage["config"] = $this->config; + } +} + +?> diff --git a/tpls/config.html b/tpls/config.html new file mode 100644 index 0000000..bfdac79 --- /dev/null +++ b/tpls/config.html @@ -0,0 +1,42 @@ + + + + + +

General settings

+
+

Mail From address:

+

+
+ +

Receivers

+
+

New receiver:

+
+ +
+ + + + + + + + + + + + + + + +
 Mailaddress
$recv
+
+ + +
+
+
-- cgit v1.2.3-54-g00ecf