diff -u b/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php b/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php --- b/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php +++ b/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php @@ -121,6 +121,21 @@ if (strpos($_GET['q'], 'panels/ajax') !== 0) { $_SESSION['panels_ipe_fake_path'] = $_GET; } + // if a node context can be extracted from the ajax path store this, + // in order to avoid issues that can arise from broken images etc. + if (strpos($_GET['q'], 'panels/ajax') === 0) { + $get = explode('/', $_GET['q']); + $context = end($get); + if(strpos($context, 'panelizer') === 0) { + $partscontext = explode(':', $context); + foreach($partscontext as $item => $value) { + if($value == 'node') { + $_SESSION['node_fake_path'] = $partscontext[$item] . '/'. $partscontext[$item+1]; + break; + } + } + } + } parent::add_meta(); } @@ -134,6 +149,11 @@ $original_path = $_GET; $_GET = $_SESSION['panels_ipe_fake_path']; } + // If there is a node fake path found use this preferably + if(isset($_SESSION['node_fake_path'])) { + $_GET['q'] = $_SESSION['node_fake_path']; + unset($_SESSION['node_fake_path']); + } // Render. $content = parent::render_layout();