ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Clan tag Vor dem Namen

Geschlossen
  1. #1
    User Pic
    69er Mitglied
    Registriert seit
    24.11.2011
    Beiträge
    51
    Beitragswertungen
    0 Beitragspunkte
    Hallo

    Gibt es eine Möglichkeit in der memberliste/ Online praktisch überall wo Member namen stehen davor ein Clan tag hinzu zufügen ?


    MfG PLeS


    verwendete ilch Version: 1.1 P

    betroffene Homepage: ples.bplaced.net/
    MfG 69er
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Möglich JA ... aber nicht ohne weiteren Aufwand und umschreiben von Dateien. Ich persönlich würde ein Funktion des Namensaufruf in die func/user.php (mit Prüfung ob Member -> dann ClanTag) einfügen und dann die betroffenen Ausgaben über die Funktion aufrufen.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    69er Mitglied
    Registriert seit
    24.11.2011
    Beiträge
    51
    Beitragswertungen
    0 Beitragspunkte
    gibt es da eine Anleitung ich habe nicht viel Ahnung davon.

    Danke im vorraus
    MfG 69er
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Hier mal eine mögliche Umsetzung. Folgende Funktion zB. in die include/includes/func/user.php ganz unten ( jedoch vor dem ?> ) hinzufügen:

    function get_tagname($id){
    	// config
    	$recht = '-3'; // ab Trialmember
    	$clantag = '[PLE]'; // vorgesetzter Clantag
    	//	
    	$erg = @db_query('SELECT `name`, `recht` FROM `prefix_user` WHERE `id` = "' . $id . '"');
    	if (db_num_rows($erg) == 0) {
            $name = 'Gast';
    	} else {
    		$row = db_fetch_assoc($erg);
    		if ($row['recht'] <= $recht) {
    			$name = $clantag . $row['name'];
    		} else {
    			$name = $row['name'];
    		}
    	}
    	return($name);
    }


    nun kann in jeder Datei wo der Name ausgegeben wird dieses per ID aufgerufen werden zB. in Form von zB.

    $tpl->set('NAME', get_tagname($row->id));

    $tpl->set_ar(array('NAME' => get_tagname($UID)));


    je nach Abfrage vorher und Ausgabe an das Template.


    Zuletzt modifiziert von Lord|Schirmer am 12.11.2013 - 18:28:27
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    xxlynusxx Mitglied
    Registriert seit
    28.01.2013
    Beiträge
    272
    Beitragswertungen
    4 Beitragspunkte
    muss ich die beiden $tpl-> einträge zusammen einfügen in die jeweilige php datei?
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Nein. Du musst die Übergabe an das Template anpassen, da es je nach Datei anders sein kann.

    funktion($userid);

    also

    get_tagname($row->id);
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    GUten Morgen zusammen ,
    ich wollte das gerne mit dem Clantag in meiner OnlineBox haben , leider verstehe ich nicht so ganz wo genau ich was ändern muss .
    Denn Eintrag in die User.php habe ich schon eingefügt .

    Könnte mir jmd sagen wo ich das hier ändern muss ?

    Ein Teil meiner Online.php

    $dif = date('Y-m-d H:i:s', time() - 60);
    $abf = "SELECT a.uid, b.avatar, b.recht FROM `prefix_online` a LEFT JOIN prefix_user b ON a.uid = b.id WHERE uptime > '". $dif."'";
    $resultID = db_query($abf);
    $brk='';
    $uid = array();
    $guests = 0;
    $guestn = $lang['guests'];
    $content='';
    
    
    while ($row = db_fetch_object($resultID)) {
    
            if ( file_exists($row->avatar)) {
                    $avatar = '<a href="index.php?user-details-'.$row->uid.'"><img width="40" height="53" src="'.$row->avatar.'" border="0">';
                    } else {
                    $avatar = '<a href="index.php?user-details-'.$row->uid.'"><img width="40" height="53" src="include/images/avatars/noavatar.jpg" border="0">';
                    }
            if ($row->uid != 0 AND $brk!=$row->uid) {
                    $name=@db_result(db_query('SELECT name FROM prefix_user WHERE id='.$row->uid),0);
    
            if      ($row->recht == -9) {$farbe = $farbeAdmin; $rangIcon = $iconAdmin;}
            elseif  ($row->recht == -8) {$farbe = $farbeCoAdmin; $rangIcon = $iconCoAdmin;}
            elseif  ($row->recht == -7) {$farbe = $farbeSiteAdmin; $rangIcon = $iconSiteAdmin;}
            elseif  ($row->recht == -6) {$farbe = $farbeLeader; $rangIcon = $iconLeader;}
            elseif  ($row->recht == -5) {$farbe = $farbeCoLeader; $rangIcon = $iconCoLeader;}
            elseif  ($row->recht == -4) {$farbe = $farbeMember; $rangIcon = $iconMember;}
            elseif  ($row->recht == -3) {$farbe = $farbeTrialmember; $rangIcon = $iconTrialmember;}
            elseif  ($row->recht == -2) {$farbe = $farbeSuperuser; $rangIcon = $iconSuperuser;}
            elseif  ($row->recht == -1) {$farbe = $farbeUser; $rangIcon = $iconUser;}
            else    {$row->recht = $farbeGast; $rangIcon = $iconGast;}
    
    
                    $content.='<table width="100%" align="center" cellpadding="2" cellspacing="0" border="0">
                               <tr>
                               <td width="5%" align="center"><img src="include/images/icons/online.gif" border="0" alt="online"></td>
                               <td width="80%" align="left" ><a class="box" onmouseover="javascript:einblenden('.$row->uid.')" onmouseout="javascript:einblenden('.$row->uid.')" href="index.php?user-details-'.$row->uid.'"><font style="color:'.$farbe.'">'.$name.'</font></a></td>
                               <td width="5%" align="center">'.$rangIcon.'</td>
                               </tr></table>
                               <div id="'.$row->uid.'" style="display : none;">
                               <table align="center" border="0" width="90%" cellspacing="2" cellpadding="0" style="border: 1px solid #00ff00">
                               <tr>
                               <td>'.$avatar.'</td>
                               <td><font color="#00ff00">Jetzt gerade hier!</font></td>
                               </tr>
                               </table></div>'."\n";
                    $uid[] = $row->uid;
    
                    }
            if ($row->uid == 0) { $guests++; }
            $brk=$row->uid;
    }
    if ($guests == 1) { $guestn = $lang['guest']; }
    if (empty($content)) { $content.='<table width="90%" align="center" cellpadding="2" cellspacing="0" border="0"><tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"><font color="#003366">0 User </font></td></tr></table>'."\n"; }
    
    $content.='<table width="90%" align="center" cellpadding="2" cellspacing="0" border="0"><tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px;"></td></tr></table>'."\n";
    $where = (count($uid)>0) ? 'WHERE id NOT IN ('.implode(', ', $uid).')' : '';
    $abf2 = 'SELECT * FROM prefix_user '.$where.' ORDER BY llogin DESC LIMIT 0,7';
    $erg2 = db_query($abf2);
    
    while ($row2 = db_fetch_object($erg2)) {
    
            if      ($row2->recht == -9) {$farbe = $farbeAdmin; $rangIcon = $iconAdmin;}
            elseif  ($row2->recht == -8) {$farbe = $farbeCoAdmin; $rangIcon = $iconCoAdmin;}
            elseif  ($row2->recht == -7) {$farbe = $farbeSiteAdmin; $rangIcon = $iconSiteAdmin;}
            elseif  ($row2->recht == -6) {$farbe = $farbeLeader; $rangIcon = $iconLeader;}
            elseif  ($row2->recht == -5) {$farbe = $farbeCoLeader; $rangIcon = $iconCoLeader;}
            elseif  ($row2->recht == -4) {$farbe = $farbeMember; $rangIcon = $iconMember;}
            elseif  ($row2->recht == -3) {$farbe = $farbeTrialmember; $rangIcon = $iconTrialmember;}
            elseif  ($row2->recht == -2) {$farbe = $farbeSuperuser; $rangIcon = $iconSuperuser;}
            elseif  ($row2->recht == -1) {$farbe = $farbeUser; $rangIcon = $iconUser;}
            else    {$row2->recht = $farbeGast; $rangIcon = $iconGast;}
    
            if ( file_exists($row2->avatar)) {
                    $avatar = '<a href="index.php?user-details-'.$row2->id.'"><img width="40" height="53" src="'.$row2->avatar.'" border="0">';
                    } else {
                    $avatar = '<a href="index.php?user-details-'.$row2->id.'"><img witdh="40" height="53" src="include/images/avatars/noavatar.jpg" border="0">';
                    }
    
            $datum = date('H:i \U\h\r - d.m.y',$row2->llogin);
            $content.='<table width="100%" align="center" cellpadding="2" cellspacing="0" border="0">
                       <tr>
                       <td align="center" width="5%"><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td>
                       <td align="left" width="80%"><a class="box" onmouseover="javascript:einblenden('.$row2->id.')" onmouseout="javascript:einblenden('.$row2->id.')" href="index.php?user-details-'.$row2->id.'"><font style="color:'.$farbe.'">'.$row2->name.'</font></a></td>
                       <td align="center" width="5%">'.$rangIcon.'</td>
                       </tr>
                       </table>
                       <div id="'.$row2->id.'" style="display : none;">
                       <table align="center" border="0" width="90%" cellspacing="2" cellpadding="0" style="border: 1px solid #FF0000">
                       <tr>
                       <td>'.$avatar.'</td><td>&nbsp;Letztes mal Online:<br /> '.$datum.'</td>
                       </tr>
                       </table></div>'."\n";
    }
    if ($guests == 0) {
            $content.= '<table width="100%" align="center" cellpadding="2" cellspacing="0" border="0"></tr>'."\n".'
                    <tr><td width="5%" align="left" valign="middle"><img src="include/images/icons/rot.gif" align="absmiddle" border="0" alt="offline"></td>
                    <td align="left" valign="middle"><font size="-1"<span style="font-size:10px;color:#555555;">Kein <span style="font-size:10px;color:#FF000;">Gast<span style="font-size:10px;color:#555555;"> ist<span style="font-size:10px;color:#FF0000;"> Online</td>
                    </tr></table>'."\n";
    } else {
            $content.= '<table width="100%" align="center" cellpadding="2" cellspacing="0" border="0"></tr>'."\n".'
                    <tr><td width="5%" align="left" valign="middle"><img src="include/images/icons/online.gif" align="absmiddle" border="0" alt="online"></td>
                    <td align="left" valign="middle"><font size=-1><span style="font-size:10px;color:#555555;">Es sind <span style="font-size:10px;color:#009900;">'.$guests.' <span style="font-size:10px;color:#555555;">'.$guestn.'<span style="font-size:10px;color:#009900;"> Online</font></td>
                    </tr></table>'."\n";
    }
    ?>


    Vielen Dank
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Versuche mal Folgendes:
    $name = get_tagname($row->uid);

    Und weiter unten...
    <td align="left" width="80%"><a class="box" onmouseover="javascript:einblenden('.$row2->id.')" onmouseout="javascript:einblenden('.$row2->id.')" href="index.php?user-details-'.$row2->id.'"><font style="color:'.$farbe.'">'.get_tagname($row2->id).'</font></a></td>

    Solltest Du zufällig den CD_Profilmod von CapFX installiert haben, hast Du ja in der Datenbank in der Tabelle User einige extra Spalten, unter anderem auch eine für das Clan-Tag (ctag).
    Dann könntest Du die Funktion von Lord|Schirmer folgendermaßen ändern:
    function get_tagname($id){
        // config
        $recht = '-3'; // ab Trialmember
        // 
        $erg = @db_query('SELECT `name`, `recht`, `ctag` FROM `prefix_user` WHERE `id` = "' . $id . '"');
        if (db_num_rows($erg) == 0) {
            $name = 'Gast';
        } else {
            $row = db_fetch_assoc($erg);
            if ($row['recht'] <= $recht) {
                $name = $row['ctag'] . $row['name'];
            } else {
                $name = $row['name'];
            }
        }
        return($name);
    }

    Damit fragst Du das Clan-Tag direkt mit ab und setzt es vor den Namen.
    Vorausgesetzt, Eure User haben im Profil einen entsprechenden Eintrag gemacht.

    Zuletzt modifiziert von Outi77 am 26.04.2014 - 12:32:05
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Hey ,

    also den Mod habe ich nicht installiert , abder deine Änderungen haben direkt geklappt , siehe Bild .

    Nun meine andere Frage : bekommt man da auch noch ein Leerzeichen Zwischen ?

    gesperrtes Bild

    LG und Danke dir
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    ZitatZitat geschrieben von QuantumTecstar
    Nun meine andere Frage : bekommt man da auch noch ein Leerzeichen Zwischen ?


    Nein, das geht nicht... zunge

    Nee Spaß, klar geht das.

    Zeile 12 in der function get_tagname wie folgt ändern:
    $name = $clantag . ' ' . $row['name'];



    Zuletzt modifiziert von Outi77 am 26.04.2014 - 12:53:34
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Ich danke dir vielmals , hat alles super geklappt :=)
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Hallo zusammen.

    Ich bin grad frisch beigetreten, habe aber Ilch 1.1p schon am laufen und bin sehr zufrieden. Ihr leistet da wirklich großes. Danke schon mal dafür.

    Ich hab mich jetzt schon ziemlich gut eingelebt in die ganze Sache. Bis jetzt habe ich aber mich von php ferngehalten, bzw. nix ohne anleitung daran gemacht.

    Ich habe großes interess an dieser Geschichte mit dem Clantag. Nun ist meine Frage ob es auch möglich ist, den Clantag and die Teams bzw Squads zu binden, so das ich für jeden Clan bzw. Squad ein eigenes Clantag habe.

    Ist das möglich?
    Kann mir da jemand zeigen was ich ändern muss?

    Vielen lieben dank im vorraus!
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Ist dann der Name des Teams == der Clantag oder erweiterst Du die Eingaben?
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Also mitlerweile habe ich mir den Profil mod 1.2 installiert. Nun möchte ich das ganze etwas anders gestalten. Im Profil wird dann der TAG zu der gruppe/team wählbar sein (ist noch in arbeit)

    Dann möchte ich das ganze allgemein so haben, dass immer der TAG vor dem Namen angezeigt wird. Egal wo man ist oder was man macht. Ich denke mal, das man das über das user Profil besser verwirklichen kann.

    Habe mir nun auch ein wenig php tutorial eingeschmissen, um das alles besser zu verstehen. Muss noch erst das Profil umschreiben. Somit melde ich mich dann wenn ich dort evtl. hilfe brauche.
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    OK. Ich würde zum Schluss die aufgeführte Clantag-Funktion um eine Prüfung ober der User in einem Team ist erweitern.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    So habe nun profil_edit.htm umgeändert, das nun das Team angegeben wird und man vorerst selbst ein Tag eingeben kann.

    <div class="form-group">
    									<label for="eingabefeldugame" class="col-sm-2 control-label">{_lang_game}</label>
    									<div class="col-sm-10">
    										<input type="text" name="game" value="{game}" class="form-control" id="eingabefeldugame">
    									</div>
    								</div>
    								<div class="form-group">
    									<label for="eingabefelduclan" class="col-sm-2 control-label">{_lang_GildenTAG}</label>
    									<div class="col-sm-10">
    										<input type="text" name="clan" value="{clan}" class="form-control" id="eingabefelduclan">
    									</div>
    								</div>


    			game = '" . escape($_POST['game'], 'string') . "',
    			spielerfahrungen = '" . escape($_POST['spielerfahrungen'], 'string') . "',
    			clan = '" . escape($_POST['clan'], 'string') . "',


    Die eingegebenen Daten werden auch übernommen. Wie zu sehen ist habe ich die vorgefertigten felder zweckentfremdet.

    Nun bin ich mit meinem derzeitigen wissen am ende.

    Wie kann ich zb erreichen, das ['game'] sich auf die bestehenden gruppen bezieht, die schon eingetragen sind?

    Und wie hänge ich jetzt den vergebenen Clan TAG ['clan'] vor einem user namen an.

    Ich weis, viel hab ich selber auch noch nicht geschafft. Nur leider fehlt mir die Zeit alles so schnell zu lernen. Zudem kenn ich mich mit der Ilch programierung auch noch nicht so gut aus.

    Danke für die hilfe im Vorraus.
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Achja, die user_details.php ist dementsprechend auch schon angepasst

    bzw. wurden ja eigentlich nur die vorhandenen Felder abgeändert.

    'GAME' => $game,
            'SPIELERFAHRUNG' => $spielerfahrungen,
            'CLAN' => $clan,


    ebeso die userdetails.htm, die auch den richtigen wert wiedergibt.

    <div class="panel-group col-md-6">
    			<div class="panel panel-default">
    				<div class="panel-heading">Gruppe/Spiel</div>
    				<div class="panel-body">	  
    					<span class="col-md-6 glyphicon glyphicon-cd">&nbsp;Spiel</span>
    					<strong class="col-md-6">{GAME}</strong>					
    					<span class="col-md-6 glyphicon glyphicon-tag">&nbsp;Clan TAG</span>
    					<strong class="col-md-6">{CLAN}</strong>	  
    				</div>
    			</div>
    		</div>


    so sieht es dann aus

    gesperrtes Bild
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Für mich ist es jetzt schwierig nachzuvollziehen wie deine Abfragen lauten und was genau geändert wurde.

    Hat jetzt jedes Team ein neues Feld mit Clantag?
    Kann ein User nur in einem Team/Clan sein?
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Guten abend.

    Also fangen wir von vorne an. Wie oben schon erwähnt, habe ich den profil mod 1.2 installiert. Dieser fügt neue profil felder hinzu. U.a spiele und clan. Diese felder hat nun zur zeit jeder user in seinem profil aufgeführt. Daher sind nun auch die code schnipsel. Im profil edit kann jeder selbständig das spiel in meinem fall heisst das die gruppe bzw team eingeben. Und unter clan kommt dann auch im user profil der clantag rein.

    Ich habe lediglich die input felder für meinen bedürfnissen umbenannt. Nun geht es um die funktionen. In ilch gibt z.b. Im html {_list_xxx 1% 2%} befehl, womit unter anderem menü abgerufen werden so etwas hätte ich dann gerne für das profilfeld game bzw. Spiel in bezug auf die vorhandenen gruppen.

    Das 2. ist das profilfeld clan was ja nun dafür benutzt wird den selbst eingetragenen TAG anzugeben. Jetzt brauche ich dafür eine funktion die diesen tag vor den nutzer namen hängt. Zur info das eingabefeld wird noch vom text zu option geändert.

    Ich hoffe ich konnte mich jetzt ein wenig verständlicher formulieren.

    Danke schonmal für deine geduld.
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Ok ich merke schon ich hole zu weit aus. Nochmal in kurz.

    Im user profil gibt es jetzt 2 neue felder.
    1. Für die gruppe, hat aber keine auswirkung darauf in welcher gruppe er sich befindet.
    2. Für das clantag.

    Mir geht es jetzt erstmal um das 2.

    Was sich in dem 2. Feld befindet möchte ich jetzt vor den usernamen anbringen, mittels abfrage. Das ich zb in der member liste den clantag vor dem namen sehe.

    Zu deinen fragen. In den Gruppen ist alles standart nix veränder.
    User können in mehreren gruppen sein.


    Zuletzt modifiziert von Tetzuo am 11.01.2017 - 21:40:49
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Am Besten Du prüfst mal in der profil_edit.php wo bzw. in welcher Tabelle der clantag abgelegt wird ... somit weißt Du auch wo diese wieder auszulesen sind.

    Entweder Du postest mal beide php´s (profil_edit.php / user_details.php) oder sendest mit per PM mal dein FTP Zugang dann schau ich es mir mal direkt an.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    defined('main') or die('no direct access');
    $title  = $allgAr['title'] . ' :: Users :: Profil';
    $hmenu  = $extented_forum_menu . '<a class="smalfont" href="?user">Users</a><b> &raquo; </b> Profil' . $extented_forum_menu_sufix;
    $design = new design($title, $hmenu, 1);
    if ($_SESSION['authright'] <= -1)
    {
        $csrfCheck = chk_antispam('user_profile_edit', true);
        if (empty($_POST['submit']) || !$csrfCheck)
        {
            $design->header();
            $abf = 'SELECT email,wohnort,homepage,aim,msn,icq,yahoo,avatar,status,staat,gebdatum,sig,opt_pm_popup,opt_pm,opt_mail,geschlecht,spezrank,game,spielerfahrungen,clan,map,waffe,essen,trinken,film,musik,sport,cpu,mainboard,ram,monitor,grafikkarte,soundkarte,festplatte,i_net_verbindung,tastatur,maus,jappy,facebook,wkw,studivz,myspace,youtube FROM `prefix_user` WHERE id = "' . $_SESSION['authid'] . '"';
            $erg = db_query($abf);
            if (db_num_rows($erg) > 0)
            {
                $row                = db_fetch_assoc($erg);
                $tpl                = new tpl('user/profil_edit');
                $row['staat']       = '<option></option>' . arliste($row['staat'], get_nationality_array(), $tpl, 'staat');
                $row['geschlecht0'] = ($row['geschlecht'] < 1 ? 'checked' : '');
                $row['geschlecht1'] = ($row['geschlecht'] == 1 ? 'checked' : '');
                $row['geschlecht2'] = ($row['geschlecht'] == 2 ? 'checked' : '');
                if ($row['status'] == 1)
                {
                    $row['status1'] = 'checked';
                    $row['status0'] = '';
                }
                else
                {
                    $row['status1'] = '';
                    $row['status0'] = 'checked';
                }
                if ($row['opt_mail'] == 1)
                {
                    $row['opt_mail1'] = 'checked';
                    $row['opt_mail0'] = '';
                }
                else
                {
                    $row['opt_mail1'] = '';
                    $row['opt_mail0'] = 'checked';
                }
                if ($row['opt_pm'] == 1)
                {
                    $row['opt_pm1'] = 'checked';
                    $row['opt_pm0'] = '';
                }
                else
                {
                    $row['opt_pm1'] = '';
                    $row['opt_pm0'] = 'checked';
                }
                if ($row['opt_pm_popup'] == 1)
                {
                    $row['opt_pm_popup1'] = 'checked';
                    $row['opt_pm_popup0'] = '';
                }
                else
                {
                    $row['opt_pm_popup1'] = '';
                    $row['opt_pm_popup0'] = 'checked';
                }
                $row['avatarbild']        = (file_exists($row['avatar']) ? '<img src="' . $row['avatar'] . '" alt=""><br />' : '');
                $row['Fabreite']          = $allgAr['Fabreite'];
                $row['Fahohe']            = $allgAr['Fahohe'];
                $row['Fasize']            = $allgAr['Fasize'];
                $row['forum_max_sig']     = $allgAr['forum_max_sig'];
                $row['uid']               = $_SESSION['authid'];
                $row['forum_usergallery'] = $allgAr['forum_usergallery'];
                $row['antispam']          = get_antispam('user_profile_edit', 0, true);
                $tpl->set_ar_out($row, 0);
                if ($allgAr['forum_avatar_upload'])
                    $tpl->out(1);
                $tpl->set_ar_out($row, 2);
                profilefields_change($_SESSION['authid']);
                $tpl->out(3);
            }
            else
            {
                $tpl = new tpl('user/login.htm');
                $tpl->set_out('WDLINK', 'index.php', 0);
            }
        }
        elseif ($csrfCheck) # submit
        {
            # change poassword
            if (!empty($_POST['np1']) AND !empty($_POST['np2']) AND !empty($_POST['op']))
            {
                if ($_POST['np1'] == $_POST['np2'])
                {
                    $akpw = db_result(db_query("SELECT pass FROM prefix_user WHERE id = " . $_SESSION['authid']), 0);
                    if (user_pw_check($_POST['op'], $akpw))
                    {
                        $newpw = user_pw_crypt($_POST['np1']);
                        db_query("UPDATE prefix_user SET pass = '" . $newpw . "' WHERE id = " . $_SESSION['authid']);
                        user_set_cookie($_SESSION['authid'], $newpw);
                        $fmsg = $lang['passwortchanged'];
                    }
                    else
                    {
                        $fmsg = $lang['passwortwrong'];
                    }
                }
                else
                {
                    $fmsg = $lang['passwortnotequal'];
                }
            }
            # avatar speichern START
            $avatar_sql_update = '';
            if (!empty($_FILES['avatarfile']['name']) AND $allgAr['forum_avatar_upload'])
            {
                $file_tmpe = $_FILES['avatarfile']['tmp_name'];
                $rile_type = ic_mime_type($_FILES['avatarfile']['tmp_name']);
                $file_type = $_FILES['avatarfile']['type'];
                $file_size = $_FILES['avatarfile']['size'];
                $fmsg      = $lang['avatarisnopicture'];
                $size      = @getimagesize($file_tmpe);
                $endar     = array(
                    1 => 'gif',
                    2 => 'jpg',
                    3 => 'png'
                );
                if (($size[2] == 1 OR $size[2] == 2 OR $size[2] == 3) AND $size[0] > 10 AND $size[1] > 10 AND substr($file_type, 0, 6) == 'image/' AND substr($rile_type, 0, 6) == 'image/')
                {
                    $endung = $endar[$size[2]];
                    $breite = $size[0];
                    $hoehe  = $size[1];
                    $fmsg   = $lang['avatarcannotupload'];
                    if ($file_size <= $allgAr['Fasize'] AND $breite <= $allgAr['Fabreite'] AND $hoehe <= $allgAr['Fahohe'])
                    {
                        $neuer_name = 'include/images/avatars/' . $_SESSION['authid'] . '.' . $endung;
                        @unlink(db_result(db_query("SELECT avatar FROM prefix_user WHERE id = " . $_SESSION['authid']), 0));
                        move_uploaded_file($file_tmpe, $neuer_name);
                        @chmod($neuer_name, 0777);
                        $avatar_sql_update = "avatar = '" . $neuer_name . "',";
                        $fmsg              = $lang['pictureuploaded'];
                    }
                }
            }
            elseif (isset($_POST['avatarloeschen']))
            {
                $fmsg = $lang['picturedelete'];
                @unlink(db_result(db_query("SELECT avatar FROM prefix_user WHERE id = " . $_SESSION['authid']), 0));
                $avatar_sql_update = "avatar = '',";
            }
            # avatar speichern ENDE
            # email aendern
            if ($_POST['email'] != $_POST['aemail'])
            {
                $id = $_SESSION['authid'] . '||' . md5(uniqid(rand()));
                db_query("INSERT INTO prefix_usercheck (`check`,email,datime,ak) VALUES ('" . $id . "','" . escape($_POST['email'], 'string') . "',NOW(),3)");
                $page = $_SERVER["HTTP_HOST"] . $_SERVER["SCRIPT_NAME"];
                $text = $lang['changedthemail'] . sprintf($lang['registconfirmlink'], $page, $id);
                icmail($_POST['email'], $lang['mail'] . ' ' . $lang['changed'], $text);
                $fmsg = $lang['pleaseconfirmmail'];
            }
            # email aendern
            #remove account
            if (isset($_POST['removeaccount']))
            {
                $id = $_SESSION['authid'] . '-remove-' . md5(uniqid(rand()));
                db_query("INSERT INTO prefix_usercheck (`check`,email,datime,ak) VALUES ('" . $id . "','" . escape($_POST['email'], 'string') . "',NOW(),5)");
                $page = $_SERVER["HTTP_HOST"] . $_SERVER["SCRIPT_NAME"];
                $text = $lang['removeconfirm'] . sprintf($lang['registconfirmlink'], $page, $id);
                icmail($_POST['email'], html_entity_decode($lang['removeaccount'], ILCH_ENTITIES_FLAGS, ILCH_CHARSET), $text);
                $fmsg = $lang['pleaseconfirmremove'];
            }
            #remove account
            # statische felder speichern
            db_query("UPDATE prefix_user SET
    			homepage = '" . get_homepage(escape($_POST['homepage'], 'string')) . "',
    			wohnort = '" . escape($_POST['wohnort'], 'string') . "',
    			icq = '" . escape($_POST['icq'], 'string') . "',
    			msn = '" . escape($_POST['msn'], 'string') . "',
    			yahoo = '" . escape($_POST['yahoo'], 'string') . "',
    			" . $avatar_sql_update . "
    			aim = '" . escape($_POST['aim'], 'string') . "',
    			staat = '" . escape($_POST['staat'], 'string') . "',
    			geschlecht = '" . escape($_POST['geschlecht'], 'string') . "',
    			status = '" . escape($_POST['status'], 'string') . "',
    			opt_mail = '" . escape($_POST['opt_mail'], 'string') . "',
    			opt_pm = '" . escape($_POST['opt_pm'], 'string') . "',
    			opt_pm_popup = '" . escape($_POST['opt_pm_popup'], 'string') . "',
    			gebdatum = '" . get_datum(escape($_POST['gebdatum'], 'string')) . "',
    			game = '" . escape($_POST['game'], 'string') . "',
    			spielerfahrungen = '" . escape($_POST['spielerfahrungen'], 'string') . "',
    			clan = '" . escape($_POST['clan'], 'string') . "',
    			map = '" . escape($_POST['map'], 'string') . "',
    			waffe = '" . escape($_POST['waffe'], 'string') . "',
    			essen = '" . escape($_POST['essen'], 'string') . "',
    			trinken = '" . escape($_POST['trinken'], 'string') . "',
    			film = '" . escape($_POST['film'], 'string') . "',
    			musik = '" . escape($_POST['musik'], 'string') . "',
    			sport = '" . escape($_POST['sport'], 'string') . "',
    			cpu = '" . escape($_POST['cpu'], 'string') . "',
    			mainboard = '" . escape($_POST['mainboard'], 'string') . "',
    			ram = '" . escape($_POST['ram'], 'string') . "',
    			monitor = '" . escape($_POST['monitor'], 'string') . "',
    			grafikkarte = '" . escape($_POST['grafikkarte'], 'string') . "',
    			soundkarte = '" . escape($_POST['soundkarte'], 'string') . "',
    			festplatte = '" . escape($_POST['festplatte'], 'string') . "',
    			i_net_verbindung = '" . escape($_POST['i_net_verbindung'], 'string') . "',
    			tastatur = '" . escape($_POST['tastatur'], 'string') . "',
    			maus = '" . escape($_POST['maus'], 'string') . "',
    			jappy = '" . get_homepage(escape($_POST['jappy'], 'string')) . "',
    			facebook = '" . get_homepage(escape($_POST['facebook'], 'string')) . "',
    			wkw = '" . get_homepage(escape($_POST['wkw'], 'string')) . "',
    			studivz = '" . get_homepage(escape($_POST['studivz'], 'string')) . "',
    			myspace = '" . get_homepage(escape($_POST['myspace'], 'string')) . "',
    			youtube = '" . get_homepage(escape($_POST['youtube'], 'string')) . "',
    			sig = '" . substr(escape($_POST['sig'], 'string'), 0, $allgAr['forum_max_sig']) . "'
    		WHERE id = " . $_SESSION['authid']);
    
            # change other profil fields
            profilefields_change_save($_SESSION['authid']);
            $design->header();
            # definie and print msg
            $fmsg = (isset($fmsg) ? $fmsg : $lang['changesuccessful']);
            wd('?user-8', $fmsg, 3);
        }
    }
    else
    {
        $tpl = new tpl('user/login');
        $tpl->set_out('WDLINK', '?user-8', 0);
    }
    $design->footer();
    ?>


    <?php
    #   Copyright by: Manuel Staechele
    #   Support: www.ilch.de
    defined('main') or die('no direct access');
    $uid = intval($menu->get(2));
    $abf = 'SELECT * FROM prefix_user WHERE id = "' . $uid . '"';
    $erg = db_query($abf);
    if (db_num_rows($erg))
    {
        #Award Ausgabe
        $awards = '';
        $ax     = 0;
        $sqlA   = db_query("SELECT a.platz, a.text, a.wofur, a.team, a.bild, DATE_FORMAT(a.`time`, '%d.%m.%Y') AS time FROM `prefix_awards` a INNER JOIN prefix_user b ON a.team = b.name WHERE b.id = " . $uid . " ORDER BY `time` ASC");
        while ($rowA = db_fetch_assoc($sqlA))
        {
            $ax++;
            if ($ax == 8)
            {
                $awards .= '<br />';
                $ax = 0;
            }
            $awards .= (!empty($rowA['bild']) ? '<img style="padding:1px;border:0px;" src="' . $rowA['bild'] . '" alt="' . $rowA['wofur'] . '" title="' . $rowA['wofur'] . '"/>' : $rowA['wofur']);
        }
        $awards      = '<br /><div style="text-align:center;">' . $awards . '</div>';
        $lastbes_anz = 5; //Bei höhere Anzahl muss ggf. in der Datenbank die Größe der Felder bzw der Typ geändert werden
        if ($_SESSION['authid'] != $uid AND $_SESSION['authid'] != 0)
        {
            $lb  = db_fetch_object(db_query('SELECT last_bes, last_user_time FROM prefix_user WHERE id = ' . $uid));
            $lba = explode('#', $lb->last_bes);
            $lbt = explode('#', $lb->last_user_time);
            $i   = array_search($_SESSION['authid'], $lba);
            if ($i !== false)
            {
                unset($lba[$i]);
                unset($lbt[$i]);
            }
            elseif (count($lba) >= $lastbes_anz)
            {
                $lba = array_slice($lba, 0, $lastbes_anz - 1);
                $lbt = array_slice($lbt, 0, $lastbes_anz - 1);
            }
            array_unshift($lba, $_SESSION['authid']);
            array_unshift($lbt, time());
            $i_lb  = implode('#', $lba);
            $i_lbt = implode('#', $lbt);
            db_query("UPDATE prefix_user SET last_bes = '$i_lb', last_user_time = '$i_lbt' WHERE id = $uid");
        }
        include('user_infos.php');
        $ar     = array(
            'UID' => $uid,
            'NAME' => $row['name'],
            'JOINED' => date('d.m.Y', $row['regist']),
            'LASTAK' => date('d.m.Y - H:i', $row['llogin']),
            'POSTS' => $row['posts'],
            'postpday' => $postpday,
            'RANG' => userrang($row['posts'], $uid),
            'AVATA' => $avatar,
            'LASTUSER' => last_user($uid),
            'STATUS2' => $online,
            'USERTITEL' => $usertitel,
            'EMAIL' => $email,
            'HOMEPAGE' => $homepage,
            'GESCHLECHT' => $geschlecht,
            'GEBDATUM' => $gebdatum,
            'ALTER' => $alter,
            'WOHNORT' => $wohnort,
            'FORUMTOPICS' => $row4['forumtopics'],
            'NEWSTOPICS' => $row5['newstopics'],
            'NEWSPOSTS' => $row6['newsposts'],
            'FORUMPOSTS' => $row7['forumposts'],
            'SIGNATUR' => bbcode($row['sig']),
            'STAAT' => $staat,
            'UID' => $uid,
            'STERNZEICHEN' => $sternzeichen,
            'GB_EINTRAEGE' => $gb_eintraege,
            'GALLERIE_EINTRAEGE' => $gallery_eintraege,
            'ICQ' => $icq,
            'GAME' => $game,
            'SPIELERFAHRUNG' => $spielerfahrungen,
            'CLAN' => $clan,
            'MAP' => $map,
            'WAFFE' => $waffe,
            'ESSEN' => $essen,
            'TRINKEN' => $trinken,
            'FILM' => $film,
            'MUSIK' => $musik,
            'SPORT' => $sport,
            'CPU' => $cpu,
            'MAINBOARD' => $mainboard,
            'RAM' => $ram,
            'MONITOR' => $monitor,
            'GRAFIKKARTE' => $grafikkarte,
            'SOUNDKARTE' => $soundkarte,
            'FESTPLATTE' => $festplatte,
            'I_NET_VERBINDUNG' => $i_net_verbindung,
            'TASTATUR' => $tastatur,
            'MAUS' => $maus,
            'JAPPY' => $jappy,
            'FACEBOOK' => $facebook,
            'WKW' => $wkw,
            'STUDIVZ' => $studivz,
            'MYSPACE' => $myspace,
            'YOUTUBE' => $youtube,
            'AWARDS' => $awards
        );
        $title  = $allgAr['title'] . ' :: Users :: Details von ' . $row['name'];
        $hmenu  = $extented_forum_menu . '<a class="smalfont" href="?user">Users</a><b> &raquo; </b> <a href=index.php?user-details-' . $uid . '>Details von ' . $row['name'] . "</a>" . $extented_forum_menu_sufix;
        $design = new design($title, $hmenu, 1);
        $design->header();
        $tpl                 = new tpl('user/userdetails');
        $l                   = profilefields_show($uid);
        $ar['rowspan']       = 4 + substr_count($l, '<tr><td class="');
        $ar['profilefields'] = $l;
        $tpl->set_ar_out($ar, 0);
    }
    else
    {
        $title  = $allgAr['title'] . ' :: Users :: User nicht gefunden';
        $hmenu  = $extented_forum_menu . '<a class="smalfont" href="?user">Users</a> ' . $extented_forum_menu_sufix;
        $design = new design($title, $hmenu, 1);
        $design->header();
        echo 'Der Benutzer wurde nicht gefunden bzw. die Seite wurde nicht richtig aufgerufen.<br />';
    }
    $design->footer();
    ?>


    hier sind beide php dateien.
    Hab mir schon gedacht, das es was mit mysql zu tun hat.
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    OK, dass bedeutet der Clantag wird in der Tabelle prefix_user und Spalte clan abgelegt.

    Wenn Du nun überall den Clantag davor haben möchtest, würde ich dass mit einer Funktion nach oben genannten Prinzip umsetzen.

    Als ein mögliches Beispiel wäre folgende Funktion, welche man an das Ende der include/includes/func/user.php und zwar direkt vor ?> einfügen könnte.

    ## Name mit Clantag verbinden
    function getClanName($uid){
        // config
        $recht = '-3'; // ab Trialmember
        // 
        $erg = @db_query('SELECT `name`, `recht`, `clan` FROM `prefix_user` WHERE `id` = "' . $uid . '"');
        if (db_num_rows($erg) == 0) {
            $ClanName = 'Gast';
        } else {
            $row = db_fetch_assoc($erg);
            if ($row['recht'] <= $recht AND !empty($row['clan'])) {
                $ClanName = $row['clan'] . $row['name'];
            } else {
                $ClanName = $row['name'];
            }
        }
        return($ClanName);
    }


    Nun müsste nur noch der der Name in sämtlichen betroffenen Dateien nach folgendem Prinzip ausgegeben werden:
    'NAME' => getClanName($UserID)


    Im Fall deiner Userdetails wäre dann die Änderung von:
            'UID' => $uid,
            'NAME' => $row['name'],
            'JOINED' => date('d.m.Y', $row['regist']),

    in
            'UID' => $uid,
            'NAME' => getClanName($uid),
            'JOINED' => date('d.m.Y', $row['regist']),


    Ich hoffe ich konnte es gut erklären. Probier es mal aus!
    rules :: doku :: faq :: linkus
    1 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Cool danke dir, hast mir sehr geholfen. Denn die obere methode ist auch gut aber ich brauche halt mehrere TAGS. Werde es nachher ausprobieren und dir berichten.

    Noch eine frage zu den gruppen. Gibt es für die vorhandenen gruppen eine auflistungsfunktion, ähnlich wie {_list_hmenunrX 1% 2%}?
    0 Mitglieder finden den Beitrag gut.
  25. #25
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Schau mal in der Dokumentation unter Templates -> Liste generieren
    www.ilch.de/doku-entwickler11.html#templates

    Zur Funktion, diese ist genau dafür gemacht, dass Du diese überall anwenden kannst. Du benötigst immer nur die User-ID.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  26. #26
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Guten abend zusammen.

    Ich wollte nun den tag erweitern, bzw. verschieben. Nicht das jeder user einen tag angibt sondern in der Gruppe der tag vergeben wird über das admin pannel.

    So weit bin ich bis jetzt aber scheint alles noch nicht so zu klappen.

    Ich habe in der Datenbank unter ic1_groups eine neue spalte angelegt, die heist clan_tag.

    in der groups.php sieht zur zeit so aus.
    
    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    defined ('admin') or die ( 'only admin access' );
    
    function groups_update_modulerights_for ($ar) {
      $re = array (
        0 => array ('wars', 'groups', 'awards', 'awaycal'),
        1 => array ('wars', 'groups', 'awards', 'awaycal'),
        2 => array ('wars', 'awaycal'),
    	3 => array ('wars', 'awaycal'),
    	4 => array ('groups', 'awaycal'),
    	5 => array ('groups', 'awaycal'),
        6 => array ('groups', 'awaycal'),
      );
    
      foreach ($ar as $k => $uid) {
        if (0 == $uid) { continue; }
        foreach ($re[$k] as $r) {
          $s = "SELECT id FROM prefix_modules WHERE url = '".$r."'";
          $mid = db_result(db_query($s),0,0);
          $s = "SELECT COUNT(*) FROM prefix_modulerights WHERE uid = ".$uid." AND mid = ".$mid;
          if (0 == db_result(db_query($s),0,0)) {
            db_query("INSERT INTO prefix_modulerights (mid,uid) VALUES (".$mid.",".$uid.")");
          }
        }
      }
    }
    
    function may_changegroup ($gi,$m = 0) {
      global $allgAr;
      if ($_SESSION['authright'] <= -8 OR !$allgAr['groups_forall']) {
        return true;
      } elseif ($gi == 0) {
        return false;
      } else {
        $q = db_query("SELECT mod1, mod2".($m == 1?', mod4':'')." FROM `prefix_groups` WHERE id = $gi");
        if (db_num_rows($q) < 1) {
          return false;
        } else {
          $r = db_fetch_assoc($q);
          if (in_array($_SESSION['authid'],$r)) {
            return true;
          } else {
            return false;
          }
        }
      }
    }
    
    $show = true;
    $msg  = '';
    $um   = $menu->get(1);
    
    if ( $um == 'ins' ) {
    	$pos		= db_result(db_query("SELECT COUNT(*) FROM prefix_groups"),0);
    	$name		= escape($_POST['group_name'], 'string');
    	$clan_tag	= escape($_POST['clan_tag'], 'string');
    	$img		= escape($_POST['img'], 'string');
    	$mod1		= escape($_POST['mod1'], 'integer');
    	$mod2		= escape($_POST['mod2'], 'integer');
    	$mod3		= escape($_POST['mod3'], 'integer');
    	$mod4		= escape($_POST['mod4'], 'integer');
      $zeigen		= escape($_POST['zeigen'], 'integer');
    	$fightus	= escape($_POST['fightus'], 'integer');
    	$joinus		= escape($_POST['joinus'], 'integer');
    	if (may_changegroup(0)) {
    	  db_query("INSERT INTO prefix_groups (name,clan_tag,img,`mod1`,`mod2`,`mod3`,`mod4`,show_fightus,show_joinus,zeigen,pos) VALUES ('".$name."','".$clan_tag."','".$img."',".$mod1.",".$mod2.",".$mod3.",".$mod4.",".$fightus.",".$joinus.",".$zeigen.",".$pos.")");
      }
    
      if (is_coadmin()) {
        groups_update_modulerights_for (array($mod1,$mod2,$mod3,$mod4));
      }
    }
    
    if ( isset ( $_POST['ins_user'] ) ) {
    	$gid = escape($menu->get(2), 'integer');
    	if (may_changegroup($gid,1)) {
        if ( empty($_POST['fid']) ) {
      		$_POST['fid'] = 0;
      	}
      	$fid = 0;
      	if (!empty($_POST['fid'])) {
      	$fid = escape($_POST['fid'], 'integer');
      	}
      	$name = escape($_POST['name'], 'string');
      	$uid = @db_result(@db_query("SELECT id FROM prefix_user where name = BINARY '".$name."'"),0,0);
      	if (!empty($uid) AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_groupusers WHERE gid = ".$gid." AND uid = ".$uid),0)) {
      		db_query("INSERT INTO prefix_groupusers (gid,uid,fid) VALUES (".$gid.",".$uid.",".$fid.")");
      	}
      }
      $um = 'addusers';
    }
    
    if ( $um == 'ch' ) {
      $gid		= escape($_POST['gid'], 'integer');
      $oldopts = db_fetch_object(db_query("SELECT * FROM `prefix_groups` WHERE id = $gid"));
      $name		= escape($_POST['group_name'], 'string');
      $clan_tag	= escape($_POST['clan_tag'], 'string');
    	$img		= escape($_POST['img'], 'string');
    	$mod1		= escape($_POST['mod1'], 'integer');
    	$mod2		= escape($_POST['mod2'], 'integer');
    	$mod3		= escape($_POST['mod3'], 'integer');
    	$mod4		= escape($_POST['mod4'], 'integer');
    	$zeigen		= escape($_POST['zeigen'], 'integer');
    	$fightus	= escape($_POST['fightus'], 'integer');
    	$joinus		= escape($_POST['joinus'], 'integer');
    	if (!is_admin() and $oldopts->mod1 != $_SESSION['authid'] and $oldopts->mod2 == $_SESSION['authid']) {
        $mod1 = $oldopts->mod1;
      } elseif (!is_admin() and $oldopts->mod1 != $_SESSION['authid'] and $oldopts->mod2 != $_SESSION['authid'] and $oldopts->mod4 == $_SESSION['authid']) {
        $name	   = $oldopts->name;
    	$img	   = $oldopts->img;
        $mod1    = $oldopts->mod1;
        $mod2    = $oldopts->mod2;
        $mod3    = $oldopts->mod3;
    	$zeigen	 = $oldopts->zeigen;
    	$fightus = $oldopts->show_fightus;
      }
    
      if (may_changegroup($gid,1)) {
        db_query("UPDATE prefix_groups SET name = '".$name."', clan_tag= '".$clan_tag."', show_fightus = ".$fightus.", show_joinus = ".$joinus.", img = '".$img."', `mod1` = ".$mod1.", `mod2` = ".$mod2.", `mod3` = ".$mod3.", `mod4` = ".$mod4.", zeigen = ".$zeigen." WHERE id = ".$gid);
        $msg = "Die Gruppe wurde ver&auml;ndert";
      }
    
      if (is_coadmin()) {
        # mods wieder die richtigen modulrechte geben. dazu erst loeschen, dann eintragen.
        groups_update_modulerights_for (array($mod1,$mod2,$mod3,$mod4));
        $msg .= ", die Modulrechte wurden erneuert. Wenn allerdings Leader, Co-Leader, Warorga oder Memberorga ge&auml;ndert wurden haben diese User immer noch die Modulrechte ... das sollte daher &uuml;berpr&uuml;ft werden.";
      }
    }
    
    if (isset ($_GET['group_delete']) AND ($gid = escape($_GET['group_delete'],'integer') AND may_changegroup(0))) {
    	$pos = db_result(db_query("SELECT pos FROM prefix_groups WHERE id = ".$gid),0);
      db_query("DELETE FROM prefix_groups WHERE id = ".$gid);
    	db_query("DELETE FROM prefix_groupusers WHERE gid = ".$gid);
      db_query("UPDATE prefix_groups SET pos = pos -1 WHERE pos > ".$pos);
    }
    
    if ( $menu->get(3) == 'user_delete' AND ($gid = escape($menu->get(2),'integer') AND may_changegroup($gid,1))) {
    	$uid = escape($menu->get(4),'integer');
    	db_query("DELETE FROM prefix_groupusers WHERE gid = ".$gid." AND uid = ".$uid);
    }
    
    if ( $menu->get(3) == 'userchange' AND ($gid = escape($menu->get(2),'integer') AND may_changegroup($gid,1))) {
    	$uid = escape($menu->get(4), 'integer');
    	$fid = escape($menu->get(5), 'integer');
    	db_query("UPDATE `prefix_groupusers` SET fid = $fid WHERE gid = $gid AND uid = $uid");
    }
    
    if ( $um == 'addusers' ) {
    	$design = new design ( 'Admins Area', 'Admins Area', 0 );
    	$design->header();
    	$gid = $menu->get(2);
    	$tpl = new tpl ( 'groups/users', 1);
    
      $groupfuncs = array();
      $erg = db_query("SELECT id,name FROM prefix_groupfuncs ORDER BY pos");
      while ($row = db_fetch_object($erg)) {
        $groupfuncs[$row->id] = $row->name;
      }
    
      function group_func ($gid, $uid, $fid, $gf) {
        $out = '<select class="form-control" id="user'.$uid.'" onchange="change_user('.$gid.', '.$uid.', this.value, '.$fid.', \'user'.$uid.'\');">';
        foreach ($gf as $key => $val) {
          $out .=  '<option value="'.$key.'" '.($fid == $key ? 'selected="selected"' : '').'>'.$val.'</option>';
        }
        $out .= '</select>';
        return $out;
      }
    
    	$row1 = db_fetch_object(db_query("SELECT name FROM prefix_groups WHERE id = ".$gid));
    	$tpl->set('gruppe', $row1->name);
    	$tpl->set('fehler', ( empty($fehler) ? '' : $fehler ) );
    	$tpl->set('gid', $gid);
    	$tpl->set('funcs', dbliste ( '', $tpl, 'funcs', "SELECT id,name FROM prefix_groupfuncs ORDER BY pos") );
    	$tpl->out(0); $class = 'Cnorm';
    	$q = "SELECT
    	  a.fid,
    		a.gid,
    		a.uid,
    		b.name as username,
    		c.name as funcname
    	FROM prefix_groupusers a
    	LEFT JOIN prefix_user b ON a.uid = b.id
    	LEFT JOIN prefix_groupfuncs c ON a.fid = c.id
    	WHERE a.gid = ".$gid."
    	ORDER BY c.pos";
    	$erg = db_query($q);
    	while($row = db_fetch_assoc($erg) ) {
    		$class = ($class == 'Cnorm' ? 'Cmite' : 'Cnorm' );
    		$row['funcname'] = group_func($gid, $row['uid'], $row['fid'], $groupfuncs);
    		$row['class'] = $class;
    		$tpl->set_ar_out($row,1);
    	}
    	$tpl->out(2);
    	$show = false;
    }
    
    if ($menu->get(1) == 'move' AND may_changegroup(0)) {
    	$id  = escape($menu->getE(2), 'integer');
    	$pos = db_result(db_query("SELECT pos FROM prefix_groups WHERE id = ".$id),0);
    	$anz = db_result(db_query("SELECT COUNT(*) FROM prefix_groups"),0);
    	if ($menu->getA(2) == 'u') {
    		$npos = $pos + 1;
    	} elseif ($menu->getA(2) == 'o') {
    		$npos = $pos - 1;
    	}
      if ($npos < 0) {
        db_query("UPDATE prefix_groups SET pos = ".$anz." WHERE id = ".$id);
        db_query("UPDATE prefix_groups SET pos = pos -1");
      }
      if ($npos >= $anz) {
        db_query("UPDATE prefix_groups SET pos = -1 WHERE id = ".$id);
        db_query("UPDATE prefix_groups SET pos = pos +1");
      }
    
    	if ($npos>=0 AND $npos < $anz) {
    		db_query("UPDATE prefix_groups SET pos = ".$pos." WHERE pos = ".$npos);
    		db_query("UPDATE prefix_groups SET pos = ".$npos." WHERE id = ".$id);
    	}
    }
    
    if ($um == 'funcs') {
    	$design = new design ( 'Admins Area', 'Admins Area', 0 );
    	$design->header();
    
    	if (isset($_POST['s']) AND $_POST['s'] == 'Add') {
    		$pos = escape($_POST['apos'], 'integer');
    		$name = escape($_POST['aname'], 'string');
    		db_query("INSERT INTO prefix_groupfuncs (pos,name) VALUES (".$pos.", '".$name."')");
    	} elseif (isset($_POST['s']) AND $_POST['s'] == 'Send') {
    		$erg = db_query('SELECT * FROM `prefix_groupfuncs` ORDER BY pos');
    		while ($row = db_fetch_assoc($erg) ) {
    			if ((!empty($_POST['pos'][$row['id']]) AND !empty($_POST['name'][$row['id']])) AND $_POST['pos'][$row['id']] != $row['pos'] OR $_POST['name'][$row['id']] != $row['name']) {
    				$pos = escape($_POST['pos'][$row['id']], 'integer');
    				$name = escape($_POST['name'][$row['id']], 'string');
    				db_query("UPDATE prefix_groupfuncs SET pos = ".$pos.", name = '".$name."' WHERE id = ".$row['id']);
    			}
    		}
    	}
    	if ($menu->getA(2) == 'd' AND is_numeric($menu->getE(2))) {
    		$id = escape($menu->getE(2), 'integer');
    		db_query("DELETE FROM prefix_groupfuncs WHERE id = ".$id);
    	}
    
    	$tpl = new tpl ( 'groups/funcs', 1);
    	$tpl->out(0);
    	$class = '';
    	$erg = db_query('SELECT * FROM `prefix_groupfuncs` ORDER BY pos');
    	while ($row = db_fetch_assoc($erg) ) {
    		$class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    		$row['class'] = $class;
    		$tpl->set_ar_out($row,1);
    	}
    	$tpl->out(2);
    	$show = false;
    }
    if ($um == 'joinus') {
    	$design = new design ( 'Admins Area', 'Admins Area', 2 );
    	$design->header();
    
      # als trial aufnehmen
      if ($menu->getA(2) == 'a' AND is_numeric($menu->getE(2)) AND $menu->getE(2) <> 0) {
        $check = escape($menu->get(3), 'string');
        $id    = escape($menu->getE(2), 'integer');
        if ($menu->get(4) == 'addtoteam') {
          $gid = db_count_query("SELECT groupid FROM `prefix_usercheck` WHERE `check` = '$check'");
          db_query("INSERT INTO `prefix_groupusers` (gid,uid,fid) VALUES ($gid,$id,4)");
          $msg = 'Er wurde als Trial in das Team eingetragen.';
        } else {
          $msg = 'Jetzt muss er noch in ein Team aufgenommen werden.';
        }
        db_query("DELETE FROM prefix_usercheck WHERE ak = 4 AND `check` = '".$check."'");
        db_query("UPDATE prefix_user SET recht = -3 WHERE id = ".$id." AND recht > -3");
        sendpm ($_SESSION['authid'], $id, 'Deine Joinus Anfrage', 'Du wurdest als Trial-Member aufgenommen.');
        $msg = 'erfolgreich als Trial markiert, der User wurde darueber informiert. '.$msg;
      }
    
      # aus check tabelle loeschen (nicht aufnehmen)
      if ($menu->getA(2) == 'd' AND is_numeric($menu->getE(2))) {
        $check = escape($menu->get(3), 'string');
        $id    = escape($menu->getE(2), 'integer');
        db_query("DELETE FROM prefix_usercheck WHERE ak = 4 AND `check` = '".$check."'");
        if ($id <> 0) {
          sendpm ($_SESSION['authid'], $id, 'Deine Joinus Anfrage', 'Deine Joinus Anfrage wurde leider abgelehnt');
        }
        $msg = 'erfolgreich gel&ouml;scht ..., wenn er schon registriert war wurde ihm eine Nachricht geschickt.';
      }
    
      $tpl = new tpl ( 'groups/joinus', 1);
      $tpl->set('msg',(empty($msg)?'':'<div class="alert alert-warning">'.$msg.'</div'));
      $tpl->out(0);
    
      if ($_SESSION['authright'] <= -8 OR $allgAr['groups_forall'] == 0) {
        $where = '';
      } else {
        $where = " AND prefix_usercheck.groupid IN (SELECT id FROM `prefix_groups` WHERE mod1 = {$_SESSION['authid']} OR mod2 = {$_SESSION['authid']} OR mod4 = {$_SESSION['authid']})";
      }
    
      $class = 'Cnorm';
      $erg = db_query("SELECT `check`, prefix_usercheck.name, prefix_user.id, prefix_user.email, prefix_groups.name as groupname FROM prefix_usercheck LEFT JOIN prefix_user ON prefix_user.name = BINARY prefix_usercheck.name LEFT JOIN prefix_groups ON prefix_groups.id = prefix_usercheck.groupid WHERE ak = 4".$where);
      while ($r = db_fetch_assoc($erg)) {
        if ($r['id'] < 1) {
          $r['email'] = db_count_query("SELECT email FROM `prefix_usercheck` WHERE name = '{$r['name']}' AND ak");
        }
    		$class = ($class == 'Cnorm' ? 'Cmite' : 'Cnorm' );
    		$r['class'] = $class;
        $r['status'] = (empty($r['id'])?'Registrierung offen' : 'bereits Registriert');
        if (empty($r['id'])) { $r['id'] = 0; }
        $tpl->set_ar_out($r,1);
      }
      $tpl->out(2);
    
      $show = false;
    }
    
    if ( $show ) {
    	$design = new design ( 'Admins Area', 'Admins Area', 2 );
    	$design->header();
    	$tpl = new tpl ( 'groups/groups', 1);
    
    	if ( $um == 'edit' ) {
    		$ar = db_fetch_assoc(db_query("SELECT id as gid, name, img, `mod1`, `mod2`, `mod3`, `mod4`, zeigen, show_joinus, show_fightus FROM prefix_groups WHERE id = ".$menu->get(2) ));
    		$ar['ak'] = 'ch';
    		$ar['zeigenja'] = ( $ar['zeigen'] == 1 ? 'checked' : '' );
    		$ar['zeigenno'] = ( $ar['zeigen'] == 1 ? '' : 'checked' );
    		$ar['joinusja'] = ( $ar['show_joinus'] == 1 ? 'checked' : '' );
    		$ar['joinusno'] = ( $ar['show_joinus'] == 1 ? '' : 'checked' );
    		$ar['fightusja'] = ( $ar['show_fightus'] == 1 ? 'checked' : '' );
    		$ar['fightusno'] = ( $ar['show_fightus'] == 1 ? '' : 'checked' );
    	} else {
    		$ar = array (
    		'name'=>'','clan_tag'=>'','img'=>'','mod1'=>'','mod2'=>'','mod3'=>'', 'mod4'=>'',
    		'zeigenja'=>'','zeigenno'=>'checked','ak'=>'ins','gid'=>'',
    		'fightusja'=>'','fightusno'=>'checked','joinusja'=>'','joinusno'=>'checked',
    		);
    	}
    
    	$ar['mods1'] = dbliste ( $ar['mod1'] , $tpl, 'mods1', "SELECT id,name FROM prefix_user WHERE recht <= -4 ORDER BY name");
    	$ar['mods2'] = dbliste ( $ar['mod2'] , $tpl, 'mods2', "SELECT id,name FROM prefix_user WHERE recht <= -4 ORDER BY name");
      $ar['mods3'] = dbliste ( $ar['mod3'] , $tpl, 'mods3', "SELECT id,name FROM prefix_user WHERE recht <= -4 ORDER BY name");
      $ar['mods4'] = dbliste ( $ar['mod4'] , $tpl, 'mods4', "SELECT id,name FROM prefix_user WHERE recht <= -4 ORDER BY name");
      $ar['mods2'] = '<option value="0">keiner</option>'.$ar['mods2'];
      $ar['mods3'] = '<option value="0">keiner</option>'.$ar['mods3'];
      $ar['mods4'] = '<option value="0">keiner</option>'.$ar['mods4'];
      $ar['pic']   = arlistee(  $ar['img'], get_teampic_ar() );
      $ar['pic']   = '<option value="0">kein Bild<option>'.$ar['pic'];
      $ar['msg']   = (empty($msg)?'':'<div class="alert alert-warning">'.$msg.'</div>');
    	$ar['joinu'] = '';
      if (0 < db_result(db_query("SELECT COUNT(*) FROM prefix_usercheck WHERE ak = 4"),0)) {
        $ar['joinu'] = '<div class="text-right"><a class="btn btn-primary btn-sm" href="admin.php?groups-joinus">Joinus Anfragen bearbeiten</a></div><br>';
      }
    
      $tpl->set_ar_out($ar,0);
    
    	$class = 'Cnorm';
    	$erg = db_query("SELECT name,id FROM prefix_groups ORDER BY pos ASC");
    	while($row = db_fetch_assoc($erg) ) {
    		$row['useranz'] = db_count_query("SELECT COUNT(uid) FROM prefix_groupusers WHERE gid = ".$row['id']);
    		$class = ($class == 'Cnorm' ? 'Cmite' : 'Cnorm' );
    		$row['class'] = $class;
    		$tpl->set_ar_out($row,1);
    	}
    	$tpl->out(2);
    	if ($allgAr['groups_forall'] AND $_SESSION['authright'] > -8) { $tpl->out(3); }
    	$tpl->out(4);
    }
    
    $design->footer();
    ?>


    im htm ist auch schon das text feld drinne und wird da auch wiedergegeben.

    
    <div class="form-group">
        <label class="col-sm-2 control-label">TAG</label>
        <div class="col-sm-6">
          <input type="text" name="group_tag" value="{clan_tag}" class="form-control" placeholder="TAG der Gruppe">
        </div></div>


    jetzt ist halt noch das problem, das in der mysql die eingabe nicht gespeichert wird.

    Was muss ich noch ändern, damit das schonmal funktioniert?
    0 Mitglieder finden den Beitrag gut.
  27. #27
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Sicher das er nicht gespeichert wird?
    Sollte bei einer Neuanlage gespeichert werden!

    Bei EDIT fehlt noch das Auslesen Zeile 327 noch clan_tag hinzufügen
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  28. #28
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Nun gut, irgendwie speichert er nicht die eingabe übers Admin pannel. Habe jetzt erstmal die Tags manuell über phpmyadmin eingetragen und diese werden auch korrekt angezeigt. danke auf jedenfall erstmal für die hilfe. Mal sehen ob ich die funktion jetzt selbst entsprechend umändern kann.
    0 Mitglieder finden den Beitrag gut.
  29. #29
    User Pic
    Tetzuo Mitglied
    Registriert seit
    07.01.2017
    Beiträge
    32
    Beitragswertungen
    0 Beitragspunkte
    Hallo!

    Ich habe ein Problem. Ich möchte nun einen wert aus der mysql von der Tabelle ic1_groups in ic1_user kopieren. Also quasi als funktion. Sprich wenn ein user sich für ein Spiel entscheidet, was er im user edit auswählen kann, automatisch den User Tag von der Gruppe zugewiesen bekommt. Habe nun einiges versucht. Aber ich scheitere immer wieder an den SQL abfragen bzw. befehlen.

    Kann mir hier noch jemand helfen?

    Danke im vorraus
    0 Mitglieder finden den Beitrag gut.
  30. #30
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Da spielen mehrere Tabellen eine Rolle. Da sich der Name des Teams in der Tabelle prefix_groups befindet, aber die Tabelle prefix_groupusers die Zuordnung der User (uid) zu den Teams (gid) beinhaltet muss die Funktion dieses in der Abfrage verbinden.

    Stichwort: INNER JOIN (Info)

    SELECT a.name FROM `prefix_groups` a INNER JOIN `prefix_groupusers` b ON a.id = b.gid WHERE b.uid = XXX


    So könnte dann die Abfrage aussehen, wobei XXX für die ID des Users steht, für welchen die Namen der Teams abgefragt werden, wo er überall Mitglied ist.


    Zuletzt modifiziert von Lord|Schirmer am 20.01.2017 - 21:00:33
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten