]> git.mxchange.org Git - friendica.git/commitdiff
Change logic in admin.php to load plugin settings form. Add statusnet settings form.
authorfabrixxm <fabrix.xm@gmail.com>
Sun, 19 Jun 2011 13:43:10 +0000 (15:43 +0200)
committerfabrixxm <fabrix.xm@gmail.com>
Sun, 19 Jun 2011 13:43:10 +0000 (15:43 +0200)
addon/statusnet/admin.tpl [new file with mode: 0644]
addon/statusnet/statusnet.php
addon/twitter/twitter.php
mod/admin.php

diff --git a/addon/statusnet/admin.tpl b/addon/statusnet/admin.tpl
new file mode 100644 (file)
index 0000000..b40adf3
--- /dev/null
@@ -0,0 +1,16 @@
+{{ for $sites as $s }}
+       {{ inc field_input.tpl with $field=$s.sitename }}{{ endinc }}
+       {{ inc field_input.tpl with $field=$s.apiurl }}{{ endinc }}
+       {{ inc field_input.tpl with $field=$s.secret }}{{ endinc }}
+       {{ inc field_input.tpl with $field=$s.key }}{{ endinc }}
+       {{ if $s.delete }}
+               {{ inc field_checkbox.tpl with $field=$s.delete }}{{ endinc }}
+               <hr>
+       {{ else }}
+               <p>Fill this form to add a new site</p>
+       {{ endif }}
+       
+{{ endfor }}
+
+
+<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
index e24ebc1ee03df17752ad484c45eb25e71013e287..cb0f87764649804415c49c73bd1a19ba96ab42e8 100644 (file)
@@ -59,7 +59,6 @@ function statusnet_install() {
        register_hook('plugin_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post');
        register_hook('post_local_end', 'addon/statusnet/statusnet.php', 'statusnet_post_hook');
        register_hook('jot_networks',    'addon/statusnet/statusnet.php', 'statusnet_jot_nets');
-
        logger("installed statusnet");
 }
 
@@ -350,3 +349,66 @@ function statusnet_post_hook(&$a,&$b) {
     }
 }
 
