protected function _set_range_sql(array &$sql_ary)
 {
     if ($this->settings['date_range'] && $this->sql_date_field) {
         $range = $this->date_range->get($this->settings['date_range']);
         $this->explain_range = '&date=' . $range['date'];
         $sql_ary['WHERE'] .= " AND {$this->sql_date_field} BETWEEN {$range['start']} AND {$range['stop']}";
     }
 }
 /**
  * @return array
  */
 private function _get_topic_data()
 {
     $sort_order = array(FORUMS_ORDER_FIRST_POST => 't.topic_time', FORUMS_ORDER_LAST_POST => 't.topic_last_post_time', FORUMS_ORDER_LAST_READ => 't.topic_last_view_time');
     $range_info = $this->date_range->get($this->settings['date_range']);
     $this->forum->query()->fetch_forum($this->settings['forum_ids'])->fetch_topic_type($this->settings['topic_type'])->fetch_tracking_info($this->settings['enable_tracking'])->fetch_date_range($range_info['start'], $range_info['stop'])->set_sorting($sort_order[$this->settings['order_by']])->build();
     $topic_data = $this->forum->get_topic_data($this->settings['max_topics']);
     $this->topic_tracking_info = $this->forum->get_topic_tracking_info();
     return $topic_data;
 }
Example #3
0
 /**
  * @return array
  */
 private function _get_posts_data()
 {
     $range_info = $this->date_range->get($this->settings['date_range']);
     $allowed_forums = $this->_get_allowed_forums();
     $post_ids = array_filter(explode(',', $this->settings['post_ids']));
     $sql_array = $this->forum_data->query()->fetch_forum($allowed_forums)->fetch_topic_type($this->settings['topic_type'])->fetch_date_range($range_info['start'], $range_info['stop'])->build()->get_sql_array();
     $sql_array['SELECT'] = '';
     $sql_array['WHERE'] .= ' AND p.topic_id = t.topic_id AND p.post_attachment <> 0';
     if ($this->settings['first_only']) {
         $sql_array['WHERE'] .= " AND p.post_id = t.topic_first_post_id";
     }
     return $this->forum_data->get_post_data(false, $post_ids, $this->settings['limit'], 0, $sql_array);
 }