New addon: Default Features - allow admin to turn some Additional Features on by default for new users.

This commit is contained in:
Michael Johnston 2013-03-03 20:12:42 -05:00
parent 94f1e23071
commit 98e4c7e26d
4 changed files with 87 additions and 0 deletions

7
defaultfeatures/README Normal file
View file

@ -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.

View file

@ -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
));
}

View file

@ -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>

View file

@ -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>