Seite 1 von 2

( Frage zu ) Sort memberlist per letter

Verfasst: 13.08.2006 16:04
von Red-Benz
Hi

ich habe den Mod ( Sort memberlist per letter ) eingebaut und geht alles soweit.

Nun die Frage
Wie bekomme ich das hin das in

Zeige nur die Mitglieder beginnend mit: a b c d e f g h i j k l m n o p q r s t u v w x y z ( Andere ) ( Alle )

das rot markierte als Button dargestellt wird und die Buchstaben ( a bis z ) in Großbuchstaben ??

Wer kann helfen ??

hier mal der Code

Code: Alles auswählen

###############################################
##	Hack Title:		Sort memberlist per letter
##	Hack Version:	1.0.1
##	Author:			Freakin' Booty ;-P
##	Website:		http://www.freakingbooty.tk
##	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).
##	Compatibility:	2.0.3 - 2.0.6
##
##	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: 0
##
##	History:
##		1.0.0:	Initial release
##		1.0.1:	Hack tested and confirmed to work on 2.0.4 - 2.0.6 aswell.
##				Added an HTML space so that the spacing is preserved at all times.
##
##	Author Notes:
##		None
##
##	Support:		http://www.phpbbhacks.com/forums
##	Copyright:		©2003 Sort memberlist per letter 1.0.1 - Freakin' Booty ;-P
##
###############################################
##   You downloaded this hack from phpBBHacks.com, the #1 source for phpBB related downloads.
##   Please visit http://www.phpbbhacks.com/forums for support.
###############################################
##
###############################################
##	This hack is released under the GPL License.
##	This hack can be freely used, but not distributed, without permission.
##	Intellectual Property is retained by the hack author(s) listed above.
###############################################

#
#-----[ OPEN ]--------------------------------------------
#
memberlist.php

#
#-----[ FIND ]--------------------------------------------
#
//
// End session management
//

#
#-----[ AFTER, ADD ]--------------------------------------
#
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';
}

#
#-----[ 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 

#
#-----[ BEFORE, ADD ]-------------------------------------
#
//
// Set per-letter selection
//
$others_sql = '';
$select_letter = '';
for ($i = 97; $i <= 122; $i++)
{
	$others_sql .= " AND username NOT LIKE '" . chr($i) . "%' ";
	$select_letter .= ( $by_letter == chr($i) ) ? chr($i) . '&nbsp;' : '<a href="' . append_sid("memberlist.$phpEx?letter=" . chr($i) . "&mode=$mode&order=$sort_order&start=$start") . '">' . chr($i) . '</a>&nbsp;';
}
$select_letter .= ( $by_letter == 'others' ) ? $lang['Others'] . '&nbsp;' : '<a href="' . append_sid("memberlist.$phpEx?letter=others&mode=$mode&order=$sort_order&start=$start") . '">' . $lang['Others'] . '</a>&nbsp;';
$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>';

$template->assign_vars(array(
	'L_SORT_PER_LETTER' => $lang['Sort_per_letter'],
	'S_LETTER_SELECT' => $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%' ";
}

#
#-----[ FIND ]--------------------------------------------
#
	WHERE user_id <> " . ANONYMOUS . "
	ORDER BY $order_by";

#
#-----[ REPLACE WITH ]------------------------------------
#
	WHERE user_id <> " . ANONYMOUS . "$letter_sql
	ORDER BY $order_by";

#
#-----[ FIND ]--------------------------------------------
#
	$sql = "SELECT count(*) AS total
		FROM " . USERS_TABLE . "
		WHERE user_id <> " . ANONYMOUS;

#
#-----[ REPLACE WITH ]------------------------------------
#
	$sql = "SELECT count(*) AS total
		FROM " . USERS_TABLE . "
		WHERE user_id <> " . ANONYMOUS . $letter_sql;

#
#-----[ FIND ]--------------------------------------------
#
		$pagination = generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order", $total_members, $board_config['topics_per_page'], $start). '&nbsp;';

#
#-----[ INLINE, FIND ]-------------------------------------
#
&order=$sort_order

#
#-----[ AFTER, ADD ]--------------------------------------
#
# this is before the quote!
#
&letter=$by_letter

#
#-----[ OPEN ]--------------------------------------------
#
# make sure to edit this file for every language installed
#
language/lang_english/lang_main.php

#
#-----[ FIND ]--------------------------------------------
#
//
// That's all, Folks!
// -------------------------------------------------

#
#-----[ BEFORE, ADD ]-------------------------------------
#
//
// Sort memberlist per letter
//
$lang['Sort_per_letter'] = 'Show only usernames starting with';
$lang['Others'] = 'others';
$lang['All'] = 'all';

#
#-----[ OPEN]--------------------------------------------
#
# make sure to edit this file for every template installed
#
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}:&nbsp;{S_LETTER_SELECT}{S_LETTER_HIDDEN}</span></td>
	</tr>

