From: <du...@us...> - 2013-01-04 20:16:20
|
Revision: 10663 http://sourceforge.net/p/xoops/svn/10663 Author: dugris Date: 2013-01-04 20:16:17 +0000 (Fri, 04 Jan 2013) Log Message: ----------- Improvement : plugin for block user menu Modified Paths: -------------- XoopsCore/branches/2.6.x/2.6.0/htdocs/modules/system/blocks/user.php XoopsCore/branches/2.6.x/2.6.0/htdocs/modules/system/class/extension.php Modified: XoopsCore/branches/2.6.x/2.6.0/htdocs/modules/system/blocks/user.php =================================================================== --- XoopsCore/branches/2.6.x/2.6.0/htdocs/modules/system/blocks/user.php 2013-01-04 19:51:19 UTC (rev 10662) +++ XoopsCore/branches/2.6.x/2.6.0/htdocs/modules/system/blocks/user.php 2013-01-04 20:16:17 UTC (rev 10663) @@ -33,7 +33,7 @@ $block = array(); $system_extension = new SystemExtension(); - $extensions = $system_extension->getExtensionList(); + $extensions = $system_extension->getExtensionPlugin('system', 'userMenus'); foreach ($extensions as $i => $extension) { if ($plugin = Xoops_Module_Plugin::getPlugin($extension->getVar('dirname'), 'system')) { if (method_exists($plugin, 'userMenus') && $plugin->userMenus()) { Modified: XoopsCore/branches/2.6.x/2.6.0/htdocs/modules/system/class/extension.php =================================================================== --- XoopsCore/branches/2.6.x/2.6.0/htdocs/modules/system/class/extension.php 2013-01-04 19:51:19 UTC (rev 10662) +++ XoopsCore/branches/2.6.x/2.6.0/htdocs/modules/system/class/extension.php 2013-01-04 20:16:17 UTC (rev 10663) @@ -25,7 +25,7 @@ public function getExtension( $mod = '' ) { $ret = array(); - $extension = $this->getExtensionList(); + $extension = self::getExtensionList(); foreach( $extension as $list ) { /* @var $list XoopsModule */ if ( $list->getInfo('install') ) { @@ -102,4 +102,34 @@ } return $ret; } + + /** + * Return extensions by plugin + * @return array + */ + public function getExtensionPlugin($dirname='system', $pluginName = '') + { + if (empty($pluginName)) { + return self::getExtensionList(); + } + // Get main instance + $xoops = Xoops::getInstance(); + $module_handler = $xoops->getHandlerModule(); + $moduleperm_handler = $xoops->getHandlerGroupperm(); + + $ret = array(); + foreach ($this->_list as $file) { + $file = trim($file); + if (file_exists(XOOPS_ROOT_PATH . '/modules/' . $file . '/xoops_version.php')) { + /* @var $module XoopsModule */ + $module = $module_handler->create(); + $module->loadInfoAsVar($file); + $plugin = Xoops_Module_Plugin::getPlugin($module->getInfo('dirname'), $dirname); + if ($module->getInfo('extension') && is_object($plugin) && method_exists($plugin, $pluginName)) { + $ret[] = $module; + } + } + } + return $ret; + } } |