コード例 #1
0
 public function processInvite($formData)
 {
     $user = $this->getUser();
     $category = $this->userInvitationsCategories[$formData['Category']];
     if (!$category instanceof WpInvitationCategory) {
         return wfMessage('sz-internal-error')->text();
     }
     $email = null;
     if ($formData['Email'] != '') {
         $email = $formData['Email'];
     }
     $message = $formData['Message'];
     if ($this->userIsAdmin) {
         $code = strtolower($formData['Code']);
         $counter = $formData['Counter'];
     } else {
         $code = WpInvitation::generateCode($user);
         $counter = 1;
     }
     $language = $formData['Language'];
     $invitation = WpInvitation::create($category, $user, $code, $email, $counter);
     if (!$invitation instanceof WpInvitation) {
         return wfMessage('sz-internal-error')->text();
     }
     if (!$this->userIsAdmin) {
         $this->incrementUsageThisMonth($category->getId());
         $this->setUsageLeftThisMonth();
     }
     if ($email != null && $invitation->sendCode($user, $email, $message, $language)) {
         $this->sentTo = $email;
     } else {
         $this->sentTo = null;
     }
     return true;
     // say: all ok
 }