Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: PimpYourKiT. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Kolbe

Anfänger

  • »Kolbe« ist der Autor dieses Themas

Beiträge: 6

PHPKIT Version: PHPKIT 1.6.6

Danksagungen: 1 / 1

  • Nachricht senden

1

Freitag, 21. September 2012, 12:58

Avatar Einstellungen unter Profil editieren statt erw. Einst.

Hallo,

mein erster Post in diesem Forum. Daher zunächst ein riesen Lob an die Verantwortlichen dieser Seite. Danke für euren unermüdlichen Einsatz :thumbup:

Ich stecke im Moment bei einem Problem fest und komme da nicht so richtig weiter.

Konkret geht es um die Avatar-Einstellungen. Dieser werden ja standardmäßig unter "Persönlicher Bereich - Erweiterte Einstellungen" (mode=options) vorgenommen.

Ich hätte es nun ganz gerne, dass ich eben diese Einstellungen unter "Persönlicher Bereich - Profil editieren" (mode=edit) vornehmen kann.

Ein bloßes kopieren von <$avatar_eod> von der extoption.htm in die usereditprofile.htm hat nichts gebracht. Ich habe dann noch versucht, einzelne Codeabschnitte aus anderen Dateien (extoption_avatar und zugehörige) an entsprechender Stelle in der usereditprofile.htm zusammenzufassen. Mit mäßigem Erfolg. Zwar funktionieren die Links (wobei dann allerdings immer wieder in die Erweiterten Einstellungen zurück gesprungen wird), das Avatar-Bild an sich wird jedoch nicht angezeigt, da der Pfad nicht vollständig übergeben wird.

Der Fehler liegt meinem Verständnis nach bei ... tusch ... mir. :D Ich habe zwar gute Html Kenntnisse, bei PHP bin ich aber noch weit davon entfernt, Änderungen selbstständig vorzunehmen. Ich vermute, dass in der entsprechenden userprofile.php noch einiges umgeschmissen werden muss.

Daher meine Frage, ob ihr mir evtl. einen Rat geben könntet. Ich habe Google fleißig bemüht in der Hoffnung, dass jemand vor mir schon ähnliche Änderungen vorgenommen hat. Auch eine Suche nach Lösungen in etlichen Foren Rund um's PHPKIT brachten mir keine Ergebnisse.

Mir ist klar, dass ich hier sicherlich keine maßgeschneiderte Lösung vorgekaut bekommen werde und ich erwarte dies auch gar nicht. Wäre allerdings toll, wenn mir jemand auf die Sprünge helfen könnte.

Ansonsten hoffe ich, dass ich mein Problem ausrecihend beschrieben habe.

Schönen Gruß

Kolbe

reddevil82

PHPKIT Oldie

  • »reddevil82« ist männlich
  • »reddevil82« ist ein verifizierter Benutzer

Beiträge: 3 204

Wohnort: Spiesen-Elversberg

Beruf: Einzelhandelskaufmann

PHPKIT Version: Kein PHPKIT

Danksagungen: 1028 / 371

  • Nachricht senden

2

Samstag, 22. September 2012, 11:32

Ie du bereits richtig erkannt hast werden die jeweiligen seiten in der php Datei per mode=xxx aufgerufen.

du kannst mal folgendes versuchen:

Der Bereich von

PHP-Quelltext

1
 case 'options' :

bis

PHP-Quelltext

1
2
break;
#END case options


ist verantwortlich für den Optionenbereich.

Diesen kompletten Code dazwischen machst du jetzt testweise einfach mal unter:

PHP-Quelltext

1
2
    case 'edit' :
        $S=&$SQL;


Achtung das ist ungetestet
Auch mal den Bedanken Button nutzen tut nicht weh und der Ersteller freut sich umso mehr.

Zitat von »Friedrich Nietzsche«

Der, welcher etwas Großes schenkt, findet keine Dankbarkeit, denn der Beschenkte hat schon durch das Annehmen zu viel Last.

Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Kolbe (22. September 2012, 14:13)

Kolbe

Anfänger

  • »Kolbe« ist der Autor dieses Themas

Beiträge: 6

PHPKIT Version: PHPKIT 1.6.6

Danksagungen: 1 / 1

  • Nachricht senden

3

Samstag, 22. September 2012, 14:11

Hallo,

zunächst einmal vielen Dank für die Antwort.

Kurzversion:
Es hat geklappt. Du hast mich auf den richtigen Weg gebracht. Mit ein wenig Trial & Error und Hirnschmalz konnte ich mein Problem vollständig lösen.

