v 2.8.6 won't operate with the old page-forum.php code?
I compared the old overall_footer code the new code. well Done! Nicely tidy now! Mine was a mess after the changes we have made
The only change in the overall_header code I have found was // END force w3all redirect instead of // END force w3all to iframe redirect so I will keep the old one
iFrame integration doesn't work with phpbb Lightbox Extension
- Ezrael
- w3 User
- Posts: 102
- Joined: Wed Nov 15, 2023 9:11 pm
- Contact:
- axew3
- w3all User
- Posts: 2883
- Joined: Fri Jan 22, 2016 5:15 pm
- Location: Italy
- Contact:
Re: iFrame integration doesn't work with phpbb Lightbox Extension
Yeah!The only change in the overall_header code I have found was // END force w3all redirect instead of // END force w3all to iframe redirect so I will keep the old one
No! The iframe resizer js methods changed into v5 and the Php code has been improved so to not fail on execute some specific tasks.v 2.8.6 won't operate with the old page-forum.php code?
- Ezrael
- w3 User
- Posts: 102
- Joined: Wed Nov 15, 2023 9:11 pm
- Contact:
Re: iFrame integration doesn't work with phpbb Lightbox Extension
I did all changes but its not working!
Same issue like last time the update to 2.8.5! resizer is correctly linked in the overall_footer but just the header is showing up
https://surferparadise.de/forum/?w3=
There must be an change in the WP Integration which is causing this issue because the issue came up as soon as I update the plugin.
Thats the page-forum.php which is copied 1by1 from your folder I just added the first 6 lines because of my theme:
Same issue like last time the update to 2.8.5! resizer is correctly linked in the overall_footer but just the header is showing up
https://surferparadise.de/forum/?w3=
There must be an change in the WP Integration which is causing this issue because the issue came up as soon as I update the plugin.
Thats the page-forum.php which is copied 1by1 from your folder I just added the first 6 lines because of my theme:
Code: Select all
<?php get_header(); ?>
<div class="content section-inner">
<?php defined( 'ABSPATH' ) or die( 'forbidden' );
/*
Template Name: Forum
Template Post Type: page
* The default wp_w3all template to display content for the embedded phpBB
* @package WordPress
* @subpackage wp_w3all
* @V5 JS -> https://www.axew3.com/w3/2018/12/phpbb-wordpress-template-integration-iframe-v5/
*/
// @2023 axew3.com //
// START MAYBE DO NOT EDIT, but maybe yes!
if(defined("W3PHPBBCONFIG")){
// detect if it is the uid2 in phpBB and avoid iframe loop
$phpBBuid2 = (isset($_COOKIE[W3PHPBBCONFIG["cookie_name"].'_u']) && $_COOKIE[W3PHPBBCONFIG["cookie_name"].'_u'] == 2) ? 2 : 0;
} else { $phpBBuid2 = 0; }
// detect if running as no linked users mode and avoid iframe loop
if(defined("WPW3ALL_NOT_ULINKED")) { $phpBBuid2 = 0; }
global $w3all_iframe_custom_w3fancyurl,$w3all_url_to_cms,$w3all_iframe_custom_top_gap,$w3cookie_domain,$wp_w3all_forum_folder_wp;
$w3allhomeurl = get_home_url();
$current_user = wp_get_current_user();
$w3all_url_to_cms_clean = $w3all_url_to_cms;
$w3all_url_to_cms_clean0 = strpos($w3all_url_to_cms_clean, 'https://') !== false ? str_replace('https://', 'http://', $w3all_url_to_cms_clean) : str_replace('http://', 'https://', $w3all_url_to_cms_clean);
// guess to get the domain.com to display into preloader // the array order here is !important
if(!empty($w3all_url_to_cms)){
$w3guessdomaindisplay = str_replace(array("http://www.","https://www.","http://","https://"), array("","","",""), $w3all_url_to_cms);
$spos = strpos($w3guessdomaindisplay,'/');
if($spos !== false)
{
$w3guessdomaindisplay = substr($w3guessdomaindisplay, 0, $spos);
}} else { $w3guessdomaindisplay = 'Did you setup the URL that point to phpBB into the integration plugin admin page<br /> and is it correct?'; }
if(!empty($w3cookie_domain)){
if(substr($w3cookie_domain, 0, 1) == '.'){
$document_domain = substr($w3cookie_domain, 1);
} else {
$document_domain = $w3cookie_domain;
}
} else { $document_domain = 'localhost'; }
// do not use wp is_ssl() because it fail on some server
$w3all_orig = strpos($w3all_url_to_cms,'https') !== false ? 'https://'. $document_domain : 'http://' . $document_domain;
$w3all_orig_www = strpos($w3all_url_to_cms,'https') !== false ? 'https://www.'. $document_domain : 'http://www.' . $document_domain;
// security switch
$w3all_url_to_cms0 = $w3all_url_to_cms;
if( isset($_GET["w3"]) ){ // default
$phpbb_url = trim(base64_decode($_GET["w3"]));
$w3all_url_to_cms = $w3all_url_to_cms . '/' . $phpbb_url;
if( preg_match('/[^-0-9A-Za-z\._#\:\?\/=&%]/ui',$phpbb_url) ){
$w3all_url_to_cms = $w3all_url_to_cms0;
}
} elseif ( isset($_GET[$w3all_iframe_custom_w3fancyurl]) ){ //fancy
$phpbb_url = trim(base64_decode($_GET[$w3all_iframe_custom_w3fancyurl]));
$w3all_url_to_cms = $w3all_url_to_cms . '/' . $phpbb_url;
if( preg_match('/[^-0-9A-Za-z\._#\:\?\/=&%]/ui',$phpbb_url) ){
$w3all_url_to_cms = $w3all_url_to_cms0;
}
}
// old way - to be removed
// assure that passed url is correctly all decoded // may something else need to be added in certain conditions
//$w3all_url_to_cms = str_replace(array("%2F", "%23", "%2E"), array("/", "#", "."), $w3all_url_to_cms);
// Maybe it is url encoded
if( strpos($w3all_url_to_cms, "%2E") OR strpos($w3all_url_to_cms, "%2F") OR strpos($w3all_url_to_cms, "%23") ){
$w3all_url_to_cms = urldecode($w3all_url_to_cms);
}
if(!filter_var($w3all_url_to_cms, FILTER_VALIDATE_URL))
{ $w3all_url_to_cms = $w3all_url_to_cms_clean; }
// bug -> https://wordpress.org/support/topic/problem-using-iframe-feature-with-https/
if( strlen($w3all_url_to_cms) == strlen(get_option( 'w3all_url_to_cms' )) OR strlen($w3all_url_to_cms) == strlen(get_option( 'w3all_url_to_cms' )) + 1 )
{
// do not re-write value of the global $w3all_url_to_cms or index.php will be may appended into widgets avatars urls, so that will make it fail image loads
$w3all_url_to_cms_sw = $w3all_url_to_cms;
$w3all_url_to_cms_sw .= (substr($w3all_url_to_cms, -1) == '/' ? '' : '/');
//$w3all_url_to_cms_sw .= (substr($w3all_url_to_cms, -1) == '/' ? '' : '/index.php');
} else { $w3all_url_to_cms_sw = $w3all_url_to_cms; }
if( strlen($w3all_url_to_cms) == strlen(get_option( 'w3all_url_to_cms' )) OR strlen($w3all_url_to_cms) == strlen(get_option( 'w3all_url_to_cms' )) + 1 )
{
$w3all_url_to_cms .= (substr($w3all_url_to_cms, -1) == '/' ? '' : '/');
}
if( $w3all_url_to_cms == $w3all_url_to_cms_sw OR $w3all_url_to_cms == substr($w3all_url_to_cms_sw, 0, -1) ){
$w3all_url_to_cms_sw = $w3all_url_to_cms_clean . '/index.php';
}
// a trick to detect if the url require index.php
// should be ok also for a possible phpBB seo url
$up = explode("/", $w3all_url_to_cms_sw);
if( !strpos(end($up), '?') && $w3all_url_to_cms_sw == $w3all_url_to_cms
OR !strpos(end($up), '?') && $w3all_url_to_cms == substr($w3all_url_to_cms_sw, 0, -1)){
$w3all_url_to_cms_sw = $w3all_url_to_cms_clean . '/index.php';
}
function w3all_enqueue_scripts() {
wp_enqueue_script("jquery");
}
function wp_w3all_add_ajax() {
global $w3all_url_to_cms,$w3all_url_to_cms_sw,$wp_w3all_forum_folder_wp,$w3allhomeurl;
$w3all_url_to_phpbb_ib = $w3all_url_to_cms . "/ucp.php?i=pm&folder=inbox";
$s = "
<script type=\"text/javascript\" src=\"".plugins_url()."/wp-w3all-phpbb-integration/addons/iframeresizer/iframe-resizer.parent.js\"></script>
<script type=\"text/javascript\">
// pre loader js code for iframe content
jQuery( document ).ready(function() {
jQuery('#w3idwloader').attr( \"class\", \"w3_wrap_loader\" );
});
jQuery(window).load(function() {
jQuery('#w3idwloader').css(\"display\",\"none\");
});
function w3all_ajaxup_from_phpbb_do(res){
jQuery(document).ready(function() {
if ( parseInt(res,10) > 0 && null == (document.getElementById('wp-admin-bar-w3all_phpbb_pm')) ){
var resp = '".__( 'You have ', 'wp-w3all-phpbb-integration' )."' + parseInt(res,10) + '".__( ' unread forum PM', 'wp-w3all-phpbb-integration' )."';
jQuery('#wp-admin-bar-root-default').append('<li id=\"wp-admin-bar-w3all_phpbb_pm\"><a class=\"ab-item\" href=\"".$w3all_url_to_phpbb_ib."\">' + resp + '</li>');
// window.location.reload(true);// this could be a work around for different themes, but lead to loop in this way
} else if (parseInt(res,10) > 0){
var r = '".__( 'You have ', 'wp-w3all-phpbb-integration' )."' + parseInt(res,10) + '".__( ' unread forum PM', 'wp-w3all-phpbb-integration' )."';
jQuery( 'li.w3all_phpbb_pmn' ).children().text( r );
} else {
if( parseInt(res,10) == 0 && null !== (document.getElementById('wp-admin-bar-w3all_phpbb_pm'))){
jQuery('li[id=wp-admin-bar-w3all_phpbb_pm]').remove();
}
}
});
}
</script>
<style type=\"text/css\" media=\"screen\">
.w3preloadtext{
color:#DDD;
font-size:3.5em;
font-family:impact,arial, sans-serif;
font-style:italic;
text-shadow: rgba(0,0,0,0) -1px 0px;
}
.w3_wrap_loader{
position:fixed;
top:0%;
bottom:0%;
left:0%;
right:0%;
background: rgba(0,0,0,0.95);
z-index:99999;
opacity:90;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
width:100%;
text-align:center;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
pointer-events:none;
height:100%;
}
.ww3_loader{
width:100%;
text-align:center;
}
.w3_loader {
height: 8px;
width: 30%;
align-items: center;
justify-content: center;
position: relative; left: 50%;
transform: translateX(-50%);
overflow: hidden;
background-color: #DDD;
border-radius: 20px;
margin:0px;padding:0px;
}
.w3_loader:before{
height: 8px;
border-radius: 20px;
display: block;
position: absolute;
content: \"\";
left: -200px;
width: 200px;
background-color: #333;
animation: loading 1s linear infinite;
}
@keyframes loading {
from {left: -200px; width: 30%;}
50% {width: 30%;}
70% {width: 70%;}
80% { left: 50%;}
95% {left: 120%;}
to {left: 100%;}
}
</style>
";
echo $s;
}
add_action('wp_enqueue_scripts', 'w3all_enqueue_scripts');
add_action('wp_head','wp_w3all_add_ajax');
// END MAY DO NOT MODIFY
// START a default WordPress page
get_header();
?>
<!-- noscript warning and simple preloader -->
<div id="w3idwloader" class="w3_wrap_loader">
<noscript><h3 style="background-color:#333;color:#FFF;padding:15px;font-size:0.8em;pointer-events:auto;">Javascript disabled: can't load the forum page at this Url.<br />Enable Javascript on your browser or visit the forum here:<br /><br /><?php echo $w3all_url_to_cms;?><br /><a href="<?php echo $w3all_url_to_cms;?>">To be auto-redirected click here<br />(may this link will not work)</a></h3></noscript>
<div class="w3preloadtext"><?php echo $w3guessdomaindisplay ; ?></div>
<div class="ww3_loader"><div class="w3_loader"></div></div>
</div>
<!-- START iframe div -->
<div style="width:100%;min-width:100%" id="" class="">
<iframe id="w3all_phpbb_iframe" style="width:1px;min-width:100%;*width:100%;border:0;" scrolling="no" src="<?php echo $w3all_url_to_cms; ?>"></iframe>
<?php
echo "<script>
var wp_u_logged = ".$current_user->ID.";
var phpBBuid2 = ".$phpBBuid2.";
var w3allhomeurl = '".$w3allhomeurl."';
var wp_w3all_forum_folder_wp = '".$wp_w3all_forum_folder_wp."';
var w3all_iframe_custom_w3fancyurl = '".$w3all_iframe_custom_w3fancyurl."';
function w3all_ajaxup_from_phpbb(res){
var w3all_phpbb_u_logged = /#w3all_phpbb_u_logged=1/ig.exec(res);
if(phpBBuid2 != 2){ // if not phpBB uid 2 or get loop for this user
if( w3all_phpbb_u_logged == null && wp_u_logged > 1 || wp_u_logged == 0 && w3all_phpbb_u_logged > 2 ){
document.location.replace('".$w3allhomeurl."/index.php/".$wp_w3all_forum_folder_wp."/');
}
}
jQuery('#w3idwloader').css(\"display\",\"none\");
var w3all_phpbbpmcount = /.*(#w3all_phpbbpmcount)=([0-9]+).*/ig.exec(res);
if(w3all_phpbbpmcount !== null){
w3all_ajaxup_from_phpbb_do(w3all_phpbbpmcount[2]);
}
var w3all_lochash = /.*(#w3all_lochash)=([0-9]+).*/ig.exec(res);
if(w3all_lochash !== null && w3all_lochash[2] != 0){
jQuery('html, body').animate({ scrollTop: w3all_lochash[2]}, 400);
} else {
jQuery('html, body').animate({ scrollTop: ".$w3all_iframe_custom_top_gap."}, 400);
}
} // END w3all_ajaxup_from_phpbb(res){
// array() of allowed domains
var w3all_orig_domains = ['".$w3all_url_to_cms0."','".$w3all_orig."','".$w3all_orig_www."','".$w3all_url_to_cms_clean."','".$w3all_url_to_cms_clean0."','https://localhost','http://localhost'];
iFrameResize({
license: \"GPLv3\",
waitForLoad : true,
log : false,
inPageLinks : true,
targetOrigin: '".$w3all_url_to_cms_sw."',
checkOrigin : w3all_orig_domains,
heightCalculationMethod: 'taggedElement',
// see: https://github.com/davidjbradshaw/iframe-resizer/blob/master/docs/parent_page/options.md
// V5 code: see // https://iframe-resizer.com/upgrade/
onMessage : function(message){
// w3all simple js check and redirects
var w3all_passed_url = message.message.toString();
var w3all_ck = \"".$_SERVER['SERVER_NAME']."\";
var w3all_pass_ext = (w3all_passed_url.indexOf(w3all_ck) > -1);
var w3all_ck_preview = (w3all_passed_url.indexOf('preview') > -1);
if (w3all_ck_preview == false) { // or the phpBB passed preview link, will be recognized as external, and preview will redirect to full forum url instead
// so these are maybe, external iframe redirects
if (w3all_pass_ext == true) {
window.location.replace(w3all_passed_url);
}
if (/^(f|ht)tps?:\/\//i.test(w3all_passed_url)) {
window.location.replace(w3all_passed_url);
}
}
if(/#w3all/ig.exec(w3all_passed_url)){
w3all_ajaxup_from_phpbb(w3all_passed_url);
}
// do not pass to be encoded an url with sid or if it point to phpBB admin ACP via iframe
if( /[^-0-9A-Za-z\._#\:\?\/=&%]/ig.exec(w3all_passed_url) !== null || /adm\//ig.exec(w3all_passed_url) !== null || /sid=/ig.exec(w3all_passed_url) !== null ){
w3all_passed_url = '';
}
// PUSH phpBB URLs //
if(w3all_passed_url != ''){
w3all_passed_url = window.btoa(unescape(encodeURIComponent(w3all_passed_url)));
var w3all_passed_url_push = '".$w3allhomeurl."/".$wp_w3all_forum_folder_wp."/?".$w3all_iframe_custom_w3fancyurl."=' + w3all_passed_url;
history.replaceState({}, \"\", w3all_passed_url_push);
}
} // end // onMessage
,
onScroll: function(x,y){
//return false;
}
});
window.addEventListener('message', function (event)
{
if (event.origin != '".$w3all_url_to_cms0."')
{
// console.error('The event origin do not match');
// console.error(event);
// return;
}
// jQuery( window ).on( \"load\", function() {
if(/#w3all/ig.exec(event.data.message)){
w3all_ajaxup_from_phpbb(event.data.message);
}
//});
});
</script>";
?>
</div>
<!-- END iframe div -->
<?php get_footer();
- Ezrael
- w3 User
- Posts: 102
- Joined: Wed Nov 15, 2023 9:11 pm
- Contact:
Re: iFrame integration doesn't work with phpbb Lightbox Extension
Idk if thats related to the issue but I can see two issues in the debugger
Code: Select all
ReferenceError: Can't find variable: iFrameResize
Code: Select all
SecurityError: Blocked a frame with origin "https://forum.surferparadise.de" from accessing a cross-origin frame. Protocols, domains, and ports must match.
- axew3
- w3all User
- Posts: 2883
- Joined: Fri Jan 22, 2016 5:15 pm
- Location: Italy
- Contact:
Re: iFrame integration doesn't work with phpbb Lightbox Extension
Seem that you have still the old code of the page-forum, where on it still there is
iFrameResize
but now the v5 resizer code switched to iframeResize
so into page forum, beside this and something else of the php code above, the code AFTER this line
has been changed into (to fit v5 resizer lib)
And about the error :
you probably need to change:
into
for some reason the array of allowed domains is not correctly filled? The above should fit any possible configuration, anyway, i will very soon check this aspect so to definitively fix it automatically in any scenario.
Check that both cms need to be served under http or https.
iFrameResize
but now the v5 resizer code switched to iframeResize
so into page forum, beside this and something else of the php code above, the code AFTER this line
Code: Select all
var w3all_orig_domains = ['".$w3all_url_to_cms0."','".$w3all_orig."','".$w3all_orig_www."','".$w3all_url_to_cms_clean."','".$w3all_url_to_cms_clean0."','https://localhost','http://localhost'];
Code: Select all
iframeResize({
license: \"GPLv3\",
waitForLoad : true,
log : false,
inPageLinks : true,
targetOrigin: '".$w3all_url_to_cms_sw."',
checkOrigin : w3all_orig_domains,
heightCalculationMethod: 'taggedElement',
// see: https://github.com/davidjbradshaw/iframe-resizer/blob/master/docs/parent_page/options.md
// V5 code: see // https://iframe-resizer.com/upgrade/
onMessage : function(message){
// w3all simple js check and redirects
var w3all_passed_url = message.message.toString();
var w3all_ck = \"".$_SERVER['SERVER_NAME']."\";
....
....
....
....
Code: Select all
SecurityError: Blocked a frame with origin
you probably need to change:
Code: Select all
var w3all_orig_domains = ['".$w3all_url_to_cms0."','".$w3all_orig."','".$w3all_orig_www."','".$w3all_url_to_cms_clean."','".$w3all_url_to_cms_clean0."','https://localhost','http://localhost'];
Code: Select all
var w3all_orig_domains = ['https://surferparadise.de','http://surferparadise.de','https://forum.surferparadise.de','http://forum.surferparadise.de','".$w3all_url_to_cms0."','".$w3all_orig."','".$w3all_orig_www."','".$w3all_url_to_cms_clean."','".$w3all_url_to_cms_clean0."','https://localhost','http://localhost'];
Check that both cms need to be served under http or https.
- Ezrael
- w3 User
- Posts: 102
- Joined: Wed Nov 15, 2023 9:11 pm
- Contact:
Re: iFrame integration doesn't work with phpbb Lightbox Extension
What's strange for me, that the same behaviour already appeared with the update to 2.8.5 which didn't need any change of the forum-page.php
Thats the reason why I didn't updated the plugin and I suspect a change in some parts of these files you already uploaded with 2.8.5.
If you check the other Topic, there is another user with the same issue.
For now I restored the backup which runs perfectly.
Thats the reason why I didn't updated the plugin and I suspect a change in some parts of these files you already uploaded with 2.8.5.
If you check the other Topic, there is another user with the same issue.
For now I restored the backup which runs perfectly.