Thread Rating:
  • 5 Vote(s) - 3.4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[For 1.6] MySteam Powered v1.2.2
#1
[Image: logo_mysteam.jpg]

My Website: http://kerfufflealliance.com (go here to see it used live).

Owners of gaming-related forums take heed! Here be a plugin for the MyBB forum software that seamlessly integrates features from Valve's industrious gaming client with your forums. Also integrates with Advanced Sidebox (https://github.com/WildcardSearch/Advanced-Sidebox) if installed.

Download

GitHub: https://github.com/Tanweth/MySteam-Powered
MyBB Mods Site (v1.2.2 awaiting validation): http://mods.mybb.com/view/mysteam-powered.

...or the attachment at the end of this post.

Translations

Spanish (by Kiibakun) (out of date as of v1.2): http://mods.mybb.com/download-translation/1745

Features
  • Uses the Steam Web API to display current Steam status (online, offline, what games they're playing, etc.) and contact information for all users who have integrated their Steam accounts.
  • A status list (modeled on Steam's built-in friends list) that lists all integrated forum users currently on Steam, including their avatars, their names, and their current statuses. This can either be displayed on the Index or Portal pages, or displayed in a sidebox on any page if you have Advanced Sidebox installed.
  • Shows a Steam status icon on the post bit (or status text if preferred) which changes based upon the user's current status. Also reveals the full plain text status (e.g. what game the user is playing) when the mouse hovers over the icon.
  • Shows the user's current Steam status and a Steam contact field under Contact Details in the Member Profile page.
  • Ensures minimal impact on forum performance by using a speedy cURL-based method for contacting the Steam network and integrating with the MyBB cache to reduce the number of requests needed.
  • Includes a new User CP form for users to use to integrate their Steam accounts. Also includes a new section on the Moderator CP Profile Editor to allow moderators to integrate Steam for their users.
  • Which users are displayed (and can see the User CP form) can be filtered by allowed usergroups, and by how long it has been since they last visited the forums.
  • Advanced Sidebox edition includes support for AJAX automatic updating of the status list without needing a full page refresh.
  • Highly customizable. Nearly every feature can be modified to your liking.

How to Install
  • Simply upload the files to your forum's directory, then go to your Admin CP > Configuration > Plugins. Find "MySteam Powered" on the list, and click "Install & Activate." Warnings about current plugin issues that need addressing will be displayed on this page.
  • To use with Advanced Sidebox (ASB), you MUST have ASB v2.1 or later. If ASB is installed, the ASB module will be automatically installed into your ASB directory when you install the plugin.

How to Upgrade

Simply deactivate the current version on your forum, upload the new version, then reactivate it.

If you are upgrading to v1.1 and you have made any edits to the CSS file (mysteam.css), you must revert the CSS file and add back your custom edits if you want to be able to use the new display on hover setting (see change log below).

Setting It Up
  • Steam Web API Key: Before anything will work, you must acquire (if you haven't already) a Steam Web API Key. A link for obtaining one is listed in Settings.
  • Advanced Sidebox Module: As with any sidebox, you must go to Admin CP > Configuration > Advanced Sidebox, and drag the "Steam Status" module to whichever side you want it to display. You can configure it in the resulting popup. Note that many configuration options that impact the sidebox reside in the Settings menu for the plugin under Admin CP > Configuration > Settings > MySteam Powered.
  • Built-In Status List: The plugin's built-in status list is disabled automatically if Advanced Sidebox is detected. However, both the built-in status list and the ASB module can be used together (even on the same pages) if you'd prefer to combine them. You can enable it in Settings.
  • Built-In Status List vs. Advanced Sidebox Module: The built-in status list is automatically set to appear at the top of your Index and Portal pages (it can be moved, see below under Customization). It can only appear on those pages. The ASB module can be set to appear on any (or every) page, and can be set to automatically refresh without needing a page reload.

Customization
  • You can configure most of the plugin from the Admin CP > Configuration > Settings > MySteam Powered and MySteam Powered Status List (Non-Advanced Sidebox) categories. If you have Advanced Sidebox, you can configure the ASB module from Admin CP > Configuration > Advanced Sidebox and accessing the sidebox's popup configuration menu.
  • Templates are generated for every theme you have installed under the "MySteam Powered Templates" category. Your template edits won't be lost on a plugin update. You can also use "Diff Report" to see what changes were made by an update and integrate them into your custom templates.
  • You can modify the CSS used by MySteam Powered from the normal stylesheets list under each theme. The file is named mysteam.css.

Known Issues

The code for handling when the Steam network is down is largely theoretical. Steam's network is rarely down, and if it is down it is rarely down for very long, so I haven't been able to test it in a "live" downtime scenario. It should work, but it could go a bit wild. Toungue

Support

If you notice a bug, you should report it in the Issues sections of the GitHub page: https://github.com/Tanweth/MySteam-Powered

You can also ask for support (bug-related or not) in this thread.

Changelog

1.2.2
  • Added compatibility with ASB v2.1 on the ASB module.
  • Fixed display of backward slashes in names whenever an apostrophe appeared.

1.2.1
  • Reintroduced filtering of special characters from Steam usernames and game names, since some characters were preventing the cache from being generated. The filtering is more relaxed than in v1.1 (i.e. it will allow more special characters).
  • Various code optimizations.

1.2
  • Status updates for all users are now obtained in a single Steam API call, rather than an API call for each user (experimental).
  • Changed the method for Steam Integration on the User CP and Moderator CP. The Steam Community Data API is no longer used at all, and the form now accepts a directly entered 64-bit Steam ID or vanity URL name.
  • Fixed an undefined function error on post bit and profile pages.
  • Fixed an undefined function error if the plugin is disabled but the ASB module is still in place. Now the ASB module will just disappear or display its stock error instead.

1.1.1
  • Special characters will now show up in Steam names on the Steam status list.
  • The non-ASB status list templates are now cached on all pages, rather than just the Index and Portal pages (since the list can now be displayed on nearly any forum page).
  • Split many plugin functions into separate files from main plugin file to improve code readability.

1.1
  • Globalized the $mysteamlist variable. Now if you are using the non-ASB status list, you can add the Steam status list to any page of your forums by placing "{$mysteamlist}" in any template (with some exceptions, including the header template). By default it still only displays on Index and Portal, and display on those pages can still be enabled/disabled in settings.
  • Added a setting to allow a user's plain text status to be shown at all times if using the image display style on the post bit (as opposed to the default, where the plain text status is only revealed when you hover your mouse over the Steam icon).
  • Made the Steam status icon in the post bit a hyperlink that directs to the current user's steam profile.

1.0.2
  • Fixed an issue where no plugin hooks would be deployed (causing nothing generated by the plugin to be visible on the forum) (GitHub Issue #1).
  • Fixed (hopefully) an issue where PHP would throw an "argument is not an array" error on the profile and post bit pages (GitHub Issue #6).
  • Set a timeout on the cURL function used for accessing the Steam network. This should mean that it should no longer cause your forum to stop loading (or to take a VERY long time to load) if it is having difficulty contacting Steam.

1.0.1 - A small hotfix release. The following issues SHOULD be fixed:
  • Fixed an issue on the Complete List page that would cause PHP to throw errors if there were no users in-game or online (GitHub Issue #2).
  • Fixed an issue that would sometimes cause PHP to throw an "unsupported operand" error on the profile and post bit pages (GitHub Issue #3).
  • Version number is now cached (to make future upgrades easier).
  • Various code optimizations (including removing some leftover code from development builds that I missed before).

1.0 - Initial release.

Special Thanks
  • Wildcard - for making Advanced Sidebox (an awesome plugin), and for routinely assisting me with issues.
  • technophilly - for making some very useful suggestions during the plugin's development.
  • Kiibakun - for being a very helpful tester and writing the Spanish language pack.
  • michaelkr1 - for being a very helpful tester and making multiple helpful feature suggestions.

Screenshots

Built-In (Non-Advanced Sidebox) Status List

Advanced Sidebox Status List

Status in Post Bit (full text of status is revealed on mouse hover)

Status in Profile

Contact Field in Profile

Steam Integration Form on User CP

Steam Integration Link on User CP Navigation

Moderator CP Form (in Profile Editor)

Main Settings in Admin CP

Non-ASB Status List Settings in Admin CP


Attached Files
.zip   MySteam-Powered_v1.2.2.zip (Size: 32.52 KB / Downloads: 456)
Reply
#2
The plugin is now validated on the MyBB Mods site (huzzah!). Though to my embarrassment I see that I forgot to close the
  • tag in the description. I assure you that I am more thorough in crafting my plugins. Toungue
Reply
#3
Great plugin! Can you add a login with steam button? Do the moderators have to add the steam login to every user manually?
Reply
#4
Do you mean add the ability for a user to login with Steam rather than registering on the forum? I was wondering how long it would take for that suggestion to crop up. Toungue For future versions I may look into adding a login with Steam capability. Valve does provide the necessary backend to do that using Open ID, and indeed another plugin developer (Stewartiee) has been doing some preliminary work on implementing it in MyBB (you can view that here).

And if you're asking if moderators have to integrate Steam for every user manually, the answer is, unfortunately, yes. Either that or you have to ask your users to do it themselves. The Steam Web API only takes the 17-digit Steam Community ID as an identifier for users, not screen name or anything like that. Since there's nothing that associates a user on your forums with his Steam Community ID, you need to manually make that connection yourself. There's not really a way to create a script that can bulk identify the Steam Community IDs of all of your users and associate them with their accounts in one click, as much as I'd like there to be.

The Moderator CP form for it does try to make it as easy as possible though. There's quick search links to find the user's Steam profile, then you just copy the profile link and paste it into the form, and it does the rest.

Needless to say, I will be extremely unlikely to release a plugin update that will require you to uninstall the plugin, since that'll make you lose all of the Steam ID associations that your users currently have.
Reply
#5
If MySteam is a suite ..plz create a register/login with steam separately.
[Image: 468x60_bf4brasil_site_zpsd7eefd7f.png]
Reply
#6
This user has been denied support. This user has been denied support.
Wow this is a very nice plugin for gaming forums Smile
Reply
#7
This user has been denied support. This user has been denied support.
Hey,

Just a tip from the skim read at your thread. I have myself made a steam signature plugin too in past with the help of their web XML API. However, if you are not authenticating it, after several http requests, steam will ban the server IP as it will consider a form or attack (maybe "DDoS"). So you may want to look into authorizing it via their API instead of the web XML API (in case you use that). Smile
Reply
#8
(2014-03-08, 02:56 AM)dthiago Wrote: If MySteam is a suite ..plz create a register/login with steam separately.

If I add a Steam login capability, it will either be able to be enabled or disabled with a setting or come in a separate edition, don't worry. I'm all about configurability, and I know that external login features like that are controversial. Smile

(2014-03-08, 04:07 AM)Verilog Wrote: Wow this is a very nice plugin for gaming forums Smile

I'm glad you think so. Big Grin

(2014-03-08, 05:43 AM)crazy4cs Wrote: Hey,

Just a tip from the skim read at your thread. I have myself made a steam signature plugin too in past with the help of their web XML API. However, if you are not authenticating it, after several http requests, steam will ban the server IP as it will consider a form or attack (maybe "DDoS"). So you may want to look into authorizing it via their API instead of the web XML API (in case you use that). Smile

Thanks for the tip. Smile I'm pretty sure I know what you're referring to. There are currently two Steam APIs. There's what Valve calls Steam Community Data, which is returned in XML from a Steam user's profile link. That is older and now deprecated. Then there's the Steam Web API, which is Valve's newer (and now preferred) API. This plugin uses the newer API for all of the routine functionality.

It does use the Steam Community Data interface for obtaining a user's Steam ID from their profile URL during the initial Steam Integration. The number of requests from that should be infrequent and small in number, so I would be surprised if the Steam network recognized it as an attack. And currently the Steam Web API has no method for "discovering" a user's Steam ID, so using Steam Community Data is required for this function.
Reply
#9
This user has been denied support. This user has been denied support.
(2014-03-08, 08:24 AM)Tanweth Wrote:
(2014-03-08, 02:56 AM)dthiago Wrote: If MySteam is a suite ..plz create a register/login with steam separately.

If I add a Steam login capability, it will either be able to be enabled or disabled with a setting or come in a separate edition, don't worry. I'm all about configurability, and I know that external login features like that are controversial. Smile

(2014-03-08, 04:07 AM)Verilog Wrote: Wow this is a very nice plugin for gaming forums Smile

I'm glad you think so. Big Grin

(2014-03-08, 05:43 AM)crazy4cs Wrote: Hey,

Just a tip from the skim read at your thread. I have myself made a steam signature plugin too in past with the help of their web XML API. However, if you are not authenticating it, after several http requests, steam will ban the server IP as it will consider a form or attack (maybe "DDoS"). So you may want to look into authorizing it via their API instead of the web XML API (in case you use that). Smile

Thanks for the tip. Smile I'm pretty sure I know what you're referring to. There are currently two Steam APIs. There's what Valve calls Steam Community Data, which is returned in XML from a Steam user's profile link. That is older and now deprecated. Then there's the Steam Web API, which is Valve's newer (and now preferred) API. This plugin uses the newer API for all of the routine functionality.

It does use the Steam Community Data interface for obtaining a user's Steam ID from their profile URL during the initial Steam Integration. The number of requests from that should be infrequent and small in number, so I would be surprised if the Steam network recognized it as an attack. And currently the Steam Web API has no method for "discovering" a user's Steam ID, so using Steam Community Data is required for this function.
Great. Yes, I think I was using the old one back in 2012 end which fetched through user's profile via XML feed.

Nice plugin though, congrats. Smile
Reply
#10
I just updated the plugin to v1.0.1. This is small hotfix release to fix some reported issues. The change log is below:
  • Fixed an issue on the Complete List page that would cause PHP to throw errors if there were no users in-game or online (GitHub Issue #2).
  • Fixed an issue that would sometimes cause PHP to throw an "unsupported operand" error on the profile and post bit pages (GitHub Issue #3).
  • Version number is now cached (to make future upgrades easier).
  • Various code optimizations (including removing some leftover code from development builds that I missed before).

You can download the new version from GitHub or the attachment in the first post. I haven't submitted it for validation to the mods site since some of the fixes are tentative (they SHOULD work, but I can't really test them thoroughly myself) and there is a potential issue reported on GitHub that I haven't been able to resolve yet.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)