From 2157285d9bc3373e9bd2f4d86f558a1b2554f412 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 16 May 2010 22:53:19 -0700 Subject: Rename admin/comments to admin/manage_comments to make room for admin/comments to be a settings page. --- .../comment/controllers/admin_manage_comments.php | 133 +++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 modules/comment/controllers/admin_manage_comments.php (limited to 'modules/comment/controllers/admin_manage_comments.php') diff --git a/modules/comment/controllers/admin_manage_comments.php b/modules/comment/controllers/admin_manage_comments.php new file mode 100644 index 00000000..338e4799 --- /dev/null +++ b/modules/comment/controllers/admin_manage_comments.php @@ -0,0 +1,133 @@ +delete("comments") + ->where("state", "IN", array("deleted", "spam")) + ->where("updated", "<", "UNIX_TIMESTAMP() - 86400 * 7") + ->execute(); + + // Redirect to the appropriate queue + url::redirect("admin/manage_comments/queue/unpublished"); + } + + public function menu_labels() { + $menu = $this->_menu($this->_counts()); + print json_encode(array((string) $menu->get("unpublished")->label, + (string) $menu->get("published")->label, + (string) $menu->get("spam")->label, + (string) $menu->get("deleted")->label)); + } + + public function queue($state) { + $page = max(Input::instance()->get("page"), 1); + + $view = new Admin_View("admin.html"); + $view->page_title = t("Manage comments"); + $view->content = new View("admin_comments.html"); + $view->content->counts = $this->_counts(); + $view->content->menu = $this->_menu($view->content->counts); + $view->content->state = $state; + $view->content->comments = ORM::factory("comment") + ->order_by("created", "DESC") + ->where("state", "=", $state) + ->limit(self::$items_per_page, ($page - 1) * self::$items_per_page) + ->find_all(); + $view->content->pager = new Pagination(); + $view->content->pager->initialize( + array("query_string" => "page", + "total_items" => $view->content->counts->$state, + "items_per_page" => self::$items_per_page, + "style" => "classic")); + + print $view; + } + + private function _menu($counts) { + return Menu::factory("root") + ->append(Menu::factory("link") + ->id("unpublished") + ->label(t2("Awaiting Moderation (%count)", + "Awaiting Moderation (%count)", + $counts->unpublished)) + ->url(url::site("admin/manage_comments/queue/unpublished"))) + ->append(Menu::factory("link") + ->id("published") + ->label(t2("Approved (%count)", + "Approved (%count)", + $counts->published)) + ->url(url::site("admin/manage_comments/queue/published"))) + ->append(Menu::factory("link") + ->id("spam") + ->label(t2("Spam (%count)", + "Spam (%count)", + $counts->spam)) + ->url(url::site("admin/manage_comments/queue/spam"))) + ->append(Menu::factory("link") + ->id("deleted") + ->label(t2("Recently Deleted (%count)", + "Recently Deleted (%count)", + $counts->deleted)) + ->url(url::site("admin/manage_comments/queue/deleted"))); + } + + private function _counts() { + $counts = new stdClass(); + $counts->unpublished = 0; + $counts->published = 0; + $counts->spam = 0; + $counts->deleted = 0; + foreach (db::build() + ->select("state") + ->select(array("c" => 'COUNT("*")')) + ->from("comments") + ->group_by("state") + ->execute() as $row) { + $counts->{$row->state} = $row->c; + } + return $counts; + } + + public function set_state($id, $state) { + access::verify_csrf(); + + $comment = ORM::factory("comment", $id); + $orig = clone $comment; + if ($comment->loaded()) { + $comment->state = $state; + $comment->save(); + } + } + + public function delete_all_spam() { + access::verify_csrf(); + + db::build() + ->delete("comments") + ->where("state", "=", "spam") + ->execute(); + url::redirect("admin/manage_comments/queue/spam"); + } +} + -- cgit v1.2.3 From ab204d27201951c7915cf0eb871751b145e398aa Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 16 May 2010 23:01:57 -0700 Subject: Rename the admin_comments view to admin_manage_comments to match the controller. --- .../comment/controllers/admin_manage_comments.php | 2 +- modules/comment/views/admin_comments.html.php | 201 --------------------- .../comment/views/admin_manage_comments.html.php | 201 +++++++++++++++++++++ 3 files changed, 202 insertions(+), 202 deletions(-) delete mode 100644 modules/comment/views/admin_comments.html.php create mode 100644 modules/comment/views/admin_manage_comments.html.php (limited to 'modules/comment/controllers/admin_manage_comments.php') diff --git a/modules/comment/controllers/admin_manage_comments.php b/modules/comment/controllers/admin_manage_comments.php index 338e4799..bc1c9e64 100644 --- a/modules/comment/controllers/admin_manage_comments.php +++ b/modules/comment/controllers/admin_manage_comments.php @@ -45,7 +45,7 @@ class Admin_Manage_Comments_Controller extends Admin_Controller { $view = new Admin_View("admin.html"); $view->page_title = t("Manage comments"); - $view->content = new View("admin_comments.html"); + $view->content = new View("admin_manage_comments.html"); $view->content->counts = $this->_counts(); $view->content->menu = $this->_menu($view->content->counts); $view->content->state = $state; diff --git a/modules/comment/views/admin_comments.html.php b/modules/comment/views/admin_comments.html.php deleted file mode 100644 index 34a28986..00000000 --- a/modules/comment/views/admin_comments.html.php +++ /dev/null @@ -1,201 +0,0 @@ - - - -
-

- -
- -
- render() ?> -
- - -

- - - - - - - - - -

- - -
- - 0): ?> -

- -

- -

- spam): ?> - spam) ?> -

-

- "> - - - - - -

-
- - - -
-

- -

-
- - - - - - - - - - "> - - - - - -
- - - - - -
- - " - class="g-avatar" - alt="author_name()) ?>" - width="40" - height="40" /> - -

author_name()) ?>

-
- -

created) ?>

- text)) ?> -
-
    - state != "unpublished"): ?> -
  • - - - - -
  • - - state != "published"): ?> -
  • - - - - -
  • - - state != "spam"): ?> -
  • - - - - -
  • - - -
  • - - - - -
  • -
-
- -
- -
- -
-
diff --git a/modules/comment/views/admin_manage_comments.html.php b/modules/comment/views/admin_manage_comments.html.php new file mode 100644 index 00000000..34a28986 --- /dev/null +++ b/modules/comment/views/admin_manage_comments.html.php @@ -0,0 +1,201 @@ + + + +
+

+ +
+ +
+ render() ?> +
+ + +

+ + + + + + + + + +

+ + +
+ + 0): ?> +

+ +

+ +

+ spam): ?> + spam) ?> +

+

+ "> + + + + + +

+
+ + + +
+

+ +

+
+ + + + + + + + + + "> + + + + + +
+ + + + + +
+ + " + class="g-avatar" + alt="author_name()) ?>" + width="40" + height="40" /> + +

author_name()) ?>

+
+ +

created) ?>

+ text)) ?> +
+
    + state != "unpublished"): ?> +
  • + + + + +
  • + + state != "published"): ?> +
  • + + + + +
  • + + state != "spam"): ?> +
  • + + + + +
  • + + +
  • + + + + +
  • +
+
+ +
+ +
+ +
+
-- cgit v1.2.3