ich habe ein Modul womit man Signaturen erstellen kann, und wollte es euch mal zeigen.
Selbst habe ich nie HTML , PHP oder etwas der gleichen gelernt, mein Wissen bezieht sich hauptsächlich aus dem Ilch Forum.
Aus Spaß habe ich an einem Modul gebastelt, das so eine Art Signaturen Generator darstellen soll, als Hilfe habe ich mir das „Benutzercenter Modul“ angeschaut, in dem auch eine Signatur für user enthalten ist.
Da ich selber wie gesagt kein Fachmann bin, und das mein erstes Modul ist, würde mich jetzt natürlich brennend interessieren was andere davon halten
Habe das ganze also mal hochgeladen, damit man es anschauen kann.
ILCHSignaturenGenerator Download
Die Signaturen sehen so aus:
Hier ist mal der Quellcode aus der Datei: /include/contents/signatur.php
<?php defined ('main') or die ( 'no direct access' ); $title = $allgAr['title'].' :: Signatur'; $hmenu = 'Signatur'; $design = new design ( $title , $hmenu ); // functionen für Radio-Buttons function gamerfont($checked=0){ $gruppen = array( "1"=>"ja", "0"=>"nein" ); foreach( $gruppen as $id => $value ){ $checkin = ( $checked == $id ? 'checked="checked"' : '' ); $return .= "<label><input type='radio' id='radio' name='fontstyle' value='".$id."' ".$checkin."><span class='font'> ".$value." </span></label>"; } return ($return); } function sigurl($checked=0){ $gruppen = array( "1"=>"ja", "0"=>"nein" ); foreach( $gruppen as $id => $value ){ $checkin = ( $checked == $id ? 'checked="checked"' : '' ); $return .= "<label><input type='radio' name='link' value='".$id."' ".$checkin."><span class='font'> ".$value." </span></label>"; } return ($return); } function gicon($checked=0){ $gruppen = array( "1"=>"ja", "0"=>"nein" ); foreach( $gruppen as $id => $value ){ $checkin = ( $checked == $id ? 'checked="checked"' : '' ); $return .= "<label><input type='radio' name='gameicon' value='".$id."' ".$checkin."><span class='font'> ".$value." </span></label>"; } return ($return); } function radiobutton($checked=0){ $gruppen = array( "1"=>"Tank", "2"=>"Healer", "3"=>"Damage Dealer" ); foreach( $gruppen as $id => $value ){ $checkin = ( $checked == $id ? 'checked="checked"' : '' ); $return .= "<label><input type='radio' name='damageklasse' value='".$id."' ".$checkin."><span class='font'> ".$value." </span></label><br>"; } return ($return); } switch($menu->get(1)){ // signatur. case "sig": $uid = intval($menu->get(2)); $abf = "SELECT a.name, a.realm, a.user,a.id, a.game, a.damageklasse, a.beruf, a.txt, a.klass, a.fraktion, a.level, a.fontstyle, a.alternativfont, a.link, a.url, a.gameicon, e.name AS username FROM prefix_signatur AS a LEFT JOIN prefix_user AS e ON a.user = e.id WHERE e.id = {$uid}"; $qry = db_query($abf); $row = db_fetch_assoc($qry); $background = "include/images/signatur/".$row['game'].".png"; // Bezeichnungen für damageklasse definieren if ($row['damageklasse'] == 1) { $row['tank'] = "Tank"; } elseif ($row['damageklasse'] == 2) { $row['Healer'] = "Healer"; } else { $row['Damage Dealer'] = "Damage Dealer"; } // Fraktion / Klasse / Beruf / Realm / nicht anzeigen wenn kein Inhalt if (empty($row['klass'])) { $row['klasse'] = ''; }else { $row['klasse'] = 'Klasse:'; } if (empty($row['fraktion'])) { $row['frac'] = ''; }else { $row['frac'] = 'Fraktion:'; } if (empty($row['beruf'])) { $row['u_beruf'] = ''; }else { $row['u_beruf'] = 'Beruf:'; } // Inhalt aus der Datenbank aufrufen $signatur = ImageCreateFromPNG($background); $border = ImageCreateFromPNG("include/images/signatur/border.png"); $icon = ImageCreateFromPNG("include/images/signatur/".$row['game']."/".$row['game'].".png"); $textname = $row['name']; $textlvl = '(' . $row['level'] .')'; $texttank = $row['tank']; $texthealer = $row['Healer']; $textdd = $row['Damage Dealer']; $u_fraktion = $row['frac']; $text_fraktion = $row['fraktion']; $u_klasse = $row['klasse']; $text_klasse = $row['klass']; $u_beruf = $row['u_beruf']; $text_beruf = $row['beruf']; $realm = $row['realm']; $text = $row['txt']; // Farben $weiß = ImageColorAllocate($signatur, 255, 255, 255); $dunkelblau = ImageColorAllocate($signatur, 5, 64, 233); $rot = ImageColorAllocate($signatur, 255, 0, 0); $lila = ImageColorAllocate($signatur, 199, 22, 180); $blau = ImageColorAllocate($signatur, 25, 191, 216); // Fonts $arial = "include/images/signatur/fonts/arial.ttf"; // Standart Font. $ABITE = "include/images/signatur/fonts/ABITE.otf"; // Tank font. $Justv2 = "include/images/signatur/fonts/Justv2.ttf"; // Heiler Font. $fontrazer = "include/images/signatur/fonts/razer.ttf"; // DD Font. $HEMIHEAD = "include/images/signatur/fonts/HEMIHEAD.TTF"; // Realm Font. // select game Fonts. if ($row['fontstyle'] == 1) { $fontname = "include/images/signatur/".$row['game']."/font.ttf"; // game Fonts. } elseif ($row['fontstyle'] == 0) { $fontname = "include/images/signatur/fonts/arial.ttf"; } else { $fontname = "include/images/signatur/".$row['game']."/font.ttf"; // game Fonts. } // select Alternativ Fonts. if ($row['alternativfont'] == Standart) { $alternativfont = $arial; } elseif ($row['alternativfont'] == GameStyle) { $alternativfont = "include/images/signatur/".$row['game']."/font.ttf"; } elseif ($row['alternativfont'] == Alternativ) { $alternativfont = $Justv2; }else { $alternativfont = $arial; } //Abstand berechnen für Gameicon if ($row['gameicon'] == 1) { $seticon = (48); }else { $seticon = (25); } //Breiten berechnen für rechtsbündigen text $dimensions = imagettfbbox(9, 0, $arial, $text); $textWidth = abs($dimensions[4] - $dimensions[0]); $x = imagesx($signatur) - $textWidth - 8; //Text Abstand berechnen für $textname $dimen_name = imagettfbbox(18, 0, $fontname, $textname); $textWidth_name = abs($dimen_name[4] - $dimen_name[0]); $x_name = $textWidth_name + $seticon; //Text Abstand berechnen für $textlvl $dimen_lvl = imagettfbbox(12, 0, $fontname, $textlvl); $textWidth_lvl = abs($dimen_lvl[4] - $dimen_lvl[0]); $x_lvl = $textWidth_lvl + $x_name + 8; //Text Abstand berechnen für klasse $dim_klass = imagettfbbox(10, 0, $arial, $text_fraktion); $textWidth_klass = abs($dim_klass[4] - $dim_klass[0]); $x_klass = $textWidth_klass + 85; //$text_klasse $x_ktext = $textWidth_klass + 132; //Text Abstand berechnen für Beruf $dim_beruf = imagettfbbox(10, 0, $arial, $text_klasse); $textWidth_beruf = abs($dim_beruf[4] - $dim_beruf[0]); $x_beruf = $textWidth_beruf + $x_ktext + 8; //$text_Beruf $x_beruftxt = $textWidth_beruf + $x_ktext + 47; //Den Hintergrund Transparent machen $ransparent = imagecolorallocate($signatur,0,0,0); imagefill($signatur,0,0,$ransparent); imagecolortransparent($signatur,$ransparent); //Inhalt auf Signatur schreiben. if ($row['gameicon'] == 1) { imagecopy($signatur, $icon, 15, 25, 0, 0, 33, 31); imagettftext($signatur, 18,0,45,50, $weiß, $fontname, $textname); }else { imagettftext($signatur, 18,0,20,50, $weiß, $fontname, $textname); } imagettftext($signatur, 12,0,$x_name,47, $weiß, $fontname, $textlvl); imagettftext($signatur, 12,0,$x_lvl,47, $rot, $ABITE, $texttank); imagettftext($signatur, 12,0,$x_lvl,47, $dunkelblau, $Justv2, $texthealer); imagettftext($signatur, 10,0,$x_lvl,47, $lila, $fontrazer, $textdd); imagettftext($signatur, 10,0,55,70, $weiß, $HEMIHEAD, $realm); imagettftext($signatur, 10,0,20,100, $weiß, $arial, $u_fraktion); imagettftext($signatur, 10,0,77,100, $blau, $arial, $text_fraktion); imagettftext($signatur, 10,0,$x_klass,100, $weiß, $arial, $u_klasse); imagettftext($signatur, 10,0,$x_ktext,100, $blau, $arial, $text_klasse); imagettftext($signatur, 10,0,$x_beruf,100, $weiß, $arial, $u_beruf); imagettftext($signatur, 10,0,$x_beruftxt,100, $blau, $arial, $text_beruf); imagettftext($signatur, 10,0,20,100, $weiß, $alternativfont, $text); imagecopy($signatur, $border, 0, 0, 0, 0, 500, 120); header("Content-type: image/png"); ImagePNG($signatur); exit(); $tpl->set_ar_out( $row, 0 ); break; // Erstellen. case "add": $design->header(); db_query("INSERT INTO ".$_POST['prefix']." (name,user,level,game,damageklasse,beruf,txt,alternativfont,fraktion,klass,url,realm) VALUES ( '". escape($_POST['name'], 'string') ."', '". $_SESSION['authid'] ."', '". escape($_POST['level'], 'textarea') ."', '". escape($_POST['game'], 'textarea') ."', '". escape($_POST['damageklasse'], 'integer')."', '". escape($_POST['beruf'], 'string') ."', '". escape($_POST['txt'], 'textarea') ."', '". escape($_POST['alternativfont'], 'textarea') ."', '". escape($_POST['fraktion'], 'textarea') ."', '". escape($_POST['klass'], 'textarea') ."', '". escape($_POST['url'], 'textarea') ."', '". escape($_POST['realm'], 'textarea') ."')"); wd('index.php?signatur',escape($_POST['name'], 'string').' wurde erstellt, warte Bitte 3sec!', 3); break; // Bearbeiten case "editprocess": if(isset($_POST['game']) && trim($_POST['game']) != '') { $design->header(); $x = array("Submit" => 1, "prefix" => 1, "id" => 1); foreach( $_POST as $sgl => $value ){ if( $x[$sgl] != 1 ){ $res = db_query("UPDATE prefix_signatur SET ".$sgl."='".($value)."' WHERE id=".$_POST['id']); }else{ $false = false; } } if( $res && !$false ){ wd('index.php?signatur','Bearbeiten erfolgreich', 1); } } else { $design->header(); echo "Du musst ein Game auswählen."; echo"<br>"; echo "<a href='index.php?signatur' title='Zurück' >Zurück</a>"; } break; // Formular für neue Signatur case "createsig": // user eingeloggt? if ($_SESSION['authid'] == 0) { $design->header(); echo 'Du musst zuerst einen geeigneten <strong><a href="?user-regist">Account einrichten.</a></strong>'; echo '<br>'; echo 'Wenn du bereits einen Account hast, vergewissere dich dass du Eingeloggt bist.'; } else { // Darf der user eine Signatur erstellen?. $row['sig_anzahl'] = db_result(db_query("SELECT COUNT(user) FROM prefix_signatur WHERE user = '".$_SESSION['authid']."'"),0); $row['userrecht'] = db_result(db_query("SELECT (recht) FROM prefix_user WHERE id = '".$_SESSION['authid']."'"),0); if( $allgAr['addsig'] >= $row['userrecht']) { $tpl = new tpl ('signatur/signatur_edit.htm'); $design->header(); $row['PFAD'] = "index.php?signatur-add"; $row['TITEL'] = "Neue Signatur"; $row['name'] = ""; $row['level'] = ""; $row['game'] = ""; $row['url'] = ""; $row['alternativfont'] = "Standart"; $row['damageklasse'] = radiobutton(0); $row['fontstyle'] = gamerfont(1); $row['link'] = sigurl(0); $row['gameicon'] = gicon(1); $row['klass'] = $row['fraktion'] = $row['txt'] = $row['beruf'] = ""; $row['realm'] = "Realm: "; $row['user'] = $_SESSION['authid']; $row['prefix'] = "prefix_signatur"; $tpl->set_ar_out( $row, 0 ); }else{ $design->header(); echo 'Du hast leider nicht die Nötigen Rechte um eine Signatur erstellen zu können.'; } } break; // Formular zum bearbeiten der Signatur. case "edit": $row['sigel1'] = db_result(db_query("SELECT (id) FROM prefix_signatur WHERE user = '".$_SESSION['authid']."'"),0); $row['sigel2'] = db_result(db_query("SELECT (id) FROM prefix_signatur WHERE id = '".$menu->get(2)."'"),0); if( $row['sigel1'] == $row['sigel2']){ $tpl = new tpl ('signatur/signatur_edit.htm'); $design->header(); $res = db_query("SELECT id, name, level, game, damageklasse, realm, beruf, txt, klass, fraktion, fontstyle, link, gameicon, url, alternativfont FROM prefix_signatur WHERE id=".$menu->get(2)." LIMIT 1"); $row = db_fetch_assoc( $res ); $row['PFAD'] = "index.php?signatur-editprocess"; $row['TITEL'] = "Edit Signatur"; $prefix = "prefix_signatur"; $row['damageklasse'] = radiobutton($row['damageklasse']); $row['fontstyle'] = gamerfont($row['fontstyle']); $row['link'] = sigurl($row['link']); $row['gameicon'] = gicon($row['gameicon']); $row['prefix'] = $prefix; $tpl->set_ar_out( $row, 0 ); }else{ $design->header(); echo 'Das ist nicht deine Signatur!!!'; } break; // Löschen case "del": $design->header(); $row['sigel1'] = db_result(db_query("SELECT (id) FROM prefix_signatur WHERE user = '".$_SESSION['authid']."'"),0); $row['sigel2'] = db_result(db_query("SELECT (id) FROM prefix_signatur WHERE id = '".$menu->get(2)."'"),0); if( $row['sigel1'] == $row['sigel2']){ echo "<center>Deine Signatur wirklich Löschen? <a href='index.php?".$_SERVER['QUERY_STRING']."-true'>Ja</a> | <a href='index.php?signatur'>Nein</a></center>"; if( $menu->get(3) == "true" ){ if( db_query("DELETE FROM prefix_signatur WHERE id = '".$menu->get(2)."' LIMIT 1") ){ wd('index.php?signatur',' Deine Signatur wurde erfolgreich gelöscht!', 1); }else{ wd('index.php?signatur',' Es ist ein Fehler aufgetreten!', 3); } } }else{ echo 'Du darfst keine Fremden Signaturen löschen...'; } break; // Anzeige der eigenen Signatur. default: // user eingeloggt? if ($_SESSION['authid'] == 0) { $design->header(); echo 'Du musst zuerst einen geeigneten <strong><a href="?user-regist">Account einrichten.</a></strong>'; echo '<br>'; echo 'Wenn du bereits einen Account hast, vergewissere dich dass du Eingeloggt bist.'; } else { $row['sig_anzahl'] = db_result(db_query("SELECT COUNT(user) FROM prefix_signatur WHERE user = '".$_SESSION['authid']."'"),0); $row['userrecht'] = db_result(db_query("SELECT (recht) FROM prefix_user WHERE id = '".$_SESSION['authid']."'"),0); if ($row['sig_anzahl'] == 0) { $design->header(); echo '<form action="index.php?signatur-createsig" method="POST">'; echo '<h3>Bitte beachten Sie nachfolgende Richtlinien für den Inhalt Ihrer Signatur:</h3>'; echo '<h4>Mit dem erstellen einer Signatur bestätigen Sie,</h4>'; echo '<ul>'; echo '<li>dass diese keine obszönen, sexistischen, rassistischen, anstößigen, verfälschten oder in irgendeiner Weise illegalen Darstellungen enthalten.</li>'; echo '</ul>'; echo '<br>'; echo '</br>'; echo '<h5><dd>Die Betreiber der Seite können keine Gewähr für Inhalte übernehmen. Bitte haben Sie Verständnis dafür, dass sich die Betreiber der Seite das Recht vorbehalten, bei Verstößen gegen die Richtlinien die gesamte Signatur zu löschen.</dd></h5>'; echo '<input type="submit" name="register" value="gelesen und einverstanden">'; echo '</form>'; }else{ $design->header(); $tpl = new tpl ('signatur/signatur.htm'); if( $allgAr['addsig'] >= $row['userrecht']) { if ($row['sig_anzahl'] == 0) { $row['USER'] = "[ <a href='index.php?signatur-createsig'>Signatur Erstellen</a> ]"; }else{ $row['USER'] = "Signatur Erstellt."; } }else{ $row['USER'] = "Keine Rechte"; } // Signatur edit/delete button für Besitzer if ($row['sig_anzahl'] == 0) { $row['sigl'] = ''; } else { $row['sigl'] = db_result(db_query("SELECT (user) FROM prefix_signatur WHERE user = '".$_SESSION['authid']."'"),0); } if ($row['sig_anzahl'] == 0) { $row['sigl2'] = ''; } else { $row['sigl2'] = db_result(db_query("SELECT (id) FROM prefix_signatur WHERE user = '".$_SESSION['authid']."'"),0); } if( $row['sigl'] == $_SESSION['authid']){ $row['edit'] = "<a href='index.php?signatur-edit-".$row['sigl2']." 'title='Bearbeiten'><img src='include/images/signatur/icons/edit.png' alt='Bearbeiten' name='Bearbeiten' width='22' height='22' hspace='2' border='0' /></a>"; $row['delete'] = "<a href='index.php?signatur-del-".$row['sigl2']." 'title='Löschen'><img src='include/images/signatur/icons/delete.png' alt='Löschen' name='Löschen' width='22' height='22' hspace='2' border='0' /></a>"; }else{ $row['edit'] = ""; $row['delete'] = ""; } $tpl->set_ar_out( $row , 1 ); $row = db_fetch_assoc(db_query('SELECT u.* FROM prefix_user u WHERE u.id = ' . $_SESSION['authid'])); $row['link'] = db_result(db_query("SELECT (link) FROM prefix_signatur WHERE user = '".$_SESSION['authid']."'"),0); $row['url'] = db_result(db_query("SELECT (url) FROM prefix_signatur WHERE user = '".$_SESSION['authid']."'"),0); $row['signaturlink'] = $row['url']; $scriptlink = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']; if ($row['link'] == 1) { if ($allgAr['htaccessyes'] == 1) { $row['html'] = '<a href="' . $row['signaturlink'] . '"><img src="' . dirname($scriptlink) . '/stats-' . $_SESSION['authid'] . '.png" /></a>'; $row['bbcode'] = '[url=' . $row['signaturlink'] . '][img]' . dirname($scriptlink) . '/stats-' . $_SESSION['authid'] . '.png[/img][/url]'; } else { $row['html'] = '<a href="' . $row['signaturlink'] . '"><img src="' . $scriptlink . '?signatur-sig-' . $_SESSION['authid'] . '" alt="Signatur" /></a>'; $row['bbcode'] = '[url=' . $row['signaturlink'] . '][img]' . $scriptlink . '?signatur-sig-' . $_SESSION['authid'] . '[/img][/url]'; } } else { if ($allgAr['htaccessyes'] == 1) { $row['html'] = '<img src="' . dirname($scriptlink) . '/stats-' . $_SESSION['authid'] . '.png" />'; $row['bbcode'] = '[img]' . dirname($scriptlink) . '/stats-' . $_SESSION['authid'] . '.png[/img]'; } else { $row['html'] = '<img src="' . $scriptlink . '?signatur-sig-' . $_SESSION['authid'] . '" alt="Signatur" />'; $row['bbcode'] = '[img]' . $scriptlink . '?signatur-sig-' . $_SESSION['authid'] . '[/img]'; } } $tpl->set_ar_out( $row, 2 ); $tpl->out(3); $tpl->out(4); } } break; } $design->footer(); ?>
Wie gesagt habe ich damit noch nicht viele Erfahrungen, und habe mich nur so durchgemogelt, indem ich andere Module auseinander genommen habe, um die Funktionsweisen zu verstehen, oder habe mich eben im ilch Forum schlau gemacht.
Würde mich über Meinungen freuen
verwendete ilchClan Version: 1.1 P
Zuletzt modifiziert von zeroxul am 29.08.2013 - 19:19:36