diff --git a/e107_handlers/theme_handler.php b/e107_handlers/theme_handler.php index 53c93c362..a4ac85ebe 100644 --- a/e107_handlers/theme_handler.php +++ b/e107_handlers/theme_handler.php @@ -179,7 +179,7 @@ class e_theme - private static function parse_theme_php($path) + public static function parse_theme_php($path) { $CUSTOMPAGES = ""; $tp = e107::getParser(); @@ -290,17 +290,17 @@ class e_theme return $themeArray; } - private static function parse_theme_xml($path) + public static function parse_theme_xml($path) { $tp = e107::getParser(); $xml = e107::getXml(); // loadLanFiles($path, 'admin'); // Look for LAN files on default paths // layout should always be an array. - $xml->setOptArrayTags('layout,screenshots/image'); + $xml->setOptArrayTags('layout,screenshots/image,plugins/plugin'); $xml->setOptStringTags('menuPresets,customPages,custompages'); - +// // $vars = $xml->loadXMLfile(e_THEME.$path.'/theme.xml', true, true); // $oldvars = $vars = $xml->loadXMLfile(e_THEME.$path.'/theme.xml', 'advanced', true); // must be 'advanced' @@ -434,11 +434,11 @@ class e_theme } - if($path == "leasure" ) + if($path == "landingzero" ) { - // $mes->addDebug("

".$path."

"); - // $mes->addDebug(print_a($vars,true)); + e107::getMessage()->addDebug("

".$path."

"); + e107::getMessage()->addDebug(print_a($vars,true)); // $mes->addDebug("
"); } @@ -996,7 +996,7 @@ class themeHandler $srch = preg_replace('/[^\w]/','', vartrue($_GET['srch'])); // check for cURL - if(!function_exists(curl_init)) + if(!function_exists('curl_init')) { $mes->addWarning(TPVLAN_79); } @@ -1794,15 +1794,11 @@ class themeHandler ".TPVLAN_53." "; - - if(varset($theme['plugins'])) - { - foreach ($theme['plugins'] as $key=>$val) + + if(!empty($theme['plugins']['plugin'])) { - $text .= $this->renderPlugins($theme['plugins']); - $text .= " "; + $text .= $this->renderPlugins($theme['plugins']['plugin']); } - } $text .= "  "; @@ -2243,10 +2239,12 @@ class themeHandler global $frm,$sql; // if there is 1 entry, then it's not the same array. - $tmp = (varset($pluginOpts['plugin'][1])) ? $pluginOpts['plugin'] : $pluginOpts; + // $tmp = (varset($pluginOpts['plugin'][1])) ? $pluginOpts['plugin'] : $pluginOpts; $text = ""; + + - foreach ($tmp as $p) + foreach ($pluginOpts as $p) { $plug = trim($p['@attributes']['name']); @@ -2598,277 +2596,13 @@ class themeHandler function parse_theme_php($path) { - $CUSTOMPAGES = ""; - $tp = e107::getParser(); - $fp = fopen(e_THEME.$path."/theme.php", "r"); - $themeContents = fread($fp, filesize(e_THEME.$path."/theme.php")); - fclose($fp); - - - preg_match('/themename(\s*?=\s*?)("|\')(.*?)("|\');/si', $themeContents, $match); - $themeArray['name'] = varset($match[3], ''); - preg_match('/themeversion(\s*?=\s*?)("|\')(.*?)("|\');/si', $themeContents, $match); - $themeArray['version'] = varset($match[3], ''); - preg_match('/themeauthor(\s*?=\s*?)("|\')(.*?)("|\');/si', $themeContents, $match); - $themeArray['author'] = varset($match[3], ''); - preg_match('/themeemail(\s*?=\s*?)("|\')(.*?)("|\');/si', $themeContents, $match); - $themeArray['email'] = varset($match[3], ''); - preg_match('/themewebsite(\s*?=\s*?)("|\')(.*?)("|\');/si', $themeContents, $match); - $themeArray['website'] = varset($match[3], ''); - preg_match('/themedate(\s*?=\s*?)("|\')(.*?)("|\');/si', $themeContents, $match); - $themeArray['date'] = varset($match[3], ''); - preg_match('/themeinfo(\s*?=\s*?)("|\')(.*?)("|\');/si', $themeContents, $match); - $themeArray['info'] = varset($match[3], ''); - preg_match('/xhtmlcompliant(\s*?=\s*?)(\S*?);/si', $themeContents, $match); - $xhtml = strtolower($match[2]); - $themeArray['xhtmlcompliant'] = ($xhtml == "true" ? "1.1" : false); - - preg_match('/csscompliant(\s*?=\s*?)(\S*?);/si', $themeContents, $match); - $css = strtolower($match[2]); - $themeArray['csscompliant'] = ($css == "true" ? "2.1" : false); - - /* preg_match('/CUSTOMPAGES(\s*?=\s*?)("|\')(.*?)("|\');/si', $themeContents, $match); - $themeArray['custompages'] = array_filter(explode(" ",$match[3]));*/ - - $themeContentsArray = explode("\n", $themeContents); - - preg_match_all("#\\$"."CUSTOMHEADER\[(\"|')(.*?)('|\")\].*?#",$themeContents,$match); - $customHeaderArray = $match[2]; - - preg_match_all("#\\$"."CUSTOMFOOTER\[(\"|')(.*?)('|\")\].*?#",$themeContents,$match); - $customFooterArray = $match[2]; - - if(!$themeArray['name']) - { - unset($themeArray); - } - - - $lays['legacyDefault']['@attributes'] = array('title'=>'Default', - 'plugins'=>'', - 'default'=>'true'); - - // load custompages from theme.php only when theme.xml doesn't exist. - if(!file_exists(e_THEME.$path."theme.xml")) - { - foreach ($themeContentsArray as $line) - { - if(strstr($line, "CUSTOMPAGES")) - { - eval(str_replace("$", "\$", $line)); // detect arrays also. - } - } - - if(is_array($CUSTOMPAGES)) - { - foreach ($CUSTOMPAGES as $key=>$val) - { - $themeArray['custompages'][$key] = explode(" ", $val); - } - } - elseif($CUSTOMPAGES) - { - $themeArray['custompages']['legacyCustom'] = explode(" ", $CUSTOMPAGES); - $lays['legacyCustom']['@attributes'] = array('title'=>'Custom', - 'plugins'=>''); - } - - - foreach($customHeaderArray as $tm) - { - $lays[$tm]['@attributes'] = array('title'=>str_replace("_"," ",$tm), - 'plugins'=>''); - } - - foreach($customFooterArray as $tm) - { - $lays[$tm]['@attributes'] = array('title'=>str_replace("_"," ",$tm), - 'plugins'=>''); - } - } - - $themeArray['path'] = $path; - $themeArray['layouts'] = $lays; - - if(file_exists(e_THEME.$path."/preview.jpg")) - { - $themeArray['preview'] = array("preview.jpg"); - $themeArray['thumbnail'] = "preview.jpg"; - } - - if(file_exists(e_THEME.$path."/preview.png")) - { - $themeArray['preview'] = array("preview.png"); - $themeArray['thumbnail'] = "preview.png"; - } - // echo "

".$themeArray['name']."

"; - // print_a($lays); - - return $themeArray; + return e_theme::parse_theme_php($path); } function parse_theme_xml($path) { - $tp = e107::getParser(); - $xml = e107::getXml(); - - // loadLanFiles($path, 'admin'); // Look for LAN files on default paths - // layout should always be an array. - $xml->setOptArrayTags('layout,screenshots/image'); - $xml->setOptStringTags('menuPresets,customPages,custompages'); - - - // $vars = $xml->loadXMLfile(e_THEME.$path.'/theme.xml', true, true); - // $oldvars = - $vars = $xml->loadXMLfile(e_THEME.$path.'/theme.xml', 'advanced', true); // must be 'advanced' - - if($path == "bootstrap3" ) - { - // echo " - // - //
oldnew parser
".print_a($oldvars,true)."".print_a($vars,true)."
"; - } - - - $vars['name'] = varset($vars['@attributes']['name']); - $vars['version'] = varset($vars['@attributes']['version']); - $vars['date'] = varset($vars['@attributes']['date']); - $vars['compatibility'] = varset($vars['@attributes']['compatibility']); - $vars['releaseUrl'] = varset($vars['@attributes']['releaseUrl']); - $vars['email'] = varset($vars['author']['@attributes']['email']); - $vars['website'] = varset($vars['author']['@attributes']['url']); - $vars['author'] = varset($vars['author']['@attributes']['name']); - $vars['info'] = varset($vars['description']); - $vars['category'] = $this->getThemeCategory(varset($vars['category'])); - $vars['xhtmlcompliant'] = varset($vars['compliance']['@attributes']['xhtml']); - $vars['csscompliant'] = varset($vars['compliance']['@attributes']['css']); - $vars['path'] = $path; - $vars['@attributes']['default'] = (varset($vars['@attributes']['default']) && strtolower($vars['@attributes']['default']) == 'true') ? 1 : 0; - $vars['preview'] = varset($vars['screenshots']['image']); - $vars['thumbnail'] = varset($vars['preview'][0]); - - if(!empty($vars['themePrefs'])) - { - - foreach($vars['themePrefs']['pref'] as $k=>$val) - { - $name = $val['@attributes']['name']; - $vars['preferences'][$name] = $val['@value']; - } - } + return e_theme::parse_theme_xml($path); - - unset($vars['authorEmail'], $vars['authorUrl'], $vars['xhtmlCompliant'], $vars['cssCompliant'], $vars['description'],$vars['screenshots']); - - // Compile layout information into a more usable format. - - - $custom = array(); - /* - foreach ($vars['layouts'] as $layout) - { - foreach ($layout as $key=>$val) - { - $name = $val['@attributes']['name']; - unset($val['@attributes']['name']); - $lays[$name] = $val; - - - if(isset($val['customPages'])) - { - $cusArray = explode(" ", $val['customPages']); - $custom[$name] = array_filter($cusArray); - } - if(isset($val['custompages'])) - { - $cusArray = explode(" ", $val['custompages']); - $custom[$name] = array_filter(explode(" ", $val['custompages'])); - } - } - } - */ - - foreach($vars['layouts']['layout'] as $k=>$val) - { - $name = $val['@attributes']['name']; - unset($val['@attributes']['name']); - $lays[$name] = $val; - - - if(isset($val['custompages'])) - { - if(is_string($val['custompages'])) - { - $custom[$name] = array_filter(explode(" ", $val['custompages'])); - } - elseif(is_array($val['custompages'])) - { - $custom[$name] = $val['custompages']; - } - } - } - - - $vars['layouts'] = $lays; - $vars['path'] = $path; - $vars['custompages'] = $custom; - - if(vartrue($vars['stylesheets']['css'])) - { - $vars['css'] = array(); - - foreach($vars['stylesheets']['css'] as $val) - { - $notadmin = vartrue($val['@attributes']['admin']) ? false : true; - - $vars['css'][] = array("name" => $val['@attributes']['file'], "info"=> $val['@attributes']['name'], "nonadmin"=>$notadmin, 'scope'=> vartrue($val['@attributes']['scope'])); - } - - unset($vars['stylesheets']); - } - - - $vars['glyphs'] = array(); - if(!empty($vars['glyphicons']['glyph'])) - { - - foreach($vars['glyphicons']['glyph'] as $val) - { - $vars['glyphs'][] = array( - 'name' => $val['@attributes']['name'], - 'pattern' => $val['@attributes']['pattern'], - 'path' => $val['@attributes']['path'], - 'prefix' => $val['@attributes']['prefix'], - 'tag' => $val['@attributes']['tag'], - ); - - } - - unset($vars['glyphicons']); - - } - - - // - - $mes = e107::getMessage(); // DEBUG - - if($path == "leasure" ) - { - - // $mes->addDebug("

".$path."

"); - // $mes->addDebug(print_a($vars,true)); - // $mes->addDebug("
"); - } - - if($path == "bootstrap3" ) - { - // print_a($vars); - // echo "
".print_a($vars,true)."".print_a($adv,true)."
"; - } - - - return $vars; }