]> git.mxchange.org Git - friendica.git/commitdiff
Suppress showing unsupported addons in the administration.
authorMichael Vogel <icarus@dabo.de>
Tue, 29 Apr 2014 12:22:37 +0000 (14:22 +0200)
committerMichael Vogel <icarus@dabo.de>
Tue, 29 Apr 2014 12:22:37 +0000 (14:22 +0200)
include/plugin.php
mod/admin.php

index 32962cd0c6e8882823fab6260e0f8cf0dcf8942a..f4861536c10726e6ff8b857d73872e49b61c4925 100644 (file)
@@ -197,14 +197,14 @@ function plugin_is_app($name) {
                                return true;
                }
        }
-       
+
        return false;
 }}
 
 /*
  * parse plugin comment in search of plugin infos.
  * like
- *     
+ *
  *      * Name: Plugin
  *   * Description: A plugin which plugs in
  *      * Version: 1.2.3
@@ -222,7 +222,8 @@ function get_plugin_info($plugin){
                'name' => $plugin,
                'description' => "",
                'author' => array(),
-               'version' => ""
+               'version' => "",
+               'status' => ""
        );
 
        if (!is_file("addon/$plugin/$plugin.php")) return $info;
index b7d5a5063690b2a930a850f950266481f4d7ff50..2d46184a0731f17fdca67017004d17264b23a02d 100644 (file)
@@ -329,7 +329,7 @@ function admin_page_site_post(&$a){
        $private_addons                 =       ((x($_POST,'private_addons'))           ? True                                          : False);
        $disable_embedded               =       ((x($_POST,'disable_embedded'))         ? True                                          : False);
        $allow_users_remote_self        =       ((x($_POST,'allow_users_remote_self'))          ? True                                          : False);
-       
+
        $no_multi_reg           =       ((x($_POST,'no_multi_reg'))             ? True                                          : False);
        $no_openid              =       !((x($_POST,'no_openid'))               ? True                                          : False);
        $no_regfullname         =       !((x($_POST,'no_regfullname'))          ? True                                          : False);
@@ -1028,13 +1028,24 @@ function admin_page_plugins(&$a){
         */
 
        $plugins = array();
-       $files = glob("addon/*/");
+       $files = glob("addon/*/"); /* */
        if($files) {
-               foreach($files as $file) {      
+               foreach($files as $file) {
                        if (is_dir($file)){
                                list($tmp, $id)=array_map("trim", explode("/",$file));
                                $info = get_plugin_info($id);
-                               $plugins[] = array( $id, (in_array($id,  $a->plugins)?"on":"off") , $info);
+                               $show_plugin = true;
+
+                               // If the addon is unsupported, then only show it, when it is enabled
+                               if ((strtolower($info["status"]) == "unsupported") AND !in_array($id,  $a->plugins))
+                                       $show_plugin = false;
+
+                               // Override the above szenario, when the admin really wants to see outdated stuff
+                               if (get_config("system", "show_unsupported_addons"))
+                                       $show_plugin = true;
+
+                               if ($show_plugin)
+                                       $plugins[] = array($id, (in_array($id,  $a->plugins)?"on":"off") , $info);
                        }
                }
        }
@@ -1045,7 +1056,7 @@ function admin_page_plugins(&$a){
                '$page' => t('Plugins'),
                '$submit' => t('Save Settings'),
                '$baseurl' => $a->get_baseurl(true),
-               '$function' => 'plugins',       
+               '$function' => 'plugins',
                '$plugins' => $plugins,
         '$form_security_token' => get_form_security_token("admin_themes"),
        ));
@@ -1127,16 +1138,16 @@ function admin_page_themes(&$a){
                                $allowed_themes[] = trim($x);
 
        $themes = array();
-    $files = glob('view/theme/*');
-    if($files) {
-        foreach($files as $file) {
-            $f = basename($file);
-            $is_experimental = intval(file_exists($file . '/experimental'));
+       $files = glob('view/theme/*'); /* */
+       if($files) {
+               foreach($files as $file) {
+                       $f = basename($file);
+                       $is_experimental = intval(file_exists($file . '/experimental'));
                        $is_supported = 1-(intval(file_exists($file . '/unsupported'))); // Is not used yet
                        $is_allowed = intval(in_array($f,$allowed_themes));
                        $themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
-        }
-    }
+               }
+       }
 
        if(! count($themes)) {
                notice( t('No themes found.'));
@@ -1272,12 +1283,12 @@ function admin_page_logs_post(&$a) {
                set_config('system','debugging',  $debugging);
                set_config('system','loglevel', $loglevel);
 
-               
+
        }
 
        info( t("Log settings updated.") );
        goaway($a->get_baseurl(true) . '/admin/logs' );
-       return; // NOTREACHED   
+       return; // NOTREACHED
 }
 
 /**
@@ -1285,7 +1296,7 @@ function admin_page_logs_post(&$a) {
  * @return string
  */
 function admin_page_logs(&$a){
-       
+
        $log_choices = Array(
                LOGGER_NORMAL => 'Normal',
                LOGGER_TRACE => 'Trace',
@@ -1293,7 +1304,7 @@ function admin_page_logs(&$a){
                LOGGER_DATA => 'Data',
                LOGGER_ALL => 'All'
        );
-       
+
        $t = get_markup_template("admin_logs.tpl");
 
        $f = get_config('system','logfile');
@@ -1325,7 +1336,7 @@ readable.");
                        }
                        fclose($fp);
                }
-       }                       
+       }
 
        return replace_macros($t, array(
                '$title' => t('Administration'),
@@ -1335,7 +1346,7 @@ readable.");
                '$data' => $data,
                '$baseurl' => $a->get_baseurl(true),
                '$logname' =>  get_config('system','logfile'),
-               
+
                                                                        // name, label, value, help string, extra data...
                '$debugging'            => array('debugging', t("Enable Debugging"),get_config('system','debugging'), ""),
                '$logfile'                      => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Friendica top-level directory.")),
@@ -1354,7 +1365,7 @@ function admin_page_remoteupdate_post(&$a) {
                return;
        }
 
-       
+
        if (x($_POST,'remotefile') && $_POST['remotefile']!=""){
                $remotefile = $_POST['remotefile'];
                $ftpdata = (x($_POST['ftphost'])?$_POST:false);
@@ -1377,14 +1388,14 @@ function admin_page_remoteupdate(&$a) {
 
        $canwrite = canWeWrite();
        $canftp = function_exists('ftp_connect');
-       
+
        $needupdate = true;
        $u = checkUpdate();
        if (!is_array($u)){
                $needupdate = false;
                $u = array('','','');
        }
-       
+
        $tpl = get_markup_template("admin_remoteupdate.tpl");
        return replace_macros($tpl, array(
                '$baseurl' => $a->get_baseurl(true),
@@ -1401,5 +1412,5 @@ function admin_page_remoteupdate(&$a) {
                '$ftppwd'       => array('ftppwd', t("FTP Password"), '',''),
                '$remotefile'=>array('remotefile','', $u['2'],''),
        ));
-       
+
 }