Example #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;
 }
Example #2
0
 /**
  * Handles delete action
  */
 public function executeDelete()
 {
     $c = BadgePeer::retrieveByPK($this->getRequest()->getParameter('id'));
     if (!$c || !$c->getIsDefault()) {
         parent::executeDelete();
     } else {
         $this->getRequest()->setError('delete', 'You can\'t delete default badge');
         $this->forward('badge', 'list');
     }
 }
 public function configure()
 {
     // remove undesired fields
     unset($this["created_at"], $this["updated_at"], $this["is_default"]);
     // customize is active
     $this->widgetSchema["is_active"] = new sfWidgetFormSelect(array('choices' => array('0' => 'Disabled', '1' => 'Enabled')));
     if ($this->getObject()->getIsDefault()) {
         $this->widgetSchema["is_active"]->setAttribute("disabled", true);
     }
     $this->validatorSchema["is_active"] = new sfValidatorChoice(array('choices' => array('1', '0'), 'required' => true));
     // customize template
     $this->widgetSchema["template"] = new sfWidgetFormSelect(array('choices' => BadgePeer::retrieveTemplates()));
     $this->validatorSchema["template"] = new sfValidatorChoice(array('choices' => array_keys(BadgePeer::retrieveTemplates())));
     // customize name
     $this->validatorSchema["name"]->setOption("trim", true);
     $this->validatorSchema["name"]->setMessage("required", "Please enter the badge name");
     // customize thumbnail
     $this->widgetSchema["thumbnail"] = new sfWidgetFormInputFile();
     $this->validatorSchema["thumbnail"] = new sfValidatorFile(array('required' => false, 'max_size' => 1024 * 1024, 'mime_types' => array('image/jpeg', 'image/pjpeg')), array('required' => 'Please upload a file', 'invalid' => 'Only JPEG images are allowed'));
     $this->widgetSchema->setLabel('thumbnail', 'Upload thumbnail (JPEG max 1M)');
     // remove thumbnail
     $this->widgetSchema["remove_thumbnail"] = new sfWidgetFormInputCheckbox();
     $this->validatorSchema["remove_thumbnail"] = new sfValidatorBoolean();
 }
Example #4
0
 public function getBadge($con = null)
 {
     include_once 'lib/model/om/BaseBadgePeer.php';
     if ($this->aBadge === null && $this->badge_id !== null) {
         $this->aBadge = BadgePeer::retrieveByPK($this->badge_id, $con);
     }
     return $this->aBadge;
 }
Example #5
0
 public function executeSignup($request)
 {
     // check invite id
     $this->invite = InvitePeer::getFromField(InvitePeer::ID, $request->getParameter('invite_id'));
     if (!$this->invite) {
         $this->invite = InvitePeer::getFromField(InvitePeer::ID, $this->getUser()->getInviteId());
     }
     if ($request->isMethod('post')) {
         $this->form = new SignupForm();
         // process signup
         $this->form->bind($request->getParameter('signup'));
         if ($this->form->isValid()) {
             $user = new User();
             $profile = new Profile();
             $email = new Email();
             $tag = new Tag();
             // setup profile
             $profile->setFirstName($this->form->getValue('first_name'));
             $profile->setLastName($this->form->getValue('last_name'));
             // set prefered language
             $current_language = LanguagePeer::retrieveByCulture($this->getUser()->getCulture());
             if (!$current_language) {
                 $current_language = LanguagePeer::getDefaultLanguage();
             }
             $profile->setLanguage($current_language);
             // set email
             $email->setEmail($this->form->getValue('email'));
             $email->setIsConfirmed(false);
             $email->setIsPrimary(true);
             $email->setConfirmCode($email->generateConfirmCode());
             $email->setType(ContactPeer::TP_PERSONAL);
             // setup new user
             $user->setPasswd($this->form->getValue('password'));
             // add profile and contact to user
             $user->addProfile($profile);
             $user->addEmail($email);
             if ($this->invite) {
                 $user->setUserRelatedByInvitedBy($this->invite->getUser());
                 // add jotags to bookmark
                 if ($this->invite->getInviteTagsJoinTag()) {
                     foreach ($this->invite->getInviteTagsJoinTag() as $tagbm) {
                         // add to bookmark
                         $b = new Bookmark();
                         $b->setTag($tagbm->getTag());
                         $user->addBookmark($b);
                     }
                 }
                 // delete invite from db
                 $this->invite->delete();
                 // add initial credit to the user
                 $user->setCredits(OptionPeer::retrieveOption('BONUS_INVITE_CREDIT'));
             } else {
                 $user->setCredits(OptionPeer::retrieveOption('BONUS_INIT_CREDIT'));
             }
             // save
             $user->save();
             $this->getUser()->clearInviteId();
             // generate JOTAG. We must do it after save because we use ID in the algorithm
             $tag->setJotag($user->generateRandomJOTAG());
             $tag->setIsPrimary(true);
             $tag->setStatus(TagPeer::ST_NEW);
             $tag->setBadge(BadgePeer::getDefaultBadge());
             $tag->setUser($user);
             // link primary email to tag
             $tm = new TagEmail();
             $tm->setEmail($email);
             $tag->addTagEmail($tm);
             // save new tag
             $tag->save();
             // send confirmation email
             Mailer::sendEmail($email->getEmail(), 'signupConfirmation', array('user' => $user, 'email' => $email), $user->getPreferedLanguage());
             $this->setMessage("SIGNUP", "SUCCESS", array($email->getEmail()));
             if (!$this->isWebserviceCall()) {
                 $this->redirect('@homepage');
             }
         }
     } else {
         $first = $last = $email = "";
         if ($this->invite) {
             // pre-populate first/last name, if available from invite
             $first = $this->invite->getFirstName();
             $last = $this->invite->getLastName();
             $email = $this->invite->getEmail();
         }
         $this->form = new SignupForm(array('first_name' => $first, 'last_name' => $last, 'email' => $email));
         // set invite id, if available
         $this->getUser()->setInviteId($this->invite ? $this->invite->getId() : null);
     }
 }
