]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - lib/noticestreamaction.php
Added type-hints for StartInitializeRouter hooks.
[quix0rs-gnu-social.git] / lib / noticestreamaction.php
1 <?php
2
3 if (!defined('GNUSOCIAL')) { exit(1); }
4
5 abstract class NoticestreamAction extends ProfileAction
6 {
7     protected $notice = null;   // holds the stream result
8
9     protected function prepare(array $args=array()) {
10         parent::prepare($args);
11
12         // In case we need more info than ProfileAction->doPreparation() gives us
13         $this->doStreamPreparation();
14
15         // fetch the actual stream stuff
16         try {
17             $stream = $this->getStream();
18             $this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
19         } catch (PrivateStreamException $e) {
20             $this->notice = new Notice();
21             $this->notice->whereAdd('FALSE');
22         }
23
24         if ($this->page > 1 && $this->notice->N == 0) {
25             // TRANS: Client error when page not found (404).
26             $this->clientError(_('No such page.'), 404);
27         }
28
29         return true;
30     }
31
32     protected function doStreamPreparation()
33     {
34         // pass by default
35     }
36
37     // this fetches the NoticeStream
38     abstract public function getStream();
39 }