function fn() { global $page; $args = func_get_args(); $method = $args[0]; $opts = array_slice($args, 1); //quick methods $quick = trim(strtolower(str_replace(array(' ', '_', '-'), array('', '', ''), $method))); switch ($quick) { case 'load': case 'add': $key = $opts[0]; $opts = array_slice($opts, 1); fn::add_object($key, $opts); return true; break; case 'isajax': return fn::is_ajax(); break; case 'isbh': case 'isoffice': case 'isbowhouse': return bh; break; case 'page.metatitle': return fn::data('page.meta_title', $args[1]); break; case 'page.metadescription': return fn::data('page.meta_description', $args[1]); break; case 'page.metakeywords': return fn::data('page.meta_keywords', $args[1]); break; case 'page.scripts': $scripts = fn::data('page.scripts'); if (!is_array($scripts)) { $scripts = array(); } if ($args[1]) { $scripts[] = $args[1]; } fn::data('page.scripts', $scripts); return $scripts; break; case 'page.styles': $styles = fn::data('page.styles'); if (!is_array($styles)) { $styles = array(); } if ($args[1]) { $styles[] = $args[1]; } fn::data('page.styles', $styles); return $styles; break; case 'site.header': require_once int . ext . templates . template . '/header.php'; return; break; case 'site.footer': require_once int . ext . templates . template . '/footer.php'; return; break; } $ps = explode('.', $method); $newopts = $opts[0]; return fn::call_object($ps[0], $ps[1], $opts); }