]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Events for showing the 'tail' of a threaded notice
authorEvan Prodromou <evan@status.net>
Sat, 9 Apr 2011 20:58:38 +0000 (16:58 -0400)
committerEvan Prodromou <evan@status.net>
Sat, 9 Apr 2011 20:58:38 +0000 (16:58 -0400)
EVENTS.txt
lib/threadednoticelist.php

index 08a4273ec907537471284d66f2080d3c09860220..eb848bb888dcd09d41f456be1de8e41b6756f9cb 100644 (file)
@@ -1162,4 +1162,24 @@ StartShowGroupProfileBlock: When showing the profile block for a group
 
 EndShowGroupProfileBlock: After showing showing the profile block for a group
 - $out: XMLOutputter to append custom output
-- $group: the group being shown
\ No newline at end of file
+- $group: the group being shown
+
+StartShowThreadedNoticeTail: when showing the replies etc. to a notice
+- $nli: parent noticelistitem
+- $notice: parent notice
+- &$children: list of children
+
+EndShowThreadedNoticeTail: when showing the replies etc. to a notice
+- $nli: parent noticelistitem
+- $notice: parent notice
+- $children: list of children
+
+StartShowThreadedNoticeSub: when showing a reply to a notice
+- $nli: parent noticelistitem
+- $parent: parent notice
+- $child: child notice
+
+EndShowThreadedNoticeSub: when showing a reply to a notice
+- $nli: parent noticelistitem
+- $parent: parent notice
+- $child: child notice
index b686e17629e55d7479a0305b929ec7ef19906d39..c5cd2d308156034005a1e90fad6a6c03165717af 100644 (file)
@@ -185,33 +185,40 @@ class ThreadedNoticeListItem extends NoticeListItem
                 $notices[] = clone($notice); // *grumble* inefficient as hell
             }
 
-            $this->out->elementStart('ul', 'notices threaded-replies xoxo');
-
-            $item = new ThreadedNoticeListFavesItem($this->notice, $this->out);
-            $hasFaves = $item->show();
-
-            $item = new ThreadedNoticeListRepeatsItem($this->notice, $this->out);
-            $hasRepeats = $item->show();
-
-            if ($notices) {
-                if ($moreCutoff) {
-                    $item = new ThreadedNoticeListMoreItem($moreCutoff, $this->out);
-                    $item->show();
+            if (Event::handle('StartShowThreadedNoticeTail', array($this, $this->notice, &$notices))) {
+                $this->out->elementStart('ul', 'notices threaded-replies xoxo');
+
+                $item = new ThreadedNoticeListFavesItem($this->notice, $this->out);
+                $hasFaves = $item->show();
+
+                $item = new ThreadedNoticeListRepeatsItem($this->notice, $this->out);
+                $hasRepeats = $item->show();
+
+                if ($notices) {
+                    if ($moreCutoff) {
+                        $item = new ThreadedNoticeListMoreItem($moreCutoff, $this->out);
+                        $item->show();
+                    }
+                    foreach (array_reverse($notices) as $notice) {
+                        if (Event::handle('StartShowThreadedNoticeSub', array($this, $this->notice, $notice))) {
+                            $item = new ThreadedNoticeListSubItem($notice, $this->out);
+                            $item->show();
+                            Event::handle('StartShowThreadedNoticeSub', array($this, $this->notice, $notice));
+                        }
+                    }
                 }
-                foreach (array_reverse($notices) as $notice) {
-                    $item = new ThreadedNoticeListSubItem($notice, $this->out);
-                    $item->show();
-                }
-            }
-            if ($notices || $hasFaves || $hasRepeats) {
-                // @fixme do a proper can-post check that's consistent
-                // with the JS side
-                if (common_current_user()) {
-                    $item = new ThreadedNoticeListReplyItem($this->notice, $this->out);
-                    $item->show();
+
+                if ($notices || $hasFaves || $hasRepeats) {
+                    // @fixme do a proper can-post check that's consistent
+                    // with the JS side
+                    if (common_current_user()) {
+                        $item = new ThreadedNoticeListReplyItem($this->notice, $this->out);
+                        $item->show();
+                    }
                 }
+                $this->out->elementEnd('ul');
+                Event::handle('EndShowThreadedNoticeTail', array($this, $this->notice, $notices));
             }
-            $this->out->elementEnd('ul');
         }
 
         parent::showEnd();