/** * Look if the information in $input is ok to send. * If yes, send and return a confirmation. * Otherwise, return an array that tells what is missing. * * required information in $input: * sender_id, receiver_id, text * * optional fields in $input: * reply_to_id, draft_id * * @param unknown_type $input */ public function sendOrComplain($input) { // check fields $problems = array(); // Maximum 50 emails can be send using the Invitation-Form if (isset($_SESSION['InviteCount']) && $_SESSION['InviteCount'] > 50) { $problems['email'] = 'You already sent more than 50 invitations. Maybe that is enough for now?'; } elseif (!isset($input['email'])) { // $problems['receiver'] = 'no receiver was specified.'; // receiver does not exist. $problems['email'] = 'No receiver set.'; } else { // receiver is set, let's check the email addresses: $input['email'] = strtolower($input['email']); $input['email'] = str_replace(';', ',', $input['email']); $input['email'] = str_replace(' ', '', $input['email']); $email_array = explode(',', $input['email']); foreach ($email_array as $email) { if (!isset($email) || !$this->isEmailAddress($email)) { $problems['email'] = 'no correct email addresses.'; } } } if (!isset($input['sender_id'])) { // sender is not set. $input['sender_id'] = $_SESSION['IdMember']; // $problems['sender_id'] = 'no sender was specified.'; } else { if (!$input['sender_id'] != $_SESSION['IdMember']) { // sender is not the person who is logged in. $problems['sender_id'] = 'you are not the sender.'; } } if (empty($input['text'])) { $problems['text'] = 'text is empty.'; } $input['status'] = 'ToSend'; if (!empty($problems)) { $status = false; } else { // set the sender // FIXME: Read & Uncrypt member's email address from the DB and make it the sender-address //$sender_uncrypted = new MOD_member()->getFromMembersTable('email'); $member = $this->createEntity('Member')->findById($_SESSION['IdMember']); $sender = MOD_crypt::MemberReadCrypted($member->Email); //$sender = PVars::getObj('syshcvol')->MessageSenderMail; $result = MOD_mail::sendEmail($input['subject'], $sender, $email_array, false, $input['text']); //Now check if Swift actually sends it if ($result) { $status = true; $_SESSION['InviteCount'] = isset($_SESSION['InviteCount']) ? $_SESSION['InviteCount'] + count($email_array) : count($email_array); } else { MOD_log::write("MOD_mail: Failed to send a mail to " . implode(',', $email_array), "MOD_mail"); $problems['notsend'] = 'InviteNotSent'; $status = false; } } return array('status' => $status, 'problems' => $problems); }
/** * This needs to go someplace else, * pending architectural attention */ protected function get_crypted($crypted_id, $return_value = "") { if ($crypted_id == "" or $crypted_id == 0) { return ""; } // check for Admin $right = new MOD_right(); if ($right->hasRight('Admin') || $right->hasRight('SafetyTeam')) { return urldecode(strip_tags(MOD_crypt::AdminReadCrypted($crypted_id))); } // check for Member's own data if ($this->edit_mode) { if (($mCrypt = MOD_crypt::MemberReadCrypted($crypted_id)) != "cryptedhidden") { return urldecode(strip_tags($mCrypt)); } } return urldecode(MOD_crypt::get_crypted($crypted_id, $return_value)); }
$out .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>"; } else { $out .= "<option value=\"{$i}\">{$i}</option>"; } } return $out; } $callback_tag = $this->layoutkit->formkit->setPostCallback('MembersController', 'updateMandatoryCallback'); $member = $this->member; $m->firstname = MOD_crypt::MemberReadCrypted($member->FirstName, ''); $m->secondname = MOD_crypt::MemberReadCrypted($member->SecondName, ''); $m->lastname = MOD_crypt::MemberReadCrypted($member->LastName, ''); $m->geonameid = $member->IdCity; $m->street = MOD_crypt::MemberReadCrypted($member->address->StreetName); $m->housenumber = MOD_crypt::MemberReadCrypted($member->address->HouseNumber); $m->zip = MOD_crypt::MemberReadCrypted($member->address->Zip); $m->birthday = date("d", strtotime($member->BirthDate)); $m->birthmonth = date("m", strtotime($member->BirthDate)); $selYear = date("Y", strtotime($member->BirthDate)); $birthYearOptions = buildBirthYearOptions($selYear); $m->gender = $member->Gender; // values from previous form submit if (!($mem_redirect = $this->layoutkit->formkit->getMemFromRedirect())) { // this is a fresh form foreach ($m as $key => $value) { $vars[$key] = $value; } $Geo = new GeoModel(); if (isset($vars['geonameid']) && !isset($vars['geonamename'])) { $vars['geonamename'] = $Geo->getDataById($vars['geonameid'])->name; }
} $Member = new MembersModel(); // set the location $result = $Member->setLocation($vars['id'], $vars['geonameid']); $errors['Geonameid'] = 'Geoname not set'; if (count($result['errors']) > 0) { $vars['errors'] = $result['errors']; } // unset($_SESSION['GeoVars']); } $callback_tag = $this->layoutkit->formkit->setPostCallback('MembersController', 'setLocationCallback'); $member = $this->member; $m = new StdClass(); $m->firstname = MOD_crypt::MemberReadCrypted($member->FirstName, ''); $m->secondname = MOD_crypt::MemberReadCrypted($member->SecondName, ''); $m->lastname = MOD_crypt::MemberReadCrypted($member->LastName, ''); $m->geonameid = $member->IdCity; $m->id = $member->id; $mem_redirect = $this->layoutkit->formkit->getMemFromRedirect(); // values from previous form submit if (!$mem_redirect || !isset($mem_redirect->post['id'])) { // this is a fresh form foreach ($m as $key => $value) { $vars[$key] = $value; } if (isset($vars['geonameid']) && !isset($vars['geonamename'])) { $geo = new GeoModel(); $location = $geo->getLocationById($vars['geonameid']); if ($location) { $country = $location->getCountry(); $parent = $location->getParent();