30.04.2007, 14:59
30.04.2007, 15:06
Okay, das Problem liegt sehr tief im MyBB.
Wer Moderator ist, ist automatisch Moderator Status. das heißt, man kann ihm den nicht wegnehmen, ohne den Code stark zu ändern.
Warum möchtest du denn ihn nicht als Moderator anzeigen?
Er kann ja als Angezeigte Gruppe "registered" wählen. Dann sollte es gehen, klappt zumindestens bei mir im Board. Er muss es halt nur explizit wählen.
Wer Moderator ist, ist automatisch Moderator Status. das heißt, man kann ihm den nicht wegnehmen, ohne den Code stark zu ändern.
Warum möchtest du denn ihn nicht als Moderator anzeigen?
Er kann ja als Angezeigte Gruppe "registered" wählen. Dann sollte es gehen, klappt zumindestens bei mir im Board. Er muss es halt nur explizit wählen.
30.04.2007, 22:10
Okay,
ich habe einen absoluten Hardcoded Beta Code.
Er soll eher als Denkanstoss gesehen werden, denn als fertiger Code.
Es müssen folgende Bedingungen bisher zutreffen:
Hier was wo geändert werden muss:
Öffne die functions_post.php
Füge vor
folgenden Code ein:Suchefüge danach ein
ich habe einen absoluten Hardcoded Beta Code.
Er soll eher als Denkanstoss gesehen werden, denn als fertiger Code.
Es müssen folgende Bedingungen bisher zutreffen:
- Der User darf nur in einer Kategorie Moderator sein.
- Den Moderator Status muss er in der Kategorie bekommen, nicht in einem Forum oder Unterforum.
- Wenn der Autor kein Moderator ist, bekommt er Standardangaben, es werden also nicht die Sterne und der Titel den er normal hat angezeigt.
- In Foren in der der Autor Moderator ist, wird alles normal angezeigt.
Hier was wo geändert werden muss:
Öffne die functions_post.php
Füge vor
PHP-Code:
/**
* Build a post bit
*
* @param array The post data
* @param int The type of post bit we're building (1 = preview, 2 = pm, 3 = announcement, else = post)
* @return string The built post bit
*/
PHP-Code:
/** Unsere Behelfsfunktion für Moderatoren */
function malte($id) {
global $db, $altbg, $theme, $mybb, $postcounter;
global $titlescache, $page, $templates, $forumpermissions, $attachcache;
global $lang, $ismod, $inlinecookie, $inlinecount, $groupscache, $fid;
global $plugins, $parser, $cache;
$query = $db->query("SELECT `fid` , `pid`
FROM `mybb_forums`
WHERE `fid` =".$id."
LIMIT 0 , 1");
while($forumb = $db->fetch_array($query))
{
if($forumb['pid'] == 0)
{
$parent_id = $forumb['fid'];
return $parent_id;
}
else
{
$parent_id = malte($forumb['pid']);
return $parent_id;
}
}
}
PHP-Code:
if($post['userusername'])
{ // This post was made by a registered user
PHP-Code:
##########################################
$query = $db->query("SELECT `tid` , `fid`
FROM `mybb_threads`
WHERE `tid` =".$post['tid']."
LIMIT 0 , 1");
while($thema = $db->fetch_array($query))
{
$parent_id = malte($thema['fid']);
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."moderators
WHERE uid='".$post['uid']."'");
while($moderatorinfo = $db->fetch_array($query))
{
if($parent_id != $moderatorinfo['fid'])
{
$post['displaygroup'] = '2';
$post['usertitle'] = 'Junior Member';
$usergroup['title'] = 'Registered';
$usergroup['stars'] = '2';
}
}
}
##########################################
30.04.2007, 23:10
Jan schrieb:Es müssen folgende Bedingungen bisher zutreffen:
- Der User darf nur in einer Kategorie Moderator sein.
- Den Moderator Status muss er in der Kategorie bekommen, nicht in einem Forum oder Unterforum.
- Das ist aber schlecht, da ich mehrere Bereiche habe und ich da auch verschiedene Moderatoren nutze bzw. nutzen möchte.
- Einen Moderator in eine gesamten Kategorie ist bei mir fast unmöglich.
Ich will ja nicht unverschämt sein. Nur das ist für mich nicht machbar, da ich ein sehr großes Projekt am laufen habe. Es ist zwar noch ganz am Anfang, aber es wird mit Sicherheit wachsen, da ich mit Freenet zusammen arbeiten werde, was den Support betrifft.
01.05.2007, 07:15
Jan schrieb:Okay,Ich versuch das ganze eventuell noch gerade zu biegen.
ich habe einen absoluten Hardcoded Beta Code.
Er soll eher als Denkanstoss gesehen werden, denn als fertiger Code.
Kann aber nichts versprechen.
01.05.2007, 07:51
Okay, kleines Update für den Code. Es ist weiterhin nur ein Denkanstoss, aber du siehst, das da ne Menge zu machen wäre.
Wieso möchtest das die Moderatoren nur in einer Kategorie als Moderator angezeigt werden? Es ist doch eigentlich ok, wenn man sie überall als Moderator wieder erkennt oder?
Ansonsten verweise ich dich gerne auf folgende Seiten:
http://ideas.mybboard.net/
http://www.mybbcoder.de/index.php
Naja, hier was geändert werden muss:
Öffne die functions_post.php
Ersetzte
durch:
Wieso möchtest das die Moderatoren nur in einer Kategorie als Moderator angezeigt werden? Es ist doch eigentlich ok, wenn man sie überall als Moderator wieder erkennt oder?
Ansonsten verweise ich dich gerne auf folgende Seiten:
http://ideas.mybboard.net/
http://www.mybbcoder.de/index.php
Naja, hier was geändert werden muss:
Öffne die functions_post.php
Ersetzte
PHP-Code:
##########################################
$query = $db->query("SELECT `tid` , `fid`
FROM `mybb_threads`
WHERE `tid` =".$post['tid']."
LIMIT 0 , 1");
while($thema = $db->fetch_array($query))
{
$parent_id = malte($thema['fid']);
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."moderators
WHERE uid='".$post['uid']."'");
while($moderatorinfo = $db->fetch_array($query))
{
if($parent_id != $moderatorinfo['fid'])
{
$post['displaygroup'] = '2';
$post['usertitle'] = 'Junior Member';
$usergroup['title'] = 'Registered';
$usergroup['stars'] = '2';
}
}
}
##########################################
PHP-Code:
##########################################
$query = $db->query("SELECT `tid` , `fid`
FROM `mybb_threads`
WHERE `tid` =".$post['tid']."
LIMIT 0 , 1");
while($thema = $db->fetch_array($query))
{
$parent_id = malte($thema['fid']);
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."moderators
WHERE uid='".$post['uid']."'");
while($moderatorinfo = $db->fetch_array($query))
{
if($parent_id != $moderatorinfo['fid'])
{
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."users
WHERE uid='".$post['uid']."'");
while($user = $db->fetch_array($query))
{
$post['displaygroup'] = $user['usergroup'];
$post['usertitle'] = $user['usertitle'];
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usergroups
WHERE gid='".$user['usergroup']."'");
while($user = $db->fetch_array($query))
{
$usergroup['title'] = $user['title'];
$usergroup['stars'] = $user['stars'];
}
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usertitles
WHERE posts>'".$user['posts']."'
ORDER BY `mybb_usertitles`.`posts` ASC
LIMIT 0 , 1");
while($user2 = $db->fetch_array($query))
{
$post['usertitle'] = $user2['title'];
$usergroup['stars'] = $user2['stars'];
}
}
}
}
}
##########################################
01.05.2007, 10:43
Zitat:Wieso möchtest das die Moderatoren nur in einer Kategorie als Moderator angezeigt werden? Es ist doch eigentlich ok, wenn man sie überall als Moderator wieder erkennt oder?
Das ist ganz einfach zu erklären. Ich werde später viele Moderatoren haben, die nicht von allen Bereichen die selbe Ahnung haben. Meine Moderatoren sind dann wirklich nur dort Moderatoren, wo sie auch als Moderatoren eingetragen sind. Und dort wo sie nicht eingetragen sind, haben sie auch keine Rechte als Moderator. Die User sollen dies gleich erkennen und nicht den falschen Moderator anschreiben, falls es mal Probleme geben sollte oder jemand für ein bestimmtest Thema Support braucht. Ich hoffe, dass war nicht zu schwierig zu verstehen.
PS: Ist die jetzige Code-Änderung das, was ich mir vorgestellt habe, oder was bewirkt die jetzt genau?
Grüße
jhusohöin
01.05.2007, 10:55
Dein, sie bewirkt nur, das die Userinfos wieder genommen werden. Zumindestens soll es das.
Man muss die Abfrage ob der User Moderator ist noch erweitern.
Dann KÖNNTE es so sein wie du möchtest. Aber bitte wende dich auch an die beiden Links die ich oben geschrieben habe.
Danke und bitte
Man muss die Abfrage ob der User Moderator ist noch erweitern.
Dann KÖNNTE es so sein wie du möchtest. Aber bitte wende dich auch an die beiden Links die ich oben geschrieben habe.
Danke und bitte
01.05.2007, 11:20
So,
so dürfte es immer klappen. Vielleicht kann Michael sich den Code mal anschauen, wenn er Lust und Zeit hat.
Hast du das Forum schon? Wenn ja, dann mach doch bitte mal einen Klon davon und teste den Code mal.
Es kann sein, das er funktioniert, zumindestens macht er das lokal auf meinem PlugIn Board.
//edit:
Es gab ein Update beim zweiten Code, bitte diesen Code verwenden.
Hier mein Ergebnis:
Öffne /inc/functions_post.php und füge vordiesen Code ein:
Suche nach:
und füge danach diesen Code ein:
Der Code ist nicht getestet und nicht 100% sicher. trotzdem kann er als Grundlage für einen Modifikation benutzt werden
so dürfte es immer klappen. Vielleicht kann Michael sich den Code mal anschauen, wenn er Lust und Zeit hat.
Hast du das Forum schon? Wenn ja, dann mach doch bitte mal einen Klon davon und teste den Code mal.
Es kann sein, das er funktioniert, zumindestens macht er das lokal auf meinem PlugIn Board.
//edit:
Es gab ein Update beim zweiten Code, bitte diesen Code verwenden.
Hier mein Ergebnis:
Öffne /inc/functions_post.php und füge vor
PHP-Code:
/**
* Build a post bit
*
* @param array The post data
* @param int The type of post bit we're building (1 = preview, 2 = pm, 3 = announcement, else = post)
* @return string The built post bit
*/
PHP-Code:
/** Unsere Behelfsfunktion für Moderatoren */
function malte($id) {
global $db, $altbg, $theme, $mybb, $postcounter;
global $titlescache, $page, $templates, $forumpermissions, $attachcache;
global $lang, $ismod, $inlinecookie, $inlinecount, $groupscache, $fid;
global $plugins, $parser, $cache, $post;
$query = $db->query("SELECT `fid` , `pid`
FROM `mybb_forums`
WHERE `fid` =".$id."
LIMIT 0 , 1");
while($forumb = $db->fetch_array($query))
{
if($forumb['pid'] == 0)
{
if(is_moderator($forumb['fid'],"",$post['uid']) == 'yes')
{
$mod_ok = 'yes';
}
if(is_moderator($forumb['fid'],"",$post['uid']) == 'no')
{
$mod_ok = 'no';
}
return $mod_ok;
}
else
{
$parent_id = malte($forumb['pid']);
if(is_moderator($forumb['fid'],"",$post['uid']) == 'yes')
{
$mod_ok = 'yes';
}
if(is_moderator($forumb['fid'],"",$post['uid']) == 'no')
{
$mod_ok = 'no';
}
return $mod_ok;
}
}
}
PHP-Code:
if($post['userusername'])
{ // This post was made by a registered user
PHP-Code:
##########################################
if($post['displaygroup'] == '6' || $post['displaygroup'] == '3')
{
$query = $db->query("SELECT `tid` , `fid`
FROM `mybb_threads`
WHERE `tid` =".$post['tid']."
LIMIT 0 , 1");
while($thema = $db->fetch_array($query))
{
$mod_ok = malte($thema['fid']);
if($mod_ok == 'no')
{
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."users
WHERE uid='".$post['uid']."'");
while($user = $db->fetch_array($query))
{
$post['displaygroup'] = $user['usergroup'];
$post['usertitle'] = $user['usertitle'];
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usergroups
WHERE gid='".$user['usergroup']."'");
while($user = $db->fetch_array($query))
{
$usergroup['title'] = $user['title'];
$usergroup['stars'] = $user['stars'];
}
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usertitles
WHERE posts>'".$user['posts']."'
ORDER BY `mybb_usertitles`.`posts` ASC
LIMIT 0 , 1");
while($user2 = $db->fetch_array($query))
{
$post['usertitle'] = $user2['title'];
$usergroup['stars'] = $user2['stars'];
}
}
}
}
}
##########################################
Der Code ist nicht getestet und nicht 100% sicher. trotzdem kann er als Grundlage für einen Modifikation benutzt werden
01.05.2007, 18:45
Ich lasse es erstmal lieber, bis da was 100 % raus kommt. Denn ich kann mein Projekt durch Fehler meinerseits nicht gefährden. Es wäre aber nett, mich mal zu informieren, wenn ihr da was ganz sicheres raus habt. Ist natürlich kein muss. Ihr bzw. du habt schon genug für mich getan.
Danke!
Danke!