2012-11-22 11:20:03 -05:00
< ? php
2015-11-11 16:36:14 -05:00
/**
* @ file include / features . php *
* @ brief Features management
2012-11-22 11:20:03 -05:00
*/
2015-11-11 16:36:14 -05:00
/**
* @ brief check if feature is enabled
*
* return boolean
*/
2012-11-22 11:20:03 -05:00
function feature_enabled ( $uid , $feature ) {
//return true;
$x = get_pconfig ( $uid , 'feature' , $feature );
2015-11-11 16:36:14 -05:00
if ( $x === false ) {
$x = get_config ( 'feature' , $feature );
if ( $x === false )
$x = get_feature_default ( $feature );
}
2012-11-22 11:20:03 -05:00
$arr = array ( 'uid' => $uid , 'feature' => $feature , 'enabled' => $x );
call_hooks ( 'feature_enabled' , $arr );
return ( $arr [ 'enabled' ]);
}
2015-11-11 16:36:14 -05:00
/**
* @ brief check if feature is enabled or disabled by default
*
* @ param string $feature
* @ return boolean
*/
function get_feature_default ( $feature ) {
$f = get_features ();
foreach ( $f as $cat ) {
foreach ( $cat as $feat ) {
if ( is_array ( $feat ) && $feat [ 0 ] === $feature )
return $feat [ 3 ];
}
}
return false ;
}
/**
* @ brief get a list of all available features
* The array includes the setting group , the setting name ,
* explainations for the setting and if it ' s enabled or disabled
* by default
*
* @ return array
*/
2012-11-22 11:20:03 -05:00
function get_features () {
$arr = array (
// General
'general' => array (
2012-11-28 22:25:09 -05:00
t ( 'General Features' ),
2012-11-22 11:20:03 -05:00
//array('expire', t('Content Expiration'), t('Remove old posts/comments after a period of time')),
2015-11-11 16:36:14 -05:00
array ( 'multi_profiles' , t ( 'Multiple Profiles' ), t ( 'Ability to create multiple profiles' ), false ),
2015-09-29 18:19:54 -04:00
array ( 'photo_location' , t ( 'Photo Location' ), t ( 'Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map.' ), false ),
2012-11-22 11:20:03 -05:00
),
// Post composition
'composition' => array (
2012-11-28 22:25:09 -05:00
t ( 'Post Composition Features' ),
2015-11-11 16:36:14 -05:00
array ( 'richtext' , t ( 'Richtext Editor' ), t ( 'Enable richtext editor' ), false ),
array ( 'preview' , t ( 'Post Preview' ), t ( 'Allow previewing posts and comments before publishing them' ), false ),
array ( 'aclautomention' , t ( 'Auto-mention Forums' ), t ( 'Add/remove mention when a fourm page is selected/deselected in ACL window.' ), false ),
2012-11-22 11:20:03 -05:00
),
// Network sidebar widgets
'widgets' => array (
2012-11-28 22:25:09 -05:00
t ( 'Network Sidebar Widgets' ),
2015-11-11 16:36:14 -05:00
array ( 'archives' , t ( 'Search by Date' ), t ( 'Ability to select posts by date ranges' ), false ),
array ( 'forumlist_widget' , t ( 'List Forums' ), t ( 'Enable widget to display the forums your are connected with' ), true ),
array ( 'groups' , t ( 'Group Filter' ), t ( 'Enable widget to display Network posts only from selected group' ), false ),
array ( 'networks' , t ( 'Network Filter' ), t ( 'Enable widget to display Network posts only from selected network' ), false ),
array ( 'savedsearch' , t ( 'Saved Searches' ), t ( 'Save search terms for re-use' ), false ),
2012-11-22 11:20:03 -05:00
),
// Network tabs
'net_tabs' => array (
2012-11-28 22:25:09 -05:00
t ( 'Network Tabs' ),
2015-11-11 16:36:14 -05:00
array ( 'personal_tab' , t ( 'Network Personal Tab' ), t ( 'Enable tab to display only Network posts that you\'ve interacted on' ), false ),
array ( 'new_tab' , t ( 'Network New Tab' ), t ( 'Enable tab to display only new Network posts (from the last 12 hours)' ), false ),
array ( 'link_tab' , t ( 'Network Shared Links Tab' ), t ( 'Enable tab to display only Network posts with links in them' ), false ),
2012-11-22 11:20:03 -05:00
),
// Item tools
'tools' => array (
2012-11-28 22:25:09 -05:00
t ( 'Post/Comment Tools' ),
2015-11-11 16:36:14 -05:00
array ( 'multi_delete' , t ( 'Multiple Deletion' ), t ( 'Select and delete multiple posts/comments at once' ), false ),
array ( 'edit_posts' , t ( 'Edit Sent Posts' ), t ( 'Edit and correct posts and comments after sending' ), false ),
array ( 'commtag' , t ( 'Tagging' ), t ( 'Ability to tag existing posts' ), false ),
array ( 'categories' , t ( 'Post Categories' ), t ( 'Add categories to your posts' ), false ),
array ( 'filing' , t ( 'Saved Folders' ), t ( 'Ability to file posts under folders' ), false ),
2015-11-09 09:56:20 -05:00
array ( 'dislike' , t ( 'Dislike Posts' ), t ( 'Ability to dislike posts/comments' )),
2015-11-11 16:36:14 -05:00
array ( 'star_posts' , t ( 'Star Posts' ), t ( 'Ability to mark special posts with a star indicator' ), false ),
array ( 'ignore_posts' , t ( 'Mute Post Notifications' ), t ( 'Ability to mute notifications for a thread' ), false ),
2015-11-09 09:56:20 -05:00
),
// Advanced Profile Settings
'advanced_profile' => array (
t ( 'Advanced Profile Settings' ),
2015-11-11 16:36:14 -05:00
array ( 'forumlist_profile' , t ( 'List Forums' ), t ( 'Show visitors public community forums at the Advanced Profile Page' ), false ),
2012-11-22 11:20:03 -05:00
),
);
call_hooks ( 'get_features' , $arr );
return $arr ;
}