ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Zweiten Spezialrang

Geschlossen
  1. #1
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Hallo Leute,
    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&auml;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">&nbsp;&nbsp;</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&ouml;rigkeit &auml;ndern">Gruppen</a></td> 
        <td>&nbsp;<a href="admin.php?user-1-{id}"><img src="include/images/icons/edit.gif" border="0" title="&auml;ndern" alt="&auml;ndern" /></a>&nbsp;</td>
        <td>&nbsp;<a href="javascript:deleteUser({id})"><img src="include/images/icons/del.gif" border="0" title="l&ouml;schen" alt="l&ouml;schen" /></a>&nbsp;</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&ouml;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 = '&Auml;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&auml;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&ouml;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 &nbsp; <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 &nbsp; <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&ouml;rige Rangname benutz bis die n&auml;chste Ab Zahl erreicht wird usw. <br />
    		- Spizalrangs kannst du f&uuml;r besondere Benutzer festlegen. Die R&auml;nge kannst du sp&auml;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?
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Da war ich wohl etwas zu schnell.
    Habe den Feheler selbst gefunden. Für alle hier noch das was in der admin/user/user.php gefehlt hat:
    Bei mir stand es in Zeile 82
     $limit = 15;  // Limit
        $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
        $MPL = db_make_sites ($page , "WHERE name LIKE '".$q."'" , $limit , '?user' , 'user' );
        $anfang = ($page - 1) * $limit;
        $class = '';
        $q = "SELECT name,recht,id,spezrank, spezrank1 FROM `prefix_user` WHERE name LIKE '".$q."' ORDER by recht,posts DESC LIMIT ".$anfang.",".$limit;
        $erg = db_query($q);
        while ($row = db_fetch_object($erg)) {
    	    if ($class == 'Cmite') { $class = 'Cnorm'; } else { $class = 'Cmite'; }
        	$ar = array ( 'name' => $row->name,
            'class' => $class,
            'id' => $row->id,
            'grouplist' => user_get_group_list($row->id),
          	'recht' => dblistee($row->recht,"SELECT id,name FROM prefix_grundrechte ORDER BY id ASC"),
    		'spezrank' => '<option></option>'.dblistee($row->spezrank,"SELECT id,bez FROM prefix_ranks WHERE spez = 1"),
    		'spezrank1' => '<option></option>'.dblistee($row->spezrank1,"SELECT id,bez FROM prefix_ranks WHERE spez1 = 1"),
            'modslist' => user_get_mod_change_list($row->id),
        	);
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten