public static function setIsNewForUser($topics, $user_id)
 {
     $topic_ids = array();
     $topic_hash = array();
     foreach ($topics as $topic) {
         // A topic is new unless we can find a view from the user for it
         $topic->setIsNew(true);
         $id = $topic->getId();
         $topic_ids[] = $id;
         $topic_hash[$id] = $topic;
     }
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(sfSimpleForumTopicViewPeer::TOPIC_ID);
     $c->add(sfSimpleForumTopicViewPeer::USER_ID, $user_id);
     $c->add(sfSimpleForumTopicViewPeer::TOPIC_ID, $topic_ids, Criteria::IN);
     $rs = sfSimpleForumTopicViewPeer::doSelectRS($c);
     while ($rs->next()) {
         $topic = $topic_hash[$rs->getInt(1)];
         $topic->setIsNew(false);
     }
     return $topic_hash;
 }
 public static function doCountJoinAllExceptsfSimpleForumTopic(Criteria $criteria, $distinct = false, $con = null)
 {
     $criteria = clone $criteria;
     $criteria->clearSelectColumns()->clearOrderByColumns();
     if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
         $criteria->addSelectColumn(sfSimpleForumTopicViewPeer::COUNT_DISTINCT);
     } else {
         $criteria->addSelectColumn(sfSimpleForumTopicViewPeer::COUNT);
     }
     foreach ($criteria->getGroupByColumns() as $column) {
         $criteria->addSelectColumn($column);
     }
     $criteria->addJoin(sfSimpleForumTopicViewPeer::USER_ID, sfGuardUserPeer::ID);
     $rs = sfSimpleForumTopicViewPeer::doSelectRS($criteria, $con);
     if ($rs->next()) {
         return $rs->getInt(1);
     } else {
         return 0;
     }
 }