#
#-----[ SAVE & CLOSE ALL FILES ]--------------------------
#


Gruß
Red Benz

Verfasst: 15.08.2006 23:32
von Red-Benz
Hi

das mit den GROßBUCHSTABEN habe ich hinbekommen....

Bleibt noch die andere Frage wie ich die Buchstaben A - Z als Button darstellen kann ??

Wenn da mal einer Hilfreich zur Seite stehen könnte wäre nett.


Gruß
Red Benz

Verfasst: 16.08.2006 02:44
von Krone37
Also, ich gebe dir den Tipp nicht für jeden Buchstaben ein Button zu nehmen, da es nicht wirklich etwas bringt ;)
Denk dran:
Es gibt nicht nur DSL/ISDN Nutzer.

Verfasst: 16.08.2006 09:38
von Markus67
Hi ...

was genau ist mit Button gemeint? Ein grafischer Button oder kanns auch ein CSS-Button sein?

Dann kannst du ja eine entsprechende CSS-Klasse definieren und den Link entsprechend erweitern :wink:

Markus

Verfasst: 16.08.2006 11:38
von Red-Benz
Hi

Nicht als Bild !

sondern css, so wie in Beitrag verfassen die Felder ( Quote, Code, List,Img usw. ).

Das habe ich schon mal auf einer Seite gesehen und fands gut...

immer ein Buchstabe und einen kleinen Abstand zum nächsten.....

Gruß
Red Benz

Verfasst: 16.08.2006 16:01
von Markus67
Hi ...

dann wollen wir mal ...

suche in der memberlist.php

Code: Alles auswählen

for ($i = 97; $i <= 122; $i++) 
{ 
   $others_sql .= " AND username NOT LIKE '" . chr($i) . "%' "; 
   $select_letter .= ( $by_letter == chr($i) ) ? chr($i) . '&nbsp;' : '<a href="' . append_sid("memberlist.$phpEx?letter=" . chr($i) . "&mode=$mode&order=$sort_order&start=$start") . '">' . chr($i) . '</a>&nbsp;'; 
} 
$select_letter .= ( $by_letter == 'others' ) ? $lang['Others'] . '&nbsp;' : '<a href="' . append_sid("memberlist.$phpEx?letter=others&mode=$mode&order=$sort_order&start=$start") . '">' . $lang['Others'] . '</a>&nbsp;'; 
$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>'; 

