The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Guild Mate Details »» | |||||||||||||||||||||||||||||||
This should work on most vBulletin versions, but tested on 3.8.x.
This is an add-on to the vBguild mod. I am not the author of that mod and this add-on is just something I did for my own forums and I thought I'd share it for those using vBGuild as well. I will continue to support this mod as a separate offering from vBGuild. If you need vBGuild support, please see that mod/author for support for it. This is considered BETA as well. I'm running it on my forums and it works fine though. Also understand I'm pretty new to writing these mods and I know there are things that can be done to improve performance, etc. If you have suggestions, please make them, kindly. Also, this is fully phrased so you shouldn't have any trouble using the mod for different languages. History: 8-25-09 Version .2 released. * Added in Option to allow all usergroups to use the functionality (Thanks Deyth). * Updated some config phrases to reflect allowing all usergroups to use the mod. * Added in global variables to plugin as it appears some template themes don't carry these over already. (Thanks Deyth) * Updated install instructions as I forgot a template edit prior. This will correct the dropdown with the character data not appearing. Upcoming: * Config option to select whether or not you want to display the header again in the popup or not. * Whatever you guys come up with Installation: There is one template edit, the rest is imported through the product. Edit your Postbit or Postbit Legacy templates FIND: Code:
<if condition="$post['rank']"><div class="smallfont">$post[rank]</div></if> Code:
<if condition="is_member_of($vbulletin->userinfo, $gm_user_groups_allowed)"> <div id="GuildMate_$post[postid]"> <a class="smallfont" href="member.php?$session[sessionurl]u=$post[userid]">$vbphrase[gm_postbit_text]</a> <script type="text/javascript"> vbmenu_register("GuildMate_$post[postid]", true); </script> </div> </if> Scroll to the bottom of your postbit template and: Add: Code:
<!-- START: Guild Mate $post[postid] popup menu --> <div class="vbmenu_popup" id="GuildMate_$post[postid]_menu" style="display:none"> <table cellpadding="4" cellspacing="1" border="0"> <tr> <td class="thead" colspan="3" align="center">$vbphrase[gm_modtitle]: $vbphrase[gm_modheader] $post[username]$vbphrase[gm_modheader2]</td> </tr> $gm_char_data </table> </div> <!-- END: Guild Mate $post[postid] popup menu --> Import the product Once that is done, edit the vBulletin Options -> Guild Mate and set the user groups allowed to see the postbit changes. Below are some screenshots from my website to help explain what this does. Download Now
Screenshots
Show Your Support
|
Comments |
#12
|
|||
|
|||
I can disable invidual scripts in vbseo. Is there any script this is calling.
Also your templates are not cached. |
#13
|
|||
|
|||
Quote:
There's nothing external that I'm calling. I'll work on the caching of the templates. |
#14
|
|||
|
|||
Ok I attempted this on default template
Webpage error details User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) Timestamp: Mon, 10 Aug 2009 03:05:53 UTC Code:
Message: 'this.overlay.id' is null or not an object Line: 11 Char: 10210 Code: 0 URI: http://immortal-guild.net/forums/cli...lobal.js?v=381 |
#15
|
||||
|
||||
I found the cause for DiverTree's error. Your plugin code should look like this:
Code:
global $vbulletin,$userinfo; $user_chars = $vbulletin->db->query("select vbg.game_name as CharGame, vbs.server_name CharServer, vbc.character_name as CharName FROM " . TABLE_PREFIX . "vbguild_Game as vbg, " . TABLE_PREFIX . "vbguild_Server as vbs, " . TABLE_PREFIX . "vbguild_Character as vbc WHERE vbc.user_id = '$post[userid]' AND vbc.server_id = vbs.server_id AND vbs.game_id = vbg.game_id ORDER BY vbg.game_name, vbs.server_name, vbc.character_name "); eval('$gm_header .= "' . fetch_template('gm_char_postbit_header') . '";'); while($CharData = $vbulletin->db->fetch_array($user_chars)) { if ($char_game != $CharData['CharGame']) { $gm_char_data .= $gm_header; } $char_game = $CharData['CharGame']; $char_server = $CharData['CharServer']; $char_name = $CharData['CharName']; $gm_user_groups_allowed = explode(',',$vbulletin->options['gm_ugl_view_chars']); eval('$gm_char_data .= "' . fetch_template('gm_postbit_char_bit') . '";'); } // If there's no character data if ($gm_char_data == "") { eval('$gm_char_data .= "' . fetch_template('gm_postbit_char_none') . '";'); } |
#16
|
||||
|
||||
I figured out the other problem. Here is what the postbit template edits should look like:
Code:
<if condition="is_member_of($vbulletin->userinfo, $gm_user_groups_allowed)"> <div id="GuildMate_$post[postid]" class="vbmenu_control"> <a class="smallfont" href="#">$vbphrase[gm_postbit_text]</a> <script type="text/javascript"> vbmenu_register("GuildMate_$post[postid]"); </script> </div> <div class="vbmenu_popup" id="GuildMate_$post[postid]_menu" style="display:none"> <table>$gm_char_data</table> </div> </if> |
#17
|
||||
|
||||
Quote:
|
#18
|
||||
|
||||
I just now installed it on my own board and realized there was no way to simply tell it to display to all usergroups so I made that change and, while I was doing that, I saw how it looks with multiple games and didn't like having multiple headers so I changed that too. If you set the "usergroups allowed" option to 0, and it has to ONLY be 0, then it will show to all. Here are my versions of the template edits and the plugin code:
Code:
<if condition="is_member_of($vbulletin->userinfo, $gm_user_groups_allowed) || $vbulletin->gm_user_groups_allowed == 0"> <div id="GuildMate_$post[postid]" class="vbmenu_control"> <a class="smallfont" href="#">$vbphrase[gm_postbit_text]</a> <script type="text/javascript"> vbmenu_register("GuildMate_$post[postid]"); </script> </div> <div class="vbmenu_popup" id="GuildMate_$post[postid]_menu" style="display:none"> <table>$gm_char_data</table> </div> </if> Code:
global $vbulletin,$userinfo; $user_chars = $vbulletin->db->query("select vbg.game_name as CharGame, vbs.server_name CharServer, vbc.character_name as CharName FROM " . TABLE_PREFIX . "vbguild_Game as vbg, " . TABLE_PREFIX . "vbguild_Server as vbs, " . TABLE_PREFIX . "vbguild_Character as vbc WHERE vbc.user_id = '$post[userid]' AND vbc.server_id = vbs.server_id AND vbs.game_id = vbg.game_id ORDER BY vbg.game_name, vbs.server_name, vbc.character_name "); eval('$gm_header .= "' . fetch_template('gm_char_postbit_header') . '";'); $gm_char_data .= $gm_header; while($CharData = $vbulletin->db->fetch_array($user_chars)) { $char_game = $CharData['CharGame']; $char_server = $CharData['CharServer']; $char_name = $CharData['CharName']; $gm_user_groups_allowed = explode(',',$vbulletin->options['gm_ugl_view_chars']); eval('$gm_char_data .= "' . fetch_template('gm_postbit_char_bit') . '";'); } // If there's no character data if ($gm_char_data == "") { eval('$gm_char_data .= "' . fetch_template('gm_postbit_char_none') . '";'); } Here's an example post. Thanks again for making this. |
#19
|
||||
|
||||
It's not working correctly in private messages. It's showing my own character info instead of the user I'm seeing. I'm not sure if it's my own version that's having the problem or if it's present in Trek's as well.
|
#20
|
|||
|
|||
Code:
Fatal error: Call to a member function query_read() on a non-object in /mounted-storage/home84b/sub007/sc45970-PMHN/themondrated.com/includes/class_postbit.php(265) : eval()'d code on line 3 |
#21
|
||||
|
||||
Using my code or Trek's?
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|