Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Andere Dinge » UserBanner Profilfelder


UserBanner Profilfelder
Der Bock
Gast

User Pic

# 27.03.2009 - 20:40:03
    zitieren



Hallo,
ich möchte in dem UserBanner eigene Profilfelder einbetten.
Ich habe sie wie in meiner memb_list.php eingefügt.
Jedoch produziere ich damit nur Fehler in der Ausgabe!
Es handelt sich um die psnid und pslid felder
Kann mir jemand dabei behilflich sein?
Würde mich über eine Antwort und Lösung sehr freuen!!!Smilie

Hier der Fehler: LINK zum Fehler

Hier mein jetziger Benutercenter-Code:
 Php
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:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
  <?php
defined
('main') or die('no direct access');

$onlinetime 600;

if (!
function_exists('arrayToDb')) {
    function 
arrayToDb($table$ar$where ''$ar2 = array()) {
        
$mode = empty($where) ? 'INSERT INTO' 'UPDATE';
        
$fields '';
        foreach (
$ar as $k => $v) {
            if (
in_array($k$ar2)) {
                continue;
            }
            
$fields .= ", `$k` = " . (is_null($v) ? 'NULL' "'$v'");
        }
        
$fields substr($fields2);
        
$query "$mode $table SET $fields $where;";
        if (
db_query($query)) {
            return 
true;
        } else {
            return 
false;
        }
    }
}

if (
$menu->get(1) == 'banner') {
    
// Banner anzeigen
    
$uid intval($menu->get(2));

    
$abf "SELECT a.val AS psnid, b.val AS pslid, u.*, IF(u.spezrank>0,r.bez,r2.bez) AS rang, IF(o.uid=u.id,'Online','Offline') AS online
    FROM prefix_user u
        LEFT JOIN `prefix_ranks` r ON u.spezrank = r.id AND r.spez = 1
        LEFT JOIN `prefix_ranks` r2 ON IF(u.posts=0,1,u.posts) >= r2.min AND r2.spez = 0
        LEFT JOIN `prefix_userfields` AS a ON user.id = a.uid AND a.fid = 18 
        LEFT JOIN `prefix_userfields` AS b ON user.id = b.uid AND b.fid = 19
        LEFT JOIN `prefix_online` o ON u.id = o.uid AND o.uptime > '"
.date('Y-m-d H:m:i'time() - $onlinetime)."'
    WHERE u.id = 
{$uid}";
    
$qry db_query($abf);
    if (
db_num_rows($qry) == 0
        
$fehler 'Benutzer nicht gefunden';
    } elseif (
$row db_fetch_assoc($qry) and $row['recht'] > $allgAr['userbannerrecht']) {
        
$fehler 'Banner für diesen User nicht erlaubt';
    } elseif (!
file_exists($allgAr['userbannerlink'])) {
        
$fehler 'Bannervorlagenbild nicht gefunden';
    } elseif (
$tmp getimagesize($allgAr['userbannerlink']) and $tmp[2] != 3) {
        
$fehler 'Bannervorlagenbild kein PNG';
    } else {
        
$banner $allgAr['userbannerlink'];

        if (
$row['gebdatum'] !== "0000-00-00") {
            list(
$y$m$d) = explode('-'$row['gebdatum']);
            
$gebdatum "$d.$m.$y";
            
$alter '('.((date('Y') - $y) - ((date('m') < $m or (date('m') == $m and date('d') < $d)) ? 0)).')';
        } else {
            
$gebdatum "n/a";
            
$alter "";
        }
        if (empty(
$row['wohnort'])) {
            
$row['wohnort'] = 'n/a';
        }
        if (empty(
$row['psnid'])) {
            
$row['psnid'] = 'n/a';
        }
        if (empty(
$row['pslid'])) {
            
$row['pslid'] = 'n/a';
        }
        if (
$row['geschlecht'] == 1) {
            
$geschlecht "Männlich";
        } elseif (
$row['geschlecht'] == 2) {
            
$geschlecht "Weiblich";
        } else {
            
$geschlecht "n/a";
        }

        
$j date('d.m.Y'$row['regist']);
        
$ll date('d.m.Y'$row['llogin']);
        
$im ImageCreateFromPNG($banner);
        
$text1 'Name: ' $row['name'];
        
$text2 'PSN-ID: ' $row['psnid'];
        
$text3 'PSL-ID: ' $row['psnid'];
        
$text4 'Letzer Login: ' $ll;
        
$text5 'Geschlecht: ' $geschlecht;
        
$text6 'Wohnort: ' $row['wohnort'];
        
$text7 'Rang: ' $row['rang'];
        
$text8 $row['name'] . ' ist grade ' $row['online'];
        
$text9 'Geburtsdatum: ' $gebdatum ' ' $alter;
        
$fo 2;
        
$schwarz ImageColorAllocate($im000);
        
imagestring ($im$fo2010$text1$schwarz);
        
imagestring ($im$fo2020$text2$schwarz);
        
imagestring ($im$fo2030$text3$schwarz);
        
imagestring ($im$fo2040$text4$schwarz);
        
imagestring ($im$fo17010$text5$schwarz);
        
imagestring ($im$fo17020$text6$schwarz);
        
imagestring ($im$fo17030$text8$schwarz);
        
imagestring ($im$fo17040$text7$schwarz);
        
imagestring ($im13802'(c) Ilch-Mods.de'$schwarz);
    }
    if (!empty(
$fehler)) {
        
$im imagecreate(strlen($fehler)*718);
        
$color imagecolorallocate($im000);
        
$color imagecolorallocate($im255255255);
        
imagestring($im242$fehler$color);
    }
    
header("Content-type: image/png");
    
ImagePNG($im);
    exit();{
}  {
    
//Benutzercenter anzeigen
    
$title $allgAr['title'] . ' :: Benutzercenter';
    
$hmenu 'Benutzercenter';
    
$design = new design ($title $hmenu);

    if (
$_SESSION['authid'] == 0) {
        
$design->header();
        echo 
'Bitte logge dich ein!!!';
    } else {
        
$tpl = new tpl('benutzercenter');
        
$design->addheader($tpl->get(0));
        
$design->header();

        
$row db_fetch_assoc(db_query('SELECT u.*, b.* FROM prefix_user u LEFT JOIN prefix_benutzercenter b ON u.id = b.notizuid WHERE u.id = ' $_SESSION['authid']));
        if (isset(
$_POST['submit'])) {
            
//Notiztext updaten
            
$update = !is_null($row['notiztext']);
            
$row['notiztext'] = escape($_POST['notiztext'], 'textarea');
            if (
$update) {
                
db_query("UPDATE `prefix_benutzercenter` SET notiztext = '{$_row['notiztext']}' WHERE notizuid = " $_SESSION['authid']);
            } else {
                
db_query("INSERT INTO `prefix_benutzercenter` (notizuid, notiztext) VALUES ({$_SESSION['authid']}, '{$_row['notiztext']}')");
            }
            
//Usertabelle updaten
            
$updateUser = array();
            if (
$row['status'] != $_POST['status']) {
                
$row['status'] = $updateUser['status'] = escape($_POST['status'], 'integer');
            }
            if (
$row['opt_pm'] != $_POST['msg']) {
                
$row['opt_pm'] = $updateUser['opt_pm'] = escape($_POST['msg'], 'integer');
            }
            if (
$row['opt_mail'] != $_POST['mails']) {
                
$row['opt_mail'] = $updateUser['opt_mail'] = escape($_POST['mails'], 'integer');
            }
            if (!empty(
$updateUser)) {
                
arrayToDb('user'$updateUser'WHERE id = '.$_SESSION['authid']);
            }
        }

        
$erg db_query("SELECT COUNT(id) FROM `prefix_pm` WHERE gelesen = 0 AND status < 1 AND eid = " $_SESSION['authid']);
        
$row['check_pm'] = db_result($erg0);

        
$scriptlink 'http://' $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];

        
$row['profillink'] = $scriptlink '?user-details-' $_SESSION['authid'];
        if (
$allgAr['userhtaccess'] == 1) {
            
$row['imgsrc'] = dirname($scriptlink) . '/stats-' $_SESSION['authid'] . '.png';
        } else {
            
$row['imgsrc'] = $scriptlink '?benutzercenter-banner-' $_SESSION['authid'];
        }

        
$row['sitename'] = $allgAr['title'];
        
$row['showNotiz'] = $allgAr['usernotiz'];
        
$row['showBanner'] = $allgAr['userbanner'];

        
$anzahl intval($allgAr['userlastforum']);
        
$query "SELECT a.id, a.name, a.rep, c.erst as last, c.id as pid, c.time
FROM prefix_topics a
  LEFT JOIN prefix_forums b ON b.id = a.fid
  LEFT JOIN prefix_posts c ON c.id = a.last_post_id
  LEFT JOIN prefix_groupusers vg ON vg.uid = " 
$_SESSION['authid'] . " AND vg.gid = b.view
  LEFT JOIN prefix_groupusers rg ON rg.uid = " 
$_SESSION['authid'] . " AND rg.gid = b.reply
  LEFT JOIN prefix_groupusers sg ON sg.uid = " 
$_SESSION['authid'] . " AND sg.gid = b.start
WHERE ((" 
$_SESSION['authright'] . " <= b.view AND b.view < 1)
   OR (" 
$_SESSION['authright'] . " <= b.reply AND b.reply < 1)
   OR (" 
$_SESSION['authright'] . " <= b.start AND b.start < 1)
     OR vg.fid IS NOT NULL
     OR rg.fid IS NOT NULL
     OR sg.fid IS NOT NULL
     OR -9 >= " 
$_SESSION['authright'] . ")
ORDER BY c.time DESC
LIMIT 0,
$anzahl";
        
$row['last_forum'] = '<table>';
        
$resultID db_query($query);
        while (
$r db_fetch_assoc($resultID)) {
            
$r['date'] = date('d.m.y - H:i'$r['time']);
            
$r['page'] = ceil (($r['rep'] + 1) / $allgAr['Fpanz']);
            
$row['last_forum'] .= '<tr><td valign="top"><b> &raquo; </b></td><td><a href="?forum-showposts-' $r['id'] . '-p' $r['page'] . '#' $r['pid'] . '" title="' $r['date'] . '">' . ((strlen($r['name']) < 60) ? $r['name'] : substr($r['name'], 060) . '...') . '<br /><span class="smalfont"> von ' $r['last'] . '</span></a></td></tr>';
        }
        
$row['last_forum'] .= '</table>';

        
$tpl->set_ar_out($row1);
    }

    
$design->footer();
}
?> 
Mairu
Administrator

User Pic

Posts: 1908
# 28.03.2009 - 09:33:01
    zitieren



 Code
1:
2:
         LEFT JOIN `prefix_userfields` AS a ON user.id = a.uid AND a.fid = 18
        LEFT JOIN `prefix_userfields` AS b ON user.id = b.uid AND b.fid = 19


An dieser Stelle nicht user.id sondern u.id verwenden, dann sollte es gehen.
Der Bock
Gast

User Pic

# 28.03.2009 - 10:54:26
    zitieren



Der Weg ist gut!
Nun kommt was neues als fehler.
Bin ich blind?
Der Bock
Gast

User Pic

# 28.03.2009 - 11:09:37
    zitieren



...ja ich war blind!
Vielen Dank für die Hilfe!
Jetzt funktioniert es!!!Smilie
Der Bock
Grünschnabel

User Pic

Posts: 24
# 28.03.2009 - 11:16:44
    zitieren



Gibt es evntl. eine Möglichkeit die UserBanner mit drei zur Auswahl stehenden "Banner" anzubieten!
So könnte man ja nach Geschmack bzw. Spiel sein Lieblingbanner benutzen!?
Gruß und vielen Dank noch einmal!

Mairu
Administrator

User Pic

Posts: 1908
# 28.03.2009 - 12:01:14
    zitieren



Naja ich schau es mir die Tage nochmal an.
zlausi
Grünschnabel

User Pic

Posts: 7
# 12.03.2010 - 13:25:33
    zitieren



Hi bin neu in dem Bereich...
Habe das benutzercenter intalliert und sowiet funktioniert es auch.
Nur wenn ich die User-Banner ändern will werden sie nicht angezeit.
Kann mir einer sagen wie die png Dateien heißen müssen und wie und wo man sie hochladen kann???
Kann das der User selber oder muss ich das als Admin machen?

MfG =MKC= zlausi
Mairu
Administrator

User Pic

Posts: 1908
# 13.03.2010 - 10:05:51
    zitieren



Wie meinst du das mit dem Ändern, das Bildformat und der Dateiname dabei ist wichtig und muss gleich bleiben. (include/images/usercenter/banner.png hochladen - hochladen halt ganz normal über FTP)
zlausi
Grünschnabel

User Pic

Posts: 7
# 13.03.2010 - 14:46:51
    zitieren



ist das nicht so gedacht das sich jeder user sein eigenes User-Banner erstellen kann???
und das im usercenter abgelegt wird???
oder wäre das vieleicht machbar??? das z.b. jeder sein eigenes banner mit seiner User ID hinterlegen kann... also z.b. 1.png, 2.png usw. dann wäre es doch individuell... und wenn der admin dann noch unter der userverwaltung einstellen könnte wer das darf oder nicht wäre das super... fg ok... sry schweife ab..lol
Aber vileicht ist das ja mal eine Anregung für dich.. ich kann leider nicht programmieren.. bin froh wenn ich module installieren kann...

Also dann MfG Zlausi
Mairu
Administrator

User Pic

Posts: 1908
# 14.03.2010 - 09:23:41
    zitieren



Nein also das Banner ist nicht gedacht, das jeder Sein eigenes Bild hat, als Bsp nehmen wir mal xfire, da hat auch den gleichen Hintergrund, es soll ja theoretisch auch einen Wiedererkennungswert haben, sonst bringt das Banner ja nix, möglich ist deine Vorstellung natürlich trotzdem, wobei ich auch sagen muss, dass ich das Modul ursprünglich nicht geschrieben hat, nur es haben einige Benutzt und es gab Fehler oder so und da hab ich den Code mal gesäubert, deswegen gibts das hier zum Download, das mit den mehreren Bannern zur Auswahl hab ich glaube ich sogar geschrieben gehabt, allerdings ist das nicht für jeden einzeln, da müsstest du mal versuchen Der Bock zu erreichen.

Problem bei den einzelnen wäre, dass das Bild feste Maße haben muss und die wenigsten in der Lage sind ein entsprechendes Bild zu erzeugen.
zlausi
Grünschnabel

User Pic

Posts: 7
# 15.03.2010 - 11:18:47
    zitieren



Danke für deine Antwort...Smilie
Aber der name User-Banner ist dann etwas verwirrend... Denn ich bin deshalb drauf gestoße, weil ein User eben sein eigenes Banner einrichten wollte und es nicht ging.

Das mit dem Panner Format wäre ja nicht das Problem, weil es liegt ja die .psd datei bei so dass man ja die Maße und eigenschaften hat. Wie jeder einzelne das dann hinbekommt obliegt Ihm selber... oder der Admin in dem Fall ich könnten div. etwickeln und als Vorlage bereitstellen. Dann müsste man nur den entsprechenden Namen ergänzen und fertig...

Wie gesagt ich kann sowas leider nicht programmieren aber es wäre mal eine Idee.. heheZwinker

OK danke für die Info... bis auf weiteres muss ich es meinem User halt so erklären...
Dennoch macht Ihr hier eine super Arbeit und ist echt hilfreich bei Problemen...

MfG Zlausi