') . EOL; $htmlAttributes = Hypertext::attributes($head['attributes']['html'] ?? $masterPageSet['attributes']['html']); $header .= ''.EOL; $header .= ''.EOL; $header .= $this->_contentCharset($head['content']['charset'] ?? $masterPageSet['content']['charset']); $header .= $this->_contentLanguage($head['content']['language'] ?? $masterPageSet['content']['language']); $header .= $this->_title($head['title'] ?? $masterPageSet["title"]); $header .= $this->_meta($masterPageSet['meta'], $head['meta'] ?? NULL); $header .= $this->_links($masterPageSet, $head, 'Font'); $header .= $this->_links($masterPageSet, $head, 'Style'); $header .= $this->_links($masterPageSet, $head, 'Script'); $header .= $this->_browserIcon($head['browserIcon'] ?? $masterPageSet["browserIcon"]); $header .= $this->_theme($masterPageSet, $head); $header .= $this->_theme($masterPageSet, $head, 'plugin'); $header .= $this->_setpage($head['headPage'] ?? $masterPageSet['headPage'], $viewDirectory); $header .= ''.EOL; $header .= '_bgImage($head['backgroundImage'] ?? $masterPageSet["backgroundImage"]).'>'.EOL; echo $header; $randomPageVariable = $head['bodyPage'] ?? $masterPageSet['bodyPage']; if( ! empty($randomPageVariable) ) { $randomDataVariable['view'] = $bodyContent; View::use($randomPageVariable, $randomDataVariable, false, $viewDirectory); } else { echo $bodyContent; // @codeCoverageIgnore } $randomFooterVariable = EOL.''.EOL; $randomFooterVariable .= ''; echo $randomFooterVariable; } /** * Protected Content Charset */ protected function _contentCharset($contentCharset) { $header = ''; if( is_array($contentCharset) ) { foreach( $contentCharset as $v ) { $header .= "" . EOL; } } else { $header .= '' . EOL; // @codeCoverageIgnore } return $header; } /** * Protected Content Language */ protected function _contentLanguage($contentLanguage) { return ''.EOL; } /** * Protected Background Image */ protected function _bgImage($backgroundImage) { $bgImage = ( ! empty($backgroundImage) && is_file($backgroundImage) ) ? ' background="'.Request::getBaseURL($backgroundImage).'" bgproperties="fixed"' // @codeCoverageIgnore : ''; return $bgImage; } /** * Protected Browser Icon */ protected function _browserIcon($browserIcon) { if( ! empty($browserIcon) && is_file($browserIcon) ) { return ''.EOL; // @codeCoverageIgnore } return NULL; } /** * Protected Title */ protected function _title($title) { if( ! empty($title) ) { return ''.$title.''.EOL; } return NULL; // @codeCoverageIgnore } /** * Protected Meta Data */ protected function _meta($metas, $headMeta) { if( $headMeta !== NULL ) { $metas = array_merge($metas, $headMeta); } $header = ''; if( ! empty($metas) ) foreach( $metas as $name => $content ) { if( isset($headMeta[$name]) ) { $content = $headMeta[$name]; } if( ! empty($content) ) { $nameEx = explode(':', $name); $httpOrName = ( $nameEx[0] === 'http' ) ? 'http-equiv' : ( isset($nameEx[1]) ? $nameEx[0] : 'name' ); array_shift($nameEx); $name = implode(':', $nameEx); if( ! is_array($content) ) { $header .= "".EOL; } else { // @codeCoverageIgnoreStart foreach( $content as $key => $val ) { $header .= "".EOL; } // @codeCoverageIgnoreEnd } } } return $header; } /** * Protected Theme */ protected function _theme($masterPageSet, $head, $type = 'theme') { $theme = array_diff(array_merge((array) ($masterPageSet[$type]['name'] ?? []), (array) ($head[$type]['name'] ?? [])), ['']); if( ! empty($theme) ) { return Package::$type($theme, ($head[$type]['recursive'] ?? $masterPageSet[$type]['recursive']), true); } return NULL; // @codeCoverageIgnore } /** * Protected Links */ protected function _links($masterPageSet, $head, $type) { $header = ''; $class = 'ZN\Inclusion\\' . $type; if( empty($masterPageSet[$type]) && empty($head[$type]) ) { return false; } // @codeCoverageIgnoreStart $params = $masterPageSet[$type]; if( ! is_array($params) ) { $params = [$params, true]; } else { $params[] = true; } $header .= $class::use(...$params); if( isset($head[$type]) ) { if( is_string($head[$type]) ) { $headLinks = [$head[$type], true]; } else { $head[$type][] = true; $headLinks = $head[$type]; } $header .= $class::use(...$headLinks); } return $header; // @codeCoverageIgnoreEnd } /** * Protected Set Page */ protected function _setpage($page, $viewDirectory) { if( ! empty($page) ) { $return = ''; # Single Masterpage if( ! is_array($page) ) { $return .= View::use($page, NULL, true, $viewDirectory).EOL; } else { // @codeCoverageIgnoreStart # Multiple Masterpage foreach( $page as $p ) { $return .= View::use($p, NULL, true, $viewDirectory).EOL; } // @codeCoverageIgnoreEnd } return $return; } return false; // @codeCoverageIgnore } }