/** * Method to get the registered users * * @access public * @return object * @since 0.9 * @todo Complete CB integration */ function getRegisters($all_fields = false, $admin = false) { // make sure the init is done $this->getEvent(); // first, get all submissions $query = ' SELECT r.*, r.waitinglist, r.confirmed, r.confirmdate, r.submit_key, r.cancelled, u.name, pg.name as pricegroup ' . ' FROM #__redevent_register AS r ' . ' INNER JOIN #__rwf_submitters AS s ON s.id = r.sid ' . ' LEFT JOIN #__redevent_pricegroups AS pg ON pg.id = r.pricegroup_id ' . ' LEFT JOIN #__users AS u ON r.uid = u.id '; $query .= $this->_buildContentWhere(); $this->_db->setQuery($query); $submitters = $this->_db->loadObjectList(); // get answers $sids = array(); if (count($submitters)) { foreach ($submitters as $s) { $sids[] = $s->sid; } } $event = $this->getEvent(); $rfcore = new RedFormCore(); $answers = $rfcore->getSidsAnswers($sids); // add answers to registers foreach ($submitters as $k => $s) { if (isset($answers[$s->sid])) { $submitters[$k]->answers = $answers[$s->sid]; } else { $submitters[$k]->answers = null; } } return $submitters; }
/** * Method to get the registered users * * @access public * @return object * @since 0.9 * @todo Complete CB integration */ function getRegisters($form_id, $events = null, $category_id = 0, $venue_id = 0, $state_filter = 0, $filter_attending = 0) { // first, get all submissions $query = ' SELECT e.title, e.course_code, x.id as xref, x.dates, v.venue, ' . ' r.*, r.waitinglist, r.confirmed, r.confirmdate, r.submit_key, u.name, pg.name as pricegroup ' . ' FROM #__redevent_register AS r ' . ' INNER JOIN #__rwf_submitters AS s ON s.id = r.sid ' . ' INNER JOIN #__redevent_event_venue_xref AS x ON x.id = r.xref ' . ' INNER JOIN #__redevent_events AS e ON e.id = x.eventid ' . ' INNER JOIN #__redevent_event_category_xref AS xcat ON xcat.event_id = e.id ' . ' INNER JOIN #__redevent_venues AS v ON v.id = x.venueid ' . ' LEFT JOIN #__redevent_pricegroups AS pg ON pg.id = r.pricegroup_id ' . ' LEFT JOIN #__users AS u ON r.uid = u.id '; $where = array(); $where[] = ' r.confirmed = 1 '; $where[] = ' r.cancelled = 0 '; $where[] = ' s.form_id = ' . $form_id; if ($events && count($events)) { $where[] = 'e.id in (' . implode(',', $events) . ')'; } if ($category_id) { $where[] = ' xcat.category_id = ' . $category_id; } if ($venue_id) { $where[] = ' x.venueid = ' . $venue_id; } switch ($state_filter) { case 0: $where[] = ' x.published = 1 '; break; case 1: $where[] = ' x.published = -1 '; break; case 2: $where[] = ' x.published <> 0 '; break; } switch ($filter_attending) { case 1: $where[] = ' r.waitinglist = 0 '; break; case 2: $where[] = ' r.waitinglist = 1 '; break; } $query .= ' WHERE ' . implode(' AND ', $where); $query .= ' GROUP BY r.id '; $query .= ' ORDER BY e.title, x.dates '; $this->_db->setQuery($query); $submitters = $this->_db->loadObjectList(); // get answers $sids = array(); if (count($submitters)) { foreach ($submitters as $s) { $sids[] = $s->sid; } } $rfcore = new RedFormCore(); $answers = $rfcore->getSidsAnswers($sids); // add answers to registers foreach ($submitters as $k => $s) { if (isset($answers[$s->sid])) { $submitters[$k]->answers = $answers[$s->sid]; } else { $submitters[$k]->answers = null; } } return $submitters; }