Langversion:
Nachdem ich den von dir genannten Code an die entsprechende Stelle kopiert hatte, funktionierte im Prinzip alles. Es ergaben sich nur mehrere Probleme:

  1. Der Inhalt der extoption.htm wurde unter "Persönlicher Bereich - Profil editieren" vor dem Inhalt der usereditprofile.htm angezeigt.
  2. Änderungen unter "Profil editieren" wurden nicht gespeichert. Unnötige Codefragmente waren vorhanden.
  3. Beim "Entfernen", "Auswählen" und "Hochladen" sprang die Anzeige zurück zu "Persönlicher Bereich - Erweiterte Einstellungen".
Problemlösungen:

zu 1)
Das war das Einfachste. Es musste lediglich die letzte Zeile des kopierten Bereichs entfernt werden:

PHP-Quelltext

1
eval("\$site_body.=\"".pkTpl("extoption")."\";");


Nach Entfernen wurde wie gewünscht lediglich der Inhalt der usereditprofile.htm angezeigt.


Zu 2)
Zunächst habe ich in der userprofile.php den nicht benötigten Code aus dem hineinkopierten Teil innerhalb der case edit rausgeschmissen. Das betraf u.A. die Teile zu user_imoption, _notify usw. Dabei habe ich auch gleich den Teil entfernt, der unter case options für das Speichern verantwortlich war. Von dem ursprünglich kopierten und eingefügten Teil ist unter case edit somit nur noch folgender Code übrig geblieben:

Hier klicken für weitere Informationen

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
$userinfo=$SQL->fetch_assoc($SQL->query("SELECT 
            *
            FROM ".pkSQLTAB_USER." 
            WHERE user_name='".$SQL->f(pkGetUservalue('name'))."' AND
                user_pw='".$SQL->f(pkGetUservalue('pass'))."' AND 
                user_id='".$SQL->f(pkGetUservalue('id'))."'
            LIMIT 1"));
        
        if($info['user_profillock']==1)
            return pkEvent('eventtitle_profile_update_disabled');


        pkLoadLang('profile');
        pkLoadFunc('user');

    
        if(isset($_REQUEST['setavatar']))
            {
            if($_REQUEST['unset']==1)
                {
                if(strstr($_REQUEST['setavatar'],'avauser'))
                    {
                    $name=pkGetConfig('avatar_path')."/avauser_".pkGetUservalue('id').".";

                    @unlink($name.'gif');
                    @unlink($name.'jpg');
                    @unlink($name.'png');
                    }

                unset($_REQUEST['setavatar']);
                }
    
            $avatar=basename($_REQUEST['setavatar']);
            $path=pkGetConfig('avatar_path').'/'.$avatar;

            if(    (!pkFileCheck($path)) || 
                (substr($path,-4)=='.php') ||
                (strstr($avatar,'avauser') && (substr($avatar,0,8+strlen(pkGetUservalue('id')))!='avauser_'.pkGetUservalue('id') || pkGetConfig('avatar_eod')!=2)) || 
                (strstr($avatar,'avamember') && (pkGetUservalue('status')!='member' && pkGetUservalue('status')!='vip' && pkGetUservalue('status')!='mod' && pkGetUservalue('status')!='admin')) || 
                (strstr($avatar,'avavip') && (pkGetUservalue('status')!='vip' && pkGetUservalue('status')!='mod' && pkGetUservalue('status')!='admin')) || 
                (strstr($avatar,'avamod') && (pkGetUservalue('status')!='mod' && pkGetUservalue('status')!='admin')) ||
                (strstr($avatar,'avaadmin') && pkGetUservalue('status')!='admin')
                )
                $avatar='';
                    
            $SQL->query("UPDATE ".pkSQLTAB_USER." 
                SET user_avatar='".$SQL->f($avatar)."' 
                WHERE user_id='".$SQL->i(pkGetUservalue('id'))."'");

            pkHeaderLocation('userprofile','options');
            }
            
        $userinfo['user_nick']=pkEntities($userinfo['user_nick']);


        
        if($config['avatar_eod']==|| $config['avatar_eod']==2)
            {
            $userinfo['user_avatar']=basename($userinfo['user_avatar']);
            
            if($userinfo['user_avatar']!='' && @filecheck($config['avatar_path']."/".$userinfo['user_avatar']))
                {
                $avatar_dimension[3]=@getimagesize($config['avatar_path']."/".$userinfo['user_avatar']);
        
                eval("\$avatar_show= \"".pkTpl("user_avatar_show")."\";");
                eval("\$avatar_deselect= \"".pkTpl("extoption_avatar_deselect")."\";");
                }
            
            if($config['avatar_eod']==2)
                {
                eval("\$avatar_upload= \"".pkTpl("extoption_avatar_upload")."\";");
                }
            
            eval("\$avatar_eod= \"".pkTpl("extoption_avatar")."\";");
            }
        
        if(pkGetConfig('user_delete'))
            eval("\$extoption_delete= \"".pkTpl("extoption_delete")."\";");
        
        $user_navigation=pkUserNavigation();


Es stellt sich mir jedoch die Frage, ob hier nicht vielleicht noch mehr raus Code kann.


Zu 3:
Es funktionierte zwar alles, jedoch sprang die Anzeige immer wieder zurück zur Seite "Erweiterte Einstellungen".
Das habe ich dadurch gelöst, dass ich in der userprofile.php unter case avatar und case edit (nur der aus case options kopierter Part) folgende Änderungen vorgenommen habe:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
case 'avatar' :

pkHeaderLocation('userprofile','options','setavatar='.urlencode(basename($filename)));
geändert in
pkHeaderLocation('userprofile','edit','setavatar='.urlencode(basename($filename)));

case 'edit' :

pkHeaderLocation('userprofile','options');
geändert in
pkHeaderLocation('userprofile','edit');


Außerdem musste ich noch einige htm Dateien unter /pkinc/publictpl ändern:

extoption_avatar_deselect

Quellcode

1
2
3
<a href="include.php?path=userprofile&amp;mode=options&amp;setavatar=$userinfo[user_avatar]&amp;unset=1">Entfernen</a>
geändert in
<a href="include.php?path=userprofile&amp;mode=edit&amp;setavatar=$userinfo[user_avatar]&amp;unset=1">Entfernen</a>


getavatar.htm

Quellcode

1
2
3
<td class="heads" colspan="3">$user_navigation <a class="heads" href="include.php?path=userprofile&amp;mode=options">Erweiterte Einstellungen</a> » Avatar ausw&auml;hlen</td>
geändert in
<td class="heads" colspan="3">$user_navigation <a class="heads" href="include.php?path=userprofile&amp;mode=edit">Profil editieren</a> » Avatar ausw&auml;hlen</td>


getavatar_upload.htm

Quellcode

1
2
3
<a class="heads" href="include.php?path=userprofile&amp;mode=options">Erweiterte Einstellungen</a> » Avatar hochladen</td>
geändert in
<a class="heads" href="include.php?path=userprofile&amp;mode=edit">Profil editieren</a> » Avatar hochladen</td>


getavatar_list.htm

Quellcode

1
2
3
<th class="$row" width="33%"><a href="include.php?path=userprofile&amp;mode=options&amp;setavatar=$datei"><img border="0" $avatar_dimension[3] align="center" alt="Avatar: $datei - Zum Ausw&auml;hlen anklicken" src="$dir/$datei" /></a></th>
geändert in
<th class="$row" width="33%"><a href="include.php?path=userprofile&amp;mode=edit&amp;setavatar=$datei"><img border="0" $avatar_dimension[3] align="center" alt="Avatar: $datei - Zum Ausw&auml;hlen anklicken" src="$dir/$datei" /></a></th>


Fazit:
Es läuft wie geschmiert 8-)

Hiermit sei dir mein Dank entgegengeschleudert und ein virtuelles Bier ausgegeben :D

Ich habe eine Menge gelernt.

Gruß

Kolbe

Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

reddevil82 (22. September 2012, 19:48)

reddevil82

PHPKIT Oldie

  • »reddevil82« ist männlich
  • »reddevil82« ist ein verifizierter Benutzer

Beiträge: 3 204

Wohnort: Spiesen-Elversberg

Beruf: Einzelhandelskaufmann

PHPKIT Version: Kein PHPKIT

Danksagungen: 1028 / 371

  • Nachricht senden

4

Samstag, 22. September 2012, 19:49

Super das es geklappt hat und ich finde es super von dir das du die Lösung für andere gleich mitgeliefert hast.
Auch mal den Bedanken Button nutzen tut nicht weh und der Ersteller freut sich umso mehr.

Zitat von »Friedrich Nietzsche«

Der, welcher etwas Großes schenkt, findet keine Dankbarkeit, denn der Beschenkte hat schon durch das Annehmen zu viel Last.

Social Bookmarks