예제 #1
0
 public function executeShow()
 {
     $userid = $this->getUser()->getAttribute('userid');
     $c = new Criteria();
     $c->add(AcademicPeer::USER_ID, $userid);
     $this->academics = AcademicPeer::doSelect($c);
     $c->clear();
     $c->add(UserbadgePeer::USER_ID, $userid);
     $this->userbadges = UserbadgePeer::doSelect($c);
     $c->clear();
     $c->add(UserbadgePeer::USER_ID, $userid);
     $c->addSelectColumn(UserbadgePeer::BADGE_ID);
     $userbadges = UserbadgePeer::doSelectRS($c);
     $ubarray = array();
     foreach ($userbadges as $ub) {
         $ubarray[] = $ub[0];
     }
     $c->clear();
     $c->add(BadgePeer::ID, $ubarray, Criteria::NOT_IN);
     $c->addAscendingOrderByColumn(BadgePeer::NAME);
     $allbadges = BadgePeer::doSelect($c);
     $badgelist = array();
     $badgelist[] = '-- Select --';
     foreach ($allbadges as $badge) {
         $badgelist[$badge->getId()] = $badge->getName();
     }
     $this->badgelist = $badgelist;
 }
예제 #2
0
 public static function doCountJoinAllExceptBadge(Criteria $criteria, $distinct = false, $con = null)
 {
     $criteria = clone $criteria;
     $criteria->clearSelectColumns()->clearOrderByColumns();
     if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
         $criteria->addSelectColumn(UserbadgePeer::COUNT_DISTINCT);
     } else {
         $criteria->addSelectColumn(UserbadgePeer::COUNT);
     }
     foreach ($criteria->getGroupByColumns() as $column) {
         $criteria->addSelectColumn($column);
     }
     $criteria->addJoin(UserbadgePeer::USER_ID, UserPeer::ID);
     $rs = UserbadgePeer::doSelectRS($criteria, $con);
     if ($rs->next()) {
         return $rs->getInt(1);
     } else {
         return 0;
     }
 }