User für eine bestimmte Zeit für eine bestimmte Gruppe freischalten ? |
|
Uiiiiiiiiiiiiiiii hannes,
das sind tolle Neuigkeiten.....
|
|
02.11.2010 22:56 |
|
|
Poldi unregistriert
|
|
haumio ich hätte denn hack auch gerne in mein foru danke schonmal dafür
|
|
05.11.2010 15:39 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.442
Herkunft: NRW
Postid: 5735
|
|
So ich setze es hier mal rein und wie gesagt
das script wurde einmal in meinem Testboard eingebaut und hat funktioniert.
Führe im acp unter SQL Abfragen -->SQL-Abfrage(n) eingeben: folgende SQL-Abfragen durch:
(Kann man auf einmal machen!)
ALTER TABLE bb1_users ADD COLUMN `grup` INT NOT NULL DEFAULT '0' ;
CREATE TABLE bb1_user_az SELECT * FROM bb1_users;
CREATE TABLE bb1_user2_az SELECT * FROM bb1_user2groups;
TRUNCATE TABLE bb1_user_az;
TRUNCATE TABLE bb1_user2_az ;
erstelle eine Sprachvariable:
Kategorie: acp_users
Variable: LANG_ACP_USERS_OTHER_GROUPTIME
Text: Wie viel Tage soll der User der Gruppe angehören? "0" ist für immer!
Öffne users_edit.htm und suche:
code: |
1:
2:
3:
|
<tr class="tblsection">
<td colspan="2">{$lang->items['LANG_REGISTER_OTHER_INFORMATION']}</td>
</tr> |
|
füge darüber ein:
code: |
1:
2:
3:
4:
|
<tr class="firstrow">
<td><b>{$lang->items['LANG_ACP_USERS_OTHER_GROUPTIME']}</b></td>
<td><input type="text" name="grup" maxlength="30" value="0" /></td>
</tr> |
|
Speichern
Im acp acp-Templates cachen (acp_tpl.php ausführen)
öffne acp/users.php
suche:
code: |
1:
2:
|
if (isSet($_POST['title'])) $title = $_POST['title'];
else $title = ''; |
|
füge darüber ein:
code: |
1:
2:
|
if (isSet($_POST['grup'])) $grup = intval($_POST['grup']);
else $grup = 0; |
|
suche:
code: |
1:
|
$db->query("INSERT INTO bb".$n."_users (username,password,sha1_password,email,groupcombinationid,rankid, |
|
füge dahinter ein
suche:
code: |
1:
|
"('".addslashes($username)."','".md5($password)."','".sha1($password)."','".addslashes($email)."','".$groupcombinationid."','".$rankid['rankid']."', |
|
füge dahinter ein:
suche:
füge darüber ein:
suche:
code: |
1:
2:
3:
4:
|
if (isset($_REQUEST['title']) && $_REQUEST['title']) {
add2where("title LIKE '%".addslashes($_REQUEST['title'])."%'");
linkGenerator("title", $_REQUEST['title']);
} |
|
füge darüber ein:
code: |
1:
2:
3:
4:
|
if (isset($_REQUEST['grup']) && $_REQUEST['grup'] == 0) {
add2where("activation <> '1'");
linkGenerator("grup", $_REQUEST['grup']);
} |
|
suche:
code: |
1:
2:
|
if (isSet($_POST['title'])) $title = $_POST['title'];
else $title = ''; |
|
füge darüber ein:
code: |
1:
2:
|
if (isSet($_POST['grup'])) $grup = $_POST['grup'];
else $grup = ''; |
|
suche weiter:
code: |
1:
2:
|
if (isSet($_POST['notificationperpm'])) $notificationperpm = intval($_POST['notificationperpm']);
else $notificationperpm = 0; |
|
füge dadrunter ein:
code: |
1:
2:
3:
4:
5:
6:
|
if ($grup > 0) {
$gruptime = time();
$db->unbuffered_query("INSERT INTO bb1_user_az SELECT * FROM bb1_users WHERE userid='$userid'");
$db->unbuffered_query("INSERT INTO bb1_user2_az SELECT * FROM bb1_user2groups WHERE userid='$userid'");
} |
|
suche:
code: |
1:
|
$db->unbuffered_query("UPDATE bb".$n."_users SET username='".addslashes($username)."',email='".addslashes($email)."',groupcombinationid='".$groupcombinationid."',rankid='".$rankid['rankid']."' |
|
füge dahinter ein:
code: |
1:
|
,grup='".$grup."',gruptime='".$gruptime."' |
|
suche:
code: |
1:
|
$title = $user['title']; |
|
füge darüber ein:
code: |
1:
|
$grup = $user['grup']; |
|
speichern
öffne wbb2/index.php und suche:
code: |
1:
2:
3:
4:
5:
|
index_pms = '';
$quicklogin = '';
$index_showevents = '';
$index_useronline = '';
$index_stats = ''; |
|
und füge dadrunter ein:
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:
|
// Gruppenzugehörigkeit zurücksetzen
$result = $db->unbuffered_query("SELECT userid, username, grup, gruptime FROM bb".$n."_users WHERE grup > 0");
while ($row = $db->fetch_array($result)) {
$row['username'] = htmlconverter($row['username']);
$userid = intval($row['userid']);
$grup = $row['grup'];
$gruptime = $row['gruptime'];
$time = time();
if (($time - $gruptime) > $grup*86400) {
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_user_az WHERE userid='$userid'");
while ($row = $db->fetch_array($result)) {
$groupcombinationid = $row['groupcombinationid'];
$rankid = $row['rankid'];
$rankgroupid = $row['rankgroupid'];
$acpmode = $row['acpmode'];
$db->unbuffered_query("UPDATE bb".$n."_users SET groupcombinationid = '$groupcombinationid' , rankid = '$rankid', rankgroupid = '$rankgroupid', acpmode = '$acpmode', grup ='0' , gruptime = '0' WHERE userid='$userid'");
$db->unbuffered_query("DELETE FROM bb1_user_az WHERE userid='$userid'");
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_user2_az WHERE userid='$userid'");
while ($row = $db->fetch_array($result)) {
$userid = $row['userid'];
$groupid = $row['groupid'];
$db->unbuffered_query("UPDATE bb".$n."_user2groups SET groupid = '$groupid' WHERE userid='$userid'");
$db->unbuffered_query("DELETE FROM bb1_user2_az WHERE userid='$userid'");
}
}
}
}
// Ende Gruppenzugehörigkeit zurücksetzen |
|
speichern und das soll es denn gewesen sein.
Auch hier gilt, die Dateien und Templates vorher sichern!
Wenn etwas unklar sein sollte bitte hier fragen bevor man etwas falsch macht.
Es wird auch Hilfe gegeben wenn etwas nicht so ganz geklappt hat.
Obacht geben auf die Kommas, die sind leicht zu übersehen!!!!!!!!!!
Urheber ist haumi - aber jeder kann es frei verwenden und nach belieben abändern.
IM ANHANG IST DIE GEZIPTE DATEI!!
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
07.11.2010 07:55 |
|
|
|
Sorry, haumi,- ich hatte so viel zu tun, daß ich das hier gar nicht gesehen hatte.
Bitte nicht böse sein !
Also eigentlich sollte diese Sache bei mir in das "clever pauken" eingebaut werden.
Soll ich das testweise mal selbst einbauen ?
Winki
__________________
|
|
10.11.2010 12:34 |
|
|
|
Soderle ich habs probiert...kam ne Fehlermeldung, hab dann die Originale wieder eingespielt...
Bräuchte da nen bissl Hilfe Haumi....
|
|
10.11.2010 14:19 |
|
|
james
Boardbüttel
[meine Galerie]
Dabei seit: 09.06.2009
Beiträge: 139
Herkunft: Aus dem Web.
Postid: 5800
|
|
Zitat: |
Original von haumi
So ich setze es hier mal rein und wie gesagt
das script wurde einmal in meinem Testboard eingebaut und hat funktioniert.
Führe im acp unter SQL Abfragen -->SQL-Abfrage(n) eingeben: folgende SQL-Abfragen durch:
(Kann man auf einmal machen!)
ALTER TABLE bb1_users ADD COLUMN `grup` INT NOT NULL DEFAULT '0' ;
ALTER TABLE `bb1_users` ADD COLUMN `gruptime` INT(11) unsigned NOT NULL ;
CREATE TABLE bb1_user_az SELECT * FROM bb1_users;
CREATE TABLE bb1_user2_az SELECT * FROM bb1_user2groups;
TRUNCATE TABLE bb1_user_az;
TRUNCATE TABLE bb1_user2_az ;
erstelle eine Sprachvariable:
Kategorie: acp_users
Variable: LANG_ACP_USERS_GROUPTIME
Text: Wie viel Tage soll der User der Gruppe angehören? "0" ist für immer!
Öffne users_edit.htm und suche:
code: |
1:
2:
3:
|
<tr class="tblsection">
<td colspan="2">{$lang->items['LANG_REGISTER_OTHER_INFORMATION']}</td>
</tr> |
|
füge darüber ein:
code: |
1:
2:
3:
4:
|
<tr class="firstrow">
<td><b>{$lang->items['LANG_ACP_USERS_OTHER_GROUPTIME']}</b></td>
<td><input type="text" name="grup" maxlength="30" value="0" /></td>
</tr> |
|
Speichern
Im acp acp-Templates cachen (acp_tpl.php ausführen)
öffne acp/users.php
suche:
code: |
1:
2:
|
if (isSet($_POST['title'])) $title = $_POST['title'];
else $title = ''; |
|
füge darüber ein:
code: |
1:
2:
|
if (isSet($_POST['grup'])) $grup = intval($_POST['grup']);
else $grup = 0; |
|
suche:
code: |
1:
|
$db->query("INSERT INTO bb".$n."_users (username,password,sha1_password,email,groupcombinationid,rankid, |
|
füge dahinter ein
suche:
code: |
1:
|
"('".addslashes($username)."','".md5($password)."','".sha1($password)."','".addslashes($email)."','".$groupcombinationid."','".$rankid['rankid']."', |
|
füge dahinter ein:
suche:
füge darüber ein:
suche:
code: |
1:
2:
3:
4:
|
if (isset($_REQUEST['title']) && $_REQUEST['title']) {
add2where("title LIKE '%".addslashes($_REQUEST['title'])."%'");
linkGenerator("title", $_REQUEST['title']);
} |
|
füge darüber ein:
code: |
1:
2:
3:
4:
|
if (isset($_REQUEST['grup']) && $_REQUEST['grup'] == 0) {
add2where("activation <> '1'");
linkGenerator("grup", $_REQUEST['grup']);
} |
|
suche:
code: |
1:
2:
|
if (isSet($_POST['title'])) $title = $_POST['title'];
else $title = ''; |
|
füge darüber ein:
code: |
1:
2:
|
if (isSet($_POST['grup'])) $grup = $_POST['grup'];
else $grup = ''; |
|
suche weiter:
code: |
1:
2:
|
if (isSet($_POST['notificationperpm'])) $notificationperpm = intval($_POST['notificationperpm']);
else $notificationperpm = 0; |
|
füge dadrunter ein:
code: |
1:
2:
3:
4:
5:
6:
|
if ($grup > 0) {
$gruptime = time();
$db->unbuffered_query("INSERT INTO bb1_user_az SELECT * FROM bb1_users WHERE userid='$userid'");
$db->unbuffered_query("INSERT INTO bb1_user2_az SELECT * FROM bb1_user2groups WHERE userid='$userid'");
} |
|
suche:
code: |
1:
|
$db->unbuffered_query("UPDATE bb".$n."_users SET username='".addslashes($username)."',email='".addslashes($email)."',groupcombinationid='".$groupcombinationid."',rankid='".$rankid['rankid']."' |
|
füge dahinter ein:
code: |
1:
|
,grup='".$grup."',gruptime='".$gruptime."' |
|
suche:
code: |
1:
|
$title = $user['title']; |
|
füge darüber ein:
code: |
1:
|
$grup = $user['grup']; |
|
speichern
öffne wbb2/index.php und suche:
code: |
1:
2:
3:
4:
5:
|
index_pms = '';
$quicklogin = '';
$index_showevents = '';
$index_useronline = '';
$index_stats = ''; |
|
und füge dadrunter ein:
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:
|
// Gruppenzugehörigkeit zurücksetzen
$result = $db->unbuffered_query("SELECT userid, username, grup, gruptime FROM bb".$n."_users WHERE grup > 0");
while ($row = $db->fetch_array($result)) {
$row['username'] = htmlconverter($row['username']);
$userid = intval($row['userid']);
$grup = $row['grup'];
$gruptime = $row['gruptime'];
$time = time();
if (($time - $gruptime) > $grup*86400) {
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_user_az WHERE userid='$userid'");
while ($row = $db->fetch_array($result)) {
$groupcombinationid = $row['groupcombinationid'];
$rankid = $row['rankid'];
$rankgroupid = $row['rankgroupid'];
$acpmode = $row['acpmode'];
$db->unbuffered_query("UPDATE bb".$n."_users SET groupcombinationid = '$groupcombinationid' , rankid = '$rankid', rankgroupid = '$rankgroupid', acpmode = '$acpmode', grup ='0' , gruptime = '0' WHERE userid='$userid'");
$db->unbuffered_query("DELETE FROM bb1_user_az WHERE userid='$userid'");
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_user2_az WHERE userid='$userid'");
while ($row = $db->fetch_array($result)) {
$userid = $row['userid'];
$groupid = $row['groupid'];
$db->unbuffered_query("UPDATE bb".$n."_user2groups SET groupid = '$groupid' WHERE userid='$userid'");
$db->unbuffered_query("DELETE FROM bb1_user2_az WHERE userid='$userid'");
}
}
}
}
// Ende Gruppenzugehörigkeit zurücksetzen |
|
speichern und das soll es denn gewesen sein.
Auch hier gilt, die Dateien und Templates vorher sichern!
Wenn etwas unklar sein sollte bitte hier fragen bevor man etwas falsch macht.
Es wird auch Hilfe gegeben wenn etwas nicht so ganz geklappt hat.
Obacht geben auf die Kommas, die sind leicht zu übersehen!!!!!!!!!!
Urheber ist haumi - aber jeder kann es frei verwenden und nach belieben abändern. |
|
Gutes Teil.
Werde das Testen.
Haumi ist es dir möglich den Beitrag auch als *.zip Datei einzustellen?
james
|
|
10.11.2010 16:09 |
|
|
|
So, kam jetzt auch endlich dazu, es einzubauen.
Außer einem kleinen Fehler, ist aber alles OK. Dabei handelt es sich aber ganz sicher um einen Einbaufehler.
Winki
__________________
|
|
12.11.2010 15:13 |
|
|
|
bekomme auf einmal SQL-Fehler, hatte bis heute keine Probleme damit !
SQL-DATABASE ERROR
Database error in WoltLab Burning Board (2.3.6): Invalid SQL: INSERT INTO bb1_user_az SELECT * FROM bb1_users WHERE userid='5'
mysql error: Column count doesn't match value count at row 1
alles nochmal geprüft aber nichts gefunden
Gruß Pinky
|
|
09.03.2012 12:40 |
|
|
|
so ist es auch !
bb1_users = 256 Felder
bb1_user_az = 251 Felder
wie bekomme ich die jetzt da rüber, Tabelle kopieren ?
Gruß Pinky
|
|
09.03.2012 14:15 |
|
|
|
habe es gerade angelegt !
geht alles wieder
Gruß Pinky
|
|
09.03.2012 14:48 |
|
|
|