$module = new $moduleclass(); $mod = null; // Get basic module meta info $mod->name = $module->name(); $mod->author = $module->author(); $mod->description = $module->description(); if (isset($container->view) && $container->internal->mod == $moduleclass) { $mod->defaultView = $container->view; } else { $mod->defaultView = DEFAULT_VIEW; } // Get support flags $mod->supportsSources = $module->hasSources() ? 1 : 0; $mod->supportsViews = $module->hasViews() ? 1 : 0; // Get a list of views $mod->views = exponent_template_listModuleViews($moduleclass); natsort($mod->views); if (!$haveclass) { $js_init .= exponent_javascript_class($mod, 'Module'); $js_init .= "var modules = new Array();\r\n"; $js_init .= "var modnames = new Array();\r\n\r\n"; $haveclass = true; } $js_init .= "modules.push(" . exponent_javascript_object($mod, "Module") . ");\r\n"; $js_init .= "modnames.push('" . $moduleclass . "');\r\n"; $mods[$moduleclass] = $module->name(); } $js_init .= "\r\n</script>"; $template->assign('js_init', $js_init); $template->assign('modules', $mods); $template->assign('loc', $loc);
# Software Foundation; either version 2 of the # License, or (at your option) any later version. # # GPL: http://www.gnu.org/licenses/gpl.txt # ################################################## // Part of Extensions category if (!defined('EXPONENT')) { exit(''); } if (exponent_permissions_check('extensions', exponent_core_makeLocation('administrationmodule'))) { exponent_flow_set(SYS_FLOW_PROTECTED, SYS_FLOW_ACTION); $modclass = $_GET['name']; $template = new template('administrationmodule', '_examplecontent', $loc); $views = array(); $loc = exponent_core_makeLocation($modclass, '@example'); foreach (exponent_template_listModuleViews($modclass) as $view) { echo $view; $v = null; $v->view = $view; ob_start(); call_user_func(array($modclass, 'show'), $view, $loc, 'Example Title'); $v->content = ob_get_contents(); ob_end_clean(); $views[] = $v; } $template->assign('views', $views); $template->output(); } else { echo SITE_403_HTML; }
function exponent_template_listModuleViews($module, $lang = LANG) { $views = array(); $langdir = $lang == 'en' ? '' : $lang . '/'; if (is_readable(BASE . "modules/{$module}/views/{$langdir}")) { $dh = opendir(BASE . "modules/{$module}/views/{$langdir}"); while (($file = readdir($dh)) !== false) { if (substr($file, -4, 4) == ".tpl" && substr($file, 0, 1) != "_") { $views[] = substr($file, 0, -4); } } } if (is_readable(THEME_ABSOLUTE . "modules/{$module}/views/{$langdir}")) { $dh = opendir(THEME_ABSOLUTE . "modules/{$module}/views/{$langdir}"); while (($file = readdir($dh)) !== false) { if (substr($file, -4, 4) == ".tpl" && substr($file, 0, 1) != "_") { $view = substr($file, 0, -4); if (!in_array($view, $views)) { $views[] = $view; } } } } if (!count($views) && $lang != 'en') { return exponent_template_listModuleViews($module, 'en'); } return $views; }