Registrieren Hilfe Suche Mitgliederliste Wer ist online? Einloggen
Willkommen bei Tritanium Community! Falls dies Ihr erster Besuch hier ist, lesen Sie sich bitte die Hilfe mit den häufigsten Fragen und ausführlichen Erklärungen durch! Falls Sie an den Diskussionen teilnehmen wollen, sollten Sie sich registrieren oder, falls Sie das schon getan haben, sich einloggen. Wir wünschen Ihnen viel Spaß!

Tritanium Community » Tritanium Bulletin Board 1 » Andere Fragen und Probleme » Profil erweitern

Seiten (2) [1 | 2   »] Neue Antwort erstellenNeues Thema erstellen

Autor Thema: Profil erweitern
freakforlife
Ist öfters hier

ID # 2694



Profil erweitern
morethangodlike@gmx.de
Der Chris schlägt wahrscheinlich schon wieder mit Tränen in den Augen die Hände über dem Kopf zusammen hier wenn ich nen neuen Thread erstell :D
Aber so wild ist es diesmal glaub ich nicht wirklich... der Threadtitel verrät eigentlich schon alles ;)

Und da ich dachte, dass das evtl noch für andere interessant sein könnte, dachte ich, ich stell meine Frage hier mal hochoffiziell!

Ich hab schon angefangen rumzuprobieren und zwar hab ich mir mal die EditProfile.tpl und die ViewProfile.tpl vorgenommen und meinen Wünschen entsprechend erweitert!

Code
1
{* 0:nick 1:id 2:rankImage(s) - 3:mail 4:rank 5:posts 6:regDate 7:signature 9:hp 10:avatar 12:realName 13:icq 14:mailOptions[ - 17:specialState 18:steamProfile 19:steamGames] - 20:wohnort 21:steam 22:facebook 23:lastfm 24:Geburtstdatum *}
2


und dazu passend dann unten bei den Tabellen

Code
1
2
    <tr>
3
     <td style="padding:3px; width:20%;"><span class="fontNorm">Geburtsdatum:</span></td>
4
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="new_wohnort" value="{$userData[24]}style="width:250px;" /></td>
5
    </tr>
6
    <tr>
7
     <td style="padding:3px; width:20%;"><span class="fontNorm">Wohnort:</span></td>
8
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="new_wohnort" value="{$userData[20]}style="width:250px;" /></td>
9
    </tr>
10
    <tr>
11
     <td style="padding:3px; width:20%;"><span class="fontNorm">{$modules.Language->getString('icq_number_colon')}</span></td>
12
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="new_icq" value="{$userData[13]}style="width:250px;" /> <span class="fontSmall">{$modules.Language->getString('number_only_no_dashes')}</span></td>
13
    </tr>
14
    <tr>
15
     <td style="padding:3px; width:20%;"><span class="fontNorm">Steam:</span></td>
16
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="steam" value="{$userData[21]}style="width:250px;" /></td>
17
    </tr>
18
    <tr>
19
     <td style="padding:3px; width:20%;"><span class="fontNorm">Facebook:</span></td>
20
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="facebook" value="{$userData[22]}style="width:250px;" /></td>
21
    </tr>
22
    <tr>
23
     <td style="padding:3px; width:20%;"><span class="fontNorm">LastFM:</span></td>
24
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="lastfm" value="{$userData[23]}style="width:250px;" /></td>
25
    </tr>
26



Selbiges in etwa bei beiden Dateien eingepflegt! So weit so gut bis an diese Stelle - denk ich mir mal?!? :rolleyes: ;) *fragendschau*

Nur werden die Daten nicht übergeben an die Profilansicht nachdem ich das Profil speicher!
Lass mich raten: Ich muss auch noch an die Profile.php?!? :P Und da hörts jetzt bei mir auf...

Ist das ne große Sache, den Rest vollends anzupassen? Find da die entsprechende Stelle nicht, bzw. bin ich mir ned sicher...

