diff --git a/e107_handlers/e107_class.php b/e107_handlers/e107_class.php index 0c3cd4fa6..7610b5d0d 100644 --- a/e107_handlers/e107_class.php +++ b/e107_handlers/e107_class.php @@ -1016,12 +1016,19 @@ class e107 * Override is possible only if class is not already instantiated by shortcode parser * * myplugin/shortcodes/batch/my_shortcodes.php * e107::getScObject('my', 'myplugin'); + * * // news override - plugin_myplugin_news_shortcodes extends news_shortcodes -> myplugin/shortcodes/batch/news_shortcodes.php * e107::getScObject('news', 'myplugin', true); + * * // news override - plugin_myplugin_mynews_shortcodes extends news_shortcodes -> myplugin/shortcodes/batch/mynews_shortcodes.php * e107::getScObject('news', 'myplugin', 'mynews'); * diff --git a/e107_handlers/shortcode_handler.php b/e107_handlers/shortcode_handler.php index 72158c7ec..ebdbf03ad 100644 --- a/e107_handlers/shortcode_handler.php +++ b/e107_handlers/shortcode_handler.php @@ -262,6 +262,8 @@ class e_parse_shortcode public function getScObject($className, $pluginName = null, $overrideClass = null) { if(trim($className)==""){ return; } + + $_class_fname = $className; @@ -273,8 +275,16 @@ class e_parse_shortcode $overrideClass = $className; } // e.g. class plugin_myplug_news_shortcodes - $_class_fname = $overrideClass; - $className = 'plugin_'.$pluginName.'_'.str_replace('/', '_', $overrideClass); + + if($pluginName != null) + { + $_class_fname = $overrideClass; + $className = 'plugin_'.$pluginName.'_'.str_replace('/', '_', $overrideClass); + } + else + { + $className = $overrideClass; + } } elseif(is_string($pluginName)) { @@ -318,12 +328,13 @@ class e_parse_shortcode } elseif(E107_DBG_BBSC || E107_DBG_SC) { - echo "Couldn't Find Class '".$className."' in ".$path.""; + echo "

Couldn't Find Class '".$className."' in ".$path."

"; } } elseif(E107_DBG_BBSC || E107_DBG_SC) { - echo "Couldn't Load: ".$path.""; + echo "

Couldn't Load: ".$path."

"; + } // TODO - throw exception?