Example #6
0
 public function executeAddbadge()
 {
     $c = new Criteria();
     $c->add(BadgePeer::NAME, $this->getRequestParameter('badge'));
     $exbadge = BadgePeer::doSelectOne($c);
     if ($exbadge) {
         $this->setFlash('notice', 'Badge could not be added. A badge with this name already exists.');
     } else {
         $badge = new Badge();
         $badge->setName($this->getRequestParameter('badge'));
         $badge->save();
         $this->setFlash('notice', 'Badge <b>' . $badge->getName() . '</b> added successfully.');
     }
     $this->redirect('/admin/badges');
 }
Example #7
0
 public static function retrieveByPKs($pks, $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(self::DATABASE_NAME);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria();
         $criteria->add(BadgePeer::ID, $pks, Criteria::IN);
         $objs = BadgePeer::doSelect($criteria, $con);
     }
     return $objs;
 }
Example #8
0
 public function executeLor()
 {
     $this->type = $this->getRequestParameter('type');
     $this->toid = $this->getRequestParameter('for');
     $this->foruser = UserPeer::retrieveByPK($this->toid);
     $badges = BadgePeer::doSelect(new Criteria());
     $allbadges = array();
     foreach ($badges as $badge) {
         $allbadges[$badge->getName()] = $badge->getName();
     }
     $this->badges = $allbadges;
 }
Example #9
0
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = BadgePeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setName($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setImage($arr[$keys[2]]);
     }
 }
 public static function doSelectJoinAllExceptUser(Criteria $c, $con = null)
 {
     $c = clone $c;
     if ($c->getDbName() == Propel::getDefaultDB()) {
         $c->setDbName(self::DATABASE_NAME);
     }
     UserbadgePeer::addSelectColumns($c);
     $startcol2 = UserbadgePeer::NUM_COLUMNS - UserbadgePeer::NUM_LAZY_LOAD_COLUMNS + 1;
     BadgePeer::addSelectColumns($c);
     $startcol3 = $startcol2 + BadgePeer::NUM_COLUMNS;
     $c->addJoin(UserbadgePeer::BADGE_ID, BadgePeer::ID);
     $rs = BasePeer::doSelect($c, $con);
     $results = array();
     while ($rs->next()) {
         $omClass = UserbadgePeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj1 = new $cls();
         $obj1->hydrate($rs);
         $omClass = BadgePeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj2 = new $cls();
         $obj2->hydrate($rs, $startcol2);
         $newObject = true;
         for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
             $temp_obj1 = $results[$j];
             $temp_obj2 = $temp_obj1->getBadge();
             if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                 $newObject = false;
                 $temp_obj2->addUserbadge($obj1);
                 break;
             }
         }
         if ($newObject) {
             $obj2->initUserbadges();
             $obj2->addUserbadge($obj1);
         }
         $results[] = $obj1;
     }
     return $results;
 }