Ejemplo n.º 1
0
 public function apply($string, SearcherInterface $searcher)
 {
     $posts = $this->posts->findByContent($string, $searcher->user);
     $discussions = [];
     foreach ($posts as $post) {
         $discussions[] = $id = $post->discussion_id;
         $searcher->addRelevantPost($id, $post->id);
     }
     $discussions = array_unique($discussions);
     $searcher->query()->whereIn('id', $discussions);
     $searcher->setDefaultSort(['id' => $discussions]);
 }
Ejemplo n.º 2
0
 protected function conditions($matches, SearcherInterface $searcher)
 {
     $user = $searcher->user;
     if ($user->exists) {
         $readIds = $this->discussions->getReadIds($user);
         if ($matches[1] === 'true') {
             $searcher->query()->whereNotIn('id', $readIds)->where('last_time', '>', $user->read_time ?: 0);
         } else {
             $searcher->query()->whereIn('id', $readIds)->orWhere('last_time', '<=', $user->read_time ?: 0);
         }
     }
 }
Ejemplo n.º 3
0
 public function conditions($matches, SearcherInterface $searcher)
 {
     $username = trim($matches[1], '"');
     $id = $this->users->getIdForUsername($username);
     $searcher->query()->where('start_user_id', $id);
 }
Ejemplo n.º 4
0
 public function apply($string, SearcherInterface $searcher)
 {
     $users = $this->users->getIdsForUsername($string, $searcher->user);
     $searcher->query()->whereIn('id', $users);
     $searcher->setDefaultSort(['id' => $users]);
 }