]> git.mxchange.org Git - friendica-addons.git/commitdiff
New addon: Default Features - allow admin to turn some Additional Features on by...
authorMichael Johnston <michaelgeorgejohnston@gmail.com>
Mon, 4 Mar 2013 01:12:42 +0000 (20:12 -0500)
committerMichael Johnston <michaelgeorgejohnston@gmail.com>
Mon, 4 Mar 2013 01:12:42 +0000 (20:12 -0500)
defaultfeatures/README [new file with mode: 0644]
defaultfeatures/defaultfeatures.php [new file with mode: 0755]
defaultfeatures/view/admin.tpl [new file with mode: 0644]
defaultfeatures/view/smarty3/admin.tpl [new file with mode: 0644]

diff --git a/defaultfeatures/README b/defaultfeatures/README
new file mode 100644 (file)
index 0000000..cc45cbf
--- /dev/null
@@ -0,0 +1,7 @@
+Default Features Plugin
+
+This plugin allows the site admin to choose which Additional Features
+ are on by default for newly created users on the site. The defaults 
+ apply to all new users upon registration, but do not impact a user's
+ ability to turn features on/off once their account has been created.
+These default settings do not impact existing users.
diff --git a/defaultfeatures/defaultfeatures.php b/defaultfeatures/defaultfeatures.php
new file mode 100755 (executable)
index 0000000..ad6a181
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Name: Default Features
+ * Description: Choose which Additional Features are on by default for new users on the site.
+ * Version: 1.0
+ * Author: Michael Johnston
+ */
+
+function defaultfeatures_install() {
+    register_hook('register_account', 'addon/defaultfeatures/defaultfeatures.php', 'defaultfeatures_register');
+    logger("installed defaultfeatures plugin");
+}
+
+function defaultfeatures_uninstall() {
+    unregister_hook('register_account', 'addon/defaultfeatures/defaultfeatures.php', 'defaultfeatures_register');
+    logger("uninstalled defaultfeatures plugin");
+}
+
+function defaultfeatures_register($a, $newuid) {
+    $arr = array();
+    $features = get_features();
+    foreach($features as $fname => $fdata) {
+           foreach(array_slice($fdata,1) as $f) {
+                    set_pconfig($newuid,'feature',$f[0],((intval(get_config('defaultfeatures',$f[0]))) ? "1" : "0"));
+           }
+    }
+}
+
+function defaultfeatures_plugin_admin_post (&$a) {
+    check_form_security_token_redirectOnErr('/admin/plugins/defaultfeatures', 'admin_themes');
+    foreach($_POST as $k => $v) {
+           if(strpos($k,'feature_') === 0) {
+                   set_config('defaultfeatures',substr($k,8),((intval($v)) ? 1 : 0));
+           }
+    }
+    info( t('Features updated') . EOL);
+}
+
+function defaultfeatures_plugin_admin (&$a, &$o) {
+    $t = get_markup_template( "admin.tpl", "addon/defaultfeatures/" );
+    $arr = array();
+    $features = get_features();
+    foreach($features as $fname => $fdata) {
+           $arr[$fname] = array();
+           $arr[$fname][0] = $fdata[0];
+           foreach(array_slice($fdata,1) as $f) {
+                   $arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(get_config('defaultfeatures',$f[0]))) ? "1" : "0"),$f[2],array(t('Off'),t('On')));
+           }
+    }
+
+    //logger("Features: " . print_r($arr,true));
+
+    $o = replace_macros($t, array(
+        '$submit' => t('Submit'),
+        '$features' => $arr
+    ));
+}
diff --git a/defaultfeatures/view/admin.tpl b/defaultfeatures/view/admin.tpl
new file mode 100644 (file)
index 0000000..e7793d3
--- /dev/null
@@ -0,0 +1,9 @@
+<input type='hidden' name='form_security_token' value='$form_security_token'>
+{{ for $features as $f }}
+<h3 class="settings-heading">$f.0</h3>
+
+{{ for $f.1 as $fcat }}
+       {{ inc field_yesno.tpl with $field=$fcat }}{{endinc}}
+{{ endfor }}
+{{ endfor }}
+<div class="submit"><input type="submit" name="defaultfeatures-submit" value="$submit" /></div>
diff --git a/defaultfeatures/view/smarty3/admin.tpl b/defaultfeatures/view/smarty3/admin.tpl
new file mode 100644 (file)
index 0000000..3fbda38
--- /dev/null
@@ -0,0 +1,14 @@
+{{*
+ *     AUTOMATICALLY GENERATED TEMPLATE
+ *     DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
+ *
+ *}}
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+{{foreach $features as $f}}
+<h3 class="settings-heading">{{$f.0}}</h3>
+
+{{foreach $f.1 as $fcat}}
+       {{include file="field_yesno.tpl" field=$fcat}}
+{{/foreach}}
+{{/foreach}}
+<div class="submit"><input type="submit" name="defaultfeatures-submit" value="{{$submit}}" /></div>