function run($default_template) { //set template paths $Path = apply_filters("WXP.get_paths_object", new Path()); do_action("WXP.set_template_paths", $Path); //template paths can now be accessed via WXP::get_template_paths WXP::setPaths($Path); //allow override of global View object $View = apply_filters("WXP.get_global_view", View::getInstance()); //make View observable $View = new Observer("View", $View); //set global View object variable for easy access $View->add("wxp_global_view", $View); //set default render path $View->set_render_path($default_template)->add("wxp_default_render_path", $default_template)->add("wxp_allow_plugin_template_override", true); //do dom routing action $router = apply_filters("WXP.get_dom_router", DomRouter::getInstance()); //make router observable; $router = new Observer("DomRouter", $router); do_action("WXP.set_dom_routes", $router); $router->route(); //now include view.php; which will render the global view return apply_filters("WXP.view_render_page", WXP::DS(get_template_directory() . "/view.php")); }