Interforum
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.

Interforum

Eine Austauschplattforum zwischen Foren mit den Schwerpunktem Essstörung und psychische Erkrankungen
 
StartseiteSuchenNeueste BilderAnmeldenLoginThe ED Network

 

 Anleitung: eigene Profilfelder

Nach unten 
AutorNachricht
Wildthinks
InterAdmin
Wildthinks


Anzahl der Beiträge : 400
Anmeldedatum : 26.07.11

Anleitung: eigene Profilfelder Empty
BeitragThema: Anleitung: eigene Profilfelder   Anleitung: eigene Profilfelder EmptySa Aug 06, 2011 10:02 am

Gleich mal vorweg: Das sind NICHT die typischen XY-Profilfelder, die ihr im Adminbereich erstellen könnt. Für Hosting sind diese komplett ausgeschlossen. Diese Anleitung beinhaltet Änderungen an der Datenbank (Zugriff auf eure Datenbank per phpMyAdmin oder Ähnliches ist zwingende Vorraussetzung) sowie Änderungen an diversen Dateien.
-> Wer sich zu unsicher ist, sollte dies erstmal auf seinem PC mit einem lokalen Webserver testen!

Ich werde mich aber bemühen, das relativ verständlich darzustellen.

Beginnen wir mal mit der Datenbank. Ruft diese auf und gebt beim SQL-Tab folgendes ein:
Code:
ALTER TABLE `phpbb_users` ADD `test` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ''
Zur Erklärung (und Abwandlung):
-> wir rufen die Tabelle "phpbb_users" auf, in dieser befinden sich sämtliche Inhalte der Profile
-> hinzugefügt wird die Spalte "test" (benennt diese einfach um, ich machs nur an dem Beispiel fest)
-> varchar braucht das Profilfeld zur richtigen Behandlung der eingegebenen Zeichen
-> die Zahl in Klammern ist die Maximalzahl an Zeichen - mehr kann euer Profilfeld auch nicht speichern! Überlegt euch genau, wie viel ihr dem Feld geben wollt.
-> utf8 ist zwingende Vorraussetzung, da sonst keine Sonderzeichen übernommen werden können.

Nun muss das Profilfeld natürlich noch für uns Admins beschreibbar werden, das machen wir jetzt:

öffne adm/style/acp_users_profile.html
finde:
Code:
<legend>{L_USER_PROFILE}</legend>
füge _danach_ hinzu:
Code:
        <dl>
                <dt><label for="first_name">{L_TEST}:</label></dt>
                <dd><input type="text" id="test" name="test" value="{TEST}" /></dd>
        </dl>
Erklärung: {L_TEST} ist die Sprachvariable, {TEST} ruft die Daten aus der Datenbank auf. Dies ist das Style eures Adminbereichs, somit könnt ihr unter "Benutzer verwalten" dieses Profilfeld verändern - mit folgenden Änderungen:
öffne: includes/acp/acp_users.php
finde:
Code:
'icq'                        => request_var('icq', $user_row['user_icq']),
füge _davor_ hinzu:
Code:
'test'        => utf8_normalize_nfc(request_var('actually', $user_row['test'], true)),
Erklärung: sowohl utf8_normalize_nfc als auch das true am Ende braucht ihr für die Sonderzeichen.
finde:
Code:
'icq'                        => array(
                                                        array('string', true, 3, 15),
                                                        array('match', true, '#^[0-9]+$#i')),
füge _davor_ hinzu:
Code:
'test' => array('string', true, 2, 30),
Erklärung: diesmal wird die Zeichenanzahl definiert. Hier wieder 30 für das Maximum angeben, genau wie in der Datenbank.
finde:
Code:
'user_icq'                => $data['icq'],
füge _davor_ hinzu:
Code:
'test' => $data['test'],
Erklärung: Hier werden die Eingaben dann in die Datenbank geschickt.
finde:
Code:
'ICQ'                        => $data['icq'],
füge _davor_ hinzu:
Code:
'TEST' => $data['test'],
Erklärung: Hier erklärt ihr dem Style nochmal, was das für ein Datensatz ist.

