/** * Get a list of oranizations used throughout member profiles * * @apiMethod GET * @apiUri /members/organizations * * @apiParameter { * "name": "orgID", * "description": "The row ID of an organization", * "type": "integer", * "required": false, * "default": null * } * @return void */ public function organizationsTask() { include_once dirname(dirname(__DIR__)) . DS . 'tables' . DS . 'organization.php'; $database = App::get('db'); $filters = array(); $obj = new \Components\Members\Tables\Organization($database); $organizations = $obj->find('all', $filters); // Encode sessions for return $object = new stdClass(); $object->organizations = $organizations; $this->send($object); }
/** * populate the geosearch markers table * * @param object $job \Components\Cron\Models\Job * @return boolean */ public function getLocationData(\Components\Cron\Models\Job $job) { //setup database object $this->database = App::get('db'); //get the relevant tables require_once PATH_CORE . DS . 'components' . DS . 'com_members' . DS . 'tables' . DS . 'profile.php'; require_once PATH_CORE . DS . 'components' . DS . 'com_geosearch' . DS . 'tables' . DS . 'geosearchmarkers.php'; require_once PATH_CORE . DS . 'components' . DS . 'com_jobs' . DS . 'tables' . DS . 'job.php'; require_once PATH_CORE . DS . 'components' . DS . 'com_events' . DS . 'tables' . DS . 'event.php'; require_once PATH_CORE . DS . 'components' . DS . 'com_members' . DS . 'tables' . DS . 'organization.php'; // get current markers $markers = new \Components\Geosearch\Tables\GeosearchMarkers($this->database); $markers = $markers->getMarkers(array(), 'array'); // user profiles $objProfile = new \Components\Members\Tables\Profile($this->database); $profiles = $objProfile->selectWhere('uidNumber', 'public=1'); // jobs $objJob = new \Components\Jobs\Tables\Job($this->database); $jobs = $objJob->get_openings(); // events $objEvents = new \Components\Events\Tables\Event($this->database); $events = $objEvents->getEvents('year', array('year' => date('Y'), 'category' => 0)); // organizations $objOrganizations = new \Components\Members\Tables\Organization($this->database); $organizations = $objOrganizations->find('all'); if (count($markers) > 0) { //separate by scope $existingMarkers = $this->_separatebyScope($markers); //unique entries foreach ($existingMarkers as $class => &$existing) { switch ($class) { case 'markerJobIDs': $identifier = 'code'; $all = $jobs; break; case 'markerMemberIDs': $identifier = 'uidNumber'; $all = $profiles; break; case 'markerEventIDs': $identifier = 'id'; $all = $events; break; case 'markerOrganizationIDs': $identifier = 'id'; $all = $organizations; break; default: $identifier = ''; $all = array(); break; } //end switch if ($identifier != '' && count($all) > 0) { //var_dump($all); $existing = $this->_distill($existing, $all, $identifier); } } $markerMemberIDs = $this->_scopify($existingMarkers['markerMemberIDs'], 'member'); $markerJobIDs = $this->_scopify($existingMarkers['markerJobIDs'], 'job'); $markerEventIDs = $this->_scopify($existingMarkers['markerEventIDs'], 'event'); $markerOrganizationIDs = $this->_scopify($existingMarkers['markerOrganizationIDs'], 'organization'); } elseif (count($markers) == 0) { $markerMemberIDs = array(); $markerJobIDs = array(); $markerEventIDs = array(); $markerOrganizationIDs = array(); foreach ($profiles as $profile) { $obj = array(); $obj['scope'] = 'member'; $obj['scope_id'] = $profile->uidNumber; array_push($markerMemberIDs, $obj); } foreach ($jobs as $job) { $obj = array(); $obj['scope'] = 'job'; $obj['scope_id'] = $job->code; array_push($markerJobIDs, $obj); } foreach ($events as $event) { $obj = array(); $obj['scope'] = 'event'; $obj['scope_id'] = $event->id; array_push($markerEventIDs, $obj); } foreach ($organizations as $organization) { $obj = array(); $obj['scope'] = 'organization'; $obj['scope_id'] = $organization->id; array_push($markerEventIDs, $obj); } } //merge into one array $newMarkers = $this->_merger($markerMemberIDs, $markerJobIDs, $markerEventIDs, $markerOrganizationIDs); $creations = $this->_doGeocode($newMarkers, $objProfile, $objJob, $objEvents, $objOrganizations); foreach ($creations as $creation) { $m = new \Components\Geosearch\Tables\GeosearchMarkers($this->database); $m->addressLatitude = $creation->location->getLatitude(); $m->addressLongitude = $creation->location->getLongitude(); $m->scope_id = $creation->scope_id; $m->scope = $creation->scope; $m->store(true); } return true; }
$html .= "\t\t" . '</select>' . "\n"; $html .= $message; $html .= "\t\t\t" . '</label>' . "\n"; } if ($this->registration->Organization != REG_HIDE) { $required = $this->registration->Organization == REG_REQUIRED ? '<span class="required">' . Lang::txt('REQUIRED') . '</span>' : ''; $message = !empty($this->xregistration->_invalid['org']) ? '<p class="error">' . $this->xregistration->_invalid['org'] . '</p>' : ''; $fieldclass = $message ? ' class="fieldWithErrors"' : ''; $organization = stripslashes($this->profile->get('organization')); $orgtext = $organization; $org_known = 0; //$orgs = array(); include_once PATH_CORE . DS . 'components' . DS . 'com_members' . DS . 'tables' . DS . 'organization.php'; $database = App::get('db'); $xo = new \Components\Members\Tables\Organization($database); $orgs = $xo->find('list'); foreach ($orgs as $org) { $org_known = $org->organization == $organization ? 1 : 0; } $html .= "\t\t" . '<label' . $fieldclass . '>' . "\n"; $html .= "\t\t\t" . Lang::txt('ORG') . ': ' . $required . "\n"; $html .= "\t\t\t" . '<select name="org">' . "\n"; $html .= "\t\t\t\t" . '<option value=""'; if (!$org_known) { $html .= ' selected="selected"'; } $html .= '>'; if ($org_known) { $html .= Lang::txt('(other / none)'); } else { $html .= Lang::txt('(select from list or enter below)');