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; }
/** * 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(); }
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; }
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); } }
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'); }
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; }
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; }
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; }