/** * method for getting all parsed blocks * @todo clearify what is going on * @param string $block * @return array blocks containing strings with html to display */ public static function parseBlock($block) { $blocks = array(); if (isset(conf::$vars['coscms_main'][$block], conf::$vars['coscms_main']['module'][$block])) { $blocks = array_merge(conf::$vars['coscms_main'][$block], conf::$vars['coscms_main']['module'][$block]); } else { if (isset(conf::$vars['coscms_main'][$block])) { $blocks = conf::$vars['coscms_main'][$block]; } else { if (isset(conf::$vars['coscms_main']['module'][$block])) { $blocks = conf::$vars['coscms_main']['module'][$block]; } else { return $blocks; } } } $ret_blocks = array(); foreach ($blocks as $val) { // numeric is custom block added to database if (is_numeric($val)) { moduleloader::includeModule('blocks'); $row = blocks::getOne($val); $row['content_block'] = moduleloader::getFilteredContent(conf::getModuleIni('blocks_filters'), $row['content_block']); $row['title'] = htmlspecialchars($row['title']); $content = view::get('blocks', 'block_html', $row); $ret_blocks[] = $content; continue; } if ($val == 'module_menu') { $ret_blocks[] = self::getMainMenu(); continue; } $func = explode('/', $val); $num = count($func) - 1; $func = explode('.', $func[$num]); $func = 'block_' . $func[0]; $path_to_function = conf::pathModules() . "/{$val}"; include_once $path_to_function; ob_start(); $ret = $func(); if ($ret) { $ret_blocks[] = $ret; } else { $ret_blocks[] = ob_get_contents(); ob_end_clean(); } } return $ret_blocks; }