Example #1
0
 public static function Update($author, $subject, $date, $total, $groups, $parts)
 {
     $authorid = static::Author($author);
     // Remove redundant characters
     foreach ($parts['id'] as $key => $value) {
         $parts['id'][$key] = str_replace(array('<', '>'), '', $value);
     }
     try {
         // Found
         $article = Article::Match($authorid, $subject, $date);
         $result = true;
         $article->parts = self::MergeParts($article->parts, $parts);
         if ($article->post_date > $date) {
             $article->post_date = $date;
         }
         $article->Save();
         if ($article->postid > 0) {
             Post::Queue($article->postid);
         }
     } catch (ActiveRecord_NotFoundException $e) {
         // Not found
         $result = false;
         $article = new Article();
         $article->subject = $subject;
         $article->authorid = $authorid;
         $article->parts_total = $total;
         $article->parts = $parts;
         $article->post_date = $date;
         $article->Save();
         if (is_array($groups)) {
             foreach ($groups as $group) {
                 try {
                     $articlegroup = new ArticleGroup();
                     $articlegroup->articleid = $article->id;
                     $articlegroup->groupid = $group;
                     $articlegroup->created = $article->created;
                     $articlegroup->Save();
                 } catch (Exception $e) {
                     // Ignore errors
                 }
             }
         }
     }
     return $result;
 }