diff --git a/root/language/en/mods/portal/portal_random_member_module.php b/root/language/en/mods/portal/portal_random_member_module.php new file mode 100644 index 00000000..02b38124 --- /dev/null +++ b/root/language/en/mods/portal/portal_random_member_module.php @@ -0,0 +1,42 @@ + 'Random member', + 'RND_JOIN' => 'Join', + 'RND_POSTS' => 'Posts', + 'RND_OCC' => 'Occupation', + 'RND_FROM' => 'Location', + 'RND_WWW' => 'Web page', +)); + +?> \ No newline at end of file diff --git a/root/portal/modules/portal_random_member.php b/root/portal/modules/portal_random_member.php new file mode 100644 index 00000000..5f02c477 --- /dev/null +++ b/root/portal/modules/portal_random_member.php @@ -0,0 +1,143 @@ +lang}/mods/portal/" + */ + var $language = 'portal_random_member_module'; + + /** + * custom acp template + * file must be in "adm/style/portal/" + */ + var $custom_acp_tpl = ''; + + function get_template_side($module_id) + { + global $config, $template, $db, $user; + + switch ($db->sql_layer) + { + case 'postgres': + $sql = 'SELECT * + FROM ' . USERS_TABLE . ' + WHERE user_type <> ' . USER_IGNORE . ' + AND user_type <> ' . USER_INACTIVE . ' + ORDER BY RANDOM()'; + break; + + case 'mssql': + case 'mssql_odbc': + $sql = 'SELECT * + FROM ' . USERS_TABLE . ' + WHERE user_type <> ' . USER_IGNORE . ' + AND user_type <> ' . USER_INACTIVE . ' + ORDER BY NEWID()'; + break; + + default: + $sql = 'SELECT * + FROM ' . USERS_TABLE . ' + WHERE user_type <> ' . USER_IGNORE . ' + AND user_type <> ' . USER_INACTIVE . ' + ORDER BY RAND()'; + break; + } + + $result = $db->sql_query_limit($sql, 1); + $row = $db->sql_fetchrow($result); + + $avatar_img = get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $row['user_avatar_width'], $row['user_avatar_height']); + + $rank_title = $rank_img = ''; + get_user_rank($row['user_rank'], $row['user_posts'], $rank_title, $rank_img, $rank_img_src); + + $username = $row['username']; + $user_id = (int) $row['user_id']; + $colour = $row['user_colour']; + + $template->assign_block_vars('random_member', array( + 'USERNAME_FULL' => get_username_string('full', $user_id, $username, $colour), + 'USERNAME' => get_username_string('username', $user_id, $username, $colour), + 'USER_COLOR' => get_username_string('colour', $user_id, $username, $colour), + 'U_VIEW_PROFILE' => get_username_string('profile', $user_id, $username, $colour), + + 'RANK_TITLE' => $rank_title, + 'RANK_IMG' => $rank_img, + 'RANK_IMG_SRC' => $rank_img_src, + + 'USER_POSTS' => (int) $row['user_posts'], + 'AVATAR_IMG' => $avatar_img, + 'JOINED' => $user->format_date($row['user_regdate'], 'd.M.Y'), + 'USER_OCC' => censor_text($row['user_occ']), + 'USER_FROM' => censor_text($row['user_from']), + 'U_WWW' => censor_text($row['user_website']), + )); + $db->sql_freeresult($result); + + return 'random_member_side.html'; + } + + function get_template_acp($module_id) + { + return array( + 'title' => 'PORTAL_RANDOM_MEMBER', + 'vars' => array(), + ); + } + + /** + * API functions + */ + function install($module_id) + { + return true; + } + + function uninstall($module_id) + { + return true; + } +} + +?> \ No newline at end of file diff --git a/root/styles/prosilver/template/portal/modules/random_member_side.html b/root/styles/prosilver/template/portal/modules/random_member_side.html new file mode 100644 index 00000000..ae6d732e --- /dev/null +++ b/root/styles/prosilver/template/portal/modules/random_member_side.html @@ -0,0 +1,22 @@ + +{$LR_BLOCK_H_L} {L_PORTAL_RANDOM_MEMBER}{$LR_BLOCK_H_R} + +
{random_member.USERNAME_FULL}
+ {random_member.AVATAR_IMG}
+ {random_member.RANK_TITLE}
+ {random_member.RANK_IMG}
+
+
+ {L_RND_JOIN}:{random_member.JOINED}
+ {L_RND_POSTS}:{random_member.USER_POSTS}
+ + {L_RND_OCC}:   {random_member.USER_OCC}
+ + + {L_RND_FROM}:   {random_member.USER_FROM}
+ + + {L_RND_WWW}
+ + +{$LR_BLOCK_F_L}{$LR_BLOCK_F_R} \ No newline at end of file diff --git a/root/styles/prosilver/theme/images/portal/portal_random_member.png b/root/styles/prosilver/theme/images/portal/portal_random_member.png new file mode 100644 index 00000000..35beef8a Binary files /dev/null and b/root/styles/prosilver/theme/images/portal/portal_random_member.png differ