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; } }