Falls mein Ansatz komplett daneben war nehme es man mir bitte nicht übel - ich fand mein Plan bisher genial :D

-----------


Geposted: 09.01.2012 14:12
Chrissyx
Supermoderator

ID # 2285



Re: Profil erweitern
E-Mail schicken
*HändeübernKopfzusammenschlagmitTränenindenAugen* :D

Also das hier
Zitat von freakforlife:
Code
1
{* 0:nick 1:id 2:rankImage(s) - 3:mail 4:rank 5:posts 6:regDate 7:signature 9:hp 10:avatar 12:realName 13:icq 14:mailOptions[ - 17:specialState 18:steamProfile 19:steamGames] - 20:wohnort 21:steam 22:facebook 23:lastfm 24:Geburtstdatum *}
2

ist ein Kommentar und bewirkt nichts. ;) Das ist nur als Hinweis an den Templater gedacht, damit er weiss unter welchem Index welcher Wert steht.

Zitat von freakforlife:
und dazu passend dann unten bei den Tabellen

Selbiges in etwa bei beiden Dateien eingepflegt! So weit so gut bis an diese Stelle - denk ich mir mal?!? :rolleyes: ;) *fragendschau*

*Tränenwisch* Ähm, nein: :P
  • "new_wohnort" steht zweimal drin
  • Nochmal ein Feld für Steam? Steht da was anderes drin als bei bei #18?
  • Ich würde die Benennung konsistent halten und überall ein "new_" voranstellen
  • Beim Geburtsdatum würde ich eher eine select-Vorauswahl anbieten aus Tag, Monat, Jahr oder zumindest diese drei Werte als einzelne Textfelder abfragen


Zitat von freakforlife:
Nur werden die Daten nicht übergeben an die Profilansicht nachdem ich das Profil speicher!
Lass mich raten: Ich muss auch noch an die Profile.php?!? :P Und da hörts jetzt bei mir auf...

Na und ob Du das der Profile.php beibringen musst! :D Es kommt noch besser: Die FunctionsBasic.php muss angepasst werden und theoretisch die AdminUser.php und Forum.php auch. xD

Zitat von freakforlife:
Ist das ne große Sache, den Rest vollends anzupassen? Find da die entsprechende Stelle nicht, bzw. bin ich mir ned sicher...

Die Frage ist eher, wo Du diese neuen Profildaten einsetzen bzw. anzeigen möchtest. Davon ausgehend kann man schon eher sagen, wie umfangreich das wird. Eines ist sicher: Profildaten erweiterst Du nicht mal gerade so nebenbei. ;)

Am saubersten wäre es übrigens, wenn Du deine eigenen Profildaten in einer neuen Datei speicherst und eigene Methoden dafür einbaust. Dann brauchst Du dir zumindest um den Rest keine Gedanken machen und wärst auch garantiert update-fähig. Quasi so ausgelagert wie hier . ;)

-----------
Tritanium Scripts developer
Filebased rulez
Geposted: 10.01.2012 07:15
freakforlife
Ist öfters hier

ID # 2694



Re: Profil erweitern
morethangodlike@gmx.de
:rolleyes: Danke!

Ich wollte lediglich, dass unter der Rubrik "Erweitert" in der Profilansicht eines Users, mehr Infos über diesen zu finden sind - wie eben Geburtsdatum und Wohnort usw...
Das weitere Feld für Steam sollte lediglich einen Link zur Seite des Users haben, wie auch eben zu LastFM und Facebook... alles nur beispielhaft jetzt, kann man ja auch was anders verlinken!

Also das ganze Zeug soll ned sonstwo noch im Forum auftauchen, sondern nur die Profilansicht um ein paar sinnvolle Angaben erweitert werden!
Von daher dacht ich mir, dass das wohl keine große Sache ist, da man ja nur irgendwie die Daten von der Editprofile in die Viewprofil übergeben müsste... :rolleyes:

Also von der Logig her fand ichs toll meine Idee :D Aber mal wieder falsch gedacht anscheinend...ich sollts einfach lassen sowas ... :P

-----------


Geposted: 10.01.2012 14:58
Chrissyx
Supermoderator

ID # 2285



Re: Profil erweitern
E-Mail schicken
Also dann, hier dein ganz persönlicher "Inofficial fields hack" für Wohnort, Steam, Facebook, Last.fm und Geburtsdatum:

Öffne die core/FunctionsBasic.php und füge nach Zeile 698 ein:
Code
699
    /**
700
     Inofficial fields hack.
701
     *
702
     * @param int $userID ID of user
703
     * @return array Inofficial user data
704
     */
705
    public static function getUserDataHack($userID)
706
    {
707
        if(self::isGuestID($userID) || !self::file_exists('members/' $userID '.cbb'))
708
            return array(''''''0);
709
        return self::file('members/' $userID '.cbb');
710
    }


Öffne die modules/Profile.php und füge nach Zeile 401 ein:
Code
402
            'userDataHack' => $this->userDataHack,

(Wird machen das rückwärts, sonst passen die Zeilennummern nicht mehr)

Nach Zeile 183:
Code
184
                        #Inofficial fields hack
185
                        Functions::file_put_contents('members/' $this->userData[1] . '.cbb'implode("\n"$this->userDataHack));


Nach Zeile 163:
Code
164
                    #Inofficial fields hack
165
                    $this->userDataHack[0] = htmlspecialchars(trim(Functions::getValueFromGlobals('location')));
166
                    $this->userDataHack[1] = Functions::getValueFromGlobals('facebook');
167
                    $this->userDataHack[2] = Functions::getValueFromGlobals('lastfm');
168
                    $this->userDataHack[3] = gmmktime(000intval(Functions::getValueFromGlobals('Month')), intval(Functions::getValueFromGlobals('Day')), intval(Functions::getValueFromGlobals('Year')));


Nach Zeile 117:
Code
118
                        #Inofficial fields hack
119
                        if(Functions::file_exists('members/' $this->userData[1] . '.cbb'))
120
                            Functions::unlink('members/' $this->userData[1] . '.cbb');


Nach Zeile 62:
Code
63
        #Inofficial fields hack
64
        $this->userDataHack Functions::getUserDataHack($userID == '' Main::getModule('Auth')->getUserID() : $userID);


Nach Zeile 52:
Code
53
    /**
54
     Inofficial fields hackStructure:
55
     0:Location
56
     1:Facebook
57
     2:Last.fm
58
     3:Birthdate
59
     *
60
     * @var array Inofficial user data or false if inapplicable
61
     */
62
    private $userDataHack;


Öffne die templates/tbb2/templates/EditProfile.tpl und füge nach Zeile 102 ein:
Code
1
{* Inofficial fields hack *}
2
    <tr>
3
     <td style="padding:3px; width:20%;"><span class="fontNorm">Wohnort:</span></td>
4
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="location" value="{$userDataHack[0]}" style="width:250px;" /></td>
5
    </tr>
6
    <tr>
7
     <td style="padding:3px; width:20%;"><span class="fontNorm">Facebook:</span></td>
8
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="facebook" value="{$userDataHack[1]}" style="width:250px;" /></td>
9
    </tr>
10
    <tr>
11
     <td style="padding:3px; width:20%;"><span class="fontNorm">Last.fm:</span></td>
12
     <td style="padding:3px; width:80%;"><input class="formText" type="text" name="lastfm" value="{$userDataHack[2]}" style="width:250px;" /></td>
13
    </tr>
14
    <tr>
15
     <td style="padding:3px; width:20%;"><span class="fontNorm">Geburtstag:</span></td>
16
     <td style="padding:3px; width:80%;">{html_select_date prefix='' time=$userDataHack[3] end_year=1900 field_order='DMY' reverse_years=true}</td>
17
    </tr>
18
{* /Inofficial fields hack *}


