ich bräuchte mal wieder euere Hilfe.
Ich möchte neben den Spezialrang noch einen weiteren Spezialrang anzeigen lassen.
Dazu habe ich bereits in der ic1_user ein Feld mit spezrank1 und in der ic1_ranks ein Feld mit spez1 angelegt.
Der Datei admin/user/user.php habe ich folgende Funktion zugefügt oben die original unten, die von mir:
# den Rang eines users aendern case 'changeRank' : $uid = $menu->get(2); $altes_recht = db_result(db_query("SELECT recht FROM prefix_user WHERE id = ".$uid),0); $neuer_rank = escape($_GET['newr'], 'integer'); if ($altes_recht > $_SESSION['authright'] OR $_SESSION['authright'] == -9) { $q = "UPDATE prefix_user SET spezrank = ".$neuer_rank." WHERE id = ".$uid; db_query($q); } ?><html><head><script language="JavaScript" type="text/javascript"><!-- function closeThisWindow() { opener.focus(); window.close(); } closeThisWindow() //--></script></head><body></body></html><?php break; # den Aufstieg eines users aendern case 'changeRank1' : $uid = $menu->get(2); $altes_recht = db_result(db_query("SELECT recht FROM prefix_user WHERE id = ".$uid),0); $neuer_rank = escape($_GET['newr'], 'integer'); if ($altes_recht > $_SESSION['authright'] OR $_SESSION['authright'] == -9) { $q = "UPDATE prefix_user SET spezrank1 = ".$neuer_rank." WHERE id = ".$uid; db_query($q); } ?><html><head><script language="JavaScript" type="text/javascript"><!-- function closeThisWindow() { opener.focus(); window.close(); } closeThisWindow() //--></script></head><body></body></html><?php break;
Das Template dazu:
<script language="JavaScript" type="text/javascript"> <!-- function setufocus() { document.f.q.focus(); } // manage div ... document.onmousemove = checkPosition; function checkPosition(e) { if(document.all) { mausX = event.clientX + document.body.scrollLeft; mausY = event.clientY + document.body.scrollTop; } else { mausX = e.pageX; mausY = e.pageY; } } function alertpos(dname) { if (document.layers) { document.layers[0].left = mausX; document.layers[0].top = mausY; } else if (document.getElementById) { document.getElementById(dname).style.left = (mausX + 10) + "px"; document.getElementById(dname).style.top = (mausY + 50 ) + "px"; } document.getElementById(dname).style.display = "inline"; } function hiddpos(dname) { document.getElementById(dname).style.display = "none"; } function changeUserRight (id1) { var x = confirm ( 'Das Recht dieses Users wirklich aendern?' ); if (x) { var newr = document.getElementById('recht'+id1).value; var Fenster = window.open ('admin.php?user-changeRecht-' + id1 + '=0&newr='+ newr, 'changeRecht', 'status=no,scrollbars=no,height=10,width=10'); Fenster.focus(); } } function changeUserRank (id1) { var x = confirm ( 'Den Rang dieses Users wirklich aendern?' ); if (x) { var newr = document.getElementById('spezrank'+id1).value; var Fenster = window.open ('admin.php?user-changeRank-' + id1 + '=0&newr='+ newr, 'changeRank', 'status=no,scrollbars=no,height=10,width=10'); Fenster.focus(); } } function changeUserRank1 (id1) { var x = confirm ( 'Aufstiegsvorasusetzungen wirklich aendern?' ); if (x) { var newr = document.getElementById('spezrank1'+id1).value; var Fenster = window.open ('admin.php?user-changeRank1-' + id1 + '=0&newr='+ newr, 'changeRank1', 'status=no,scrollbars=no,height=10,width=10'); Fenster.focus(); } } function changeGruppen (id1) { var Fenster = window.open ('admin.php?user-gruppen-' + id1, 'changeGruppen', 'status=yes,scrollbars=yes,height=500,width=250,left=300,top=50'); Fenster.focus(); } function changeModulrecht (id1) { var Fenster = window.open ('admin.php?user-modulrecht-' + id1, 'changeModulrecht', 'status=yes,scrollbars=yes,height=500,width=250,left=300,top=50'); Fenster.focus(); } function deleteUser (id1) { var x = confirm ( 'Diesen User wirklich komplett entfernen?' ); if (x) { var Fenster = window.open ('admin.php?user-deleteUser-' + id1, 'deleteUser', 'status=no,scrollbars=no,height=10,width=10'); Fenster.focus(); } } function changeModulRecht ( modul, uid ) { var aktion = 'loeschen'; if ( document.getElementById("MN" + modul + uid).checked == true ) { aktion = 'eintragen'; } var Fenster = window.open ('admin.php?user-modulrecht-' +uid+ '=0&modul=' + modul + '&aktion=' + aktion, 'changeModulRecht', 'status=no,scrollbars=no,height=10,width=10'); } //--> </script> <div style="float:right"><a href="admin.php?puser">Noch nicht bestätigte Registrierungen verwalten</a></div> <body onLoad="setufocus()"> <form action="admin.php" name="f" method="GET" style="padding: 0px; margin:0px 0px 0px 0px;" > <input type="hidden" name="user" value="" /> <table cellpadding="3" cellspacing="1" border="0" class="border" style="float:left"> <tr> <td class="Cmite"><input name="q" value="{q}" /></td> <td class="Cdark"><input type="submit" value="Suchen" /></td> </tr> </table> </form> <br /> <br /> <br /> <table cellpadding="3" cellspacing="1" border="0" class="border"> <tr> <td colspan="8"></td> <td class="Cmite" colspan="{anzmods}"><b>Modulrechte:</b></td> </tr> <tr class="Chead"> <th width="300">Name</th> <th>Recht</th> <th>RanK</th> <th>Aufstieg</th> <th>Gruppe</th> <th></th> <th></th> <th class="border"> </th> {modlall} </tr> {EXPLODE} <tr class="{class}"> <td><div onMouseOver="hiddpos('groupdiv{id}')" id="groupdiv{id}" style="position:absolute; top:50px; left:50px; display:none; width:200px;"> <table width="100%" class="border" border="0" cellspacing="1" cellpadding="4"> <tr> <td class="{class}" align="left">{grouplist}</td> </tr> </table> </div><strong>{name}</strong></td> <td><select id="recht{id}" onChange="changeUserRight({id})">{recht}</select></td> <td><select id="spezrank{id}" onChange="changeUserRank({id})">{spezrank}</select></td> <td><select id="spezrank1{id}" onChange="changeUserRank1({id})">{spezrank1}</select></td> <td style="text-align: center;"><a onMouseOut="hiddpos('groupdiv{id}')" onMouseOver="alertpos('groupdiv{id}')" href="javascript:changeGruppen({id})" title="hier die Gruppenzugehörigkeit ändern">Gruppen</a></td> <td> <a href="admin.php?user-1-{id}"><img src="include/images/icons/edit.gif" border="0" title="ändern" alt="ändern" /></a> </td> <td> <a href="javascript:deleteUser({id})"><img src="include/images/icons/del.gif" border="0" title="löschen" alt="löschen" /></a> </td> <td class="border"></td> {modslist} </tr> {EXPLODE} </table> <p>{MPL}</p>
Nun habe ich die admin/range.php noch wie folgt abgeändert:
<?php // Copyright by: Manuel // Support: www.ilch.de defined ('main') or die ('no direct access'); defined ('admin') or die ('only admin access'); $design = new design ('Admins Area', 'Admins Area', 2); $design->header(); $um = $menu->get(1); if (empty ($um) AND empty ($_GET['um']) AND empty ($_POST['um'])) { $tpl = new tpl ('range', 1); $tpl->out(0); $clas = 'cbg2'; $erg = db_query('SELECT * FROM `prefix_ranks` ORDER BY spez DESC, min'); while ($row = db_fetch_object($erg)) { if ($clas == 'Cmite') { $clas = 'Cnorm'; } else { $clas = 'Cmite'; } if ($row->spez == 1) { $min = '-'; $spez = 'ja'; }else { $min = $row->min; $spez = 'nein'; } if ($row->spez1 == 1) { $min = '-'; $spez1 = 'ja'; } else { $min = $row->min; $spez1 = 'nein'; } $ar = array('ID' => $row->id, 'AUFSTIEG'=>$spez1, 'SPEZ' => $spez, 'CLASS' => $clas, 'BEZ' => $row->bez, 'MIN' => $min ); $tpl->set_ar_out($ar, 1); } $tpl->out(2); } elseif ($um == 1) { db_query('DELETE FROM `prefix_ranks` WHERE id = "' . $menu->get(2) . '" LIMIT 1'); db_query('UPDATE `prefix_user` SET spezrank = 0 WHERE spezrank = "' . $menu->get(2) . '"'); db_query('UPDATE `prefix_user` SET spezrank1 = 0 WHERE spezrank1 = "' . $menu->get(2) . '"'); wd ('admin.php?range' , 'Erfolgreich gelöscht' , 1); } elseif ($um == 2) { if (empty ($_POST['sub'])) { $rid = $menu->get(2); if (empty($rid)) { $Fsub = 'Eintragen'; $Fbez = ''; $Fmin = ''; $Fjch = ''; $Fnch = 'checked'; $Frid = ''; $Fakt = 'insert'; } else { $abf = 'SELECT * FROM `prefix_ranks` WHERE id = "' . $rid . '"'; $erg = db_query($abf); $row = db_fetch_object($erg); $Fsub = 'Ändern'; $Fbez = $row->bez; $Fmin = $row->min; if ($row->spez1 == 1) { $Fjch = 'checked'; $Fnch = ''; } else { $Fnch = 'checked'; $Fjch = ''; } if ($row->spez == 1) { $Fjch = 'checked'; $Fnch = ''; } else { $Fnch = 'checked'; $Fjch = ''; } $Frid = $row->id; $Fakt = 'change'; } $tpl = new tpl ('range', 1); $ar = Array ( 'SUB' => $Fsub, 'BEZ' => $Fbez, 'MIN' => $Fmin, 'JCH' => $Fjch, 'NCH' => $Fnch, 'JCH1' => $Fjch, 'NCH1' => $Fnch, 'RID' => $Frid, 'AKT' => $Fakt ); $tpl->set_ar_out($ar, 3); } else { $_POST['bez'] = escape($_POST['bez'], 'textarea'); $_POST['min'] = escape($_POST['min'], 'integer'); $_POST['spez'] = escape($_POST['spez'], 'integer'); $_POST['spez1'] = escape($_POST['spez1'], 'integer'); $_POST['rid'] = escape($_POST['rid'], 'integer'); if (empty($_POST['rid'])) { if ($_POST['spez'] == 1) { $_POST['min'] = '0'; } if ($_POST['spez1'] == 1) { $_POST['min'] = '0'; } db_query('INSERT INTO `prefix_ranks` (`bez`,`min`,`spez`,`spez1`) VALUES ( "' . $_POST['bez'] . '","' . $_POST['min'] . '","' . $_POST['spez'] . '","' . $_POST['spez1'] . '" ) '); wd ('admin.php?range' , 'Erfolgreich eingetragen' , 1); } else { if ($_POST['spez'] == 1) { $_POST['min'] = '0'; } if ($_POST['spez1'] == 1) { $_POST['min'] = '0'; } db_query('UPDATE `prefix_ranks` SET bez = "' . $_POST['bez'] . '", min = "' . $_POST['min'] . '", spez = "' . $_POST['spez'] . '",spez = "' . $_POST['spez1'] . '" WHERE id = "' . $_POST['rid'] . '"'); wd ('admin.php?range' , 'Erfolgreich geändert' , 1); } } } $design->footer(); ?>
und die passende admin/range.htm
<table cellpadding="0" cellspacing="0" border="0"><tr><td><img src="include/images/icons/admin/ranks.png" /></td><td width="30"></td><td valign="bottom"><h1>Ranks</h1></td></tr></table> <table cellspacing="1" cellpadding="5" broder="0" class="border"> <tr class="Chead"> <td>Rank Bezeichnung</td> <td>Ab X Posts</td> <td>Spezialrang</td> <td>Aufstieg</td> <td></td> <td></td> </tr> {EXPLODE} <tr class="{CLASS}"> <td>{BEZ}</td> <td align="center">{MIN}</td> <td align="center">{SPEZ}</td> <td align="center">{AUFSTIEG}</td> <td><a href="?range-2-{ID}">Bearbeiten</a></td> <td><a href="?range-1-{ID}">Löschen</a></td> </tr> {EXPLODE} <tr class="Cdark"> <td colspan="5" height="50" align="center"><input type="button" value="Neuen Rang eintragen" onClick="document.location.href='?range-2'"></td> </tr> </table> {EXPLODE} <form action="admin.php?range-2" method="POST"> <input type="hidden" name="rid" value="{RID}"> <input type="hidden" name="akt" value="{AKT}"> <table cellspacing="1" cellpadding="5" broder="0" class="border"> <tr> <td class="Chead" colspan="2">Rank - Administration</td> </tr><tr> <td class="Cmite">Rankname</td> <td class="Cnorm"><input type="text" name="bez" value="{BEZ}"></td> </tr><tr> <td class="Cmite">Ab X Posts</td> <td class="Cnorm"><input type="text" name="min" value="{MIN}"></td> </tr><tr> <td class="Cmite">Spezialrang</td> <td class="Cnorm"><input type="radio" value="1" name="spez" {JCH}> Ja <input type="radio" value="0" name="spez" {NCH}> Nein</td> </tr><tr> <td class="Cmite">Aufstieg</td> <td class="Cnorm"><input type="radio" value="1" name="spez1" {JCH1}> Ja <input type="radio" value="0" name="spez1" {NCH1}> Nein</td> </tr><tr> <td class="Cdark"></td> <td class="Cdark"><input type="submit" value="{SUB}" name="sub"></td> </tr> </table> </form> <p><br /> <b>Merke</b><br /> - Ab X Posts wird der dazu gehörige Rangname benutz bis die nächste Ab Zahl erreicht wird usw. <br /> - Spizalrangs kannst du für besondere Benutzer festlegen. Die Ränge kannst du später dann vergeben.</p> <p>-Aufstiegsvorasussetzungen sind bereits eingetragen. </p>
Ich kann ganz normal einen Rang zuordnen. Da steht dann:
Bezeichnung-Ab x Posts-Spezialrang-Aufstieg
blablabla - ein Minuszeichen - nein - ja
In der userverwaltung wird mir der neue Eintrag aber immer unter Spezialrang, anstatt unter Aufstieg angezeigt.
Wo habe ich da einen Fehler gemacht?