+function statusnet_plugin_admin_post(&$a){
+       
+       $sites = array();
+       
+       foreach($_POST['sitename'] as $id=>$sitename){
+               $sitename=trim($sitename);
+               $apiurl=trim($_POST['apiurl'][$id]);
+               $secret=trim($_POST['secret'][$id]);
+               $key=trim($_POST['key'][$id]);
+               if ($sitename!="" &&
+                       $apiurl!="" &&
+                       $secret!="" &&
+                       $key!="" &&
+                       !x($_POST['delete'][$id])){
+                               
+                               $sites[] = Array(
+                                       'sitename' => $sitename,
+                                       'apiurl' => $apiurl,
+                                       'secret' => $secret,
+                                       'key' => $key
+                               );
+               }
+       }
+       
+       $sites = set_config('statusnet','sites', $sites);
+       
+}
+
+function statusnet_plugin_admin(&$a, &$o){
+
+       $sites = get_config('statusnet','sites');
+       $sitesform=array();
+       if (is_array($sites)){
+               foreach($sites as $id=>$s){
+                       $sitesform[] = Array(
+                               'sitename' => Array("sitename[$id]", "Site name", $s['sitename'], ""),
+                               'apiurl' => Array("apiurl[$id]", "Api url", $s['apiurl'], ""),
+                               'secret' => Array("secret[$id]", "Secret", $s['secret'], ""),
+                               'key' => Array("key[$id]", "Key", $s['key'], ""),
+                               'delete' => Array("delete[$id]", "Delete", False , "Check to delete this preset"),
+                       );
+               }
+       }
+       /* empty form to add new site */
+       $id++;
+       $sitesform[] = Array(
+               'sitename' => Array("sitename[$id]", "Site name", "", ""),
+               'apiurl' => Array("apiurl[$id]", "Api url", "", ""),
+               'secret' => Array("secret[$id]", "Secret", "", ""),
+               'key' => Array("key[$id]", "Key", "", ""),
+       );
+
+       
+       $t = file_get_contents( dirname(__file__). "/admin.tpl" );
+       $o = replace_macros($t, array(
+               '$submit' => t('Submit'),
+                                                       
+               '$sites' => $sitesform,
+               
+       ));
+       
+       
+}
index 3141cf0c94db666c58febb1c4c1d8ceb6b376d1e..aeb9cc9376f765a643a77090d5865d3b2a203ea8 100644 (file)
@@ -47,7 +47,6 @@ function twitter_install() {
        register_hook('plugin_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
        register_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook');
        register_hook('jot_networks', 'addon/twitter/twitter.php', 'twitter_jot_nets');
-       register_hook('plugin_admin', 'addon/twitter/twitter.php', 'plugin_admin');
        logger("installed twitter");
 }
 
@@ -57,7 +56,6 @@ function twitter_uninstall() {
        unregister_hook('plugin_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
        unregister_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook');
        unregister_hook('jot_networks', 'addon/twitter/twitter.php', 'twitter_jot_nets');
-       unregister_hook('plugin_admin', 'addon/twitter/twitter.php', 'plugin_admin');
 }
 
 function twitter_jot_nets(&$a,&$b) {
@@ -242,14 +240,15 @@ function twitter_post_hook(&$a,&$b) {
                }
        }
 }
-function plugin_admin_post(&$a){
+
+function twitter_plugin_admin_post(&$a){
        $consumerkey    =       ((x($_POST,'consumerkey'))              ? notags(trim($_POST['consumerkey']))   : '');
        $consumersecret =       ((x($_POST,'consumersecret'))   ? notags(trim($_POST['consumersecret'])): '');
        set_config('twitter','consumerkey',$consumerkey);
        set_config('twitter','consumersecret',$consumersecret);
        info( t('Settings updated.'). EOL );
 }
-function plugin_admin(&$a, &$o){
+function twitter_plugin_admin(&$a, &$o){
        $t = file_get_contents( dirname(__file__). "/admin.tpl" );
        $o = replace_macros($t, array(
                '$submit' => t('Submit'),
index 1ae0490e8daa8ccaba7946c13ff3655a8c47b591..df5b6600abab2ecd7aeeeaa70aef605db3ed65fd 100644 (file)
@@ -29,8 +29,9 @@ function admin_post(&$a){
                                if ($a->argc > 2 && 
                                        is_file("addon/".$a->argv[2]."/".$a->argv[2].".php")){
                                                @include_once("addon/".$a->argv[2]."/".$a->argv[2].".php");
-                                               if(function_exists('plugin_admin_post')) {
-                                                       plugin_admin_post($a);
+                                               if(function_exists($a->argv[2].'_plugin_admin_post')) {
+                                                       $func = $a->argv[2].'_plugin_admin_post';
+                                                       $func($a);
                                                }
                                }
                                goaway($a->get_baseurl() . '/admin/plugins/' . $a->argv[2] );
@@ -65,10 +66,10 @@ function admin_content(&$a) {
        
        /* get plugins admin page */
        
-       $r = q("SELECT * FROM `hook` WHERE `hook`='plugin_admin'");
+       $r = q("SELECT * FROM `addon` WHERE `plugin_admin`=1");
        $aside['plugins_admin']=Array();
        foreach ($r as $h){
-               $plugin = explode("/",$h['file']); $plugin = $plugin[1];
+               $plugin =$h['name'];
                $aside['plugins_admin'][] = Array($a->get_baseurl()."/admin/plugins/".$plugin, $plugin, "plugin");
                // temp plugins with admin
                $a->plugins_admin[] = $plugin;
@@ -526,7 +527,9 @@ function admin_page_plugins(&$a){
                
                $admin_form="";
                if (in_array($plugin, $a->plugins_admin)){
-                       call_hooks('plugin_admin', $admin_form);
+                       @require_once("addon/$plugin/$plugin.php");
+                       $func = $plugin.'_plugin_admin';
+                       $func($a, $admin_form);
                }
                
                $t = get_markup_template("admin_plugins_details.tpl");