Merge pull request #105 from unary/defaultfeatures
New addon: Default Features - allow admin to turn some Additional Featur...
This commit is contained in:
commit
24db1ccd08
|
@ -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.
|
|
@ -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
|
||||||
|
));
|
||||||
|
}
|
|
@ -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>
|
|
@ -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>
|
Loading…
Reference in New Issue
Block a user