vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.7 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=228)
-   -   Profile Enhancements - Gamefields Icons Xbox,Wii and Playstation userfields (https://vborg.vbsupport.ru/showthread.php?t=196587)

Bilderback 01-04-2009 06:06 AM

Sorry for the lack of updates.
I have decided it's not good to alter the user table and have been developing
a 3.8 version with its own table which will provide multiple field options.
It's coming along very slow since I have been busy on other projects
but I hope to have it out soon.
Feel free to hack away at this Mod though.

EyeintheSky57 01-06-2009 11:38 PM

Quote:

Originally Posted by DragonMasterNYC (Post 1672175)
Here is something for the PSN

Add This to the PlayStation Network so that it's clickable and shows the card.

Code:

<td><a href="#" onclick="openWindow('http://pid.us.playstation.com/user/$userinfo[gf_playstation].jpg', 235, 149); return false;">$userinfo[gf_playstation]</a></td>
I'm sure this will help you out for next release Bilderback

Also here is an updated PSN Icon

Can anyone tell me how to add this code?

I am a complete newbie. But, i am good at following directions.

Thanks.

Bradley_Wint 01-18-2009 05:32 AM

Quote:

Originally Posted by EyeintheSky57 (Post 1703730)
Can anyone tell me how to add this code?

I am a complete newbie. But, i am good at following directions.

Thanks.

Well I just mirrored the Xbox code and added the PS3 link instead.

Game Fields Icons Templates > gamefields_playstation
Code:

<input type="hidden" name="playstation code" value="$userinfo[gf_playstation]">
                <if condition="$userinfo[gf_playstation]"> <a href="#" onclick="openWindow('http://pid.us.playstation.com/user/$userinfo[gf_playstation].jpg', 255, 169); return false;"> <img src="$vboptions[bburl]/images/misc/gf_playstation.gif" alt="" title="$vbphrase[gf_playstation_network_id]: $userinfo[gf_playstation]" border="0"></a></if>


Bradley_Wint 01-18-2009 11:58 AM

Also, I have found a way to make it work with gXboxLive, but it would mean that if you need to update this mod, you will have the change the info in the XML each time. Basically you will not be supported by the author if you make this change. PM me for details.

MikesSite 01-19-2009 05:52 AM

Quote:

Originally Posted by Bradley_Wint (Post 1716752)
Also, I have found a way to make it work with gXboxLive, but it would mean that if you need to update this mod, you will have the change the info in the XML each time. Basically you will not be supported by the author if you make this change. PM me for details.

I would like to do this. I PM'ed you.

Have anybody else done this?

Bilderback 01-19-2009 12:44 PM

The Mod isn't supported anyway and could use some improvement.
Feel free to hack away.

Bradley_Wint 01-19-2009 11:03 PM

ok, with that note, I guess I'll post it here.

So after taking a look at both mods, I think that sharing the db information is the way to link the two. However, each mod writes entries into separate tables in the vB database. This mod adds information to the user table and the gXboxLive uses the userfield table.

Since this is a much smaller mod, I think it would be best to mod this since it's only one file of code, rather than over 10 different files for gXboxLive. With the gXboxLive, they ask you to make a new field (lets say your field id is 5). In the MySQL backend, the userfield will have a record called field5, where the gXboxLive usernames will be stored for each individual user.

My theory is, set up your gXboxLive mod first, get the code (once again we use 5). Now in this mod, there is a bit of MySQL you need to change.

Code:

                <code>
                        <installcode><![CDATA[
                        if (!field_exists('user', 'gf_xbox', 'gf_wii', 'gf_playstation'))
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "user ADD gf_xbox VARCHAR( 15 ) AFTER msn");
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "user ADD gf_wii VARCHAR( 19 ) AFTER msn");
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "user ADD gf_playstation VARCHAR( 16 ) AFTER msn");
                        function field_exists($table, $field)
                        {
                                global $db;
                                return ($db->num_rows($db->query_read("SHOW COLUMNS FROM `" . TABLE_PREFIX .$table."` LIKE '".$field."'"))> 0);
                        }
                        ]]></installcode>

                        <uninstallcode><![CDATA[$db->query_write("ALTER TABLE " . TABLE_PREFIX . "user DROP gf_xbox");
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "user DROP gf_wii");
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "user DROP gf_playstation");]]></uninstallcode>
                </code>

