예제 #1
0
 function getEmails($cids = null)
 {
     $where = array('r.xref = ' . $this->_xref);
     if (is_array($cids) && !empty($cids)) {
         $where[] = ' r.id IN (' . implode(',', $cids) . ')';
     } else {
         $where[] = ' r.confirmed = 1 ';
     }
     // need to get sids for redform core
     $query = ' SELECT r.sid ' . ' FROM #__redevent_register AS r ' . ' INNER JOIN #__rwf_submitters AS s ON s.id = r.sid ' . ' WHERE ' . implode(' AND ', $where);
     $this->_db->setQuery($query);
     $sids = $this->_db->loadResultArray();
     if (empty($sids)) {
         return false;
     }
     $rfcore = new RedFormCore();
     $answers = $rfcore->getSidsFieldsAnswers($sids);
     $emails = array();
     foreach ($answers as $fields) {
         $res = array();
         foreach ($fields as $field) {
             switch ($field->fieldtype) {
                 case 'username':
                     $res['username'] = $field->answer;
                     break;
                 case 'fullname':
                     $res['fullname'] = $field->answer;
                     break;
                 case 'email':
                     $res['email'] = $field->answer;
                     break;
             }
         }
         if (!isset($res['email'])) {
             JError::raiseWarning(0, JText::_('COM_REDEVENT_EMAIL_ATTENDEES_NO_EMAIL_FIELD'));
             return false;
         }
         if ((!isset($res['fullname']) || empty($res['fullname'])) && isset($res['username'])) {
             $res['fullname'] = $res['username'];
         }
         $emails[] = $res;
     }
     //		echo '<pre>';print_r($emails); echo '</pre>';exit;
     return $emails;
 }
예제 #2
0
 /**
  * return array of attendees emails indexed by sid
  * 
  * @param int $xref
  * @param int $include_wl include waiting list
  * @return array
  */
 function getAttendeesEmails($xref, $include_wl)
 {
     $query = ' SELECT r.sid ' . ' FROM #__redevent_register AS r ' . ' WHERE r.xref = ' . $xref . '   AND r.confirmed = 1 ' . ($include_wl == 0 ? ' AND r.waitinglist = 0 ' : '') . '   AND r.cancelled = 0 ';
     $this->_db->setQuery($query);
     $res = $this->_db->loadResultArray();
     if (!count($res)) {
         return false;
     }
     $emails = array();
     $rfcore = new RedFormCore();
     $answers = $rfcore->getSidsFieldsAnswers($res);
     foreach ($answers as $sid => $a) {
         foreach ($a as $field) {
             if ($field->fieldtype == 'email') {
                 $emails[$sid] = $field->answer;
                 break;
             }
         }
     }
     return $emails;
 }