Öffne die templates/tbb2/templates/ViewProfile.tpl und füge nach Zeile 65 ein:
Code
1
{* Inofficial fields hack *}
2
 <tr>
3
  <td class="cellStd" style="width:30%;"><span class="fontNorm">Wohnort:</span></td>
4
  <td class="cellAlt" style="width:70%;"><span class="fontNorm">{if empty($userDataHack[0])}<span style="font-style:italic;">{$modules.Language->getString('not_given')}</span>{else}{$userDataHack[0]}{/if}</span></td>
5
 </tr>
6
 <tr>
7
  <td class="cellStd" style="width:30%;"><span class="fontNorm">Steam:</span></td>
8
  <td class="cellAlt" style="width:70%;"><span class="fontNorm">{if empty($userData[19])}<span style="font-style:italic;">{$modules.Language->getString('not_given')}</span>{else}<a href="http://steamcommunity.com/{if ctype_digit($userData[18].profileID)}profiles{else}id{/if}/{$userData[18].profileID}">{$userData[18].profileName}</a>{/if}</span></td>
9
 </tr>
10
 <tr>
11
  <td class="cellStd" style="width:30%;"><span class="fontNorm">Facebook:</span></td>
12
  <td class="cellAlt" style="width:70%;"><span class="fontNorm">{if empty($userDataHack[1])}<span style="font-style:italic;">{$modules.Language->getString('not_given')}</span>{else}<a href="http://www.facebook.com/{$userDataHack[1]}" target="_blank">{$userDataHack[1]}</a>{/if}</span></td>
13
 </tr>
14
 <tr>
15
  <td class="cellStd" style="width:30%;"><span class="fontNorm">Last.fm:</span></td>
16
  <td class="cellAlt" style="width:70%;"><span class="fontNorm">{if empty($userDataHack[2])}<span style="font-style:italic;">{$modules.Language->getString('not_given')}</span>{else}<a href="http://www.lastfm.de/user/{$userDataHack[2]}" target="_blank">{$userDataHack[2]}</a>{/if}</span></td>
17
 </tr>
18
 <tr>
19
  <td class="cellStd" style="width:30%;"><span class="fontNorm">Geburtsdatum:</span></td>
20
  <td class="cellAlt" style="width:70%;"><span class="fontNorm">{if $userDataHack[3] == 0}<span style="font-style:italic;">{$modules.Language->getString('not_given')}</span>{else}{$userDataHack[3]|date_format:'%d. %B %Y'|utf8_encode}{/if}</span></td>
21
 </tr>
22
{* /Inofficial fields hack *}


So, bitte sehr. :D Und jetzt mach deinem TBB 1.6 Beine. ;)

-----------
Tritanium Scripts developer
Filebased rulez
Geposted: 11.01.2012 12:45
freakforlife
Ist öfters hier

ID # 2694



Re: Profil erweitern
morethangodlike@gmx.de
Damit hätte ich ja jetzt nicht gerechnet ... :D :)
Mein zweiter Post war keinesfalls eine versteckte Bitte, dass für mich zu machen :P

Aber danke danke danke ... und es funktioniert sogar :D
Nicht weil ich je an deinen Fähigkeiten zweifeln würde - sondern weil ichs ohne Gepfusche eingebaut bekommen hab :D

Danke vielmals Chriss!
Und vielleicht bringts ja dem ein oder andern hier auch was!?!

-----------




Dieser Beitrag wurde schon 1 Mal bearbeitet, zuletzt von freakforlife.
Geposted: 11.01.2012 17:19
DNG
Lernt noch alles kennen

ID # 2950



Re: Profil erweitern
juergen@grauen.at
Habs probiert, aber irgendwie klappts nicht ganz...
Ist dieser Hack auch wirklich für das 1.6?
Weil du unter Templates folgenden Pfad angegeben hast: templates/tbb2/templates/EditProfile.tpl

Das "tbb2" irritiert mich da etwas...
Geposted: 22.12.2012 07:26
Chrissyx
Supermoderator

