summaryrefslogtreecommitdiff
path: root/modules/comment/models
diff options
context:
space:
mode:
authorroot <root@sleepydogs.net>2009-09-13 09:01:55 -0700
committerroot <root@sleepydogs.net>2009-09-13 09:01:55 -0700
commitc62d1f440f077ba806b7ff0c6b90ef89c79b2fd3 (patch)
treeb64f05e2a7bd8db7200e3c407904e255826b4cf2 /modules/comment/models
parentb96ac1eb81b7ccd5bd050ffab0ca9ce1feec8f4f (diff)
parentcaa2002d7777e0ceb884d4c628650804620ca2b6 (diff)
Merge branch 'master' of git://github.com/gallery/gallery3
Diffstat (limited to 'modules/comment/models')
-rw-r--r--modules/comment/models/comment.php29
1 files changed, 27 insertions, 2 deletions
diff --git a/modules/comment/models/comment.php b/modules/comment/models/comment.php
index 22c465df..de9b0cd6 100644
--- a/modules/comment/models/comment.php
+++ b/modules/comment/models/comment.php
@@ -31,7 +31,7 @@ class Comment_Model extends ORM {
if ($author->guest) {
return $this->guest_name;
} else {
- return $author->full_name;
+ return $author->display_name();
}
}
@@ -61,8 +61,33 @@ class Comment_Model extends ORM {
$this->updated = time();
if (!$this->loaded && empty($this->created)) {
$this->created = $this->updated;
+ $created = true;
}
}
- return parent::save();
+ $visible_change = $this->original()->state == "published" || $this->state == "published";
+ parent::save();
+
+ if (isset($created)) {
+ module::event("comment_created", $this);
+ } else {
+ module::event("comment_updated", $this->original(), $this);
+ }
+
+ // We only notify on the related items if we're making a visible change.
+ if ($visible_change) {
+ module::event("item_related_update", $this->item());
+ }
+
+ return $this;
+ }
+
+ /**
+ * Add a set of restrictions to any following queries to restrict access only to items
+ * viewable by the active user.
+ * @chainable
+ */
+ public function viewable() {
+ $this->join("items", "items.id", "comments.item_id");
+ return item::viewable($this);
}
}