X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fplugin.php;h=e37ae84357e2bba73d9a702ba3bb2fb6993d1fe9;hb=355c42cb309eb1313097411067ca999b699aa620;hp=85b51edff506c5378db13f8fd8caf939a6e33c0e;hpb=cafd4003522a472d2709569ea5eb5f80b817af23;p=friendica.git diff --git a/include/plugin.php b/include/plugin.php old mode 100755 new mode 100644 index 85b51edff5..e37ae84357 --- a/include/plugin.php +++ b/include/plugin.php @@ -166,17 +166,80 @@ function call_hooks($name, &$data = null) { if (! function_exists('get_plugin_info')){ function get_plugin_info($plugin){ - if (!is_file("addon/$plugin/$plugin.php")) return false; + $info=Array( + 'name' => $plugin, + 'description' => "", + 'author' => array(), + 'version' => "" + ); + + if (!is_file("addon/$plugin/$plugin.php")) return $info; $f = file_get_contents("addon/$plugin/$plugin.php"); $r = preg_match("|/\*.*\*/|msU", $f, $m); + if ($r){ + $ll = explode("\n", $m[0]); + foreach( $ll as $l ) { + $l = trim($l,"\t\n\r */"); + if ($l!=""){ + list($k,$v) = array_map("trim", explode(":",$l,2)); + $k= strtolower($k); + if ($k=="author"){ + $r=preg_match("|([^<]+)<([^>]+)>|", $v, $m); + if ($r) { + $info['author'][] = array('name'=>$m[1], 'link'=>$m[2]); + } else { + $info['author'][] = array('name'=>$v); + } + } else { + if (array_key_exists($k,$info)){ + $info[$k]=$v; + } + } + + } + } + + } + return $info; +}} + + +/* + * parse theme comment in search of theme infos. + * like + * + * * Name: My Theme + * * Description: My Cool Theme + * * Version: 1.2.3 + * * Author: John + * * Maintainer: Jane + * * + */ + +if (! function_exists('get_theme_info')){ +function get_theme_info($theme){ $info=Array( - 'name' => $plugin, + 'name' => $theme, 'description' => "", 'author' => array(), - 'version' => "" + 'maintainer' => array(), + 'version' => "", + 'experimental' => false, + 'unsupported' => false ); + + if(file_exists("view/theme/$theme/experimental")) + $info['experimental'] = true; + if(file_exists("view/theme/$theme/unsupported")) + $info['unsupported'] = true; + + if (!is_file("view/theme/$theme/theme.php")) return $info; + + $f = file_get_contents("view/theme/$theme/theme.php"); + $r = preg_match("|/\*.*\*/|msU", $f, $m); + if ($r){ $ll = explode("\n", $m[0]); @@ -186,12 +249,21 @@ function get_plugin_info($plugin){ list($k,$v) = array_map("trim", explode(":",$l,2)); $k= strtolower($k); if ($k=="author"){ + $r=preg_match("|([^<]+)<([^>]+)>|", $v, $m); if ($r) { $info['author'][] = array('name'=>$m[1], 'link'=>$m[2]); } else { $info['author'][] = array('name'=>$v); } + } + elseif ($k=="maintainer"){ + $r=preg_match("|([^<]+)<([^>]+)>|", $v, $m); + if ($r) { + $info['maintainer'][] = array('name'=>$m[1], 'link'=>$m[2]); + } else { + $info['maintainer'][] = array('name'=>$v); + } } else { if (array_key_exists($k,$info)){ $info[$k]=$v; @@ -205,3 +277,13 @@ function get_plugin_info($plugin){ return $info; }} + +function get_theme_screenshot($theme) { + $a = get_app(); + $exts = array('.png','.jpg'); + foreach($exts as $ext) { + if(file_exists('view/theme/' . $theme . '/screenshot' . $ext)) + return($a->get_baseurl() . '/view/theme/' . $theme . '/screenshot' . $ext); + } + return($a->get_baseurl() . '/images/blank.png'); +}