summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-01-07 09:08:53 +0000
committerBharat Mediratta <bharat@menalto.com>2009-01-07 09:08:53 +0000
commit01dcbbcda5a4630cec6a1bbee052ef108e291a5d (patch)
tree0bd7430bc3e41f529e5f5ce1318160971da9d9a3 /modules
parent925720ac3d6f0b7fafcd1833991bb16b8fea538b (diff)
Add very basic comment listing which shows the different queues
(approved, unapproved, spam).
Diffstat (limited to 'modules')
-rw-r--r--modules/comment/controllers/admin_comments.php62
-rw-r--r--modules/comment/helpers/comment_menu.php2
-rw-r--r--modules/comment/models/comment.php4
-rw-r--r--modules/comment/views/admin_comments.html.php85
4 files changed, 152 insertions, 1 deletions
diff --git a/modules/comment/controllers/admin_comments.php b/modules/comment/controllers/admin_comments.php
new file mode 100644
index 00000000..f518238f
--- /dev/null
+++ b/modules/comment/controllers/admin_comments.php
@@ -0,0 +1,62 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2008 Bharat Mediratta
+ *
+ * This program 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 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+class Admin_Comments_Controller extends Admin_Controller {
+
+ private function _get_base_view($state) {
+ $view = new Admin_View("admin.html");
+ $view->content = new View("admin_comments.html");
+ $view->content->menu = Menu::factory("root")
+ ->append(Menu::factory("link")
+ ->id("published")
+ ->label(_("Published"))
+ ->url(url::site("admin/comments/published")))
+ ->append(Menu::factory("link")
+ ->id("unpublished")
+ ->label(_("Unpublished"))
+ ->url(url::site("admin/comments/unpublished")))
+ ->append(Menu::factory("link")
+ ->id("spam")
+ ->label(_("Spam"))
+ ->url(url::site("admin/comments/spam")));
+ $view->content->comments = ORM::factory("comment")
+ ->where("state", $state)
+ ->orderby("created", "DESC")
+ ->find_all();
+
+ return $view;
+ }
+
+ public function index() {
+ return $this->published();
+ }
+
+ public function published() {
+ print $this->_get_base_view("published");
+ }
+
+ public function unpublished() {
+ print $this->_get_base_view("unpublished");
+ }
+
+ public function spam() {
+ print $this->_get_base_view("spam");
+ }
+}
+
diff --git a/modules/comment/helpers/comment_menu.php b/modules/comment/helpers/comment_menu.php
index 6b17f57f..9c7a5698 100644
--- a/modules/comment/helpers/comment_menu.php
+++ b/modules/comment/helpers/comment_menu.php
@@ -23,7 +23,7 @@ class comment_menu_Core {
->append(Menu::factory("link")
->id("comments")
->label(_("Comments"))
- ->url("#"));
+ ->url(url::site("admin/comments")));
}
public static function photo($menu, $theme) {
diff --git a/modules/comment/models/comment.php b/modules/comment/models/comment.php
index 323356b4..cd7a5d07 100644
--- a/modules/comment/models/comment.php
+++ b/modules/comment/models/comment.php
@@ -23,4 +23,8 @@ class Comment_Model extends ORM {
"email" => "valid_email",
"url" => "valid_url",
"text" => "required");
+
+ function item() {
+ return ORM::factory("item", $this->item_id);
+ }
}
diff --git a/modules/comment/views/admin_comments.html.php b/modules/comment/views/admin_comments.html.php
new file mode 100644
index 00000000..b8527a46
--- /dev/null
+++ b/modules/comment/views/admin_comments.html.php
@@ -0,0 +1,85 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<div id="gAdminComments">
+ <h1> <?= _("Comments") ?> </h1>
+
+ <div id="gAdminCommentsMenu">
+ <?= $menu ?>
+ </div>
+
+ <div id="gAdminCommentsList">
+ <table>
+ <tr>
+ <th>
+ <?= _("Comment") ?>
+ </th>
+ <th>
+ <?= _("Date") ?>
+ </th>
+ <th>
+ <?= _("Actions") ?>
+ </th>
+ </tr>
+ <? foreach ($comments as $comment): ?>
+ <tr>
+ <td>
+ <div>
+ <b> <?= $comment->author ?> </b>
+ </div>
+ <div>
+ <b> <?= $comment->url ?> </b> | <b> <?= $comment->email ?> </b>
+ </div>
+ <div>
+ <?= $comment->text ?>
+ </div>
+ <div>
+ <? $item = $comment->item(); ?>
+ <img src="<?= $item->thumb_url() ?>"
+ alt="<?= $item->title ?>"
+ <?= photo::img_dimensions($item->thumb_width, $item->thumb_height, 75) ?>
+ />
+ <?= sprintf(_("Comment left on <a href=\"%s\">%s</a>"), $item->url(), $item->title) ?>
+ </div>
+ </td>
+ <td>
+ <?= date("Y-M-d", $comment->created); ?>
+ </td>
+ <td>
+ <ul>
+ <? if ($comment->state != "unpublished"): ?>
+ <li>
+ <a href="<?= url::site("admin/comments/mark/unpublished/$comment->id?csrf=" . access::csrf_token()) ?>">
+ <?= _("Unapprove") ?>
+ </a>
+ </li>
+ <? endif ?>
+
+ <? if ($comment->state != "published"): ?>
+ <li>
+ <a href="<?= url::site("admin/comments/mark/published/$comment->id?csrf=" . access::csrf_token()) ?>">
+ <?= _("Approve") ?>
+ </a>
+ </li>
+ <? endif ?>
+
+ <? if ($comment->state != "spam"): ?>
+ <li>
+ <a href="<?= url::site("admin/comments/mark/spam/$comment->id?csrf=" . access::csrf_token()) ?>">
+ <?= _("Spam") ?>
+ </a>
+ </li>
+ <? endif ?>
+
+ <? if ($comment->state != "spam"): ?>
+ <li>
+ <a href="<?= url::site("admin/comments/mark/spam/$comment->id?csrf=" . access::csrf_token()) ?>">
+ <?= _("Delete") ?>
+ </a>
+ </li>
+ <? endif ?>
+ </ul>
+ </td>
+ </tr>
+ <? endforeach ?>
+ </table>
+ </div>
+</div>