w3all heartbeat phpbb lastopics

UNDER CONSTRUCTION

Max 12 topics/posts: the shortcode param ‘topics_number’ can re-define for each shortcode, a number between 1-12

params


Switch WP user to specified Group in phpBB, when Role updated in WordPress and vice versa

WP_w3all phpBB integration 2.6.8> option

Read all the follow before to activate the option

Basic default WP Roles and phpBB groups switches will work as follow by default, if no custom file provided:

When an admin in WordPress update an user Role, or Role change due to user’s subscriptions:

Editor in WP or Woocommerce Shop Manager, will be added into the Global Moderator group as primary group in phpBB, the previous primary user’s group membership will be removed.
Author, Contributor or Subscriber or Woocommerce customer, will be added into the Registered group in phpBB, the previous primary group membership will be removed.
Administrator in WP will be set as Administrator in phpBB (not with all founder’s powers), the previous primary user’s group membership will be removed. The User with No role in WP will be deactivated in phpBB.

When an user change/update group in phpBB:

If belong as default group to the Registered phpBB group, will be updated in WP to Subscriber and the previous primary Role removed.

If belong as default group to the Global Moderators phpBB group, will updated in WP to Editor and the previous primary Role removed.

Administrators in this case are not considered by default. But you can activate the code about, into

the file wp-content/plugins/wp-w3all-phpbb-integration/common/wpRoles_phpbbGroups.php . It contain the code that can be customized as more like to get complex WP Roles and phpBB Groups switches. It already contain basic code example and basic hints. Advanced wp coders will find out that’s quite easy to write owns code snippets and achieve any kind of complex Roles/Groups switches.

How i can customize the file wpRoles_phpbbGroups.php expecting that when the integration plugin will update, modifications done into this file aren’t lost?

Create a folder (if you did not it already, activating the custom /views files option) named wp-w3all-custom inside the folder /wp-content/plugins/ so you’ll have /wp-content/plugins/wp-w3all-custom/

copy the file /wp-content/plugins/wp-w3all-phpbb-integration/common/wpRoles_phpbbGroups.php

and paste it inside the created folder, so you’ll have /wp-content/plugins/wp-w3all-custom/wpRoles_phpbbGroups.php

Custom files inside this folder, are not overwritten when the plugin will be updated (like all the custom views files).

Note that the option Use custom files to display Last Topics Widgets, Login Widget and Shortcodes do not affect this. If the custom file /wp-content/plugins/wp-w3all-custom/wpRoles_phpbbGroups.php exist, it will be included, even if the Use custom files to display Last Topics Widgets, Login Widget and Shortcodes option is set to No.

Advanced and common hints

Where the wpRoles_phpbbGroups.php file is included?

About an Admin that update an user role (the update will be synchronous)

Open: /wp-content/plugins/wp-w3all-phpbb-integration/class.wp.w3all-phpbb.php

search for:

inside

public static function phpbb_update_profile($user_id, $old_user_data) {

About a current WP logged in user updates (the update will be asynchronous)

an user that changed Group in phpBB side** and that so will be updated to the related WP Role when as logged in will visit WordPress, search for:

into /wp-content/plugins/wp-w3all-phpbb-integration/class.wp.w3all-phpbb.php

inside the function verify_phpbb_credentials()

About Memberpress or others external memberships plugins:

Remember: this is a WP plugin, it run ONLY in WP side! So it has been defined synchronous the Role update when done in WP side updating an user profile. In this case the update occur at same time in phpBB. It is asynchronous when the WP role change due to some other reason, for example due to some Role update that fire on the background, after a subscribed membership or something else, but the affected user is not currently logged in into WordPress.

It is also asynchronous if the user change profile’s data in phpBB, because until the same user will not visit the WP side as logged, no code will run to update his Role in WP.

Read more inline hints into the file wpRoles_phpbbGroups.php

Could be all synchronous? Yes, the result can be achieved in several ways, for any configuration or/and plugin/extension installed.

A One Way (WP to phpBB only) explained example is here (read all answers):

https://www.axew3.com/w3/forums/viewtopic.php?t=1806

Shortcode: phpBB notifications into WordPress

WP_w3all phpBB WordPress 2.6.6 >

WP_w3all phpBB notifications into WordPress shortcode version 1.0

check all others shortcodes listed under the “common how” to section

The w3all_phpbb_unotifications shortcode display *phpBB notifications like phpBB do. The file that can be styled as more like and that display results is:

/wp-content/plugins/wp-w3all-phpbb-integration/views/wp_w3all_phpbb_unotifications_short.php

Add the attribute class for ul and li elements, using shortcode attributes ul_phpbb_unotifications_class="myclass" and li_phpbb_unotifications_class="myotherclass"

*Note that to get resultsthe phpBB user have to setup/activate into his User Control Panel, under Board preferences Tab -> Edit notification options option, the notifications types he want to see.

Note also that once a phpBB user visit the

Board index -> User Control Panel -> Overview -> Manage notifications

page, the $phpbb_user_session[0]->user_new_privmsg var become 0. So PMs notifications are not retrieved anymore for the user (until there is not a new PM).

The file /wp-content/plugins/wp-w3all-phpbb-integration/views/wp_w3all_phpbb_unotifications_short.php can be copied into the folder /wp-content/plugins/wp-w3all-custom/ and activating the option Use custom files to display Last Topics Widgets, Login Widget and Shortcodes so that custom modifications done into the file aren’t overwritten when the plugin will be updated.

All default phpBB (3.3>) notifications types that can be expected will be retrieved:

Since 2.6.9 > added option:
Only get the total notifications count, of any type, default phpBB and customs types created by extensions

If selected, then just use echo $w3all_phpbb_unotifications; in this case, to display the number of unread notifications, declaring it as global, into any Php template or (maybe) some other plugin.

The (awesome) iframe template integration using shortcode

WordPress phpBB template integration

check all others shortcodes listed under the “common how to” section

NOTE that required settings of this shortcode resides under the WP_w3all Preferences menu

To use the w3allphpbbiframe shortcode it is required to apply into the phpBB template files overall_header.html and overall_footer.html the same javascript code and procedure as it is for the page-forum, and the result will be a full template integration that can be applied into any WP theme:

phpBB WordPress template integration iframe

NOTE that it is Mandatoryto set the WP page-names where the shortcode will be added, into the related shortcode option field, into the integration plugin admin page, or the shortcode will not fire!

then use like this:

wp_page_name param refer to the page/post name/slug where the shortcode will be added (see hint below about this param if omitted*)

wp_page_iframe_top_gap param refer to (in pixel) the position where the WP parent page will scroll to by default. If omitted value will be 0

url_push (since 2.5.9>) param if omitted is set to YES, that mean when links are clicked into the phpBB iframed, the URL will be pushed into the browser’s address bar. If you want to avoid this behavior, use/add this param like this into the shortcode: url_push="no"

note that the URL push is ever avoided when the shortcode is used into the homepage and should in several more conditions. In short words, in all these situations where, when if the URL is pushed into the parent address bar, it cause/lead to a WordPress page NOT found, in the case there is an intentionally browser’s page reload (because the pushed URL is an URL that WP will not found)

phpbb_default_url (since 2.5.7>) param (that can be omitted) refer to any phpBB URL where the iframe will be opened by default, so the above become something like this, if for example we want to display into a WP post the phpBB, that should open by default into a precise forum topic/post/page:

but it can be any other phpBB link like the ucp page used into another etc

it is possible to use multiple shortcode(s) into different contests/pages/posts

Again: NOTE that it is Mandatoryto set the WP page-names where the shortcode will be added, into the related shortcode option field, on the integration plugin admin page, or the shortcode will not fire!See Option:

The (awesome) iframe template integration using shortcode

security_token (since 2.5.9>) param (that can be omitted) refer to a secret token that can be used to restrict the use of the iframe shortcode only to certain users, when there are more roles allowed to create posts or pages. If this option is set (not empty) the shortcode will be parsed only when the token exist and will match. To add the security secret token into the iframe shortcodes, add it like this:

security_token="MySecretToken"

assuming that into related option field on plugin admin, MySecretToken is the token that had set

scroll_default (since 2.6.0>) param if omitted is set to YES by default. To avoid the page scroll behavior set it to no:

scroll_default="no"

To edit some css/html output or something else if required, relevant files to look into are:

/wp-content/plugins/wp-w3all-phpbb-integration/common/wp_phpbb_iframe_shortcode.php

/wp-content/plugins/wp-w3all-phpbb-integration/views/wp_w3all_phpbb_iframe_short.php

*Note wp_page_name: if using Plain permalinks, for example the page name for a post would be p=45 or if it is a page page_id=12

*Note also that the shortcode param wp_page_namecan be omitted if you created page-forum using the (other way) page-forum available iframe template integration: so that the loaded URL into the browser’s address bar when links clicked into iframe, will be the one set into the overall_header.html and overall_footer.html js added code (that so may point to another post or page where another shortcode has been added, or to the default page-forum if created using related option on plugin admin)

Note important: if the iframe do not display and you get mixed insecure content on console, you have to fix it doing this:

open your WP header.php template file, and may just after others header meta tags add the follow:

That’s all here, follow instructions into the plugin admin page where there is iframe template integration using shortcode related option. Enjoy!

One applied right here on the post (below), but also see another simple example here: https://www.axew3.com/w3/board/

Advanced hint: this shortcode with little modifications could be easily used to display any iframed page, also cross domain.

Here it has been added the iframe using the shortcode with param phpbb_default_url set to open a specified phpBB post and with scroll_default set to no (since 2.6.0>)

[w3allphpbbiframe url_push=”no” phpbb_default_url=”https://www.axew3.com/w3/forums/viewtopic.php?t=774″ wp_page_name=”the-awesome-iframe-template-integration-using-shortcode” scroll_default=”no”]

phpBB WordPress template integration (iframe v5)

V5 version (for cool people)

PLUGIN VERSION 2.7.4>

PAGE HELP – JS code – updated on 7 Dec 2023
(related addons/page-forum.phpupdated on 7 Dec 2023)

wp-w3all-phpbb-integration/trunk/addons/page-forum.php

wp_w3all responsive iframe procedure

WordPress phpBB iframe template integration

UPDATE PROCEDURE: rebuild page-forum.php (or whatever named) via plugin admin, OR manually substitute it into your active WP template folder, with the new one that you find/copy into /wp-content/plugins/wp-w3all-phpbb-integration/addons. You’ll may also update the iframeResizer.contentWindow.min.js and iframeResizer.contentWindow.map files added into phpBB root, with news updated files you’ll find into /wp-content/plugins/wp-w3all-phpbb-integration/addons/resizer folder (this step is not always required, but only when iframe resizer library updates, which is notified on plugin changelog when plugin released). Done this, substitute the phpBB overall_header.html and overall_footer.html code (re-adding required values) with the new v5 code here below. Do not forget to rebuild phpBB template to make phpBB template modifications take effect, and may cleanup phpBB cache.

To do an awesome Template integration by Shortcode, that’s compatible with any WP theme, you have to add the same code as more below int this page explained, into the overall_header and overall_footer phpBB files, and then read here:

NOTE – relevant files: page-forum(or whatever you named it).php into your active WP template folder, while if using the awesome phpBB iframe shortcode the  file is /wp-content/plugins/wp-w3all-phpbb-integration/views/wp_w3all_phpbb_iframe_short.php)

WP_w3all template integration steps

Build/create the WP forum template page via option
WP_w3all phpBB embedded on WordPress Template
on WP_w3all admin config page, and the blank page on WordPress Admin -> Pages -> Add New, titled the same, so forum or board  etc (then you’ll have into your active WordPress template folder a file named page-forum.php or page-board.php etc), then to complete the procedure and get the responsive iframe height for the embedded/iframed phpBB into WordPress template page you need:

overall_footer.html code

Open with a text editor your phpBB template file overall_footer.html

and just before the closing </body> tag, add this code (do not select rows numbers on copied code):

after you pasted this code into phpBB overall_footer.html
edit following lines:

change the w3allAllowDomain var value to fit your WP URL.
Now check the other line to change:

change value on this line that need to point to the URL of the WordPress created/named forum page (do not add final slash and change http or https as needed)
MANDATORY!

Change the w3 value of the line

to fit the value that (if) you may changed it into the plugin admin, where option: Fancy URL query string for the WordPress page forum that embed phpBB

Finally, check this line

in the code you added (last line): this should correctly point to the iframeResizer.contentWindow.min.js file that you’ll go to add into phpBB root folder (together with the file iframeResizer.contentWindow.map). You need to use the absolute URL (use http or https as needed, and adjust the url to fit your needs)
(MANDATORY!) or resizer won’t work

AFTER EDITED, save and load the modified overall_footer.html into your phpBB style folder, overwriting the default one, and so

load via ftp into the phpBB root folder (or copy/paste), both files
iframeResizer.contentWindow.min.js AND iframeResizer.contentWindow.map
that you find inside the folder
wp/wp-content/plugins/wp-w3all-phpbb-integration/addons/resizer

After this, phpBB require to recompile the template, or template files modifications do not affect. Open phpBB ACP, and so under:

Server Configuration -> Load settings -> Recompile stale style components set to YES and save. Load one time a phpBB full forum page. Leave as is at moment, especially if you follow adding also the code on overall_header.html (more below) to redirect any phpBB direct URL to the iframed phpBB into the WP page: then after tested that all work fine, return to ACP, and reset to NO and save. This step is needed to load/rebuild template modifications in phpBB if there are, but this option should be ever set to NO into an online/production site to save server resources. It is normally set to yes only for testing/devel purpose or to apply modifications on phpBB templates files.

overall_header.html code

If you want phpBB email notification links or any phpBB direct url to be redirected to the wp iframed forum page follow this step:

Open with a text editor your phpBB template file overall_header.html and immediately after the closing </title> tag add the following code:

On added code, change URL on the line where:

to fit/point to the WordPress iframed forum page: DO NOT ADD final slash and setup as http or https as needed.

Change the default w3 value of the line:

to fit the value you may changed into the plugin admin, where there is the option: Fancy URL query string for the WordPress page forum that embed phpBB

Reset to No the Recompile phpBB template option after some test. So before to follow READ NEXT IMPORTANT NOTE

NOTE: if you need to disable/remove the overall_header.html javascript code, that do not allow (until javascript enabled on browser) to access front end real phpBB urls, forcing the redirect to the WP forum page, you can  disable javascript on browser, if you do not want to remove/disable the added js snippet into the phpBB overall_header.html file. It is also !important to remember this if in trouble with login, and recompile Stale Template option in phpBB is set to Off at this time.

if the iframe do not display and you get mixed insecure content on console, you have to fix it doing this: open your WP header.php template file, and may just before others header meta tags add the follow:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

For testing or for any other reason, you could also comment out the line where:

change into this:

so phpBB direct URL’s will not be redirected to the WP page forum URL. But you can open the page-forum to see the iframed result in the while. Remember that to apply template modifications, phpBB require to recompile templates files.

NOTE: if the iframe still do not display correctly:

Iframe height do not resize to match my theme! (how to change heightCalculationMethod)

If using the Awesome iframe template integration via shortcode, relevant file to look into is:

/wp-content/plugins/wp-w3all-phpbb-integration/views/wp_w3all_phpbb_iframe_short.php

Check related shortcode page to know more about customization.

Enjoy your awesome template integration!

Appreciations: https://www.paypal.com/paypalme/alessionanni/

© 2023 axew3.com

Iframe resize library by: https://github.com/davidjbradshaw/iframe-resizer

[w3allcustomiframe] shortcode how to

check all others shortcodes listed under the “common how” to section

Note: this shortcode work only if it is activated option into WP plugin’s admin (advanced shortcode):

Activate [w3allcustomiframe] shortcode

It may require you to know something about iframes and how they work, but looking into examples may you can easily understand the way:

the shortcode to embed a page need to be used for example like this:

Params
resizer
check_origin
url_to_display
css_iframe_wrapper_div
css_iframe_elem_iframe

resizer (yes/no)
default false. * use the iframe resizer or not (if no may pass fixed width and height values for the iframe to display, via css_iframe_elem_iframe param)

checkOrigin (true/false)
Default true. See checkOrigin reference.
Pass false to disable.
To provide a value for checkorigin, set this param (for example) to https://mysite.com (it will be so converted into array to pass the valid domain value you want to set)

url_to_display (url)
the src url to the page that the iframe will point to

css_iframe_wrapper_div (inline css inside attribute style=”…”)
css inline style of the iframe wrapper, element <div style="..."

css_iframe_elem_iframe (inline style inside attribute style=”…”)
css inline style for the element <iframe style="..."

* Note: to use the iframe resizer, the page that contain the content to display, that reside outside WordPress (like the integrated phpBB forum into this online example) need to embed this code just before the closing </body> tag:

The iframeResizer.contentWindow.min.js file to point to can be copied into plugin folder:

wp-content/plugins/wp-w3all-phpbb-integration/addons/resizer

and added/pasted where necessary

A shortcode example:

The follow example, display the content within this domain: since using resizer, it has been necessary to add the iframe resizer lib into the phpBB template file viewtopic_print.html, just before the closing </body> tag. Click into links to see behavior (pages within this domain will continue to display, and (may, may not) also some other external link you’ll click will load here)

[w3allcustomiframe resizer=”yes” check_origin=”https://www.axew3.com” url_to_display=”https://www.axew3.com/w3/forums/viewtopic.php?f=3&t=1431&view=print”]

phpBB WordPress template integration (iframe v4)

v4 version (for cool people)

FROM 2.1.1 USE V5 code: https://www.axew3.com/w3/2020/01/phpbb-wordpress-template-integration-iframe-v5/

OLD CODE: cool people moved to V5

FROM 2.1.1 USE V5 code: https://www.axew3.com/w3/2020/01/phpbb-wordpress-template-integration-iframe-v5/

SINCE 2.1.1 the following code, even if still working with his related page-forum (linked below) into any plugin version, is now obsolete.

PAGE HELP – JS code – UPDATED on 15 Gen 2020
(related addons/page-forum.phpupdated on 14 Gen 2020)

wp-w3all-phpbb-integration/tags/2.1.0/addons/page-forum.php

wp_w3all plugin 1.9.9 until 2.1.0

phpBB SEO mods compatible – (READ ALL this page)

wp_w3all responsive iframe procedure

WordPress phpBB iframe template integration

MEMO: to update to latest v4 code, you’ll need to rebuild page-forum.php (or whatever you named it) via plugin admin, OR manually substitute it into your active WP template folder, with the new one that you find/copy into /wp-content/plugins/wp-w3all-phpbb-integration/addons. You’ll need to update also the iframeResizer.contentWindow.min.js file you added into phpBB root, with the new one you find into /wp-content/plugins/wp-w3all-phpbb-integration/addons/resizer folder. Done this, substitute the phpBB overall_header.html and overall_footer.html code (re-adding needed values) with the new v4 code here below. Do not forget to rebuild phpBB template to make phpBB template modifications take effect.

 Domain/subdomains installations it’s REQUIRED to read this: How to Domain/subdomain iframe template integration

WP_w3all template integration steps

After you built/create the WP forum template page via option
WP_w3all phpBB embedded on WordPress Template
on WP_w3all admin config page, and the blank page on WordPress Admin -> Pages -> Add New, titled the same of created wp_w3all template page, so forum or board  etc (then you’ll have into your active WordPress template folder a file named page-forum.php or page-board.php etc), to complete the procedure and get the responsive iframe height for the embedded/iframed phpBB into WordPress template page you need:

overall_footer.html code

Open with a text editor your phpBB template file overall_footer.html

and just before the closing </body> tag, add this code (do not select rows numbers on copied code):

after you pasted this code into phpBB overall_footer.html
edit following lines:

change localhost to fit your domain name (example axew3.com)
do NOT add http(s):// OR the point in front nor anything else, just add
yourdomain.com or set it as localhost if on localhost test. If phpBB is at subdomain.domain.com, add domain.com as value
(MANDATORY!) or resizer won’t work
now check the other line to change:

change value
https://localhost/wp53/forum
on this line, to point to the URL of the WordPress created/named forum page (do not add final slash and change http or https as needed)
MANDATORY!

Finally, check this line

in the code you added (last line): this should correctly point to the iframeResizer.contentWindow.min.js file that you’ll go to add into phpBB root folder. You need to use the absolute URL (use http or https as needed, and adjust the url to fit your needs)
(MANDATORY!) or resizer won’t work

AFTER EDITED, save and load the modified overall_footer.html into your phpBB style folder, overwriting the default one, and so

load through ftp on the phpBB root folder (or copy/paste), the file
iframeResizer.contentWindow.min.js
that is contained inside folder
wp/wp-content/plugins/wp-w3all-phpbb-integration/addons/resizer

After this, phpBB require to recompile the template, or modifications to template files not affect (to overall_footer.html in this case). Open phpBB ACP, and so under:

Server Configuration -> Load settings -> Recompile stale style components set to YES and save. Load one time a phpBB full forum page. Leave as is at moment, especially if you follow adding also the code on overall_header.html (more below) to redirect any phpBB direct URL to the iframed WP page: then after tested that all work fine, return to ACP, and reset to NO and save. This step is needed to load the template modifications on phpBB (and any time you edit a phpBB template file to for modifications take effect), but this option should be ever set to NO into an online/production site to save server resources. It is normally set to yes only for testing/devel purpose or to apply modifications on phpBB templates files.

overall_header.html code

The new V4 w3all iframe code do not use anymore htaccess to force redirects, but use pure Javascript (reload) code, that as you may imagine, lead to some different result: you’ll not have to edit phpBB notification links on phpBB notification files as on V1 or V2 code, to force users redirect to iframe when they click (for example) on notification email link or some other forum’s link. But in this case, any user except bots, will be redirected (as code is, but it can be easily changed to assume different behaviors, may excluding admins or moderators etc) to the WP iframed page, if the forum accessed via real phpBB url.

If you want phpBB email notification links or any phpBB direct url to be redirected to the wp iframed forum page follow this step:

Open with a text editor your phpBB template file overall_header.html

and just immediately after this code (or by the way, just before the closing tag </head>)

add the following code:

On added code, change URL on the line where (line 3):

to fit/point to the WordPress iframed forum page: DO NOT ADD final slash and setup as http or https as needed.

All working!?

Reset to No the Recompile phpBB template option, here we go!

NOTE: if you added the code above into phpBB overall_header.html then you’ll never activate (it is not active by default) this part of the code you added into the overall_footer.html:

P.s – whenever you want: to get the iframe responsive for ACP phpBB admin panel, read this post. My (personal) suggestion is to stop here and try to use the integration leaving ACP out of iframe joke. If by the way you want to follow, before to apply then you’ll have to little change the above code for overall_footer.html and overall_header.html in this way:

on code for overall_footer.html remove this part:

on code for overall_header.html remove this part:

change into:

* For domain/subdomain installations
READ THIS HOW TO:
How to Domain/subdomain iframe template integration

Refer to v2 or v1 code for htaccess old solution editing phpBB notifications files.

Shortcode: phpBB PM into WordPress

WP_w3all phpBB WordPress 1.9.9 >

WP_w3all phpBB PM into WordPress shortcode version 1.0

check all others shortcodes listed under the “common how” to section

The [w3allphpbbupm] shortcode just display phpBB Private Messages count into a div, which html output result will be by default like this:

<div id="w3pm_id" class="w3pm_class"><a href="https://localhost/wp51/phpBB3/ucp.php?i=pm&folder=inbox">You have 1 unread forum PM</a></div>

To display this way, you’ll add the shortcode as is: [w3allphpbbupm]

To change attributes class name, id or to get a element link with target _blank or to add inline style to the div element, arguments that are possible to pass are:

'w3pm_class' => 'w3pm_class',
'w3pm_id' => 'w3pm_id',
'w3pm_inline_style' => '',
'w3pm_href_blank' => ''

[w3allphpbbupm w3pm_class="myclass" w3pm_id="myid" w3pm_inline_style="padding:10px;border:1px solid grey;" w3pm_href_blank="1"]

w3pm_class and w3pm_id are setup by default with same name as value for the id and class div’s element attributes if not passed as arguments, others two w3pm_inline_style and w3pm_href_blank simply not affect if not passed.

To get target="_blank" , pass as on example the w3pm_href_blank="1" argument