$template->assign_vars(array(
ersetze mit:

Code: Alles auswählen

for ($i = 97; $i <= 122; $i++) 
{ 
   $others_sql .= " AND username NOT LIKE '" . chr($i) . "%' "; 
   $select_letter .= ( $by_letter == chr($i) ) ? '<span class="memberbutton">' . chr($i) . '</span>&nbsp;' : '<a class="memberbutton" href="' . append_sid("memberlist.$phpEx?letter=" . chr($i) . "&mode=$mode&order=$sort_order&start=$start") . '">' . chr($i) . '</a>&nbsp;'; 
} 
$select_letter .= ( $by_letter == 'others' ) ? '<span class="memberbutton">' . $lang['Others'] . '</span>&nbsp;' : '<a class="memberbutton" href="' . append_sid("memberlist.$phpEx?letter=others&mode=$mode&order=$sort_order&start=$start") . '">' . $lang['Others'] . '</a>&nbsp;'; 
$select_letter .= ( $by_letter == 'all' ) ? '<span class="memberbutton">' . $lang['All'] . '</span>' : '<a class="memberbutton" href="' . append_sid("memberlist.$phpEx?letter=all&mode=$mode&order=$sort_order&start=$start") . '">' . $lang['All'] . '</a>'; 

$template->assign_vars(array(
suche in der memberlist_body.tpl

Code: Alles auswählen

   <tr> 
     <td colspan="2" align="right" nowrap="nowrap"><span class="genmed">{L_SORT_PER_LETTER}:&nbsp;{S_LETTER_SELECT}{S_LETTER_HIDDEN}</span></td> 
   </tr>
ersetze mit:

Code: Alles auswählen

   <tr> 
     <td colspan="2" align="right" valign="middle" height="40" nowrap="nowrap"><span class="genmed">{L_SORT_PER_LETTER}:&nbsp;</span>{S_LETTER_SELECT}{S_LETTER_HIDDEN}</td> 
   </tr>
und dann zum Schluss das hier noch in dein Stylesheet:

Code: Alles auswählen

.memberbutton {
	font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;
	background-color : #000000;
	color : #FFFFFF;
	border-color: #C7BA9C;
	border-style: solid;
	border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px;
	padding-top: 5px;
	padding-bottom: 5px;
	padding-left: 5px;
	padding-right: 5px;
	}

a.memberbutton {
	font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;
	background-color : #FBF6E9;
	color : #3D4169;
	border-color: #C7BA9C;
	border-style: solid;
	border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px;
	padding-top: 5px;
	padding-bottom: 5px;
	padding-left: 5px;
	padding-right: 5px;
	}

a.memberbutton:visited {
	font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;
	background-color : #FBF6E9;
	color : #3D4169;
	border-color: #C7BA9C;
	border-style: solid;
	border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px;
	padding-top: 5px;
	padding-bottom: 5px;
	padding-left: 5px;
	padding-right: 5px;
	}

a.memberbutton:hover {
	font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;
	background-color : #FF0000;
	color : #3D4169;
	border-color: #C7BA9C;
	border-style: solid;
	border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px;
	padding-top: 5px;
	padding-bottom: 5px;
	padding-left: 5px;
	padding-right: 5px;
	}
Die Angaben fürs Stylesheet sind jetzt erstmal absichtlich so ausführlich da ich nicht weiss wie du die "Buttons" gerne hättest :wink:

Markus

Verfasst: 16.08.2006 17:56
von Red-Benz
Hi

Das ist ja mal super ausführlich.......................

Probiere ich nachher gleich mal aus !!

Die Button sollen dem entsprechenden Style Standart entsprechen, dann müßte man ( memberbutton ) einfach mit ( button ) ersetzen oder ?

Das ist einfach nur damit sie besser hervorgehoben werden.

Aber soweit schon mal DANKE !!

Gruß
Red Benz

Verfasst: 16.08.2006 18:31
von Markus67
Hi ...

du kannst das memberbutton mit button ersetzen ... allerdings sind dann manche Effekte weg.

Momentan kannst du den "Button" in verschiedenen Varianten anzeigen lassen.

-> Link
-> Ausgewählt
-> Mouseover

Wenn du das nicht brauchst oder möchtest kannst du die class-Angabe natürlich auf button ändern :wink:

Markus

Verfasst: 16.08.2006 18:38
von Seremela
möchte dieses addon auch installieren,
hab allerdings noch ein mod installiert

## MOD Title: Memberlist Find User
## MOD Author: Sko22 < sko22@quellicheilpc.it > (Gianluca Scerni) http://www.quellicheilpc.it/
## MOD Description: Search a username in memberlist


nun hab ich versucht das so einzubauen, klappt aber nicht,
liegt wohl daran das ich kein php kann :roll: :roll:

Code: Alles auswählen

//memberlist_find_user
//
$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';

if ( $username && isset($HTTP_POST_VARS['submituser']) )
{
	$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 username = '$username' AND user_id <> " . ANONYMOUS . " LIMIT 1";
}
else
{
//memberlist_abc
$others_sql = '';
$select_letter = '';
for ($i = 97; $i <= 122; $i++)
{
   $others_sql .= " AND username NOT LIKE '" . chr($i) . "%' ";
   $select_letter .= ( $by_letter == chr($i) ) ? chr($i) . '&nbsp;' : '<a href="' . append_sid("memberlist.$phpEx?letter=" . chr($i) . "&mode=$mode&order=$sort_order&start=$start") . '">' . chr($i) . '</a>&nbsp;';
}
$select_letter .= ( $by_letter == 'others' ) ? $lang['Others'] . '&nbsp;' : '<a href="' . append_sid("memberlist.$phpEx?letter=others&mode=$mode&order=$sort_order&start=$start") . '">' . $lang['Others'] . '</a>&nbsp;';
$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>';

$template->assign_vars(array(
   'L_SORT_PER_LETTER' => $lang['Sort_per_letter'],
   'S_LETTER_SELECT' => $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%' ";
}
//memberlist_abc
	$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";
}
//
//memberlist_find_user
//
ich hab es zuvor versucht mit else if die komponeten zu verschachteln
aber ging auch nicht :-(


Gibt es ein Mod der die Beiden beinhaltet?

Verfasst: 16.08.2006 20:03
von Red-Benz
Markus67 hat geschrieben:Hi ...

du kannst das memberbutton mit button ersetzen ... allerdings sind dann manche Effekte weg.

Momentan kannst du den "Button" in verschiedenen Varianten anzeigen lassen.

-> Link
-> Ausgewählt
-> Mouseover

Wenn du das nicht brauchst oder möchtest kannst du die class-Angabe natürlich auf button ändern :wink:

Markus
Ich verwende den Redglass Style da sind diese Effekte an allen Button standart deshalb wäre das dann mit deiner Variante doppelt.

Ich mache mich jetzt erstmal ran das ganze zu testen.............

THX für deine schnelle Hilfe.


Gruß
Red Benz