public static function doSelect(Criteria $criteria, $con = null) { return sfRatingPeer::populateObjects(sfRatingPeer::doSelectRS($criteria, $con)); }
/** * Gets the object rating details * * @author Fabian Lange * @author Nicolas Perriault * @param BaseObject $object * @param boolean $include_all Shall we include all available ratings? * @return associative array containing (rating => count) **/ public function getRatingDetails(BaseObject $object, $include_all = false) { $c = new Criteria(); $c->add(sfRatingPeer::RATABLE_ID, $object->getReferenceKey()); $c->add(sfRatingPeer::RATABLE_MODEL, get_class($object)); $c->clearSelectColumns(); $c->addAsColumn('nb_ratings', 'COUNT(' . sfRatingPeer::ID . ')'); $c->addAsColumn('rating', sfRatingPeer::RATING); $c->addGroupByColumn(sfRatingPeer::RATING); $rs = sfRatingPeer::doSelectRS($c); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $details = array(); while ($rs->next()) { $details = $details + array($rs->getInt('rating') => (int) $rs->getString('nb_ratings')); } if ($include_all === true) { for ($i = 1; $i <= $object->getMaxRating(); $i++) { if (!array_key_exists($i, $details)) { $details[$i] = 0; } } } ksort($details); return $details; }