Ranktitel für mehrere Usergruppen nutzen

Svenkan
Titel: Ranktitel für mehrere Usergruppen nutzen
Version: 1.0
Beschreibung: Ranktitel für mehrere Usergruppen nutzen
Version: 1.0
Beschreibung: Dieser Hack ermöglicht es, einen Ranktitel für mehrere Usergruppen zu erstellen.
Letztes Update: 14.02.07, 19:13
Demo?: ---
Getestet mit: wBBLite 1.0.2pl3
Benötigt: wBBLite 1.x.x
Versionchanges: ---
Zu ändernde Dateien:
  • acp/ranks.php
  • acp/templates/ranks_add.htm
  • acp/templates/ranks_edit.htm

Datenbankänderungen: ---
Support gibt's unter http://www.hacksupport.de.vu
Copyright liegt bei mir (Svenkan).
ACHTUNG! Für Schäden wird keine Verantwortung übernommen!

/edit: Neue Readme
----
Demo: http://img470.imageshack.us/my.php?image...rstelleniz2.jpg

weiter zum Download
wilo
Ich komme bei diesen Hack nicht weiter.
Und zwar wenn ich die ACP Ranks.php bearbeite ist der erste Punkt klar.
Danach erhalte ich keine Fehlermeldung, aber wenn ich bei diesen Punkt bin.
code:
1:
2:
3:
Suche (NULL,'".$_POST['group']."','".$_POST['gender']."','".intval($_POST['quantity'])."','".addslashes($_POST['title'])."','".addslashes(implode(";",explode("\n",$images)))."')");


Und dieses Code dann ersetze mit dem in der Readme kommt bei mir schon eine Fehlermeldung.
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/htdocs/w00a9edb/acp/ranks.php on line 22

Ist die Einbauanleitung falsch ? Ich benötige unbedingt den Hack, weil ich mehrere Usergruppen erstellen will. Danke für eure Hilfe.
C-Board
Dann poste doch mal nicht nur die Stelle, an den ersetzt werden soll, sondern auch den Teil der zum Ersetzen in der Readme steht.

Im Zweifelsfalle, sofern schon andere Hacks bei Dir installiert worden sind, kann die Stelle komplett anders aussehen.

Gruß Mike
wilo
Ok dann mache ich es mal sehr ausführlich.

Das hier sind die Anweisungen mit denen ich Probleme habe in der Anleitung bzw. wo es anfängt.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
Suche:

(NULL,'".$_POST['group']."','".$_POST['gender']."','".intval($_POST['quantity'])."','".addslashes($_POST['title'])."','".addslashes(implode(";",explode("\n",$images)))."')");

Ersetze mit:

for($i = 0; $i < count($_POST['group']); $i++) $db->query("INSERT INTO bb".$n."_ranks (rankid,groupid,gender,needposts,ranktitle,rankimages) VALUES (NULL,'".$_POST['group'][$i]."','".$_POST['gender']."','".intval($_POST['quantity'])."','".addslashes($_POST['title'])."','".addslashes(implode(";",explode("\n",$images)))."')");

Suche:

  $db->query("UPDATE bb".$n."_ranks SET groupid = '".$_POST['group']."', gender = '".$_POST['gender']."', needposts = '".intval($_POST['quantity'])."', ranktitle = '".addslashes($_POST['title'])."', rankimages = '".addslashes(implode(";",explode("\n",$images)))."' WHERE rankid = '".intval($_POST['rankid'])."'");

Ersetze mit:

 $ranks = $db->query_first("SELECT ranktitle FROM bb".$n."_ranks WHERE rankid = '".intval($_REQUEST['rankid'])."'");
  $db->query("DELETE FROM bb".$n."_ranks WHERE ranktitle='$ranks[ranktitle]'");
for($i = 0; $i < count($_POST['group']); $i++) $db->query("INSERT INTO bb".$n."_ranks (rankid,groupid,gender,needposts,ranktitle,rankimages) VALUES (NULL,'".$_POST['group'][$i]."','".$_POST['gender']."','".intval($_POST['quantity'])."','".addslashes($_POST['title'])."','".addslashes(implode(";",explode("\n",$images)))."')");

Suche:

 $result = $db->query("SELECT groupid, title FROM bb".$n."_groups WHERE default_group <> 1 ORDER BY title ASC");
 while($row = $db->fetch_array($result)) $ranks_groupsbit.=makeoption($row['groupid'],$row['title'],$ranks['groupid']);

Ersetze mit:

$result = $db->query("SELECT * FROM bb".$n."_ranks WHERE ranktitle='$ranks[ranktitle]'");
 while($row=$db->fetch_array($result)) {
  if($row['groupid']!="") $f[]=$row['groupid'];

  $count_f += $row['groupid'];
 }
 $db->free_result($result);

 $result = $db->query("SELECT groupid, title FROM bb".$n."_groups WHERE default_group <> 1 ORDER BY title ASC");
 $count = $db->num_rows($result);

 if($count==$count_f) $f_selected = " selected";
 while($row = $db->fetch_array($result)) $ranks_groupsbit .= makeoption($row['groupid'],$row['title'],$f,ifelse($f_selected,0,1));
 $db->free_result($result);


