Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 /**
  * 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();