Now you will want to change it to something like this
Code:

                <code>
                        <installcode><![CDATA[
                        if (!field_exists('userfield', 'field5', 'field6', 'field7'))
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield ADD field5 VARCHAR( 15 ) AFTER field4");
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield ADD field6 VARCHAR( 19 ) AFTER field4");
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield ADD field7 VARCHAR( 16 ) AFTER field4");
                        function field_exists($table, $field)
                        {
                                global $db;
                                return ($db->num_rows($db->query_read("SHOW COLUMNS FROM `" . TABLE_PREFIX .$table."` LIKE '".$field."'"))> 0);
                        }
                        ]]></installcode>

                        <uninstallcode><![CDATA[$db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield DROP gf_xbox");
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield DROP field6");
                        $db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield DROP field7");]]></uninstallcode>
                </code>

Basically I am replacing the variables.

user > userfield
gf_xbox > field5
gf_wii > field6
gf_playstation > field7

Please not these field numbers may vary depending on the number of fields you already have. So say you assigned field20 to gXboxLive, gf_xbox would be field21, gf_wii would be field22 and gf_playstation would be field23.

The excerpt above deals with only the initial set up of the tables and what not. I just highlighted that portion since it sets the stage for the entire code to function properly. Continue reading.

Now the confusing bit starts, because I didn't have time to sit down and figure what exactly was a MySQL function or a template function, even though I could pretty much tell by looking (just lazy to go through all honestly). So if you want to take the chance, remember what you assigned the initial MySQL entries as.

e.g.
user > userfield
gf_xbox > field5
gf_wii > field6
gf_playstation > field7

Now, basically it's about going into an editor and replacing all the variables in the XML document. Basically your MySQL entries will be renamed and aligned with the userfield data, so new data will be recorded there instead. However, your templates will also be renamed (e.g. field5_live_gamertag). So if you are prepared to remember how you assigned them, then in theory this should work. I haven't tested it out yet since I didn't get the time, but I think this is basic math here since the author wrote his code pretty straightforward, and replacing the vars shouldn't be a big issue, once it's done it unison.

However, please BACK UP YOUR DATABASE first before trying anything.

Then, install gXboxLive and then install this code. Im guessing if you had gXboxLive already installed, no biggie either.

I would pray that they both work simultaneously.

MikesSite 01-20-2009 01:50 AM

Thank you very much for this...I followed your instructions, and the 3 fields are there and labeled properly. I am getting this error when I try to update my gamer info in User CP...

MySQL Error : Unknown column 'field66' in 'field list'
Error Number : 1054

Bradley_Wint 01-20-2009 03:13 AM

We shall talk more via PM

Bilderback 01-20-2009 03:16 AM

@MikesSite
Even if you change the database entries, the plugin code still uses the user table.

This was a theoretical view and I wouldnt advise attempting this quite yet.
I backed myself into a corner by releasing this Mod because if it is ever uninstalled,
all user data from the fields are deleted.
I really need to write a transfer tool which allows the data to be passed to custom
profile fields if ever it were to be uninstalled or get them into their own table which
could simply be left behind without issues.
On another note, a conditional could be used for gxboxlive detection in the plugins.
Alot could be done to enhance this but I am still new to vbulletin and cant get it from
my head into a text editor yet.

Instead of using the user table, another possiblility would be too query the fields for the
last entry and simply add three additional profile fields.
Its one of those "Why did I do that?" deals.
If anyone can enhance this or has suggestions, feel free to modify the code.
After researching the history, it appears that Datenpapst had used code from an author
who used code from another author who hasnt been around for many years and vb versions.


All times are GMT. The time now is 10:50 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01215 seconds
  • Memory Usage 1,769KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_code_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete