newest
если ты хочешь, чтобы он еще и русский поддерживал, то вот..
Код: Выделить всё
###############################################
##	Mod Title:		Show usernames starting with a certain letter
##	Mod Version:	1.0
##	Author:			Vincent Grouls (macology@gmx.net)
##	Author, Secondary:	[R: R@m$e$ :U] (Ramses@phpBBGuru.net)
##	Description:	This enables people to search for users that have their name starting
##					with a specific letter. You can also choose "others" (meaning non-alpha
##					characters), and "all" (the regular list).
##
##	This mod is based on phpBB2 v2.0.3, but might work on any phpBB2.
## 
## 
##	Installation Level: Easy
##	Installation Time: 4-5 Minutes
##	Files To Edit: 3
##		memberlist.php
##		language/lang_english/lang_main.php
##		templates/SubSliver/memberlist_body.tpl
##
##	Included Files:
##		None
##
##	History
##		None
##
###############################################
##	This MOD is released under the GPL License. 
##	Intellectual Property is retained by the MOD Author(s) listed above 
###############################################
#
#-----[ OPEN ]--------------------------------------------
#
./memberlist.php
#
#-----[ FIND ]--------------------------------------------
#
//
// End session management
//
#
#-----[ AFTER, ADD ]--------------------------------------
#
// [start] Show usernames starting with a certain letter
if(isset($HTTP_POST_VARS['letter']))
{
	$by_letter = ($HTTP_POST_VARS['letter']) ? $HTTP_POST_VARS['letter'] : 'all';
}
else if(isset($HTTP_GET_VARS['letter']))
{
	$by_letter = ($HTTP_GET_VARS['letter']) ? $HTTP_GET_VARS['letter'] : 'all';
}
// [end] Show usernames starting with a certain letter
#
#-----[ FIND ]--------------------------------------------
#
		$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];
		break;
}
#
#-----[ AFTER, ADD ]--------------------------------------
#
// [start] Show usernames starting with a certain letter
//
// Set per-letter selection
//
$others_sql = '';
$select_letter = '';
for ($i = 65; $i <= 90; $i++)
{
	$others_sql .= " AND username NOT LIKE '" . chr($i) . "%' ";
	$select_letter .= ( $by_letter == chr($i) ) ? chr($i) : '<a href="' . append_sid("memberlist.$phpEx?letter=" . chr($i) . "&mode=$mode&order=$sort_order&start=$start") . '">' . chr($i) . '</a> ';
}
$select_letter .= ( $by_letter == 'others' ) ? $lang['Others'] : '<a href="' . append_sid("memberlist.$phpEx?letter=others&mode=$mode&order=$sort_order&start=$start") . '">' . $lang['Others'] . '</a> ';
$select_letter .= ( $by_letter == 'all' ) ? $lang['All'] : '<a href="' . append_sid("memberlist.$phpEx?letter=all&mode=$mode&order=$sort_order&start=$start") . '">' . $lang['All'] . '</a>';
$select_letter_rus = '';
for ($i = 192; $i <= 223; $i++)
{
	$others_sql .= " AND username NOT LIKE '" . chr($i) . "%' ";
	$select_letter_rus .= ( $by_letter == chr($i) ) ? chr($i) : '<a href="' . append_sid("memberlist.$phpEx?letter=" . chr($i) . "&mode=$mode&order=$sort_order&start=$start") . '">' . chr($i) . '</a> ';
}
$select_letter_rus .= "<br />";
$template->assign_vars(array(
	'L_SORT_PER_LETTER' => $lang['Sort_per_letter'],
	'S_LETTER_SELECT' => $select_letter_rus . $select_letter,
	'S_LETTER_HIDDEN' => '<input type="hidden" name="letter" value="' . $by_letter . '">')
);
if($by_letter == 'all')
{
	$letter_sql = "";
}
else if($by_letter == 'others')
{
	$letter_sql = $others_sql;
}
else
{
	$letter_sql = " AND username LIKE '$by_letter%' ";
}
// [end] Show usernames starting with a certain letter
#
#-----[ FIND ]--------------------------------------------
#
$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar 
	FROM " . USERS_TABLE . "
	WHERE user_id <> " . ANONYMOUS . "
	ORDER BY $order_by";
#
#-----[ REPLACE WITH ]------------------------------------
#
// [start] Show usernames starting with a certain letter
$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar 
	FROM " . USERS_TABLE . "
	WHERE user_id <> " . ANONYMOUS . "$letter_sql
	ORDER BY $order_by";
// [end] Show usernames starting with a certain letter
#
#-----[ FIND ]--------------------------------------------
#
	$sql = "SELECT count(*) AS total
		FROM " . USERS_TABLE . "
		WHERE user_id <> " . ANONYMOUS;
#
#-----[ REPLACE WITH ]------------------------------------
#
	// [start] Show usernames starting with a certain letter
	$sql = "SELECT count(*) AS total
		FROM " . USERS_TABLE . "
		WHERE user_id <> " . ANONYMOUS . "$letter_sql";
	// [end] Show usernames starting with a certain letter
#
#-----[ FIND ]--------------------------------------------
#
		$pagination = generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order", $total_members, $board_config['topics_per_page'], $start). ' ';
#
#-----[ REPLACE WITH ]--------------------------------------
#
		// [start] Show usernames starting with a certain letter
		$pagination = generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order&letter=$by_letter", $total_members, $board_config['topics_per_page'], $start). ' ';
		// [end] Show usernames starting with a certain letter
#
#-----[ OPEN ]--------------------------------------------
#
# (make sure to edit this file for every language)
#
./language/lang_russian/lang_main.php
#
#-----[ FIND ]--------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]-------------------------------------
#
// [start] Show usernames starting with a certain letter
$lang['Sort_per_letter'] = "Показать имена начинающиеся с";
$lang['Others'] = "Остальные";
$lang['All'] = "Все";
// [end] Show usernames starting with a certain letter
#
#-----[ OPEN]--------------------------------------------
#
# (make sure to edit this file for every template)
#
./templates/subSilver/memberlist_body.tpl
#
#-----[ FIND ]--------------------------------------------
#
	<input type="submit" name="submit" value="{L_SUBMIT}" class="liteoption" />
	</span></td>
</tr>
#
#-----[ AFTER, ADD ]--------------------------------------
#
<tr>
	<td colspan="2" align="right" nowrap="nowrap"><span class="genmed">{L_SORT_PER_LETTER}: {S_LETTER_SELECT}{S_LETTER_HIDDEN}</span></td>
</tr>
#
#-----[ SAVE & CLOSE ALL FILES ]--------------------------
#
стиль оформления оставлен первого автора...
ПыСы надо было попросить... я для 95.ру давным-давно это делал... =)