Show usernames starting with a certain letter

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
camerino
Mitglied
Beiträge: 115
Registriert: 03.03.2002 01:00
Wohnort: Italien
Kontaktdaten:

Show usernames starting with a certain letter

Beitrag von camerino »

###############################################
## Mod Title: Show usernames starting with a certain letter
## Mod Version: 1.0
## Author: Vincent Grouls (macology@gmx.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 ]--------------------------------------
#
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 ]--------------------------------------------
#
$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];
}

#
#-----[ AFTER, 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) : '<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'] : '<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 ]--------------------------------------------
#
generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order

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

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

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

#
#-----[ BEFORE, ADD ]-------------------------------------
#
//
// Sort 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)
#
./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 ]--------------------------
#

Hallo zusammen,
habe ein Problem mit diesem MOD , er zeigt nur eine Seite an, dass heisst
zum Beispiel " zeige alle Members in alphabetischer Reihenfolge an" ,zeigt er eine von vier Seiten an, wenn ich auf eine andere Seite wechseln will, nix da.

Danke im voraus für die Hilfe
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe Der kleine phpBB.de Knigge
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

url deines boards bitte...

ah
Benutzeravatar
camerino
Mitglied
Beiträge: 115
Registriert: 03.03.2002 01:00
Wohnort: Italien
Kontaktdaten:

Beitrag von camerino »

Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe Der kleine phpBB.de Knigge
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Gibt's auch 'nen Anfangsbuchstaben, wo das Problem auftritt?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

@PhilippK: klick einfach mal auf das tutti am schluss... und dann versuch eine seite weiter zu blättern ;-)

@camerino: also zeig mir doch mal die zeile die mit

Code: Alles auswählen

generate_pagination("memberlist.$phpEx
anfängt...

ah
Benutzeravatar
camerino
Mitglied
Beiträge: 115
Registriert: 03.03.2002 01:00
Wohnort: Italien
Kontaktdaten:

Beitrag von camerino »

Fängt schon bei "tutti" = alle und unten auf der Seite wird angezeigt ,dass 4 vorhanden sind, ich weiss nicht welche Buchstabe dafür reichen würde.
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe Der kleine phpBB.de Knigge
Benutzeravatar
camerino
Mitglied
Beiträge: 115
Registriert: 03.03.2002 01:00
Wohnort: Italien
Kontaktdaten:

Beitrag von camerino »

Hier die gewünschte Zeile:
$pagination = generate_pagination("memberlist.$phpEx?mode=$mode&&letter=$by_letter,order=$sort_order", $total_members, $board_config['topics_per_page'], $start). '&nbsp;';
Danke für die Hilfe
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe Der kleine phpBB.de Knigge
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Re: Show usernames starting with a certain letter

Beitrag von saerdnaer »

du hast nicht genau das gemach was in der anleitung stehn:
#
#-----[ FIND ]--------------------------------------------
#
generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order

#
#-----[ AFTER, ADD ]--------------------------------------
#
# (this is before the quote!)
#
&letter=$by_letter
also musst du jetzt

Code: Alles auswählen

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

Code: Alles auswählen

$pagination = generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order&letter=$by_letter", $total_members, $board_config['topics_per_page'], $start). '&nbsp;'; 
dann sollte die sache funktioneren...

ah
Benutzeravatar
camerino
Mitglied
Beiträge: 115
Registriert: 03.03.2002 01:00
Wohnort: Italien
Kontaktdaten:

Beitrag von camerino »

Bingo....vielen Dank Euch beiden , jetzt funzt es :)
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe Der kleine phpBB.de Knigge
MacDanEl

Beitrag von MacDanEl »

Hi der Hack funzt wunderbar,
ich hab nur noch ein kleines kosmetisches Anliegen:
Wenn ich einen Buchstaben ausgewählt habe (z.B. "p"), dann fehlt hinter diesem Buchstaben ein Leerzeichen. Wo muss ich das in den Code einfügen?
Was muss ich als Start und Endwert ins Array reinschreiben um Grossbuchstaben zu bekommen?

Grüße MacDanEl
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“