ID # 2285



Re: Profil erweitern
E-Mail schicken
Der Hack ist für das 1.6er und dem "TBB 2.0 Beta" Template, daher das "tbb2" im Pfad. ;) Man kann ihn genau so für das Standardtemplate (da wäre dann "std" im Pfad) herrichten. Brauchst Du dabei Hilfe?

-----------
Tritanium Scripts developer
Filebased rulez
Geposted: 23.12.2012 14:16
neu_und_ratlos
Ist öfters hier

ID # 3031



Re: Profil erweitern
E-Mail schicken
Das ist wirklich ein toller Hack, zumal sich daraus lernen läßt, in die Tiefen der Quellen einzudringen. Trotzdem habe ich ein paar Probleme damit :

1.) Das ist eher ein allgemeines Problem und hat mit dem Kopieren zu tun. Als ich die entsprechenden Stellen in den Editor ( Notepad++ ) eingefügt habe, waren überall mehrere Leerzeilen zwischen den einzelnen Anweisungen. Gibt es eine Möglichkeit, Beispiele auf andere Weise rauzukopieren ?
2.) Nachdem ich den Hack eingebaut und getestet habe, wollte ich die Felder "Facebook" und "Last.fm" ( wobei ich nicht mal weiß, was das sein soll ) wieder entfernen. Zwar habe ich die Array-Nummer für der Geburtstag angepaßt, aber dann funktionierte trotzdem irgendwas nicht.
3.) Bei der Monatsauswahl des Geburtstag wird das "ä" von März nicht korrekt angezeigt. Ein ungültiges Zeichen ( keine Ahnung, was da stehen soll ) steht übrigens auch vor der Zahl der Beiträge pro Tag im für alle einsehbaren Profil.
4.) Der Erweiterungshack führt lediglich dazu, daß jeder User selbst seine eigenen erweiterten Profildaten sieht. Beim Profil, das alle ansehen können, tauchen sie nicht auf. - ERLEDIGT ! Ich hatte versehentlich den letzten Teil ebenfalls in "EditProfile.tpl" statt in "ViewProfile" eingefügt.
5.) Das betrifft nicht den Hack, aber den Zugriff auf Profile. Ich benutze den Hack, daß nur eingeloggte Mitglieder die Mitgliederdaten sehen können. Wer nun aber uneingeloggt auf den Namen eines Users klickt, hat dennoch Zugriff auf dessen Profil.


Dieser Beitrag wurde schon 1 Mal bearbeitet, zuletzt von neu_und_ratlos.
Geposted: 01.01.2013 22:14
Chrissyx
Supermoderator

ID # 2285



Re: Profil erweitern
E-Mail schicken
Zitat von neu_und_ratlos:
1.) Das ist eher ein allgemeines Problem und hat mit dem Kopieren zu tun. Als ich die entsprechenden Stellen in den Editor ( Notepad++ ) eingefügt habe, waren überall mehrere Leerzeilen zwischen den einzelnen Anweisungen. Gibt es eine Möglichkeit, Beispiele auf andere Weise rauzukopieren ?

Am besten zitierst Du meinen Beitrag und kopierst dann den Code aus der Textbox raus. ;)

Zitat von neu_und_ratlos:
2.) Nachdem ich den Hack eingebaut und getestet habe, wollte ich die Felder "Facebook" und "Last.fm" ( wobei ich nicht mal weiß, was das sein soll ) wieder entfernen. Zwar habe ich die Array-Nummer für der Geburtstag angepaßt, aber dann funktionierte trotzdem irgendwas nicht.

Naja, irgendwo eine Indexnummer ändern reicht nicht.^^ Z.B. muss die getUserDataHack-Funktion auch die passende Struktur zurückgeben:
Code
708
            return array(''0);

Und sämtliche userDataHack[3] durch userDataHack[1] ersetzen (PHP und TPLs) sowie die unerwünschten userDataHack[1] und userDataHack[2] löschen.

