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