/** * Get a single member's location * * @param int Member ID * @param bool Format marker. $loadMemberData needs to be TRUE for this to happen * @param bool Load member and group data * @return mixed Members location record, or false if non-existent */ public function getMarkerByMember($memberId, $format = TRUE, $loadMemberdata = TRUE) { static $marker = array(); if (!intval($memberId)) { return false; } if (isset($marker[$memberId . '-' . ($format ? '1' : '0')])) { $_marker = $marker[$memberId . '-' . ($format ? '1' : '0')]; } else { try { $groupId = $this->getMemberGroupId(); $db = \IPS\Db::i()->select('*', array('membermap_markers', 'mm'), array('mm.marker_member_id=? AND mm.marker_parent_id=?', intval($memberId), intval($groupId))); if ($loadMemberdata) { $db->join(array('core_members', 'm'), 'mm.marker_member_id=m.member_id'); $db->join(array('core_groups', 'g'), 'm.member_group_id=g.g_id'); } $_marker = $db->first(); if (!$format or !$loadMemberdata) { $_marker = \IPS\membermap\Markers\Markers::constructFromData($_marker); } $marker[$memberId . '-' . ($format ? '1' : '0')] = $_marker; } catch (\UnderflowException $e) { return false; } } return ($format and $loadMemberdata) ? $this->formatMemberMarkers(array($_marker)) : $_marker; }
/** * Set last file data * * @param \IPS\downloads\File|NULL $file The latest file or NULL to work it out * @return void */ public function setlastMarker(\IPS\membermap\Markers\Markers $marker = NULL) { if ($marker === NULL) { try { $marker = \IPS\membermap\Markers\Markers::constructFromData(\IPS\Db::i()->select('*', 'membermap_markers', array('marker_parent_id=? AND marker_open=1', $this->id), 'marker_updated DESC, marker_added DESC', 1)->first()); } catch (\UnderflowException $e) { $this->last_marker_id = 0; $this->last_marker_date = 0; return; } } $this->last_marker_id = $marker->id; $this->last_marker_date = $marker->updated > $marker->added ? $marker->updated : $marker->added; }