diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/comment/controllers/admin_comments.php | 62 | ||||
-rw-r--r-- | modules/comment/helpers/comment_menu.php | 2 | ||||
-rw-r--r-- | modules/comment/models/comment.php | 4 | ||||
-rw-r--r-- | modules/comment/views/admin_comments.html.php | 85 |
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> |