loadHTML(static::default_page($_escaped_fragment_ ? $_escaped_fragment_ : true)); if($error = \libxml_get_last_error()){ //new \SYSTEM\LOG\ERROR('Parse Error: '.$error->message.' line:'.$error->line.' html: '.$html->saveHTML()); \libxml_clear_errors();} $state = \SYSTEM\PAGE\State::get(static::get_apigroup(), $_escaped_fragment_ ? $_escaped_fragment_ : static::get_default_state(),false); foreach($state as $row){ $frag = new \DOMDocument(); parse_str(\parse_url($row['url'],PHP_URL_QUERY), $params); $class = static::get_class(); if($class){ $frag->loadHTML(mb_convert_encoding(\SYSTEM\API\api::run('\SYSTEM\API\verify', $class, $params, static::get_apigroup(), true, false),'HTML-ENTITIES', 'UTF-8')); if($error = \libxml_get_last_error()){ //new \SYSTEM\LOG\ERROR('Parse Error: '.$error->message.' line:'.$error->line.' html: '.$frag->saveHTML()); \libxml_clear_errors();} $html->getElementById(substr($row['div'], 1))->appendChild($html->importNode($frag->documentElement, true)); //Load subpage css foreach($row['css'] as $css){ $css_frag = new \DOMDocument(); $css_frag->loadHTML(''); $html->getElementsByTagName('head')[0]->appendChild($html->importNode($css_frag->documentElement,true)); } } } //Title if((count($state)>=1) && array_key_exists('title', $state[0])){ $html->getElementsByTagName('title')[0]->nodeValue = $state[0]['title'];} //Meta if((count($state)>=1) && array_key_exists('meta', $state[0])){ $meta = $html->getElementsByTagName('meta');//[0]->nodeValue = $state[0]['title']; foreach($state[0]['meta'] as $metaname=>$metavalue){ $found = false; $key = explode('_',$metaname); $key = end($key); for ($i = 0; $i < $meta->length; $i++) { if($meta->item($i)->getAttribute('name') == $key){ $found = true; $meta->item($i)->setAttribute('content',$metavalue);} } if(!$found){ $node = $head->appendChild($html->createElement('meta')); $node->setAttribute($key, $metavalue);} } } //print_r($state); echo $html->saveHTML(); new \SYSTEM\LOG\COUNTER("API was called sucessfully."); die(); } /** * API Class function - implement this function and return the Classname * * @return string Returns your API-Class name */ public static function get_class(){ return self::class;} }