/** * Latest member block, shows name and join date for X latest members * * @param mixed[] $parameters * 'limit' => number of members to show * @param int $id - not used in this block * @param boolean $return_parameters if true returns the configuration options for the block */ function sp_latestMember($parameters, $id, $return_parameters = false) { global $scripturl, $txt, $color_profile; $block_parameters = array('limit' => 'int'); if ($return_parameters) { return $block_parameters; } // Load in the latest members require_once SUBSDIR . '/Members.subs.php'; $limit = !empty($parameters['limit']) ? (int) $parameters['limit'] : 5; $rows = recentMembers($limit); // Get them ready for color ids and the template $members = array(); $colorids = array(); foreach ($rows as $row) { if (!empty($row['id_member'])) { $colorids[$row['id_member']] = $row['id_member']; } $members[] = array('id' => $row['id_member'], 'name' => $row['real_name'], 'href' => $scripturl . '?action=profile;u=' . $row['id_member'], 'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>', 'date' => standardTime($row['date_registered'], '%d %b')); } // No recent members, suppose it could happen if (empty($members)) { echo ' ', $txt['error_sp_no_members_found']; return; } // Using member profile colors if (!empty($colorids) && sp_loadColors($colorids) !== false) { foreach ($members as $k => $p) { if (!empty($color_profile[$p['id']]['link'])) { $members[$k]['link'] = $color_profile[$p['id']]['link']; } } } echo ' <ul class="sp_list">'; foreach ($members as $member) { echo ' <li ', sp_embed_class('dot'), '>', $member['link'], ' - <span class="smalltext">', $member['date'], '</span></li>'; } echo ' </ul>'; }
/** * Retrieve the list of members from database. * The array will be generated to match the format. * * @param string $xml_format * @return mixed[] */ public function action_xmlmembers($xml_format) { global $scripturl; if (!allowedTo('view_mlist')) { return array(); } // Find the most recent members. require_once SUBSDIR . '/Members.subs.php'; $members = recentMembers((int) $this->_limit); // No data yet $data = array(); foreach ($members as $member) { // Make the data look rss-ish. if ($xml_format == 'rss' || $xml_format == 'rss2') { $data[] = array('title' => cdata_parse($member['real_name']), 'link' => $scripturl . '?action=profile;u=' . $member['id_member'], 'comments' => $scripturl . '?action=pm;sa=send;u=' . $member['id_member'], 'pubDate' => gmdate('D, d M Y H:i:s \\G\\M\\T', $member['date_registered']), 'guid' => $scripturl . '?action=profile;u=' . $member['id_member']); } elseif ($xml_format == 'rdf') { $data[] = array('title' => cdata_parse($member['real_name']), 'link' => $scripturl . '?action=profile;u=' . $member['id_member']); } elseif ($xml_format == 'atom') { $data[] = array('title' => cdata_parse($member['real_name']), 'link' => $scripturl . '?action=profile;u=' . $member['id_member'], 'published' => gmstrftime('%Y-%m-%dT%H:%M:%SZ', $member['date_registered']), 'updated' => gmstrftime('%Y-%m-%dT%H:%M:%SZ', $member['last_login']), 'id' => $scripturl . '?action=profile;u=' . $member['id_member']); } else { $data[] = array('name' => cdata_parse($member['real_name']), 'time' => htmlspecialchars(strip_tags(standardTime($member['date_registered'])), ENT_COMPAT, 'UTF-8'), 'id' => $member['id_member'], 'link' => $scripturl . '?action=profile;u=' . $member['id_member']); } } return $data; }