Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Liste von Usern die Inhalt in bestimmten CUstomProfileField haben
#1
Hallo,
ich würde gerne in meinem Forum eine Liste aller Leute erstellen ähnlich wie die Forum Team Seite - nur dass dort nur Mitglieder die ein bestimmtes Custom Profile Field ausgefüllt haben erscheinen sollen.

Ich habe die Seite an sich schon erstellt und das template dazu:

PHP-Code:
<html>
<
head>
<
title>{$settings['bbname']} - Impressum</title>
{
$headerinclude}
</
head>
<
body>
{
$header}
<
table border="0" cellspacing="{$theme['borderwidth']}cellpadding="{$theme['tablespace']}class="tborder">
<
tr>
<
td class="thead" colspan="3"><strong>Awards</strong></td>
</
tr>
<
tr>
<
td class="tcat"><span class="smalltext"><strong>Username</strong></span></td>
<
td class="tcat" align="center"><span class="smalltext"><strong>Awards</strong></span></td>
<
td class="tcat" align="center"><span class="smalltext"><strong>PM</strong></span></td>
</
tr>
</
table>
{
$footer}
</
body>
</
html

Mein Problem ist nun die Abfrage - wie ich überprüfeich ob das CPF ausgefüllt ist und wenn ja wird der User dort erscheinen, wenn nein dann eben nicht. Erscheinen sollen die User nach ID, eine sonstige SOrtierung ist nicht nötig.

Wer kann mir helfen - schon im Vorraus vielen Dank Smile
Zitieren
#2
Hallo MH_Razen,

füge folgenden Code in die php-Datei ein:
PHP-Code:
$query $db->query("
    SELECT u.uid, u.username, uf.fidX
    FROM "
.TABLE_PREFIX."users u
    LEFT JOIN "
.TABLE_PREFIX."userfields uf ON (u.uid = uf.ufid)
    WHERE uf.fidX != ''
    ORDER BY u.uid ASC
"
);

