/** * Get the available widgets list * * @return array */ public static function get_available_list($mods = null) { $db = XoopsDatabaseFactory::getDatabaseConnection(); if ($mods == null || empty($mods)) { $mods = RMModules::get_modules_list(); } $list = array(); // Block list to return foreach ($mods as $mod) { if (!file_exists(XOOPS_ROOT_PATH . '/modules/' . $mod['dirname'] . '/xoops_version.php')) { continue; } load_mod_locale($mod['dirname']); $module = new XoopsModule(); $module->loadInfoAsVar($mod['dirname']); $list[$mod['dirname']] = array('name' => $mod['name'], 'blocks' => $module->getInfo('blocks')); } // Event generated to modify the available widgets list $list = RMEvents::get()->run_event('rmcommon.available.widgets', $list); return $list; }
function show_rm_blocks() { global $xoopsModule, $xoopsConfig, $wid_globals, $xoopsSecurity, $rmc_config, $rmTpl; define('RMCSUBLOCATION', 'blocks'); $db = XoopsDatabaseFactory::getDatabaseConnection(); $modules = RMModules::get_modules_list('active'); $from = rmc_server_var($_GET, 'from', ''); // ** API Event ** // Allows other methods to add o modify the list of available widgets $modules = RMEvents::get()->run_event('rmcommon.blocks.modules', $modules); // Cargamos los grupos $sql = "SELECT groupid, name FROM " . $db->prefix("groups") . " ORDER BY name"; $result = $db->query($sql); $groups = array(); while ($row = $db->fetchArray($result)) { $groups[] = array('id' => $row['groupid'], 'name' => $row['name']); } // Cargamos las posiciones de bloques $bpos = RMBlocksFunctions::block_positions(); $sql = createSQL(); $result = $db->query($sql); $blocks = array(); $used_blocks = array(); while ($row = $db->fetchArray($result)) { $mod = RMModules::load_module($row['element']); if (!$mod) { continue; } $used_blocks[$row['canvas']][] = array('id' => $row['bid'], 'title' => $row['name'], 'module' => array('id' => $mod->mid(), 'dir' => $mod->dirname(), 'name' => $mod->name(), 'icon' => RMModules::icon($mod->dirname(), 16)), 'canvas' => isset($bpos[$row['canvas']]) ? $bpos[$row['canvas']] : array(), 'weight' => $row['weight'], 'visible' => $row['visible'], 'active' => $row['isactive'], 'type' => $row['type'], 'options' => $row['edit_func'] != '' ? 1 : 0, 'description' => $row['description']); } // ** API ** // Event for manege the used widgets list $used_blocks = RMEvents::get()->run_event('rmcommon.used.blocks.list', $used_blocks); $positions = array(); foreach ($bpos as $row) { $positions[] = array('id' => $row['id_position'], 'name' => $row['name'], 'tag' => $row['tag'], 'active' => $row['active']); } $positions = RMEvents::get()->run_event('rmcommon.block.positions.list', $positions); RMTemplate::get()->add_script('jquery.nestable.js', 'rmcommon', array('directory' => 'include')); RMBreadCrumb::get()->add_crumb(__('Blocks Management', 'rmcommon')); $rmTpl->assign('xoops_pagetitle', __('Blocks Management', 'rmcommon')); RMTemplate::get()->add_style('blocks.css', 'rmcommon'); RMTemplate::get()->add_script('blocks.js', 'rmcommon'); RMTemplate::get()->add_script('jkmenu.js', 'rmcommon'); RMTemplate::get()->add_style('forms.css', 'rmcommon'); RMTemplate::get()->add_script('jquery-ui.min.js', 'rmcommon', array('directory' => 'include')); if (!$rmc_config['blocks_enable']) { showMessage(__('Internal blocks manager is currenlty disabled!', 'rmcommon'), RMMSG_WARN); } RMTemplate::get()->add_script('jquery.checkboxes.js', 'rmcommon'); //include RMCPATH . '/js/cu-js-language.php'; xoops_cp_header(); // Available Widgets $blocks = RMBlocksFunctions::get_available_list($modules); foreach ($blocks as $id => $block) { if (empty($block['blocks'])) { continue; } foreach ($block['blocks'] as $bid => $val) { $str = isset($val['show_func']) ? $val['show_func'] : ''; $str .= isset($val['edit_func']) ? $val['edit_func'] : ''; $str .= isset($val['dir']) ? $val['dir'] : $id; $val['id'] = md5($str); $blocks[$id]['blocks'][$bid] = $val; } } // Position $the_position = isset($_GET['pos']) ? intval($_GET['pos']) : ''; // Parameters $mid = rmc_server_var($_GET, 'mid', 0); $subpage = isset($_GET['subpage']) ? $_GET['subpage'] : ''; $group = isset($_GET['group']) ? intval($_GET['group']) : 0; $visible = rmc_server_var($_GET, 'visible', -1); $pid = rmc_server_var($_GET, 'pos', 0); include RMTemplate::get()->get_template("rmc-blocks.php", 'module', 'rmcommon'); xoops_cp_footer(); }
/** * See RMModules::get_modules_list * @deprecated */ public function get_modules_list($active = -1) { trigger_error(sprintf(__('Method %s is deprecated. Use %s::%s instead.', 'rmcommon'), __METHOD__, 'RMModules', 'get_modules_list')); $status = 'all'; if ($active == 0) { $status = 'inactive'; } elseif ($active == 1) { $status = 'active'; } return RMModules::get_modules_list($status); }