Zitat von neu_und_ratlos:
3.) Bei der Monatsauswahl des Geburtstag wird das "ä" von März nicht korrekt angezeigt. Ein ungültiges Zeichen ( keine Ahnung, was da stehen soll ) steht übrigens auch vor der Zahl der Beiträge pro Tag im für alle einsehbaren Profil.

- Das "ä" muss noch nach UTF-8 konvertiert werden
- Das "⌀" für Durchschnitt ist korrekt und scheitert in der Darstellung eher am Browser. Im Firefox geht's! ;) Kannst auch gerne in der Wikipedia mal testen.

Zitat von neu_und_ratlos:
5.) Das betrifft nicht den Hack, aber den Zugriff auf Profile. Ich benutze den Hack, daß nur eingeloggte Mitglieder die Mitgliederdaten sehen können. Wer nun aber uneingeloggt auf den Namen eines Users klickt, hat dennoch Zugriff auf dessen Profil.

Wenn nur eingeloggte Mitglieder die Profile sehen dürfen, dann setz einfach ein
Code
73
        if(!Main::getModule('Auth')->isLoggedIn())
74
            Main::getModule('Template')->printMessage('login_only'INDEXFILE '?faction=register' SID_AMPERINDEXFILE '?faction=login' SID_AMPER);

in die modules/Profile.php nach Zeile 72 (vom TBB 1.6.2 ausgehend).

-----------
Tritanium Scripts developer
Filebased rulez
Geposted: 02.01.2013 02:43
neu_und_ratlos
Ist öfters hier

ID # 3031



Re: Profil erweitern
E-Mail schicken
Danke für die extrem schnelle Antwort ! Das mit dem Kopieren durch die Zitierfunktion klappt zwar, aber lässt sich das nicht vielleicht auch durch eine Änderung des entsprechenden BB-Codes mit dem integrierten Editor erreichen ?

Den Userhack werde ich mir noch mal genauer ansehen, am besten ausdrucken, damit ich sehe, wo und wie das Array aufgebaut ist und auf welche Weise darauf zugegriffen wird. Ich benutze den Firefox und trotzdem wäre ich nie drauf gekommen, daß es sich um ein Zeichen für Durchschnitt handeln soll. Bei mir sehe ich da ein Quadrat, in dem oben "23" und unten "00" steht. Als Zeichenkodierung des Browsers ist Unicode (UTF-8) eingestellt. Auch in der Wikipedia sieht es bei mir so aus. Was kann ich dagegen tun ?

Und wie bekomme ich das 'ä" richtig ? Um sowas zu umgehen, codiere ich bei reinem HTML Umlaute lieber nach wie vor von Hand, also in dem Fall "&auuml;" ...

Der Hack für die Anzeige der Userdaten nur für registrierte Benutzer klappt prima. Danke ! Erst sah ich danach zwar immer nur eine leere Seite, egal ob eingeloggt oder nicht, aber nach Löschen des cache-Verzeichnisses ist alles wunderbar.

Edit : Also, der UTF-8-Code für Ø ist in ANSI Ø ! Das ist zwar angeblich ein Buchstabe, für den es auch eine kleine Form gibt, nämlich ø, aber egal, denn das Zeichen erfüllt seinen Zweck. Ich habe es bei mir in der "Profile.ini" mit dem Notepad++ gestestet und dann entsprechend eingesetzt.

Was das "ä" beim März betrifft, habe ich auch was gefunden : Smarty: Datumsauswahl und UTF8

Die Stelle "html_select_date" muß zu "html_select_date|utf8_encode" erweitert werden, dann funktioniert es.


Dieser Beitrag wurde schon 3 Mal bearbeitet, zuletzt von neu_und_ratlos.
Geposted: 02.01.2013 06:56

Seiten (2) [1 | 2   »] Neue Antwort erstellenNeues Thema erstellen
Tritanium Bulletin Board 2
© Tritanium Scripts