From: <rob...@us...> - 2012-07-20 19:20:32
|
Revision: 42438 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=42438&view=rev Author: robertplummer Date: 2012-07-20 19:20:26 +0000 (Fri, 20 Jul 2012) Log Message: ----------- [ENH] Better zend plugin checking, will eventually have a cache of zend plugins rather than new ones each time needed Modified Paths: -------------- trunk/lib/parser/parserlib.php Modified: trunk/lib/parser/parserlib.php =================================================================== --- trunk/lib/parser/parserlib.php 2012-07-20 19:18:43 UTC (rev 42437) +++ trunk/lib/parser/parserlib.php 2012-07-20 19:20:26 UTC (rev 42438) @@ -60,6 +60,7 @@ var $option = array(); static $jisonParser; + static $pluginInstances = array(); function setOptions($option = array()) { @@ -613,12 +614,20 @@ return $plugins; } + function zend_plugin_exists($className) + { + if (isset(self::$pluginInstances[$this->className])) { + return true; + } + + return file_exists(str_replace("_" , "/", "lib/core/" . $className . '.php')) == true && class_exists($className) == true; + } //* function plugin_exists( $name, $include = false ) { if ($name != 'maketoc') { $className = 'WikiPlugin_' . $name; - if (@class_exists($className)) return true; + if ($this->zend_plugin_exists($className)) return true; } $php_name = 'lib/wiki-plugins/wikiplugin_'; $php_name .= TikiLib::strtolower($name) . '.php'; @@ -648,7 +657,7 @@ } $className = 'WikiPlugin_' . $name; - $classExists = class_exists($className); + $classExists = $this->zend_plugin_exists($className); if ($classExists == true) { $class = new $className; return $known[$name] = $class->info(); @@ -1042,7 +1051,7 @@ $classExists = false; if ($name != 'maketoc') { $className = 'WikiPlugin_' . $name; - $classExists = @class_exists($className); + $classExists = $this->zend_plugin_exists($className); if ($classExists == true) { $class = new $className; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |