示例#1
0
 public function executeCreate(sfWebRequest $request)
 {
     $i18n = sfContext::getInstance()->getI18N();
     $form = new InvitePrincipalForm();
     $a = $request->getParameter($form->getName());
     $oid = $a['o_id'];
     $form->bind($request->getParameter('invite'));
     if (!$form->isValid()) {
         $this->getUser()->setFlash('notice', $i18n->__('Could not send the invitation, please check the e-mail address and try again!'));
         $this->redirect("show/index?id=" . $oid);
     }
     $emails = $form->getValue('email');
     $o_id = $form->getValue('o_id');
     $role_id = $form->getValue('role_id');
     $m = $form->getValue('message');
     $o = Doctrine::getTable('Organization')->find($o_id);
     $p = $this->getUser()->getPrincipal();
     foreach ($emails as $email) {
         $uuid = uniqid();
         $i = new Invitation();
         $i->setEmail($email);
         $i->setOrganization($o);
         $i->setUuid($uuid);
         $i->setCreatedAt(date('Y-m-d H:i:s'));
         $i->setCounter(1);
         $i->setInviter($p);
         $i->setStatus('pending');
         $i->setRoleId($role_id);
         $i->save();
         $r = $i->getRole();
         /* Send email */
         $params = array("i" => $i, "m" => $m, "o" => $o, "p" => $p, "r" => $r, "reinvite" => FALSE);
         $email_params = array("to" => $i->getEmail(), "subject" => $i18n->__('Invitation to %organization% organization', array("%organization%" => $o)), "bodyhtml" => $this->getPartial('invitePrincipal/inviteHtml', $params));
         $this->sendEmail($email_params);
         $to = $o->getManagersEmailArray();
         $params = array("o" => $o, "p" => $p, "r" => $r, "email" => $email);
         $email_params = array("to" => $to, "subject" => $i18n->__('Invitation of %email% to %organization% organization', array("%email%" => $email, "%organization%" => $o)), "bodyhtml" => $this->getPartial('invitePrincipal/inviteNoticeHtml', $params));
         $this->sendEmail($email_params);
     }
     $this->getUser()->setFlash('notice', $i18n->__('The invitation has been sent.'));
     $this->redirect("show/index?id=" . $o->getId());
 }