Hacks4wbb by HFW™ (https://pommes.forenoase.de//index.php)
- WBB Bereich (https://pommes.forenoase.de//board.php?boardid=20)
--- wbb 2 (https://pommes.forenoase.de//board.php?boardid=393)
------ WBB 2.3 Forum (https://pommes.forenoase.de//board.php?boardid=246)
---------- Hacks/Addons wbb2.3 (https://pommes.forenoase.de//board.php?boardid=394)
----------- WBB 2.3 Hacks (https://pommes.forenoase.de//board.php?boardid=248)
------------ Support -> Active Delete V1.2 WBB 2.3 (https://pommes.forenoase.de//thread.php?threadid=29377)


Geschrieben von madru am 23.02.2008 um 02:11:

 

Moin Leute,

ich wünsche mir mal eine Ergänzung, die 2 Hacks vereint Augenzwinkern
Bei uns im Forum läuft schon lange und auch gut Active Delete. Nun möchte ich zusätzlich den Boardregelhack V6 von GLURAK nutzen. Ist ja kein Problem, die Hacks stören sich nicht gegenseitig.
Allerdings möchte ich das Active Delete und der Boardregelhack zusammen Aufgaben erfüllen....

Beim Boardregelhack kann man bei jeder Änderung der Regeln einstellen, dass alle User erneut diesen Regeln zustimmen müssen. In dem erscheinenden Template mit den Regeln gibt es allerdings nur die Möglichkeit zuzustimmen. Wenn ein User nicht zustimmen will, dann bleibt ihm nur die Möglichkeit zuzustimmen und dann im UCP sich zu löschen oder nicht zuzustimmen und eine ewige Leiche bleiben.
Ich möchte nun, dass in dem Template ein 2. Möglichkeit erscheint - nämlich das der User nicht zustimmt und somit direkt seine Selbstlöschung einleitet. Gleichzeitig soll der User dann auf eine Seite außerhalb der wbb-Hierarchie gelenkt werden.

Ich habe nun allerdings recht wenig Ahnung von der php-Programierung und von der Abfrage der sql-Datenbank... Hacks einbauen kann ich - aber selbst entwickeln.... Vielleicht kann mir hier jemand helfen?

Hier mal das Template für die Regeln im Original mit der Stelle gekennzeichnet an die Ablehnung soll:
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:
<?xml version="1.0" encoding="{$lang->items['LANG_GLOBAL_ENCODING']}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{$lang->items['LANG_GLOBAL_DIRECTION']}" lang="{$lang->items['LANG_GLOBAL_LANGCODE']}" xml:lang="{$lang->items['LANG_GLOBAL_LANGCODE']}">
<head>
<title>$master_board_name | {$lang->items['LANG_RULES_TITLE']}</title>
$headinclude
</head>
<body>
<!--
Ihr dürft den HTML Kommentar nicht löschen!
Boardregeln Hack Copyright by GLURAK 2004 ( http://www.anime-stream-board.de)
Dieser Hack darf nur von mir (GLURAK) angeboten werden!
-->
$header
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tablea"><table cellpadding="0" cellspacing="0" border="0" style="width:100%">
   <tr class="tablea_fc">
    <td align="left"><span class="smallfont"><b><a href="index.php{$SID_ARG_1ST}">$master_board_name</a> &raquo; {$lang->items['LANG_RULES_TITLE']}</b></span></td>
    <td align="right"><span class="smallfont"><b>$usercbar</b></span></td>
   </tr>
  </table></td>
 </tr>
</table><br />
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
<tr>
<td class="tabletitle"><span class="normalfont"><b>{$lang->items['LANG_RULES_NEW']}</b></td>
</tr>
 <tr>
  <td class="tablecat" align="left"><span class="normalfont"><b>{$lang->items['LANG_RULES_TITLE_DESC']} $master_board_name</b></span></td>
 </tr>
<tr>
<td class="tablea"><span class="smallfont">$s_rules[0]</span></td>
</tr>
<tr>
<td class="tableb" align="center"><span class="smallfont"><a href="global.php?action=readrules{$SID_ARG_2ND}"><b>{$lang->items['LANG_RULES_READ_RULES']}</b></a></td>
</tr>

#######
<tr>
<td>ABLEHNUNGSBUTTON</td>
</tr>
#######

</table>
$footer
</body>
</html>


Hier der Link zum Boardregelhack V6 und ja, er funktioniert einwandfrei mit dem wbb2.3.6.

Wäre sehr dankbar wenn mir jemand helfen könnte!
Vielen Dank schon mal,

Michael



Geschrieben von mausepieps am 24.02.2008 um 16:15:

 

super hack udn funzt auch super.....muss gleich nur nochmal updaten *lol*

was ich allerdings fragen wollte.....

wir haben ein mama, papa, kiderforum....udn da dann der button "friedhof"....
kann man den auch umbenennen? nicht, dass da irgendein copyright verletzt wird.....aber wenn eltern ihr kind verloren haben sieht es schon recht doof aus *mal n beispiel nenn*



Geschrieben von madru am 27.02.2008 um 01:08:

 

Ich habe nochmal über die Selbstlöschung aus dem Boardregelhack heraus nachgedacht.
Ich habe zwar immer noch nicht die Ahnung wie ich das in php programmieren soll, aber eigentlich macht einen Großteil der Arbeit ja die activ_dele_cron.php, die regelmäßig über einen Cronjob abgearbeitet wird. Es reicht ja wenn das Feld selbkill in der Tabelle _users auf 1 gesetzt wird.

Der entsprechende Abschnitt im Template sieht, mit meiner Ergänzung, so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<tr>
<td class="tableb" align="center"><span class="smallfont"><a href="global.php?action=readrules{$SID_ARG_2ND}"><b>{$lang->items['LANG_RULES_READ_RULES']}</b></a></td>
</tr>
<tr>
<td class="tableb" align="center"><span class="smallfont">{$lang->items['LANG_RULES_TEXT_NO']}</td>
</tr>
<tr>
<td class="tableb" align="center"><span class="smallfont"><a href="global.php?action=norules{$SID_ARG_2ND}"><b>{$lang->items['LANG_RULES_READ_RULES_NO']}</b></a></td>
</tr>


Der dazugehörige Abschnitt in der global.php so:
php:
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:
/* Boardregeln Hack by GLURAK */
if($filename!="register.php"){
    $lang->load("rules");
    if($_GET['action']=="readrules") {
        if($wbbuserdata['username']=="guest") {
            setcookie("readrules");
        }
        else {
            $db->unbuffered_query("UPDATE bb".$n."_users SET readrules='1' WHERE userid=".$wbbuserdata['userid']."");
            setcookie("readrules");
        }
        header("Location:index.php?sid=$session[hash]");
    }
    if($wbbuserdata['username']=="guest") {
        if($ask_rules_guest=="1" && !isset($_COOKIE['readrules'])) {
            require('./acp/lib/class_parse.php');
            $s_rules=$db->query_first("SELECT rules FROM bb".$n."_acprules");
            $parse = new parse(1,75,1,"",1);
            $s_rules $parse->doparse($s_rules,1,1,1,1);
            eval("\$tpl->output(\"".$tpl->get("rules_message")."\");");
            exit();
        }
    }
    if($wbbuserdata['readrules']=="0" && $wbbuserdata['username']!="guest") {
        require('./acp/lib/class_parse.php');
        $s_rules=$db->query_first("SELECT rules FROM bb".$n."_acprules");
        $parse = new parse(1,75,1,"",1);
        $s_rules $parse->doparse($s_rules,1,1,1,1);
        eval("\$tpl->output(\"".$tpl->get("rules_message")."\");");
        exit();
    }
}
/* ENDE BOARDREGELN HACK*/

In meinem "jugentlichen" Leichtsinn glaube ich, dass man "nur" einen Punkt in die globale.php einfügen muss, der von dem Link global.php?action=norules aufgerufen wird. Diese "action" muss dann beim richtigen User nur den Wert selbkill in der Tabelle _users auf 1 setzen und den User auf eine bestimmte Website weiterleiten - den Rest erledigt dann das Active Delete und der Cronjob. Müsste doch ganz einfach sein - für jemanden der php und sql sprechen kann Augenzwinkern .... Für mich ist es leider ein Buch mit mindestens 7 Siegeln...
Kann mir wer helfen?



Geschrieben von alfie am 27.02.2008 um 18:45:

 

Nach der letzten }

füge ein:

code:
1:
2:
3:
4:
5:
if($_GET['action']=="norules") {
	$db->query("UPDATE bb".$n."_users SET selbkill='1' WHERE userid = '".intval($wbbuserdata['userid'])."'");
}


Ungetestet, aber sollte funktionieren!

Wohin willst du weiterleiten?


@ mausepieps

Natürlich kannst du das umbennenen!

alfie



Geschrieben von mausepieps am 27.02.2008 um 19:08:

 

super...dankeschön smile



Geschrieben von LadyMary am 27.02.2008 um 19:42:

 

ich habe active delete schon recht lange jetzt drin, ca 4 wochen, aber es sind user in der mitglieder liste die sind schon ewig nicht da gewesen aber active delete macht nichs. also der löscht nicht.
woran kanns liegen?



Geschrieben von madru am 27.02.2008 um 20:12:

 

Zitat:
Original von alfie


Ungetestet, aber sollte funktionieren!

Wohin willst du weiterleiten?

Danke Alfi, das Teste ich gleich mal!
Ich habe im wbb2-Ordner eine Ordner mailer und darin die Datei formmailer.php. Auf der Seite habe ich nochmal erklärt wie man trotzdem Boardmitglied bleiben kann und auch ein Kontaktformular integriert das der User nutzen kann um Mitzuteilen was ihn an den Regeln stört. Auf die Seite soll weitergeleitet werden. Das Verzeichnis liegt nur im wbb2-Ordner, hat aber keinerlei includes oder so.



Geschrieben von madru am 27.02.2008 um 21:20:

 

So, ich hab das jetzt eingebaut.
Der Abschnitt in der global.php sieht dann so aus:
php:
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:
/* Boardregeln Hack by GLURAK */
if($filename!="register.php"){
    $lang->load("rules");
    if($_GET['action']=="readrules") {
        if($wbbuserdata['username']=="guest") {
            setcookie("readrules");
        }
        else {
            $db->unbuffered_query("UPDATE bb".$n."_users SET readrules='1' WHERE userid=".$wbbuserdata['userid']."");
            setcookie("readrules");
        }
        header("Location:index.php?sid=$session[hash]");
    }
    if($wbbuserdata['username']=="guest") {
        if($ask_rules_guest=="1" && !isset($_COOKIE['readrules'])) {
            require('./acp/lib/class_parse.php');
            $s_rules=$db->query_first("SELECT rules FROM bb".$n."_acprules");
            $parse = new parse(1,75,1,"",1);
            $s_rules $parse->doparse($s_rules,1,1,1,1);
            eval("\$tpl->output(\"".$tpl->get("rules_message")."\");");
            exit();
        }
    }
    if($wbbuserdata['readrules']=="0" && $wbbuserdata['username']!="guest") {
        require('./acp/lib/class_parse.php');
        $s_rules=$db->query_first("SELECT rules FROM bb".$n."_acprules");
        $parse = new parse(1,75,1,"",1);
        $s_rules $parse->doparse($s_rules,1,1,1,1);
        eval("\$tpl->output(\"".$tpl->get("rules_message")."\");");
        exit();
    }

}

  if($_GET['action']=="norules") {
      $db->query("UPDATE bb".$n."_users SET selbkill='1' WHERE userid = '".intval($wbbuserdata['userid'])."'");
  }

/* ENDE BOARDREGELN HACK*/


Ich habe meinen Testuser dann gezwungen den Regeln zuzustimmen indem ich den Wert readrules in der Tabelle _users auf 0 gesetzt habe. Wenn er diesen Link aufruft:
code:
1:
<td class="tableb" align="center"><span class="smallfont"><a href="global.php?action=readrules{$SID_ARG_2ND}"><b>{$lang->items['LANG_RULES_READ_RULES']}</b></a></td>

dann wird der Wert korrekt auf 1 gesetzt und der User landet auf der Startseite.
Wenn er aber diesem Link folgt:
code:
1:
<td class="tableb" align="center"><span class="smallfont"><a href="global.php?action=norules{$SID_ARG_2ND}"><b>{$lang->items['LANG_RULES_READ_RULES_NO']}</b></a></td>

dann passiert in der Datenbank nichts... der wert für selbkill bleibt auf 0 und der User springt wieder an den Beginn der Regeln... Irgendwie wird der Query nicht ausgeführt...



Geschrieben von alfie am 28.02.2008 um 20:26:

 

Ändere den norules Abschnitt mal:

code:
1:
2:
3:
4:
5:
6:
  if($_GET['action']=="norules") {
      $db->query("UPDATE bb".$n."_users SET selbkill='1' WHERE userid = '".intval($wbbuserdata['userid'])."'");
header("Location:index.php?sid=$session[hash]");
  }


Schau, was dann passiert!

alfie



Geschrieben von madru am 28.02.2008 um 23:43:

 

Tut mir leid Alfie, keinerlei Änderung... es passiert einfach nichts wenn ich den Link aufrufe...
Angemeldet bin ich mit einem Testuser, der ganz normal in der Gruppe User ist und sich auch selbstlöschen darf. Es funktioniert auch wenn der User im Profil Selbstlöschung auf Ja setzt.



Geschrieben von alfie am 29.02.2008 um 12:38:

 

Hmmm, evtl. die falsche Stelle zum Einfügen gewesen! Versuch es mal mit dem angehängten Schnipsel!

alfie



Geschrieben von madru am 29.02.2008 um 12:56:

 

Danke Alfie!

Und mit dieser kleinen Änderung:
php:
1:
2:
3:
if($_GET['action']=="norules") {
      $db->query("UPDATE bb".$n."_users SET selbkill='1' WHERE userid = '".intval($wbbuserdata['userid'])."'");
      header("Location:mailer/formmailer.php");
wechselt er danach sogar in das Kontaktformular!
Ich teste nach der Arbeit noch mal intensiever, aber erstmal scheint es genau das zu sein was ich wollte!

Toller Service, danke!!



Geschrieben von LadyMary am 01.03.2008 um 12:01:

 

kann mir keiner helfen? Unzufrieden



Geschrieben von alfie am 01.03.2008 um 15:27:

 

Mach mal nen Neustart im ACP!

alfie



Geschrieben von LadyMary am 01.03.2008 um 18:09:

 

Das hab ich bereits getan, aber keine veränderung Unzufrieden



Geschrieben von MyNokia am 19.03.2008 um 22:19:

Fragezeichen Serverumzug und Update von WBB 2.2.1 auf 2.3.6

Hallo zusammen,

habe einen Serverumzug incl. Update der WBB-Version hinter mir. Nun ist mir gerade aufgefallen, dass zwar der Hack noch da ist, aber irgendwie stehen geblieben zu sein scheint ? Einen Neustart über myphpadmin habe ich probiert, hat aber nichts gebracht.

Eingebaut ist die Version 1.1 vom Hack, kann's daran liegen ? Läuft die Version nicht unter MySQL5 (vorher hatte ich MySQL4) ?

Wie gehe ich am besten vor um das Problem zu lösen. Erst mal schauen ob alles vom 1.1er Hack drin ist und dann ein Update auf 1.2 ?



Geschrieben von alfie am 20.03.2008 um 11:32:

 

Mach einfach ein Update, fehlen kann da eigentlich nichts, es sei denn, die Datenbank ist nicht sauber übertragen worden!

alfie



Geschrieben von MyNokia am 22.03.2008 um 20:15:

Fragezeichen Frage zu Pranger

Wenn ich die Funktion "User löschen" Löschen im Pranger wähle sollte sich dann der gelöschte User nicht im Friedhof wiederfinden ? Verwende aktuell die Version 1.2 in einem 2.3.6er WBB !



Geschrieben von sZchen am 22.03.2008 um 20:19:

 

meinst du im pranger selbst?oder über's acp?



Geschrieben von MyNokia am 22.03.2008 um 20:28:

Fragezeichen Frage zu Pranger

Zitat:
Original von sZchen
meinst du im pranger selbst?oder über's acp?


Ich als Admin habe im Pranger selbst einen User sofort gelöscht - auf seinen Wunsch hin. Dieser erscheint nun nicht im Friedhof. Richtig oder Falsch ?


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH