function index()
 {
     if (!CheckPermissions('vip')) {
         return;
     }
     //load the required models and libraries
     $this->load->model('pr_model', 'pr_model');
     $this->load->model('members_model', 'members_model');
     $this->load->model('directory_model');
     //setup the page properties
     $this->pages_model->SetPageCode('viparea_contactpr');
     //set the defaults for the email
     $signature = $this->directory_model->GetOrganisationEmailSignature(VIPOrganisation());
     $subject = '';
     $content = "\r\r" . $signature;
     //get the rep data from the pr model
     $rep_data = $this->pr_model->GetOrganisationRatings(VipOrganisation());
     if (isset($rep_data['rep'])) {
         $rep = $rep_data['rep'];
         $rep['email'] = $this->members_model->GetMemberEmail($rep['id']);
         $rep['has_rep'] = true;
     } else {
         $rep['name'] = $this->config->item('pr_officer_name');
         $rep['email'] = $this->config->item('pr_officer_email_address');
         $rep['has_rep'] = false;
     }
     //users data
     $user_name = $this->members_model->GetMemberName($this->user_auth->entityId);
     if (isset($_POST['submit_save_advert'])) {
         if ($_POST['a_subject'] == '') {
             $this->messages->AddMessage('error', 'You must enter a subject for the email.');
             $content = $_POST['a_content'];
         } else {
             if ($_POST['a_content'] == '') {
                 $this->messages->AddMessage('error', 'You must enter a message for the email.');
                 $subject = $_POST['a_subject'];
             } else {
                 //no errors so send the email
                 $this->load->helper('yorkermail');
                 $to = $rep['email'];
                 $from = VipOrganisationName() . ' - ' . $user_name . ' <' . $this->members_model->GetMemberEmail($this->user_auth->entityId) . '>';
                 //try to send the email, report fail if error occurs
                 try {
                     yorkermail($to, $_POST['a_subject'], $_POST['a_content'], $from);
                     $this->messages->AddMessage('success', 'The email has been sent.');
                 } catch (Exception $e) {
                     $this->main_frame->AddMessage('error', $e->getMessage());
                 }
             }
         }
     }
     $data = array('main_text' => $this->pages_model->GetPropertyWikitext('main_text'), 'message_pr_target' => vip_url('contactpr'), 'rep' => $rep, 'subject' => $subject, 'content' => $content);
     $this->main_frame->SetContentSimple('viparea/contactpr', $data);
     $this->main_frame->Load();
 }
 function email()
 {
     if (!CheckPermissions('vip+pr')) {
         return;
     }
     //setup page and tabs
     $this->pages_model->SetPageCode('viparea_settings_email');
     $this->_SetupTabs('email');
     //load the required models
     $this->load->model('directory_model');
     //check to see if a signature update post has occured
     if (isset($_POST['save_email_sig'])) {
         $this->directory_model->UpdateOrganisationEmailSignature(VIPOrganisation(), $_POST['email_signature']);
         $this->messages->AddMessage('success', 'Your organisations signature has been updated.');
     }
     //get signature
     $signature = $this->directory_model->GetOrganisationEmailSignature(VIPOrganisation());
     $data = array('main_text' => $this->pages_model->GetPropertyWikitext('main_text'), 'signature' => $signature, 'target' => vip_url() . '/account/email');
     $this->load->helper('string');
     $this->main_frame->SetContentSimple('viparea/account_email', $data);
     $this->main_frame->SetTitleParameters(array('organisation' => VipOrganisationName()));
     $this->main_frame->Load();
 }
 /**
  */
 function compose($members = NULL)
 {
     if (!CheckPermissions('vip')) {
         return;
     }
     //add any members in the session to the list of recipients
     if (isset($_SESSION['members_email_to']) && is_array($_SESSION['members_email_to'])) {
         $members = $_SESSION['members_email_to'];
         $_SESSION['members_email_to'] = NULL;
         //clear the send list
     } else {
         $members = array();
     }
     //set the defaults for the email
     $signature = $this->directory_model->GetOrganisationEmailSignature(VIPOrganisation());
     $subject = '';
     $content = "\r\r" . $signature;
     if (!empty($_POST)) {
         $selected_members = array();
         //make an array of selected member ids where checked boxes are ticked
         if (isset($_POST['cb'])) {
             foreach ($_POST['cb'] as $key => $value) {
                 if ($value = 'on') {
                     $selected_members[] = $key;
                 }
             }
         } else {
             $selected_members = array();
         }
         if (count($selected_members) == 0) {
             $this->messages->AddMessage('error', 'You must select some members to send the email to.');
             $content = $_POST['a_content'];
             $subject = $_POST['a_subject'];
         } else {
             if ($_POST['a_subject'] == '') {
                 $this->messages->AddMessage('error', 'You must enter a subject for the email.');
                 $members = $selected_members;
                 $content = $_POST['a_content'];
             } else {
                 if ($_POST['a_content'] == '') {
                     $this->messages->AddMessage('error', 'You must enter a message for the email.');
                     $members = $selected_members;
                     $subject = $_POST['a_subject'];
                 } else {
                     //no errors so send the email
                     $this->load->helper('yorkermail');
                     foreach ($selected_members as $member) {
                         $member_emails[] = $this->members_model->GetMemberEmail($member);
                     }
                     $from = $this->members_model->GetMemberEmail($this->user_auth->entityId);
                     $from = VipOrganisationName() . ' <' . $from . '>';
                     //try to send the email, report fail if error occurs
                     try {
                         yorkermail(array(), $_POST['a_subject'], $_POST['a_content'], $from, array(), $member_emails);
                         $this->messages->AddMessage('success', 'The email has been sent.');
                     } catch (Exception $e) {
                         $this->main_frame->AddMessage('error', $e->getMessage());
                     }
                 }
             }
         }
     }
     //set page code and setup tab nav bar
     $this->pages_model->SetPageCode('viparea_members_compose');
     $this->_SetupTabs('compose');
     //view data
     $data = array('main_text' => $this->pages_model->GetPropertyWikitext('main_text'), 'target' => $this->uri->uri_string(), 'to_members' => $members, 'subject' => $subject, 'content' => $content, 'from' => VipOrganisationName() . ' <' . $this->members_model->GetMemberEmail($this->user_auth->entityId) . '>');
     // get member details
     $member_details = $this->members_model->GetMemberDetails(VipOrganisationId());
     $members = array();
     //add required member info to the data array
     foreach ($member_details as $details) {
         $data['members'][] = array('id' => $details['user_id'], 'name' => $details['firstname'] . ' ' . $details['surname'], 'email' => $details['email']);
     }
     //$this->messages->AddDumpMessage('members', $members);
     //set content view
     $this->main_frame->SetContentSimple('members/compose', $data);
     // Load the main frame
     $this->main_frame->Load();
 }