MyBB.de Forum
Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben (/thread-16687.html)

Seiten: Seiten: 1 2


Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - MH_Razen - 07.08.2010

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


RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - linwinman - 08.08.2010

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.


RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - MarioxD - 08.08.2010

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 :|


RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - MH_Razen - 08.08.2010

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



RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - StefanT - 08.08.2010

Wenn du erst das Template lädst und ausgibst, werden später definierte Variablen natürlich nicht beachtet.


RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - linwinman - 08.08.2010

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);
?>



RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - MH_Razen - 08.08.2010

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?


RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - linwinman - 08.08.2010

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);
?>



RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - MH_Razen - 08.08.2010

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?


RE: Liste von Usern die Inhalt in bestimmten CUstomProfileField haben - linwinman - 08.08.2010

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);
?>