22.12.2011, 22:11
Diesmal ein Tutorial, wie man von seiner Homepage auf die Daten des Forums zugreift, um z.B. eine eigene Loginmaske oder ein Usermenü zu erstellen.
1. Foren Daten einbinden
Mit folgendem Code werden die wichtigsten Methoden und Variablen von MyBB eingebunden, dazu diesen einfach an den Anfang der Datei einfügen:
1.1. Wer ist Online Liste
Eine Möglichkeit wie man das Problem lösen kann findet sich hier, allerdings funktioniert dies nich bei allen Seiten
2. $mybb
Die wohl wichtigste Variable, die eingebunden wird, ist $mybb, da in dieser sowohl Daten über das Forum(Version...) und den User(ID, Name...) enthalten sind.
Um eine Auflistung aller gespeicherten Daten in dem Array zu erhalten einfach folgenden Code in die Datei kopieren:
Und nicht wundern wenn die Seite plötzlich sehr lang ist, es sind halt sehr viele Dateien vohanden.
3. Beispiel Usermaske
Um mal ein kleines Beispiel zu zeigen, was man mit $mybb machen kann, wird hier eine Usermaske entwickelt, welche entweder ein Loginformular zeigt oder Links zu UCP, MCP, ACP etc.
Zuerst brauchen wir eine unterscheidung, ob der User eingeloggt ist oder nicht:
Nun kommt ein einfaches Formular hinzu, dass angezeigt wird, wenn der User nicht eingellogt ist:
Falls der User bereits eingellogt ist einfach die Links, die eigentlich in der Willkommensbox stehen ausgeben:
4. Hinweise
4.1. Sicherheit
-Alle Codes sind nur Beispielcodes und haben keinerlei Sicherheitsüberprüfungen implementiert!!!
4.2. Wartungsmeldung
Alle so eingebundenen Dateien zeigen automatisch die Wartungsmeldung des Forums an, falls dieses gesperrt ist. Es gibt eine Möglichkeit dieses zu umgehen, allerdings geht das über dieses Tutorial hinaus
5. Fehler
Mögliche Fehler:
-Datei liegt ausserhalb des Cookie Pfades des Forums (im ACP einstellbar)
Bei Fragen & Problemen stehe ich natürlich gerne zur Verfügung
- Foren Daten einbinden
- Wer ist online Liste
- Wer ist online Liste
- $mybb
- Beispiel Usermaske
- Hinweise
- Sicherheit
- Wartungsmodus
- Sicherheit
- Fehler
1. Foren Daten einbinden
Mit folgendem Code werden die wichtigsten Methoden und Variablen von MyBB eingebunden, dazu diesen einfach an den Anfang der Datei einfügen:
PHP-Code:
chdir('./forum/'); //Der Pfad zu deinem Forum
define("IN_MYBB", 1);
require_once '/forum/global.php'; //Die wichtigste Datei von MyBB einbinden
1.1. Wer ist Online Liste
Eine Möglichkeit wie man das Problem lösen kann findet sich hier, allerdings funktioniert dies nich bei allen Seiten
2. $mybb
Die wohl wichtigste Variable, die eingebunden wird, ist $mybb, da in dieser sowohl Daten über das Forum(Version...) und den User(ID, Name...) enthalten sind.
Um eine Auflistung aller gespeicherten Daten in dem Array zu erhalten einfach folgenden Code in die Datei kopieren:
PHP-Code:
echo '<pre>';
var_dump($mybb);
echo '</pre>';
Und nicht wundern wenn die Seite plötzlich sehr lang ist, es sind halt sehr viele Dateien vohanden.
3. Beispiel Usermaske
Um mal ein kleines Beispiel zu zeigen, was man mit $mybb machen kann, wird hier eine Usermaske entwickelt, welche entweder ein Loginformular zeigt oder Links zu UCP, MCP, ACP etc.
Zuerst brauchen wir eine unterscheidung, ob der User eingeloggt ist oder nicht:
PHP-Code:
if($mybb->user['uid'])
{
//User ist eingellogt
} else {
//User ist nicht eingellogt
}
Nun kommt ein einfaches Formular hinzu, dass angezeigt wird, wenn der User nicht eingellogt ist:
PHP-Code:
$site = pathinfo($_SERVER['REQUEST_URI'], PATHINFO_BASENAME); //Aktuelle Seite auslesen
?>
<form action="./forum/member.php" method="post"> <!-- Formular soll beim Absenden an die Datei member.php von dem Forum gesendet werden -->
<table border="0">
<tr>
<td>Username:</td>
<td><input type="text" name="username" size="10" maxlength="30"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" size="10"></td>
</tr>
<tr>
<td><input type="checkbox" id="quick_login_remember" name="quick_remember" value="yes">Merken?</td>
<td><input type="submit" class="submit" name="submit" value="Login"></td>
<td><input type="hidden" name="action" value="do_login"></td>
<td><input type="hidden" name="url" value="../<?php echo $site; ?>"></td> <!-- Auf die eben ausgelesene Datei soll wieder zurückgeleitet werden. Achtung: in diesem Fall liegt die Datei einen Ordner über dem Forum -->
</tr>
</table>
</form>
<a href="./forum/member.php?action=register">Registrieren</a> <!-- Einfacher Link auf die Registrieren Seite -->
Falls der User bereits eingellogt ist einfach die Links, die eigentlich in der Willkommensbox stehen ausgeben:
PHP-Code:
$titel = $mybb->user['usertitle']; //Den Titel des Users auslesen
if ($titel == '') {
if ($mybb->user['usergroup'] == '2') {
$titel = 'Registriert'; //Falls keiner gesetzt ist und er Registriert ist, nehmen wir einfach einen (es gibt auch eine Möglichkeit seinen Anzeigetitel auszulesen)
}
}
echo '<a href="./forum/member.php?action=profile&uid='.$mybb->user['uid'].'">'.$mybb->user['username'].'['.$titel.']</a><br />'; //Seinen Namen auf sein Profil verlinken
echo '<a href="./forum/usercp.php">Benutzer-CP</a><br />'; //Den Link zum UCP
if(is_moderator())
echo '<a href="./forum/modcp.php">Moderator-CP</a><br />'; //Falls Moderator den Link zum MCP
if($mybb->usergroup['cancp'] == 1)
echo '<a href="./forum/admin/index.php">Admin-CP</a><br />'; //Falls Admin den Link zum ACP
echo '<a href="./forum/member.php?action=logout&logoutkey='.$mybb->user['logoutkey'].'">Abmelden</a>'; //Den Logoutkey an die entsprechende Datei übergeben
echo '<hr>';
echo '<a href="./forum/search.php?action=getnew">Neue Beiträge</a><br />';
echo '<a href="./forum/search.php?action=getdaily">Heutige Beiträge</a><br />'; //Links zur Suche
echo '<a href="./forum/private.php">PN\'s('.$mybb->user['unreadpms'].'/'.$mybb->user['totalpms'].')</a><br />'; //Anzeigen ungelesene/gesamte PN's
4. Hinweise
4.1. Sicherheit
-Alle Codes sind nur Beispielcodes und haben keinerlei Sicherheitsüberprüfungen implementiert!!!
4.2. Wartungsmeldung
Alle so eingebundenen Dateien zeigen automatisch die Wartungsmeldung des Forums an, falls dieses gesperrt ist. Es gibt eine Möglichkeit dieses zu umgehen, allerdings geht das über dieses Tutorial hinaus
5. Fehler
Mögliche Fehler:
-Datei liegt ausserhalb des Cookie Pfades des Forums (im ACP einstellbar)
Bei Fragen & Problemen stehe ich natürlich gerne zur Verfügung