I did one for my site
modified from search.php
you might wanna give it a try
copy the below codes to a new file and name it searchusers.php
<?php
// ------------------------------------------------------------------------- //
// Coppermine Photo Gallery 1.3.0 //
// ------------------------------------------------------------------------- //
// Copyright (C) 2002,2003 Gregory DEMAR //
// http://www.chezgreg.net/coppermine/ //
// ------------------------------------------------------------------------- //
// Updated by the Coppermine Dev Team //
// (http://coppermine.sf.net/team/) //
// see /docs/credits.html for details //
// ------------------------------------------------------------------------- //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// ------------------------------------------------------------------------- //
/*
$Id: searchusers.php,v 1.5 2004/08/20 09:26:09 yoshikiwei Exp $
*/
define('IN_COPPERMINE', true);
define('SEARCHUSERS_PHP', true);
require('include/init.inc.php');
pageheader($lang_search_php[0]);
$searchusers = $HTTP_GET_VARS['searchusers'];
starttable('100%', $lang_searchusers_php[0] . " - \"$searchusers\"");
list_users($searchusers);
function list_users($name)
{
global $CONFIG, $PAGE, $FORBIDDEN_SET;
global $lang_list_users, $lang_errors, $template_user_list_info_box;
if (defined('UDB_INTEGRATION')) {
$result = udb_list_users_query($user_count);
} else {
// $sql = "SELECT user_id," . " user_name," . " COUNT(DISTINCT a.aid) as alb_count," . " COUNT(DISTINCT pid) as pic_count," . " MAX(pid) as thumb_pid " . "FROM {$CONFIG['TABLE_USERS']} AS u " . "INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON category = " . FIRST_USER_CAT . " + user_id " . "INNER JOIN {$CONFIG['TABLE_PICTURES']} AS p ON p.aid = a.aid " . "WHERE approved = 'YES' " . "$FORBIDDEN_SET " . "GROUP BY user_id " . "ORDER BY user_name ";
// Fixed correct album count DJMaze
$sql = "SELECT user_id, " .
"user_name, " .
"COUNT(DISTINCT a.aid) as alb_count, " .
"COUNT(DISTINCT pid) as pic_count, " .
"MAX(pid) as thumb_pid " .
"FROM {$CONFIG['TABLE_USERS']} AS u " .
"INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON category = " . FIRST_USER_CAT . " + user_id " .
"LEFT JOIN {$CONFIG['TABLE_PICTURES']} AS p ON (p.aid = a.aid AND approved = 'YES') " .
"WHERE user_name like '%$name%' ";
if ($FORBIDDEN_SET != "") $sql .= "AND $FORBIDDEN_SET ";
$sql .= "GROUP BY user_id " .
"ORDER BY user_name";
$result = db_query($sql);
$user_count = mysql_num_rows($result);
}
if (!$user_count) {
msg_box($lang_list_users['user_list'], $lang_list_users['no_user_gal'], '', '', '100%');
mysql_free_result($result);
return;
}
$user_per_page = $CONFIG['thumbcols'] * $CONFIG['thumbrows'];
$totalPages = ceil($user_count / $user_per_page);
$PAGE = 1;
$lower_limit = ($PAGE-1) * $user_per_page;
$upper_limit = min($user_count, $PAGE * $user_per_page);
$row_count = $upper_limit - $lower_limit;
if (defined('UDB_INTEGRATION')) {
$rowset = udb_list_users_retrieve_data($result, $lower_limit, $row_count);
} else {
$rowset = array();
$i = 0;
mysql_data_seek($result, $lower_limit);
while (($row = mysql_fetch_array($result)) && ($i++ < $row_count)) $rowset[] = $row;
mysql_free_result($result);
}
$user_list = array();
foreach ($rowset as $user) {
$user_thumb = '<img src="images/nopic.jpg" class="image" border="0" />';
$user_pic_count = $user['pic_count'];
$user_thumb_pid = $user['thumb_pid'];
$user_album_count = $user['alb_count'];
if ($user_pic_count) {
$sql = "SELECT filepath, filename, url_prefix, pwidth, pheight " . "FROM {$CONFIG['TABLE_PICTURES']} " . "WHERE pid='$user_thumb_pid'";
$result = db_query($sql);
if (mysql_num_rows($result)) {
$picture = mysql_fetch_array($result);
mysql_free_result($result);
$pic_url = get_pic_url($picture, 'thumb');
if (!is_image($picture['filename'])) {
$image_info = getimagesize($pic_url);
$picture['pwidth'] = $image_info[0];
$picture['pheight'] = $image_info[1];
}
$image_size = compute_img_size($picture['pwidth'], $picture['pheight'], $CONFIG['alb_list_thumb_size']);
$user_thumb = "<img src=\"" . get_pic_url($picture, 'thumb') . "\" {$image_size['geom']} alt=\"\" border=\"0\" class=\"image\" />";
}
}
$albums_txt = sprintf($lang_list_users['n_albums'], $user_album_count);
$pictures_txt = sprintf($lang_list_users['n_pics'], $user_pic_count);
$params = array('{USER_NAME}' => $user['user_name'],
'{USER_ID}' => $user['user_id'],
'{ALBUMS}' => $albums_txt,
'{PICTURES}' => $pictures_txt,
);
$caption = template_eval($template_user_list_info_box, $params);
$user_list[] = array('cat' => FIRST_USER_CAT + $user['user_id'],
'image' => $user_thumb,
'caption' => $caption,
);
}
theme_display_thumbnails($user_list, $user_count, '', '', 1, $PAGE, $totalPages, false, true, 'user');
}
endtable();
pagefooter();
ob_end_flush();
?>
open search.php
search for pagefooter();, above it insert
starttable(500, $lang_search_php[1]);
echo <<< EOT
<tr>
<form method="get" action="searchusers.php" name="searchcpg">
<td class="tableb" align="center" height="60">
<input type="input" style="width: 90%" name="searchusers" maxlength="255" value="" class="textinput">
</td>
</tr>
<tr>
<td colspan="8" align="center" class="tablef">
<input type="submit" value="{$lang_search_php[1]}" class="button">
</td>
</form>
</tr>
EOT;
endtable();
in your language file
find
0 => 'Search the file collection',
insert after
1 => 'Search a user',
scroll to the end of the file and insert
// ------------------------------------------------------------------------- //
// File searchusers.php - OK
// ------------------------------------------------------------------------- //
if (defined('SEARCHUSERS_PHP')) $lang_searchusers_php = array(
0 => 'Search results',
);
it should work now, hoped i didnt miss out anything