1 | <?php |
||
16 | class whats_new extends \blitze\sitemaker\services\blocks\driver\block |
||
17 | { |
||
18 | /** @var \phpbb\user */ |
||
19 | protected $user; |
||
20 | |||
21 | /** @var \blitze\sitemaker\services\forum\data */ |
||
22 | protected $forum; |
||
23 | |||
24 | /** @var string */ |
||
25 | protected $phpbb_root_path; |
||
26 | |||
27 | /** @var string */ |
||
28 | protected $php_ext; |
||
29 | |||
30 | /** |
||
31 | * Constructor |
||
32 | * |
||
33 | * @param \phpbb\user $user User object |
||
34 | * @param \blitze\sitemaker\services\forum\data $forum Forum Data object |
||
35 | * @param string $phpbb_root_path Path to the phpbb includes directory. |
||
36 | * @param string $php_ext php file extension |
||
37 | */ |
||
38 | 4 | public function __construct(\phpbb\user $user, \blitze\sitemaker\services\forum\data $forum, $phpbb_root_path, $php_ext) |
|
45 | |||
46 | /** |
||
47 | * {@inheritdoc} |
||
48 | */ |
||
49 | 1 | public function get_config(array $settings) |
|
57 | |||
58 | /** |
||
59 | * {@inheritdoc} |
||
60 | */ |
||
61 | 3 | public function display(array $bdata, $edit_mode = false) |
|
80 | |||
81 | /** |
||
82 | * @param array $settings |
||
83 | */ |
||
84 | 2 | private function _fetch_new(array $settings) |
|
103 | |||
104 | /** |
||
105 | * @param array $settings |
||
106 | * @return array |
||
107 | */ |
||
108 | 2 | private function _get_topics(array $settings) |
|
109 | { |
||
110 | 2 | if ($settings['topics_only']) |
|
111 | 2 | { |
|
112 | 1 | $sorting = 't.topic_last_post_time'; |
|
113 | 1 | $sql_array = $this->_get_topics_sql(); |
|
114 | 1 | } |
|
115 | else |
||
116 | { |
||
117 | 1 | $sorting = 'p.post_time'; |
|
118 | 1 | $sql_array = $this->_get_posts_sql(); |
|
119 | } |
||
120 | |||
121 | 2 | $this->forum->query() |
|
122 | 2 | ->set_sorting($sorting) |
|
123 | 2 | ->fetch_custom($sql_array) |
|
124 | 2 | ->build(true, false); |
|
125 | 2 | $topic_data = $this->forum->get_topic_data($settings['max_topics']); |
|
126 | |||
127 | 2 | return array_values($topic_data); |
|
128 | } |
||
129 | |||
130 | /** |
||
131 | * @return array |
||
132 | */ |
||
133 | 1 | private function _get_topics_sql() |
|
134 | { |
||
135 | return array( |
||
136 | 'WHERE' => array( |
||
137 | 1 | 't.topic_last_post_time > ' . $this->user->data['user_lastvisit'], |
|
138 | 1 | 't.topic_moved_id = 0', |
|
139 | 1 | ), |
|
140 | 1 | ); |
|
141 | } |
||
142 | |||
143 | /** |
||
144 | * @return array |
||
145 | */ |
||
146 | 1 | private function _get_posts_sql() |
|
157 | } |
||
158 |