WP_w3all phpBB integration and phpBB profile fields
Original post, shortcoded here is at this URL:
The WP_w3all integration between WordPress and phpBB, to be fully compatible without any change into his default queries (code), require that profile fields in phpBB are the same as these are into a default phpBB install. If not:
On a default WordPress install (no Buddypress) from WP_w3all 1.7.5, if phpBB profile fields not match the default install fields list, no error is thrown when user update his profile in WordPress, but no updates are done in phpBB except for email and password. So in this case there is no profile fields integration when update is done in WP side for others phpBB profile fields, except for email and password. On a default WordPress install by the way, unique other profile field that can really interest is the user's URL. It will not be updated in phpBB (when update is done via WP) if default number of phpBB profile fields on db mismatch or fields aren't named as a default phpBB install.
This may will be fixed on next version(s).
On WP + Buddypress, if on WP_w3all you go to activate Synchronize Buddypress/phpBB user's profile fields option, then you need to have the phpBB default Profile Fields configuration on phpBB. This is explained in this following procedure:
suppose that on phpBB, one of the default profile fields, let say the Website profile field for example, has been removed in
phpBB ACP -> Users and Groups Tab -> Custom profile fields
On updating user profile in WP, php return an error that +- will look like this:
WordPress database error: [Unknown column 'pf_phpbb_website' in 'field list'] UPDATE phpbb_profile_fields_data SET pf_phpbb_website = 'http://php.net/' WHERE user_id = '2'Or suppose you have add one or more custom phpBB profile fields. Also in this case the WP_w3all plugin will return an error similar to the above.
If you have add custom (or removed) profile fields in phpBB than the default phpBB install, solutions are only two:
1) Eliminate custom profile fields in phpBB ACP, re-adding needed default fields if you deleted one or some of these, and/or eliminating what added as custom profile fields, if you have not delete any of default profile fields but only added. Follow with this procedure to resolve.
2) Directly edit the plugin queries code to match custom phpBB profile columns on DB. If necessary some help, post a topic on appropriate forum, i will be glad to help understand whenever necessary, if someone want resolve some issue in short. On next versions, the code about profile fields queries will be unified, and all will result more easy and comfortable to customize for any more advanced use of it. At moment of this post, there are some points (queries that are all the same), that need to be edited to match a non default phpBB install, profile fields configuration.
On phpBB 3.2 default profile fields are as follow:
phpbb_location, phpbb_website, phpbb_interests, phpbb_occupation, phpbb_aol, phpbb_icq, phpbb_yahoo, phpbb_facebook, phpbb_twitter, phpbb_skype, phpbb_youtube, phpbb_googleplus
On phpBB 3.1 < there is one more by default:
which are referring to: location, website, interests, occupation, aol, icq ... etc profile fields, as you can imagine.
If there are fields you have add that aren't in the above list, and you have not delete any of these default phpBB profile fields, just remove custom fields you've add, and all is done.
If you need to recreate some of these, after you have delete added customs profiles fields, go to recreate these missed default fields in this way:
Open phpBB ACP -> Users and Groups Tab -> Custom profile fields
assuming for example we need to recreate the Website profile field, which is an URL (Link) field type, we'll go to recreate it with same default name for the field in the database, as was on default.
Before to click on Create new field button, choose from the options menu, right on the left of the button, the option URL (Link), than click Create new field button.
The page Add profile field display now.
There are various options to setup, but what is important and that need to be setup precisely with correct phpBB default value is the:
Field identification: The field identification is a name to identify the profile field within the database and the templates.
In this case, as Field identification value we'll put phpbb_website . Setup all the rest as you prefer.
Than click on button Profile type specific options
Than click on button Language specific options
Than click save.
Repeat these steps for each field you need to recreate, choosing the field type you need to recreate, following this list hint:
Field identification -> phpbb_location -> Single text field
Field identification -> phpbb_website -> URL (Link)
Field identification -> phpbb_interests -> Textarea
Field identification -> phpbb_occupation -> Textarea
Field identification -> phpbb_aol -> Single text field
Field identification -> phpbb_icq -> Single text field
Field identification -> phpbb_yahoo -> Single text field
Field identification -> phpbb_facebook -> Single text field
Field identification -> phpbb_twitter -> Single text field
Field identification -> phpbb_skype -> Single text field
Field identification -> phpbb_youtube -> Single text field
Field identification -> phpbb_googleplus -> Google+
Field identification -> phpbb_wlm -> Single text field