public static function doSelect(Criteria $criteria, $con = null)
 {
     return sfVotingPeer::populateObjects(sfVotingPeer::doSelectRS($criteria, $con));
 }
 /**
  * Gets the object voting details (how many voted what, as an hash)
  *
  * @param  BaseObject  $object
  * @param  boolean     $include_all  Shall we include all available votings?
  * @return associative array containing (voting => count)
  **/
 public function getVotingDetails(BaseObject $object, $include_all = false, $docount = false)
 {
     if ($include_all === false && $docount === false && !is_null(self::getObjectVotingFields($object))) {
         return self::getVotingDetailsFromObject($object);
     }
     $c = new Criteria();
     $c->add(sfVotingPeer::VOTABLE_ID, $object->getReferenceKey());
     $c->add(sfVotingPeer::VOTABLE_MODEL, get_class($object));
     $c->clearSelectColumns();
     $c->addAsColumn('nb_votings', 'COUNT(' . sfVotingPeer::ID . ')');
     $c->addAsColumn('voting', sfVotingPeer::VOTING);
     $c->addGroupByColumn(sfVotingPeer::VOTING);
     $rs = sfVotingPeer::doSelectRS($c);
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $details = array();
     while ($rs->next()) {
         $details = $details + array($rs->getInt('voting') => (int) $rs->getString('nb_votings'));
     }
     if ($include_all === true) {
         for ($i = -1 * $object->getVotingRange(); $i <= $object->getVotingRange(); $i++) {
             if (!array_key_exists($i, $details)) {
                 $details[$i] = 0;
             }
         }
     }
     ksort($details);
     return $details;
 }