Beiträge: 356
Themen: 104
Registriert seit: 27.04.2008
07.08.2010, 15:23
(Dieser Beitrag wurde zuletzt bearbeitet: 07.08.2010, 15:28 von MH_Razen.)
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
Beiträge: 1.939
Themen: 18
Registriert seit: 30.06.2007
MyBB-Version: 1.6.6
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&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.
Beiträge: 108
Themen: 25
Registriert seit: 18.02.2009
MyBB-Version: 1.6.8
Morgen zusammen
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 :|
Beiträge: 356
Themen: 104
Registriert seit: 27.04.2008
08.08.2010, 08:22
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2010, 08:43 von MH_Razen.)
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&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>
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Wenn du erst das Template lädst und ausgibst, werden später definierte Variablen natürlich nicht beachtet.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 1.939
Themen: 18
Registriert seit: 30.06.2007
MyBB-Version: 1.6.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&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);
?>
Beiträge: 356
Themen: 104
Registriert seit: 27.04.2008
08.08.2010, 10:22
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2010, 10:24 von MH_Razen.)
Wootie, du bist mein Gott
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?
Beiträge: 1.939
Themen: 18
Registriert seit: 30.06.2007
MyBB-Version: 1.6.6
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&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);
?>
Beiträge: 356
Themen: 104
Registriert seit: 27.04.2008
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?
Beiträge: 1.939
Themen: 18
Registriert seit: 30.06.2007
MyBB-Version: 1.6.6
Wolltest du nicht nur die Abfrage geklärt haben?
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&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&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);
?>