Hier kommen Änderungen für den Fall, dass User dieses Profilfeld auch nutzen sollen.
öffne includes/ucp/ucp_profilfe.php
finde:
Code:
'icq'                        => request_var('icq', $user->data['user_icq']),
füge _davor_ hinzu:
Code:
'test'        => utf8_normalize_nfc(request_var('actually', $user->data['test'], true)),
Das hier ist NICHT die gleiche Zeile wie bei den Änderungen des ACPs! Vorsicht also!
finde:
Code:
'icq'                        => array(
                                                        array('string', true, 3, 15),
                                                        array('match', true, '#^[0-9]+$#i')),
füge _davor_ hinzu:
Code:
'test' => array('string', true, 2, 30),
finde:
Code:
'user_icq'                => $data['icq'],
füge _davor_ hinzu:
Code:
'test' => $data['test'],
finde:
Code:
'ICQ'                => $data['icq'],
füge _davor_ hinzu:
Code:
'TEST' => $data['test'],
öffne: styles/prosilver/template/ucp_profile_profile_info.html
finde:
Code:
   <dl>
      <dt><label for="icq">{L_UCP_ICQ}:</label></dt>
      <dd><input type="text" name="icq" id="icq" maxlength="15" value="{ICQ}" class="inputbox" /></dd>
   </dl>
füge _davor_ hinzu:
Code:
   <dl>
      <dt><label for="user_custom_title">{L_TEST}</label></dt>
      <dd><input type="text" name="test" id="test" maxlength="30" value="{TEST}" class="inputbox" /></dd>
   </dl>
öffne: styles/subsilver2/template/ucp_profile_profile_info.html
finde:
Code:
<tr>
        <td class="row1" width="35%"><b class="genmed">{L_UCP_ICQ}: </b></td>
        <td class="row2"><input class="post" type="text" name="icq" size="30" maxlength="15" value="{ICQ}" /></td>
</tr>
füge _davor_ hinzu:
Code:
<tr>
        <td class="row1" width="35%"><b class="genmed">{L_TEST}: </b></td>
        <td class="row2"><input class="post" type="text" name="test" size="30" maxlength="30" value="{TEST}" /></td>
</tr>
Nun noch ein paar kleine allgemeine Änderungen für die Anzeige:
Sprachdateien: öffne language/de/common.php
finde:
Code:
));
füge _danach_ hinzu:
Code:
// New Profile Field(s)
$lang = array_merge($lang, array(
        'TEST' => 'Test',
));
Darstellung prosilver:
öffne styles/prosilver/template/memberlist_view.html
finde:
Code:
<!-- IF LOCATION --><dt>{L_LOCATION}:</dt> <dd>{LOCATION}</dd><!-- ENDIF -->
füge hinzu:
Code:
<!-- IF TEST --><dt>{L_TEST}:</dt> <dd>{TEST}</dd><!-- ENDIF -->
öffne: styles/prosilver/template/viewtopic_body.html
finde:
füge hinzu:
Code:
<!-- IF postrow.TEST --><dd><strong>{L_TEST}:</strong> {postrow.TEST}</dd><!-- ENDIF -->
Code:
<!-- IF postrow.POSTER_FROM --><dd><strong>{L_LOCATION}:</strong> {postrow.POSTER_FROM}</dd><!-- ENDIF -->
Darstellung subsilver2:
öffne styles/subsilver2/template/memberlist_view.html
finde:
Code:
                        <tr>
                                <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_LOCATION}: </td>
                                <td><!-- IF LOCATION --><b class="genmed">{LOCATION}</b><!-- ENDIF --></td>
                        </tr>
füge hinzu:
Code:
                        <tr>
                                <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_TEST} </td>
                                <td><b class="genmed">{TEST}</b></td>
                        </tr>
öffne: styles/subsilver2/template/viewtopic_body.html
finde:
Code:
<!-- IF postrow.POSTER_FROM --><br /><b>{L_LOCATION}:</b> {postrow.POSTER_FROM}<!-- ENDIF -->
füge hinzu:
Code:
<!-- IF postrow.TEST --><br /><b>{L_TEST}:</b> {postrow.TEST}<!-- ENDIF -->

So, das müsste jetzt aber alles sein (: Und schon kann jeder das Profilfeld editieren und alle müssten glücklich sein (: Wenns nicht klappt: Zeigt mir bitte entweder Screenshot oder Fehlermeldung!
Nach oben Nach unten
http://smokeandmirror.de
 
Anleitung: eigene Profilfelder
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Eigene Profilfelder in Postings anzeigen lassen (Linkempfehlung)

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
Interforum :: Geek Ecke :: Software :: phpBB-
Gehe zu: