mirror of
https://github.com/e107inc/e107.git
synced 2025-08-03 21:27:25 +02:00
Moved check for existing shortcode class down, after we've determined what the 'real' class name is.
This commit is contained in:
@@ -266,13 +266,7 @@ class e_parse_shortcode
|
|||||||
*/
|
*/
|
||||||
public function getScObject($className, $pluginName = null, $overrideClass = null)
|
public function getScObject($className, $pluginName = null, $overrideClass = null)
|
||||||
{
|
{
|
||||||
if ($this->isScClass($className))
|
$_class_fname = $className;
|
||||||
{
|
|
||||||
return $this->scClasses[$className];
|
|
||||||
}
|
|
||||||
|
|
||||||
// defaults
|
|
||||||
$_class = $_class_fname = $className;
|
|
||||||
|
|
||||||
// plugin override
|
// plugin override
|
||||||
if($overrideClass)
|
if($overrideClass)
|
||||||
@@ -283,23 +277,26 @@ class e_parse_shortcode
|
|||||||
}
|
}
|
||||||
// e.g. class plugin_myplug_news_shortcodes
|
// e.g. class plugin_myplug_news_shortcodes
|
||||||
$_class_fname = $overrideClass;
|
$_class_fname = $overrideClass;
|
||||||
$_class = 'plugin_'.$pluginName.'_'.$overrideClass;
|
$className = 'plugin_'.$pluginName.'_'.$overrideClass;
|
||||||
}
|
}
|
||||||
elseif($pluginName)
|
elseif($pluginName)
|
||||||
{
|
{
|
||||||
$_class = 'plugin_'.$pluginName.'_'.$className;
|
$className = 'plugin_'.$pluginName.'_'.$className;
|
||||||
$className = $_class;
|
}
|
||||||
|
|
||||||
|
if ($this->isScClass($className))
|
||||||
|
{
|
||||||
|
return $this->scClasses[$className];
|
||||||
}
|
}
|
||||||
|
|
||||||
$path = ($pluginName ? e_PLUGIN.$pluginName.'/core/shortcodes/batch/' : e_CORE.'shortcodes/batch/').$_class_fname.'.php';
|
$path = ($pluginName ? e_PLUGIN.$pluginName.'/core/shortcodes/batch/' : e_CORE.'shortcodes/batch/').$_class_fname.'.php';
|
||||||
|
|
||||||
if (is_readable($path))
|
if (is_readable($path))
|
||||||
{
|
{
|
||||||
require_once($path);
|
require_once($path);
|
||||||
if (class_exists($_class, false)) // don't allow __autoload()
|
if (class_exists($className, false)) // don't allow __autoload()
|
||||||
{
|
{
|
||||||
// register instance directly to allow override
|
// register instance directly to allow override
|
||||||
$this->scClasses[$className] = new $_class();
|
$this->scClasses[$className] = new $className();
|
||||||
$this->registerClassMethods($className);
|
$this->registerClassMethods($className);
|
||||||
return $this->scClasses[$className];
|
return $this->scClasses[$className];
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user