Log in

View Full Version : Custom Moderators


aveon
09-08-2006, 09:33 PM
i opened this thread but however its closed so i was wondering anybody can helpme out with this i have an idea actually can we create a new theme and it will only appear if you assign someone to be a moderator of a single forum as normal, and then modify vB so they only appear as a moderator in that forum as appear and a registered member in every other forum thanx..

aveon
09-18-2006, 09:28 PM
anybody

aveon
09-21-2006, 01:18 AM
noone

aveon
09-24-2006, 01:27 PM
i really need help on this anybody

aveon
09-30-2006, 02:43 PM
anybody workin on anything??

aveon
10-01-2006, 08:21 PM
here i found this code from smf i think we can modify it for vb


LEFT JOIN {$db_prefix}moderators AS mods ON (mods.ID_BOARD = b.ID_BOARD)
LEFT JOIN {$db_prefix}members AS mods_mem ON (mods_mem.ID_MEMBER = mods.ID_MEMBER)
WHERE $user_info[query_see_board]" . (empty($modSettings['countChildPosts']) ? "
AND b.childLevel <= 1" : ''), __FILE__, __LINE__);

// Run through the categories and boards....
$context['categories'] = array();
while ($row_board = mysql_fetch_assoc($result_boards))
{
// Haven't set this category yet.
if (empty($context['categories'][$row_board['ID_CAT']]))
{
$context['categories'][$row_board['ID_CAT']] = array(
'id' => $row_board['ID_CAT'],
'name' => $row_board['catName'],
'is_collapsed' => isset($row_board['canCollapse']) && $row_board['canCollapse'] == 1 && $row_board['isCollapsed'] > 0,
'can_collapse' => isset($row_board['canCollapse']) && $row_board['canCollapse'] == 1,
'collapse_href' => isset($row_board['canCollapse']) ? $scripturl . '?action=collapse;c=' . $row_board['ID_CAT'] . ';sa=' . ($row_board['isCollapsed'] > 0 ? 'expand' : 'collapse;') . '#' . $row_board['ID_CAT'] : '',
'collapse_image' => isset($row_board['canCollapse']) ? '<img src="' . $settings['images_url'] . '/' . ($row_board['isCollapsed'] > 0 ? 'expand.gif" alt="+"' : 'collapse.gif" alt="-"') . ' border="0" />' : '',
'href' => $scripturl . '#' . $row_board['ID_CAT'],
'boards' => array(),
'new' => false
);
$context['categories'][$row_board['ID_CAT']]['link'] = '<a name="' . $row_board['ID_CAT'] . '" href="' . (isset($row_board['canCollapse']) ? $context['categories'][$row_board['ID_CAT']]['collapse_href'] : $context['categories'][$row_board['ID_CAT']]['href']) . '">' . $row_board['catName'] . '</a>';
}

// If this board has new posts in it (and isn't the recycle bin!) then the category is new.
if (empty($modSettings['recycle_enable']) || $modSettings['recycle_board'] != $row_board['ID_BOARD'])
$context['categories'][$row_board['ID_CAT']]['new'] |= empty($row_board['isRead']) && $row_board['posterName'] != '';

// Collapsed category - don't do any of this.
if ($context['categories'][$row_board['ID_CAT']]['is_collapsed'])
continue;

// Let's save some typing. Climbing the array might be slower, anyhow.
$this_category = &$context['categories'][$row_board['ID_CAT']]['boards'];

// This is a parent board.
if (empty($row_board['ID_PARENT']))
{
// Is this a new board, or just another moderator?
if (!isset($this_category[$row_board['ID_BOARD']]))
{
// Not a child.
$isChild = false;

$this_category[$row_board['ID_BOARD']] = array(
'new' => empty($row_board['isRead']),
'id' => $row_board['ID_BOARD'],
'name' => $row_board['boardName'],
'description' => $row_board['description'],
'moderators' => array(),
'link_moderators' => array(),
'children' => array(),
'link_children' => array(),
'children_new' => false,
'topics' => $row_board['numTopics'],
'posts' => $row_board['numPosts'],
'href' => $scripturl . '?board=' . $row_board['ID_BOARD'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row_board['ID_BOARD'] . '.0">' . $row_board['boardName'] . '</a>'
);
}
if (!empty($row_board['ID_MODERATOR']))
{
$this_category[$row_board['ID_BOARD']]['moderators'][$row_board['ID_MODERATOR']] = array(
'id' => $row_board['ID_MODERATOR'],
'name' => $row_board['modRealName'],
'href' => $scripturl . '?action=profile;u=' . $row_board['ID_MODERATOR'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_board['ID_MODERATOR'] . '" title="' . $txt[62] . '">' . $row_board['modRealName'] . '</a>'
);
$this_category[$row_board['ID_BOARD']]['link_moderators'][] = '<a href="' . $scripturl . '?action=profile;u=' . $row_board['ID_MODERATOR'] . '" title="' . $txt[62] . '">' . $row_board['modRealName'] . '</a>';
}
}

r5e
10-01-2006, 10:08 PM
I think the problem is that nobody really understands what you are trying to say. Posting a chunk of code from a completely different forum system isn't going to help either.

I've just implemented this on my forum. Follow these steps.

Edit your postbit (or postbit legacy) template. Locate the following line:

<if condition="$post['usertitle']"><div class="smallfont">$post[usertitle]</div></if>

After this add:

<if condition="can_moderate($forum[forumid], '', $post[userid])"><div class="smallfont">Moderator</div></if>

This will insert the word "Moderator" after the title of anyone who is a moderator, including the admin.

To summarise the requirement for anyone else reading this and figuring out what it is - aveon wanted the posters in a thread to show up as moderators, but only if they were the moderator in a certain forum. So if a given user is a moderator in a forum everyone can see that when he posts the posts are coming from a moderator. But if the user goes to a forum where he is not the moderator he appears as normal - with no moderator title.

The hack as I posted it above is tested to work. It's not very sophisticated, I would prefer it not to display for admins, in which case it would look like this:

<if condition="can_moderate($forum[forumid], '', $post[userid]) AND !($post[usergroupid]==5)"><div class="smallfont">Moderator</div></if>

Assuming that your admin group is 5, if it's something else, change it.

Hope that helps.

I've added more functionality. I've now set it up as follows:


Moderators will have their normal title REPLACED with the word "Moderator", but only for those areas where they have moderator rights, in other areas the normal title will be shown
Super Moderators will retain their normal title (for example if they have a custom title set) and will have the words "Super Moderator" inserted below their normal title
Administrators will not be affected, even though they have the rights to moderate.


In the example in the earlier post we located the following line:

<if condition="$post['usertitle']"><div class="smallfont">$post[usertitle]</div></if>

Now, instead of inserting after this line we want to delete it and replace it with this:

<if condition="can_moderate($forum[forumid], '', $post[userid]) AND !($post[usergroupid]==6 OR IS_MEMBER_OF($post, 5))"><div class="smallfont">Moderator</div><else /><if condition="$post['usertitle']"><div class="smallfont">$post[usertitle]</div></if></if>

<if condition="IS_MEMBER_OF($post, 5)"><div class="smallfont">Super Moderator</div></if>

Note: In the above example 6 = Administrators and 5 = Super moderators. Change them as needed.

aveon
10-02-2006, 08:41 AM
i want it to be effective to all member even admins super mod etc it works well with registered user. how can i do that i tried deleting this part

AND !($post[usergroupid]==6 OR IS_MEMBER_OF($post, 5))

it showed moderator under all the usergroup that has supermod pertmittions thnx

r5e
10-02-2006, 09:22 PM
i want it to be effective to all member even admins super mod etc it works well with registered user. how can i do that i tried deleting this part



it showed moderator under all the usergroup that has supermod pertmittions thnx

I'm sorry. You seem to ask a question (which I don't think I fully understand). Then you seem to provide the answer to your own question?

If so - great - that was the right bit of code to delete if you want moderator to be displayed even for super mods and admins.

In fact, all you had to do was implement the "simple" part of the hack which was the first part of my message, and just ignore the second.

Anyway, I'm assuming you've found the answer to whatever your question was.

aveon
10-02-2006, 09:36 PM
i want moderator to be displayed for super mods and admins but when i erased this part AND !($post[usergroupid]==6 OR IS_MEMBER_OF($post, 5)) for admins and supermoderators you can see moderator on every forum but it works fine with registered users i need help on this one i want moderator to be displayed for super mods and admins

r5e
10-03-2006, 06:33 AM
In that case I can only repeat what I've already said in post #9. That is the answer - do only the very first modification I mentioned, not the subsequent ones. Then it will work. It will work because I've tested it. If it doesn't work for you then you haven't followed the instructions properly. Sorry - I can't help you more than that.

aveon
10-03-2006, 08:32 AM
when do the first one this is wat happenes


http://img96.imageshack.us/img96/6448/cccccgy4.gif

it shows moderator for admins and super mods too because they have moderator rights on ewery forum so this moderator thing appears on every forum hmm i dnt think i could get an answer haw to deal wih that thanx for your helps mate