Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
| [ Anmelden zum schreiben ] |
| benutzercenter + (Avatar) | |||
|---|---|---|---|
| lude Mitglied
Posts: 14 |
Hallo,
ich möchte in Benutzercenter 1.1 im dem UserBanner den Avatar einbetten. Kann mir jemand dabei behilflich sein? <?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($fields, 2);
$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 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_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)) ? 1 : 0)).')';
} else {
$gebdatum = "n/a";
$alter = "";
}
if (empty($row['wohnort'])) {
$row['wohnort'] = '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 = 'Posts: ' . $row['posts'];
$text3 = 'Dabei seit: ' . $j;
$text5 = 'Letzer Login: ' . $ll;
$text8 = 'Geschlecht: ' . $geschlecht;
$text7 = 'Wohnort: ' . $row['wohnort'];
$text4 = 'Rang: ' . $row['rang'];
$text9 = $row['name'] . ' ist grade ' . $row['online'];
$text6 = 'Geburtsdatum: ' . $gebdatum . ' ' . $alter;
$fo = 2;
$schwarz = ImageColorAllocate($im, 0, 0, 0);
imagestring ($im, $fo, 20, 10, $text1, $schwarz);
imagestring ($im, $fo, 20, 20, $text2, $schwarz);
imagestring ($im, $fo, 20, 30, $text3, $schwarz);
imagestring ($im, $fo, 20, 40, $text4, $schwarz);
imagestring ($im, $fo, 170, 10, $text5, $schwarz);
imagestring ($im, $fo, 170, 20, $text6, $schwarz);
imagestring ($im, $fo, 170, 30, $text8, $schwarz);
imagestring ($im, $fo, 170, 40, $text7, $schwarz);
imagestring ($im, 1, 380, 2, '(c) Ilch-Mods.de', $schwarz);
}
if (!empty($fehler)) {
$im = imagecreate(strlen($fehler)*7, 18);
$color = imagecolorallocate($im, 0, 0, 0);
$color = imagecolorallocate($im, 255, 255, 255);
imagestring($im, 2, 4, 2, $fehler, $color);
}
header("Content-type: image/png");
ImagePNG($im);
exit();
} else {
//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('prefix_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($erg, 0);
$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'];
if ($row['showBanner'] and $row['recht'] > $allgAr['userbannerrecht']) {
$row['showBanner'] = 0;
}
$row['colspan'] = $row['showBanner'] ? 1 : 3;
$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> » </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'], 0, 60) . '...') . '<br /><span class="smalfont"> von ' . $r['last'] . '</span></a></td></tr>';
}
$row['last_forum'] .= '</table>';
$tpl->set_ar_out($row, 1);
}
$design->footer();
}
?>
verwendete ilchClan Version: 1.1 H betroffene Homepage: siedler.duesseldorfer-fungamer.de |
||
| Sunshine Live Mitglied
Posts: 913 |
Hier du koenntes das benutzen als ersatz
www.ilch.de/downloads-show-1616.html Meine Page Profilansicht 1.2b Profilansicht 1.2 |
||
| MVN050 Mitglied
Posts: 1067 |
die idee is gut aber geht das eig? ein bild auf einem bild?
warum bin ich da nit drauf gekommen
problem wird da wohl sein das, dan das avatar über den banner rausragt oder? aber versuch doch mal mit der datenbankabfrage den banner vom user zu speicher (wie ein text) und den dan anzeigen lassen www.stshq.de/ |
||
| lude Mitglied
Posts: 14 |
(Sunshine Live) Ich meinte das so das der avatar im banner ist
(MVN050) Das was du meinst habe ich schon aus probiert Dann steht da nur der weg zum Bild Zuletzt modifiziert von lude am 31.05.2011 - 22:59:01 |
||
| lude Mitglied
Posts: 14 |
es müsste mit imageCopy()gehen
ein Bild über ein anderes Bild zu kopieren <?php
header("Content-Type: image/png");
$banner = imageCreateFromPNG("$banner");
$avatar = imageCreateFromPNG("$row['avatar']");
imageCopy($banner, $avatar,
0, 0, /* imagecopy() an die Stelle ( 0, 0) in $banner, */
0, 0, /* der zu kopierende Bereich beginnt in $avatar bei ( 0, 0) */
96, 90); /* und ist 96 Pixel breit und 90 Pixel hoch */
imagepng($banner);
?>
aber ich weiß nicht wie ich das einbaue Zuletzt modifiziert von lude am 03.06.2011 - 14:11:46 |
||
| Ripper_L Mitglied
Posts: 417 |
Ich versteh zwar jetzt nicht ganz wie du das meinst, aber wenn du ganz simpel ein bild über einem anderen haben willst, kannst du das über css-styles machen. Du musst nur den bilden einen "z-index" geben... Das mit dem höheren z-index liegt so weit ich weis oben
![]() |
||
| DaStIaC Mitglied
Posts: 2178 |
Klar, wenn das ganze z.B. als Signatur geplant ist - nen super Vorschlag...
Also das header(), $banner = ... und imagepng() sind ja schon vorhanden oben. Musst doch jetzt eigentlich nur noch alles ordentlich ausrichten? PS: Achja $avatar = imageCreateFromPNG($row['avatar']); So und nicht anders! PPS: Ach ich kopiers mal auf die schnelle rein, kanns aber nicht testen. <?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($fields, 2);
$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 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_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)) ? 1 : 0)).')';
} else {
$gebdatum = "n/a";
$alter = "";
}
if (empty($row['wohnort'])) {
$row['wohnort'] = '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);
$avatar = imageCreateFromPNG($row['avatar']);
$text1 = 'Name: ' . $row['name'];
$text2 = 'Posts: ' . $row['posts'];
$text3 = 'Dabei seit: ' . $j;
$text5 = 'Letzer Login: ' . $ll;
$text8 = 'Geschlecht: ' . $geschlecht;
$text7 = 'Wohnort: ' . $row['wohnort'];
$text4 = 'Rang: ' . $row['rang'];
$text9 = $row['name'] . ' ist grade ' . $row['online'];
$text6 = 'Geburtsdatum: ' . $gebdatum . ' ' . $alter;
$fo = 2;
$schwarz = ImageColorAllocate($im, 0, 0, 0);
imagestring ($im, $fo, 20, 10, $text1, $schwarz);
imagestring ($im, $fo, 20, 20, $text2, $schwarz);
imagestring ($im, $fo, 20, 30, $text3, $schwarz);
imagestring ($im, $fo, 20, 40, $text4, $schwarz);
imagestring ($im, $fo, 170, 10, $text5, $schwarz);
imagestring ($im, $fo, 170, 20, $text6, $schwarz);
imagestring ($im, $fo, 170, 30, $text8, $schwarz);
imagestring ($im, $fo, 170, 40, $text7, $schwarz);
imagestring ($im, 1, 380, 2, '(c) Ilch-Mods.de', $schwarz);
imagecopy($im, $avatar, 0, 0, 0, 0, 96, 90);
}
if (!empty($fehler)) {
$im = imagecreate(strlen($fehler)*7, 18);
$color = imagecolorallocate($im, 0, 0, 0);
$color = imagecolorallocate($im, 255, 255, 255);
imagestring($im, 2, 4, 2, $fehler, $color);
}
header("Content-type: image/png");
ImagePNG($im);
exit();
} else {
//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('prefix_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($erg, 0);
$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'];
if ($row['showBanner'] and $row['recht'] > $allgAr['userbannerrecht']) {
$row['showBanner'] = 0;
}
$row['colspan'] = $row['showBanner'] ? 1 : 3;
$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> » </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'], 0, 60) . '...') . '<br /><span class="smalfont"> von ' . $r['last'] . '</span></a></td></tr>';
}
$row['last_forum'] .= '</table>';
$tpl->set_ar_out($row, 1);
}
$design->footer();
}
?>
Solltest jedoch noch überprüfen, ob der User überhaupt ein Avatar hochgeladen hat, da es sonst wohl nen Fehler geben wird - kann aber auch sein, dass er dann einfach nichts reinkopiert, das weiß ich jetzt nicht auswendig. Und das Bild müsste in diesem Fall natürlich immer nen PNG sein, also das Avatar. Das müsste man auch noch überprüfen und halt je nach Format die entsprechende Funktion benutzen: imagecreatefromgif(); imagecreatefromjpeg(); imagecreatefrompng(); Sag bescheid wenn du hilfe brauchst, dann helf ich gern. Man sieht ja bei dir, dass du dir selbst gedanken machst und eine lösung suchst. Ist leider nicht immer der fall.
Zuletzt modifiziert von DaStIaC am 04.06.2011 - 19:48:11 » www.lucror-gaming.com » www.planetpod.de » www.dodszene.net |
||
| lude Mitglied
Posts: 14 |
DaStIaC deine Hilfe war super danke
aber dann habe ich noch ein Anschlag auf dich jetzt ist der avatarr ja öfters mal was größer aber da habe ich ja auch was $ORIGINAL = imageCreateFromPNG($row['avatar']);
$oBreite = imageSX($ORIGINAL); /* Dies ist die Originalbreite */
$oHöhe = imageSY($ORIGINAL); /* Dies ist die Originalhöhe */
$nBreite = $oBreite / 54; /* Die neue Breite */
$nHöhe = $oHöhe / 57; /* Die neue Höhe */
$BILD = imageCreateTrueColor($nBreite, $nHöhe);
imageCopyResized($BILD, $ORIGINAL,
0, 0,
0, 0,
$nBreite, $nHöhe,
$oBreite, $oHöhe);
Nur das selbe Problem ich weiß mal wider nicht wo hin damit könntest du noch mal deine Hilfe anbieten Wenn kein png avatar dar ist kann man auch nach Zeile 58 if (empty($row['avatar'])) {
$row['avatar'] = 'include/images/avatars/noavatar.png';
}
eingeben Und in den Ordner include/images/avatars/ ein noavatar.png hochladen mit den hin weiß no avartar Zuletzt modifiziert von lude am 05.06.2011 - 13:06:21 |
||
| DaStIaC Mitglied
Posts: 2178 |
Also, am besten wäre es, wenn du ein Standard-Bild hast, welches genutzt wird, falls kein Avatar hochgeladen wurde.
Was ist denn deine maximale Avatargröße und wie groß darf es maximal sein, damit es auf die Signatur passt? Zu dem geposteten Code: Statt imagesx() und imagesy() getimagesize() verwenden. => $size = getimagesize($avatar); // $size[0] // Breite // $size[1] // Höhe // $size[2] // Bildtyp // $size['mime'] // Mime-Type: Benötigt zur Auslieferung siehe header() Also muss aus $avatar = imageCreateFromPNG($row['avatar']); Folgendes werden: <?php
$avatar_size = getimagesize($row['avatar']);
if($avatar_size[2] == 1) {
// Wenn das Bild ein GIF ist
$avatar = imagecreatefromgif($row['avatar']);
}
if($avatar_size[2] == 2) {
// Wenn das Bild ein JPG ist
$avatar = imagecreatefromjpeg($row['avatar']);
}
if($avatar_size[2] == 3) {
// Wenn das Bild ein PNG ist
$avatar = imagecreatefrompng($row['avatar']);
}
Die Frage ist jetzt: Soll das Avatar immer die gleiche Größe in der Signatur annehmen oder soll auf die Proportionen des Bildes geachtet werden? » www.lucror-gaming.com » www.planetpod.de » www.dodszene.net |
||
| lude Mitglied
Posts: 14 |
Also bei mir wäre das 54 X 57 aber es wäre besser wenn auf Proportionen des Bildes geachtet wird weil ich mal denke das noch ein paar andere das auch haben möchten
|
||
| DaStIaC Mitglied
Posts: 2178 |
Naja, ich mach das erstmal für deine Breite und Höhe. Was ist wenn das Avatar kleiner als 54x57 ist? Soll das dann auch verändert werden?
Weiß noch nicht ob ich das heute direkt schaffe, sonst mach ichs morgen schnell weiter. » www.lucror-gaming.com » www.planetpod.de » www.dodszene.net |
||
| lude Mitglied
Posts: 14 |
Ich würde mal sagen das alles auf eine Größe gemacht werden
|
||
| lude Mitglied
Posts: 14 |
Ich bekomme es nicht hin!
Zuletzt modifiziert von lude am 08.06.2011 - 07:51:56 |
||
| blakedj06 Mitglied
Posts: 62 |
Hi,
ich hab auch erst ne Weile gebraucht bis ich hinter die Imagecreate Materie gestiegen bin. Also mach einfach folgendes: Über $im = ImageCreateFromPNG($banner); machst den Code: if (!$row['avatar']){
$row['avatar'] = 'include/images/avatars/wurstegal.jpg';
}
Und darunter diesen hier: // Maximale Resize Maße für Proportionen des Bildes
$max_width = 50;
$max_height = 50;
// Max Resize
list($width, $height) = getimagesize($row['avatar']);
$ratioh = $max_height/$height;
$ratiow = $max_width/$width;
$ratio = min($ratioh, $ratiow);
// Neue Maße
$width1 = intval($ratio*$width);
$height1 = intval($ratio*$height);
// End neue Maße
$ext = strrchr($row['avatar'], '.');
$ext = strtolower(substr($ext, 1));
if ($ext == 'png'){
$source = imagecreatefrompng($row['avatar']);
}elseif($ext == 'jpg' or $ext == 'jpeg'){
$source = imagecreatefromjpeg($row['avatar']);
}elseif($ext == 'gif'){
$source = imagecreatefromgif($row['avatar']);
}
$avatar = imagecopyresampled($im, $source, 370, 10, 0, 0, $width1, $height1, $width, $height);
und unter dem letzten Imagestring noch diese Variable: $avatar; PS: Musst halt bei der Funktion imagecopyresampled noch die x und Y in meinem Fall x="370" y="10" Koordinaten für dein Banner anpassen. Zuletzt modifiziert von blakedj06 am 10.06.2011 - 15:00:43 Clanpage: comgaming.de DBO Community: dragonball.comgames.de Künstlerpage: blake-productions.de |
||
| DaStIaC Mitglied
Posts: 2178 |
Oh, dachte du hast es mit deinem geposteten Code selbst geschafft.
» www.lucror-gaming.com » www.planetpod.de » www.dodszene.net |
||
| lude Mitglied
Posts: 14 |
Super jetzt klappt es danke an DaStIaC und blakedj06
habe noch eine frage wie kann ich jetzt noch die Schrift Art ändern zum beispie($text1 = 'Name: ' . $row['name']; ) habe schon ein Ordner /include/fonts und da drinnen liegt Opal.ttf |
||
| lude Mitglied
Posts: 14 |
Schrift Art ändern
$font = dirname($_SERVER["Opal.ttf"]) . "Opal.ttf"; imagettftext ($im, 20, 0, 20, 11, $schwarz, $font, $text1); Und hier nochmal alles zusammen <?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($fields, 2);
$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 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_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)) ? 1 : 0)).')';
} else {
$gebdatum = "n/a";
$alter = "";
}
if (empty($row['wohnort'])) {
$row['wohnort'] = 'n/a';
}
if ($row['geschlecht'] == 1) {
$geschlecht = "Männlich";
} elseif ($row['geschlecht'] == 2) {
$geschlecht = "Weiblich";
} else {
$geschlecht = "n/a";
}
//wenn kein avatar da
if (!$row['avatar']){
$row['avatar'] = 'include/images/avatars/wurstegal.jpg';
}
//wenn kein avatar da Ende
$j = date('d.m.Y', $row['regist']);
$ll = date('d.m.Y', $row['llogin']);
$im = ImageCreateFromPNG($banner);
$text1 = 'Name: ' . $row['name'];
$text2 = 'Posts: ' . $row['posts'];
$text3 = 'Dabei seit: ' . $j;
$text5 = 'Letzer Login: ' . $ll;
$text8 = 'Geschlecht: ' . $geschlecht;
$text7 = 'Wohnort: ' . $row['wohnort'];
$text4 = 'Rang: ' . $row['rang'];
$text9 = $row['name'] . ' ist grade ' . $row['online'];
$text6 = 'Geburtsdatum: ' . $gebdatum . ' ' . $alter;
$fo = 2;
$schwarz = ImageColorAllocate($im, 0, 0, 0);
// Maximale Resize Maße für Proportionen des Bildes
$max_width = 50;
$max_height = 50;
// Max Resize
list($width, $height) = getimagesize($row['avatar']);
$ratioh = $max_height/$height;
$ratiow = $max_width/$width;
$ratio = min($ratioh, $ratiow);
// Neue Maße
$width1 = intval($ratio*$width);
$height1 = intval($ratio*$height);
// End neue Maße
$ext = strrchr($row['avatar'], '.');
$ext = strtolower(substr($ext, 1));
if ($ext == 'png'){
$source = imagecreatefrompng($row['avatar']);
}elseif($ext == 'jpg' or $ext == 'jpeg'){
$source = imagecreatefromjpeg($row['avatar']);
}elseif($ext == 'gif'){
$source = imagecreatefromgif($row['avatar']);
}
$avatar = imagecopyresampled($im, $source, 370, 10, 0, 0, $width1, $height1, $width, $height);
// Maximale Resize Maße für Proportionen des Bildes Ende
//Schrift Art ändern
$font = dirname($_SERVER["Opal.ttf"]) . "Opal.ttf"; //HAUPTVERZEICHNIS
imagettftext ($im, 20, 0, 20, 10, $schwarz, $font, $text1);
//Schrift Art ändern ENDE
//imagestring ($im, $fo, 20, 10, $text1, $schwarz);
imagestring ($im, $fo, 20, 20, $text2, $schwarz);
imagestring ($im, $fo, 20, 30, $text3, $schwarz);
imagestring ($im, $fo, 20, 40, $text4, $schwarz);
imagestring ($im, $fo, 170, 10, $text5, $schwarz);
imagestring ($im, $fo, 170, 20, $text6, $schwarz);
imagestring ($im, $fo, 170, 30, $text8, $schwarz);
imagestring ($im, $fo, 170, 40, $text7, $schwarz);
imagestring ($im, 1, 380, 2, '(c) Ilch-Mods.de', $schwarz);
}
if (!empty($fehler)) {
$im = imagecreate(strlen($fehler)*7, 18);
$color = imagecolorallocate($im, 0, 0, 0);
$color = imagecolorallocate($im, 255, 255, 255);
imagestring($im, 2, 4, 2, $fehler, $color);
}
header("Content-type: image/png");
ImagePNG($im);
exit();
} else {
//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('prefix_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($erg, 0);
$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'];
if ($row['showBanner'] and $row['recht'] > $allgAr['userbannerrecht']) {
$row['showBanner'] = 0;
}
$row['colspan'] = $row['showBanner'] ? 1 : 3;
$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> » </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'], 0, 60) . '...') . '<br /><span class="smalfont"> von ' . $r['last'] . '</span></a></td></tr>';
}
$row['last_forum'] .= '</table>';
$tpl->set_ar_out($row, 1);
}
$design->footer();
}
?>
Zuletzt modifiziert von lude am 12.06.2011 - 19:02:54 |
||
| [ Anmelden zum schreiben ] |