Profil
Aus PHP-Fusion Wiki
Im Mitgliederprofil eines jeden Benutzers findet man diverse Informationen zur Kontaktaufnahme sowie über dessen Nutzungsverhalten der Webseite.
Im konkreten findet man die folgenden Informationen im Profil:
- Allgemeine Informationen
- Benutzername
- Benutzerstatus
- Avatar
- Wohnort
- Geburtstag
- Kontaktmöglichkeiten
- PN (Private Nachricht)
- E-Mail Adresse (wenn der Benutzer die Option E-Mail verstecken gewählt hat, sehen diese nur Administratoren)
- URL zur Webseite
- AIM Screenname
- ICQ Nummer
- MSN Benutzername
- Yahoo Benutzername
- Statistische Informationen
- Seit wann Mitglied
- Letzter Besuch
- Anzahl Shoutboxbeiträge
- Anzahl Kommentare
- Anzahl Forenbeiträge:
Inhaltsverzeichnis |
[Bearbeiten] Profil bearbeiten
Der Link Profil bearbeiten befindet sich im User Info Panel.
Jedes Mitglied kann hier seine Angaben über die Kontaktmöglichkeiten, die allgemeinen Information, das bevorzugte Theme, Zeitzonen Einstellungen sowie die Signatur ändern.
Bei der Auswahl des Avatars ist zu beachten, das dieses nicht größer als 100x100 Pixel bzw. 30 Kilobyte ist. Eine genaue Auflistung der Beschränkungen und wie diese Erweitert werden, findet man hier.
Wer seine E-Mail nicht veröffentlichen möchte, kann hier die Option E-Mail verstecken auf Ja stellen. Dadurch können Mitglieder diese nicht mehr sehen. Administratoren sind von dieser Einstellung ausgenommen.
Mitglieder die sich in einer anderen Zeitzone befinden, können im Profil den Zeitzonen-Unterschied angeben. Zeit- und Datumsangeben werden dann entsprechend umgerechnet.
Jedes Mitglied kann im Profil ein eigenes, anderes Theme auswählen. Es stehen alle Themes zur Auswahl, die sich im theme Ordner von PHP-Fusion befinden. Diese Einstellung wird der aus den Haupteinstellungen bevorzugt. Wählt ein Mitglied hier kein Theme aus bzw. stellt es auf Default, wird wieder die Option aus den Haupteinstellungen genommen. Wenn du nicht möchtest, das Mitglieder die Möglichkeit haben, ein anderes Theme auszuwählen, gibt es weiter unten in diesem Artikel im Abschnitt Modifikationen eine Beschreibung wie dies realisiert werden kann.
[Bearbeiten] Modifikationen
[Bearbeiten] Benutzernamen nicht änderbar
Den Benutzern ist es gestattet ihren Benutzernamen im Profil zu ändern. Wer dies nicht möchte, muss die folgenden Veränderungen vornehmen.
Suche in der edit_profile.php den folgenen Abschnitt:
echo "<tr> <td class='tbl'>".$locale['u001']."<span style='color:#ff0000'>*</span></td> <td class='tbl'><input type='text' name='user_name' value='".$userdata['user_name']."' maxlength='30' class='textbox' style='width:200px;'></td> </tr>
und in der includes/update_profile_include.php diesen:
$error = ""; $set_avatar = ""; $username = trim(eregi_replace(" +", " ", $_POST['user_name'])); if ($username == "" || $_POST['user_email'] == "") {
Ändere die beiden Abschnitte wie folgt (edit_profile.php):
echo "<tr> <td class='tbl'>".$locale['u001']."</td> <td class='tbl'><b>".$userdata['user_name']."</b></td> </tr>
includes/update_profile_include.php:
$error = ""; $set_avatar = ""; $username = $userdata['user_name']; if ($username == "" || $_POST['user_email'] == "") {
Administratoren mit den entsprechenden Admin Recht M können über die Mitglieder-Verwaltung im Benutzer-Admin weiterhin die Benutzernamen ändern.
[Bearbeiten] Geburtsdatum im deutschen Format
Da das Geburtstag im Profil nach englischem Format angezeigt wird, hier eine kurze Anleitung wie man es auf das deutsche Format ändert.
Öffne die Datei profile.php und suche folgende Zeile:
echo $months[number_format($user_birthdate['1'])]." ".number_format($user_birthdate['2'])." ".$user_birthdate['0'];
und passe sie wie folgt an:
echo number_format($user_birthdate['2'])." ".$months[number_format($user_birthdate['1'])]." ".$user_birthdate['0'];
Weiterhin musst du in der Datei edit_profile.php folgendes suchen:
<td class='tbl'>".$locale['u010']." <span class='small2'>(mm/dd/yyyy)</span></td> <td class='tbl'><select name='user_month' class='textbox'>\n<option>--</option>\n"; for ($i=1;$i<=12;$i++) echo "<option".($user_month == $i ? " selected" : "").">$i</option>\n"; echo "</select> <select name='user_day' class='textbox'>\n<option>--</option>\n"; for ($i=1;$i<=31;$i++) echo "<option".($user_day == $i ? " selected" : "").">$i</option>\n"; echo "</select> <select name='user_year' class='textbox'>\n<option>----</option>\n"; for ($i=1900;$i<=2004;$i++) echo "<option".($user_year == $i ? " selected" : "").">$i</option>\n"; echo "</select> </td>
und wie folgt abändern:
<td class='tbl'>".$locale['u010']." <span class='small2'>(dd/mm/yyyy)</span></td> <td class='tbl'><select name='user_day' class='textbox'>\n<option>--</option>\n"; for ($i=1;$i<=31;$i++) echo "<option".($user_day == $i ? " selected" : "").">$i</option>\n"; echo "</select> <select name='user_month' class='textbox'>\n<option>--</option>\n"; for ($i=1;$i<=12;$i++) echo "<option".($user_month == $i ? " selected" : "").">$i</option>\n"; echo "</select> <select name='user_year' class='textbox'>\n<option>----</option>\n"; for ($i=1900;$i<=2004;$i++) echo "<option".($user_year == $i ? " selected" : "").">$i</option>\n"; echo "</select> </td>
[Bearbeiten] Mitglied bearbeiten-Link
Ein Link im Profil des Benutzer, der nur für Administratoren mit dem Admin Recht M sichtbar ist, um das Profil zu aktualisieren.
Suche in der profile.php den folgenden Code:
<table align='center' cellpadding='0' cellspacing='0' width='100%'> <tr> <td class='tbl2'><b>".$data['user_name']."</b></td> <td align='right' class='tbl2'>".getuserlevel($data['user_level'])."</td> </tr> </table>
und ersetze es mit diesen:
<table align='center' cellpadding='0' cellspacing='0' width='100%'> <tr> <td class='tbl2'><b>".$data['user_name']."</b>".(iADMIN && checkrights("M") ? " <a href='".ADMIN."members.php".$aidlink."&step=edit&user_id=".$lookup."'>[bearbeiten]</a>" : "")."</td> <td align='right' class='tbl2'>".getuserlevel($data['user_level'])."</td> </tr> </table>
[Bearbeiten] Profil nur für angemeldete Mitglieder sichtbar
Um den Zugriff auf das Profil, nur angemeldeten Mitgliedern zu gestatten, gibt es zwei Möglichkeiten.
Möglichkeit 1: Den nicht angemeldeten Besucher auf eine beliebige Seite, in diesem Beispiel auf die Startseite, weiterleiten. Suche in der profile.php folgendes
include LOCALE.LOCALESET."members-profile.php"; include LOCALE.LOCALESET."user_fields.php"; if (!isset($group_id)) { if (!isset($lookup) || !isNum($lookup)) fallback("index.php");
und füge folgende Zeile ein
include LOCALE.LOCALESET."members-profile.php"; include LOCALE.LOCALESET."user_fields.php"; # Gäste auf Startseite weiterleiten if (!iMEMBER) redirect(BASEDIR."index.php"); if (!isset($group_id)) { if (!isset($lookup) || !isNum($lookup)) fallback("index.php");
Möglichkeit 2: Statt der Weiterleitung, eine Meldung anzeigen. Ändere den vorigen Abschnitt wie folgt ab
include LOCALE.LOCALESET."members-profile.php"; include LOCALE.LOCALESET."user_fields.php"; # Gäste auf Startseite weiterleiten if (iMEMBER) { if (!isset($group_id)) { if (!isset($lookup) || !isNum($lookup)) fallback("index.php");
und suchen zusätzlich am Ende der profile.php folgenden Abschnitt
} closetable(); require_once "side_right.php"; require_once "footer.php";
und füge folgenden Abschnitt ein:
} closetable(); } else { opentable("Zugriff nur für Mitglieder"); echo "<center><b>Das Profil ist nur für Mitglieder sichtbar</b></center>\n"; closetable(); } require_once "side_right.php"; require_once "footer.php";
[Bearbeiten] Theme Auswahl deaktivieren
PHP-Fusion gibt die Möglichkeit, das jedes Mitglied, zwischen den installierten Themes eines auszusuchen. Viele Webmaster wollen zwar die Möglichkeit haben, das Theme in den Haupteinstellungen bzw. im eigenen Profil für Testzwecke zu ändern. Die Mitglieder hingegen, sollen immer das Default Theme, also das was in den Haupteinstellungen eingestellt ist, nutzen.
Für diese Modifikation musst du in der edit_profile.php folgenden Abschnitt suchen:
</tr> <tr> <td class='tbl'>".$locale['u015']."</td> <td class='tbl'><select name='user_theme' class='textbox' style='width:100px;'> ".makefileopts($theme_files, $userdata['user_theme'])." </select></td> </tr> <tr>
und in der /includes/update_profile_include.php die folgenden Zeilen:
$user_yahoo = isset($_POST['user_yahoo']) ? stripinput(trim($_POST['user_yahoo'])) : ""; $user_web = isset($_POST['user_web']) ? stripinput(trim($_POST['user_web'])) : ""; $user_theme = stripinput($_POST['user_theme']); $user_offset = is_numeric($_POST['user_offset']) ? $_POST['user_offset'] : "0"; $user_sig = isset($_POST['user_sig']) ? stripinput(trim($_POST['user_sig'])) : "";
Möglichkeit 1: Um die Theme Auswahl im Profil komplett zu verhindern, entferne den folgenden Code Abschnitt (edit_profile.php):
<tr> <td class='tbl'>".$locale['u015']."</td> <td class='tbl'><select name='user_theme' class='textbox' style='width:100px;'> ".makefileopts($theme_files, $userdata['user_theme'])." </select></td> </tr>
und ändere in der /includes/update_profile_include.php folgendes:
$user_yahoo = isset($_POST['user_yahoo']) ? stripinput(trim($_POST['user_yahoo'])) : ""; $user_web = isset($_POST['user_web']) ? stripinput(trim($_POST['user_web'])) : ""; $user_theme = "Default"; $user_offset = is_numeric($_POST['user_offset']) ? $_POST['user_offset'] : "0"; $user_sig = isset($_POST['user_sig']) ? stripinput(trim($_POST['user_sig'])) : "";
Möglichkeit 2: Administratoren und Super Administratoren die Theme Auswahl gestatten, allen anderen nicht (edit_profile.php):
</tr>".(iADMIN ? " <tr> <td class='tbl'>".$locale['u015']."</td> <td class='tbl'><select name='user_theme' class='textbox' style='width:100px;'> ".makefileopts($theme_files, $userdata['user_theme'])." </select></td> </tr>" : "")." <tr>
und in der /includes/update_profile_include.php folgendes abändern:
$user_yahoo = isset($_POST['user_yahoo']) ? stripinput(trim($_POST['user_yahoo'])) : ""; $user_web = isset($_POST['user_web']) ? stripinput(trim($_POST['user_web'])) : ""; $user_theme = iADMIN ? stripinput($_POST['user_theme']) : "Default"; $user_offset = is_numeric($_POST['user_offset']) ? $_POST['user_offset'] : "0"; $user_sig = isset($_POST['user_sig']) ? stripinput(trim($_POST['user_sig'])) : "";