Hier ist meine Ranks PHP
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
<?php
require("./global.php");
isAdmin();

if(isset($_REQUEST['action'])) $action=$_REQUEST['action'];
else $action="view";

if($action == "view"){
 $count=0;
 $ranks_viewbit="";
 $result1 = $db->query("SELECT rankid, ranktitle FROM bb".$n."_ranks ORDER BY rankid ASC");
 while($row1 = $db->fetch_array($result1)){
  $rowclass = getone($count++,"firstrow","secondrow");
  eval ("\$ranks_viewbit .= \"".gettemplate("ranks_viewbit")."\";");
 }
 eval("print(\"".gettemplate("ranks_view")."\");");
}

if($action == "add"){
 if(isset($_POST['send'])){
  $images = preg_replace("/\s*\n\s*/","\n",trim($_POST['images']));
  $db->query("INSERT INTO bb".$n."_ranks (rankid,groupid,gender,needposts,ranktitle,rankimages) VALUES (NULL,'".intval($_POST['group'])."','".intval($_POST['gender'])."','".intval($_POST['quantity'])."','".addslashes($_POST['title'])."','".addslashes(implode(";",explode("\n",$images)))."')");
  header("Location: ranks.php?action=view&sid=$session[hash]");
  exit();
 }
 $result = $db->query("SELECT groupid, title FROM bb".$n."_groups WHERE default_group <> 1 ORDER BY title ASC");
 while($row = $db->fetch_array($result)) $ranks_groupsbit.=makeoption($row['groupid'],$row['title'],"",0);
 eval("print(\"".gettemplate("ranks_add")."\");");
}

if($action == "edit"){
 if(isset($_POST['send'])){
  $images = preg_replace("/\s*\n\s*/","\n",trim($_POST['images']));
  $db->query("UPDATE bb".$n."_ranks SET groupid = '".intval($_POST['group'])."', gender = '".intval($_POST['gender'])."', needposts = '".intval($_POST['quantity'])."', ranktitle = '".addslashes($_POST['title'])."', rankimages = '".addslashes(implode(";",explode("\n",$images)))."' WHERE rankid = '".intval($_POST['rankid'])."'");
  header("Location: ranks.php?action=view&sid=$session[hash]");
  exit();
 }
	
 $ranks = $db->query_first("SELECT rankid, groupid, gender, needposts, ranktitle, rankimages FROM bb".$n."_ranks WHERE rankid = '".intval($_REQUEST['rankid'])."'");
 if($ranks['gender'] == "2") $rankgendersel[2] = " selected=\"selected\"";
 elseif($ranks['gender'] == "1") $rankgendersel[1] = " selected=\"selected\"";
 else $rankgendersel[0] = " SELECTED";
 $result = $db->query("SELECT groupid, title FROM bb".$n."_groups WHERE default_group <> 1 ORDER BY title ASC");
 while($row = $db->fetch_array($result)) $ranks_groupsbit.=makeoption($row['groupid'],$row['title'],$ranks['groupid']);
		 
 $ranks['rankimages'] = implode("\n",explode(";",$ranks['rankimages'])); 
 eval("print(\"".gettemplate("ranks_edit")."\");");
}

if($action == "del"){
 if(isset($_POST['send'])){
  $db->query("DELETE FROM bb".$n."_ranks WHERE rankid = '".intval($_POST['rankid'])."'");
  $db->query("UPDATE bb".$n."_users SET rankid = '0' WHERE rankid = '".intval($_POST['rankid'])."'");
  header("Location: ranks.php?action=view&sid=$session[hash]");
  exit();
 }
	
 $rank_delete_row = $db->query_first("SELECT ranktitle FROM bb".$n."_ranks WHERE rankid = '".intval($_REQUEST['rankid'])."'");
 eval("print(\"".gettemplate("ranks_del_confirm")."\");");
}
?>



Ist es so verständlicher oder zuviel ?
C-Board
In der Anleitung steckt der Wurm.

Die ersten 7 Zeilen lauten:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
Suche:

(NULL,'".$_POST['group']."','".$_POST['gender']."','".intval($_POST['quantity'])."','".addslashes($_POST['title'])."','".addslashes(implode(";",explode("\n",$images)))."')");

Ersetze mit:

for($i = 0; $i < count($_POST['group']); $i++) $db->query("INSERT INTO bb".$n."_ranks (rankid,groupid,gender,needposts,ranktitle,rankimages) VALUES (NULL,'".$_POST['group'][$i]."','".$_POST['gender']."','".intval($_POST['quantity'])."','".addslashes($_POST['title'])."','".addslashes(implode(";",explode("\n",$images)))."')");


In Zeile 3 soll eine Zeichenkette aus einem SQL-Statement gesucht werden und diese Zeichenkette gegen PHP-Quellcode (Zeile 7) ersetzt werden.

Das ist ausgeschlossen!

Gruß Mike
wilo
Ich bin mit diesen Hack immer noch nicht weiter gekommen leider. Hat den denn sonst keiner drin ?