» Forum » Clanscript » Module und Modifikationen » benutzercenter + (Avatar)
  Mitglieder   |   Gallery   |   FAQ's   |   Regeln

[ Anmelden zum schreiben ]

benutzercenter + (Avatar)
lude
Mitglied
1 Beitragspunkte
Posts: 14

0 Mitglieder finden den Beitrag gut.

Merkliste 31.05.2011 - 17:41:06     Zitieren
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> &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'], 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
69 Beitragspunkte
Posts: 913

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 31.05.2011 - 18:08:46     Zitieren
Hier du koenntes das benutzen als ersatz
www.ilch.de/downloads-show-1616.html


Meine Page
Profilansicht 1.2b
Profilansicht 1.2
MVN050
Mitglied
19 Beitragspunkte
Posts: 1067

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 31.05.2011 - 18:14:30     Zitieren
die idee is gut aber geht das eig? ein bild auf einem bild?
warum bin ich da nit drauf gekommen Traurig

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
1 Beitragspunkte
Posts: 14

0 Mitglieder finden den Beitrag gut.

Merkliste 31.05.2011 - 19:25:22     Zitieren
(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
1 Beitragspunkte
Posts: 14

1 Mitglieder finden den Beitrag gut.

Merkliste 02.06.2011 - 09:36:57     Zitieren
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
10 Beitragspunkte
Posts: 417

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 04.06.2011 - 19:33:22     Zitieren
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 Zwinker
DaStIaC
Mitglied
53 Beitragspunkte
Posts: 2178

User Pic

1 Mitglieder finden den Beitrag gut.

Merkliste 04.06.2011 - 19:39:20     Zitieren
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> &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'], 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. jep

Zuletzt modifiziert von DaStIaC am 04.06.2011 - 19:48:11


» www.lucror-gaming.com
» www.planetpod.de
» www.dodszene.net
lude
Mitglied
1 Beitragspunkte
Posts: 14

0 Mitglieder finden den Beitrag gut.

Merkliste 05.06.2011 - 11:25:34     Zitieren
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
53 Beitragspunkte
Posts: 2178

User Pic

1 Mitglieder finden den Beitrag gut.

Merkliste 05.06.2011 - 14:31:15     Zitieren
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
1 Beitragspunkte
Posts: 14

0 Mitglieder finden den Beitrag gut.

Merkliste 05.06.2011 - 15:16:19     Zitieren
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
53 Beitragspunkte
Posts: 2178

User Pic

1 Mitglieder finden den Beitrag gut.

Merkliste 05.06.2011 - 17:55:03     Zitieren
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
1 Beitragspunkte
Posts: 14

0 Mitglieder finden den Beitrag gut.

Merkliste 05.06.2011 - 19:10:27     Zitieren
Ich würde mal sagen das alles auf eine Größe gemacht werden
lude
Mitglied
1 Beitragspunkte
Posts: 14

0 Mitglieder finden den Beitrag gut.

Merkliste 07.06.2011 - 15:21:47     Zitieren
Ich bekomme es nicht hin! Weinen


Zuletzt modifiziert von lude am 08.06.2011 - 07:51:56
blakedj06
Mitglied
10 Beitragspunkte
Posts: 62

User Pic

1 Mitglieder finden den Beitrag gut.

Merkliste 10.06.2011 - 14:47:31     Zitieren
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
53 Beitragspunkte
Posts: 2178

User Pic

1 Mitglieder finden den Beitrag gut.

Merkliste 10.06.2011 - 15:02:16     Zitieren
Oh, dachte du hast es mit deinem geposteten Code selbst geschafft.


» www.lucror-gaming.com
» www.planetpod.de
» www.dodszene.net
lude
Mitglied
1 Beitragspunkte
Posts: 14

0 Mitglieder finden den Beitrag gut.

Merkliste 10.06.2011 - 20:23:03     Zitieren
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
1 Beitragspunkte
Posts: 14

0 Mitglieder finden den Beitrag gut.

Merkliste 12.06.2011 - 18:07:37     Zitieren
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> &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'], 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 ]