/**
  * Find a published article with additional conditions.
  *
  * @param array $columns
  * @param array $values
  * @param array $options
  *
  * @return \ArticleModel|null
  */
 private function findPublishedArticle(array $columns, array $values = array(), array $options = array())
 {
     if (true !== BE_USER_LOGGED_IN) {
         $time = \Date::floorToMinute();
         $columns[] = "(tl_article.start='' OR tl_article.start<='{$time}')";
         $columns[] = "(tl_article.stop='' OR tl_article.stop>'" . ($time + 60) . "')";
         $columns[] = "tl_article.published='1'";
     }
     return ArticleModel::findOneBy($columns, $values, $options);
 }