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 }