while(
$spec_user $db->fetch_array($query))
{
    
$special_userlist .= "<tr>
<td class=\"tcat\"><span class=\"smalltext\">
{$spec_user['username']}</span></td>
<td class=\"tcat\" align=\"center\"><span class=\"smalltext\">
{$spec_user['fidX']}</span></td>
<td class=\"tcat\" align=\"center\"><a href=\"private.php?action=send&amp;uid=
{$spec_user['uid']}\"><span class=\"smalltext\">Send PM</span></a></td>
</tr>
"
;

und ersetze jew. "fidX" durch dein Profilfeld; z. B. "fid4".

Im Template kannst du dann die Liste mit "{$special_userlist}" ausgeben.
Zitieren
#3
Morgen zusammen Wink

Sry, dass ich jetzt ne Frage in deinem Thread stelle, MH-Razen :undecided:

Kann ich auch eine Liste ausgeben, in der alle Mitglieder von verschiedenen Banutzergruppen angezeigt werden? Ich möchte gerne normale User rausfiltern und nur die Mitglieder, welche sich in einer der von mir gewählten Benutzergruppe befinden anzeigen. Ich bin da in Sachen PHP/MySQL leider noch relativ unerfahren :|
Zitieren
#4
Na ich hoff das wird nicht chaotisch, aber da ich das auch interessant finde, von mir aus...

Hab den Code etz mal eingefügt:

PHP-Code:
<?php
define
("IN_MYBB"1);
//define("NO_ONLINE", 1); // Wenn Seite nicht in Wer ist online-Liste auftauchen soll
 
require("global.php");
 
add_breadcrumb("Awards");


 
eval(
"\$showawards = \"".$templates->get("showawards")."\";"); // Hier wird das erstellte Template geladen
output_page($showawards);


$query $db->query("
    SELECT u.uid, u.username, uf.fid15
    FROM "
.TABLE_PREFIX."users u
    LEFT JOIN "
.TABLE_PREFIX."userfields uf ON (u.uid = uf.ufid)
    WHERE uf.fid15 != ''
    ORDER BY u.uid ASC
"
);

while(
$spec_user $db->fetch_array($query))
{
    
$special_userlist .= "<tr>
<td class=\"tcat\"><span class=\"smalltext\">
{$spec_user['username']}</span></td>
<td class=\"tcat\" align=\"center\"><span class=\"smalltext\">
{$spec_user['fid15']}</span></td>
<td class=\"tcat\" align=\"center\"><a href=\"private.php?action=send&amp;uid=
{$spec_user['uid']}\"><span class=\"smalltext\">Send PM</span></a></td>
</tr>
"
;

?>

es kommt aber nix, keine fehlermeldung, einfach nur das template, aber keine user

PHP-Code:
<html>
<
head>
<
title>{$settings['bbname']} - Awards</title>
{
$headerinclude}
</
head>
<
body>
{
$header}
<
table border="0" cellspacing="{$theme['borderwidth']}cellpadding="{$theme['tablespace']}class="tborder">
<
tr>
<
td class="thead" colspan="3"><strong>Awards</strong></td>
</
tr>
<
tr>
<
td class="tcat"><span class="smalltext"><strong>Username</strong></span></td>
<
td class="tcat" align="center"><span class="smalltext"><strong>Awards</strong></span></td>
<
td class="tcat" align="center"><span class="smalltext"><strong>PM</strong></span></td>
</
tr>

{
$special_userlist}

</
table>
{
$footer}
</
body>
</
html
Zitieren
#5
Wenn du erst das Template lädst und ausgibst, werden später definierte Variablen natürlich nicht beachtet.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#6
Die Abfrage muss vor der Ausgabe des Templates ("eval()") ausgeführt werden:
PHP-Code:
<?php
define
("IN_MYBB"1);
//define("NO_ONLINE", 1); // Wenn Seite nicht in Wer ist online-Liste auftauchen soll
 
require("global.php");
 
add_breadcrumb("Awards");

$query $db->query("
    SELECT u.uid, u.username, uf.fid15
    FROM "
.TABLE_PREFIX."users u
    LEFT JOIN "
.TABLE_PREFIX."userfields uf ON (u.uid = uf.ufid)
    WHERE uf.fid15 != ''
    ORDER BY u.uid ASC
"
);

while(
$spec_user $db->fetch_array($query))
{
    
$special_userlist .= "<tr>
<td class=\"tcat\"><span class=\"smalltext\">
{$spec_user['username']}</span></td>
<td class=\"tcat\" align=\"center\"><span class=\"smalltext\">
{$spec_user['fid15']}</span></td>
<td class=\"tcat\" align=\"center\"><a href=\"private.php?action=send&amp;uid=
{$spec_user['uid']}\"><span class=\"smalltext\">Send PM</span></a></td>
</tr>
"
;

 
eval(
"\$showawards = \"".$templates->get("showawards")."\";"); // Hier wird das erstellte Template geladen
output_page($showawards);
?>
Zitieren
#7
Wootie, du bist mein Gott Big Grin

So jetzt noch zwei letzte Fragen:

1. In der fid wird BB-Code verwendet - wie kann ich dem in diesem Feld verwenden?

2. Wie kann ich für das Send-PM anstelle Textlink das Bildchen das auch in der richtigen Mitgliereliste verwendet wird anzeigen?

EDIT:


Doch noch ne dritte - kann ich die Zeilen alternierend in \"trow1\" und \"trow2\" gestalten?
Zitieren
#8
Probiere es einmal mit diesem Code:
PHP-Code:
<?php
define
("IN_MYBB"1);
//define("NO_ONLINE", 1); // Wenn Seite nicht in Wer ist online-Liste auftauchen soll

require_once "./global.php";
require_once 
MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;
 
add_breadcrumb("Awards");

$query $db->query("
    SELECT u.uid, u.username, uf.fid15
    FROM "
.TABLE_PREFIX."users u
    LEFT JOIN "
.TABLE_PREFIX."userfields uf ON (u.uid = uf.ufid)
    WHERE uf.fid15 != ''
    ORDER BY u.uid ASC
"
);

while(
$spec_user $db->fetch_array($query))
{
    
$bgcolor alt_trow();
    
$spec_user['fid15'] = $parser->parse_mycode($spec_user['fid15']);
    
    
$special_userlist .= "<tr>
<td class=\"
{$bgcolor}\"><span class=\"smalltext\">{$spec_user['username']}</span></td>
<td class=\"
{$bgcolor}\" align=\"center\"><span class=\"smalltext\">{$spec_user['fid15']}</span></td>
<td class=\"
{$bgcolor}\" align=\"center\">
    <a href=\"private.php?action=send&amp;uid=
{$spec_user['uid']}\">
        <img src=\"
{$theme['imglangdir']}/postbit_pm.gif\" alt=\"Send PM\" title=\"Send PM\" />
    </a></td>
</tr>
"
;

 
eval(
"\$showawards = \"".$templates->get("showawards")."\";"); // Hier wird das erstellte Template geladen
output_page($showawards);
?>
Zitieren
#9
1. PM Button -> funktioniert
2. Alternierendes Aussehen -> funktioniert
3. Ein Teil des BB-Codes funktioniert, das hier aber nicht:

[img]blabla.image[/img]

Letztens: Kann man die Usernamen noch mit dem Profil verknüpfen?
Zitieren
#10
Wolltest du nicht nur die Abfrage geklärt haben? Wink

Probiere es noch einmal mit diesem Code:
PHP-Code:
<?php
define
("IN_MYBB"1);
//define("NO_ONLINE", 1); // Wenn Seite nicht in Wer ist online-Liste auftauchen soll

require_once "./global.php";
require_once 
MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;
$parser_options['allow_imgcode'] = 1;
 
add_breadcrumb("Awards");

$query $db->query("
    SELECT u.uid, u.username, uf.fid15
    FROM "
.TABLE_PREFIX."users u
    LEFT JOIN "
.TABLE_PREFIX."userfields uf ON (u.uid = uf.ufid)
    WHERE uf.fid15 != ''
    ORDER BY u.uid ASC
"
);

while(
$spec_user $db->fetch_array($query))
{
    
$bgcolor alt_trow();
    
$spec_user['fid15'] = $parser->parse_mycode($spec_user['fid15'], $parser_options);
    
    
$special_userlist .= "<tr>
<td class=\"
{$bgcolor}\">
    <a href=\"member.php?action=profile&amp;uid=
{$spec_user['uid']}\"><span class=\"smalltext\">{$spec_user['username']}</span></a>
</td>
<td class=\"
{$bgcolor}\" align=\"center\"><span class=\"smalltext\">{$spec_user['fid15']}</span></td>
<td class=\"
{$bgcolor}\" align=\"center\">
    <a href=\"private.php?action=send&amp;uid=
{$spec_user['uid']}\">
        <img src=\"
{$theme['imglangdir']}/postbit_pm.gif\" alt=\"Send PM\" title=\"Send PM\" />
    </a>
</td>
</tr>
"
;
}
 
eval(
"\$showawards = \"".$templates->get("showawards")."\";"); // Hier wird das erstellte Template geladen
output_page($showawards);
?>
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  PN nur von Usern aus der Freundesliste erhalten Disco1909 1 1.926 19.07.2010, 07:50
Letzter Beitrag: StefanT
Question Best Player Liste für die Game Section Capman 14 5.739 13.12.2009, 04:11
Letzter Beitrag: Andii S.
  Beiträge von bestimmtem Nutzer nur von bestimmten Nutzer bearbeiten/löschen Frido 3 2.371 05.03.2009, 17:17
Letzter Beitrag: Frido
  Frage wegen letzter Anwesenheit von Usern RebelAce 4 2.141 25.08.2008, 16:19
Letzter Beitrag: RebelAce
  Bilder-Directory nur von Forum-Usern lesbar Manni-L 5 2.295 14.09.2007, 15:19
Letzter Beitrag: StefanT