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; }
/** * 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; }