aboutsummaryrefslogtreecommitdiffstats
path: root/include/features.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2015-01-05 20:57:30 -0800
committerfriendica <info@friendica.com>2015-01-05 20:57:30 -0800
commit43f43d78cf9dba9a4c8b9ac1e54484901b3a7bcd (patch)
tree6795d7551b1629defef841e516e0eff042e4838d /include/features.php
parent3185bfe3ca131d471b8fcdc0c94abf1a114486c7 (diff)
downloadvolse-hubzilla-43f43d78cf9dba9a4c8b9ac1e54484901b3a7bcd.tar.gz
volse-hubzilla-43f43d78cf9dba9a4c8b9ac1e54484901b3a7bcd.tar.bz2
volse-hubzilla-43f43d78cf9dba9a4c8b9ac1e54484901b3a7bcd.zip
regression: need float clear on manage page so footer doesn't end up floated,
add default value to features so that features can be created that are default enabled, or modified later to default enabled without requiring a system config to accomplish this.
Diffstat (limited to 'include/features.php')
-rw-r--r--include/features.php79
1 files changed, 44 insertions, 35 deletions
diff --git a/include/features.php b/include/features.php
index 7009b1d6b..1a4b2654f 100644
--- a/include/features.php
+++ b/include/features.php
@@ -7,13 +7,28 @@
function feature_enabled($uid,$feature) {
$x = get_pconfig($uid,'feature',$feature);
- if($x === false)
+ if($x === false) {
$x = get_config('feature',$feature);
+ if($x === false)
+ $x = get_feature_default($feature);
+ }
$arr = array('uid' => $uid, 'feature' => $feature, 'enabled' => $x);
call_hooks('feature_enabled',$arr);
return($arr['enabled']);
}
+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;
+}
+
+
function get_features() {
$arr = array(
@@ -22,58 +37,52 @@ function get_features() {
'general' => array(
t('General Features'),
// This is per post, and different from fixed expiration 'expire' which isn't working yet
- array('content_expire', t('Content Expiration'), t('Remove posts/comments and/or private messages at a future time')),
- array('multi_profiles', t('Multiple Profiles'), t('Ability to create multiple profiles')),
- array('advanced_profiles', t('Advanced Profiles'), t('Additional profile sections and selections')),
- array('profile_export', t('Profile Import/Export'), t('Save and load profile details across sites/channels')),
- array('webpages', t('Web Pages'), t('Provide managed web pages on your channel')),
- array('private_notes', t('Private Notes'), t('Enables a tool to store notes and reminders')),
-// prettyphoto has licensing issues and will no longer be provided in core -
-// in any event this setting should probably be a theme option or plugin
-// array('prettyphoto', t('Enhanced Photo Albums'), t('Enable photo album with enhanced features')),
- array('nav_channel_select', t('Navigation Channel Select'), t('Change channels directly from within the navigation dropdown menu')),
+ array('content_expire', t('Content Expiration'), t('Remove posts/comments and/or private messages at a future time'), false),
+ array('multi_profiles', t('Multiple Profiles'), t('Ability to create multiple profiles'), false),
+ array('advanced_profiles', t('Advanced Profiles'), t('Additional profile sections and selections'),false),
+ array('profile_export', t('Profile Import/Export'), t('Save and load profile details across sites/channels'),false),
+ array('webpages', t('Web Pages'), t('Provide managed web pages on your channel'),false),
+ array('private_notes', t('Private Notes'), t('Enables a tool to store notes and reminders'),false),
+ array('nav_channel_select', t('Navigation Channel Select'), t('Change channels directly from within the navigation dropdown menu'),false),
//FIXME - needs a description, but how the hell do we explain this to normals?
- array('sendzid', t('Extended Identity Sharing'), t('Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix.')),
- array('expert', t('Expert Mode'), t('Enable Expert Mode to provide advanced configuration options')),
- array('premium_channel', t('Premium Channel'), t('Allows you to set restrictions and terms on those that connect with your channel')),
+ array('sendzid', t('Extended Identity Sharing'), t('Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix.'),false),
+ array('expert', t('Expert Mode'), t('Enable Expert Mode to provide advanced configuration options'),false),
+ array('premium_channel', t('Premium Channel'), t('Allows you to set restrictions and terms on those that connect with your channel'),false),
),
// Post composition
'composition' => array(
t('Post Composition Features'),
-// array('richtext', t('Richtext Editor'), t('Enable richtext editor')),
- array('markdown', t('Use Markdown'), t('Allow use of "Markdown" to format posts')),
-// array('preview', t('Post Preview'), t('Allow previewing posts and comments before publishing them')),
- array('channel_sources', t('Channel Sources'), t('Automatically import channel content from other channels or feeds')),
- array('content_encrypt', t('Even More Encryption'), t('Allow optional encryption of content end-to-end with a shared secret key')),
- array('adult_photo_flagging', t('Flag Adult Photos'), t('Provide photo edit option to hide adult photos from default album view')),
+// array('richtext', t('Richtext Editor'), t('Enable richtext editor'),false),
+ array('markdown', t('Use Markdown'), t('Allow use of "Markdown" to format posts'),false),
+ array('channel_sources', t('Channel Sources'), t('Automatically import channel content from other channels or feeds'),false),
+ array('content_encrypt', t('Even More Encryption'), t('Allow optional encryption of content end-to-end with a shared secret key'),false),
+ array('adult_photo_flagging', t('Flag Adult Photos'), t('Provide photo edit option to hide adult photos from default album view'),false),
),
// Network Tools
'net_module' => array(
t('Network and Stream Filtering'),
- array('archives', t('Search by Date'), t('Ability to select posts by date ranges')),
- array('groups', t('Collections Filter'), t('Enable widget to display Network posts only from selected collections')),
- array('savedsearch', t('Saved Searches'), t('Save search terms for re-use')),
- array('personal_tab', t('Network Personal Tab'), t('Enable tab to display only Network posts that you\'ve interacted on')),
- array('new_tab', t('Network New Tab'), t('Enable tab to display all new Network activity')),
- array('affinity', t('Affinity Tool'), t('Filter stream activity by depth of relationships')),
- array('suggest', t('Suggest Channels'), t('Show channel suggestions')),
+ array('archives', t('Search by Date'), t('Ability to select posts by date ranges'),false),
+ array('groups', t('Collections Filter'), t('Enable widget to display Network posts only from selected collections'),false),
+ array('savedsearch', t('Saved Searches'), t('Save search terms for re-use'),false),
+ 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 all new Network activity'),false),
+ array('affinity', t('Affinity Tool'), t('Filter stream activity by depth of relationships'),false),
+ array('suggest', t('Suggest Channels'), t('Show channel suggestions'),false),
),
// Item tools
'tools' => array(
t('Post/Comment Tools'),
-// array('multi_delete', t('Multiple Deletion'), t('Select and delete multiple posts/comments at once')),
-// array('edit_posts', t('Edit Sent Posts'), t('Edit and correct posts and comments after sending')),
- array('commtag', t('Tagging'), t('Ability to tag existing posts')),
- array('categories', t('Post Categories'), t('Add categories to your posts')),
- array('filing', t('Saved Folders'), t('Ability to file posts under folders')),
- array('dislike', t('Dislike Posts'), t('Ability to dislike posts/comments')),
- array('star_posts', t('Star Posts'), t('Ability to mark special posts with a star indicator')),
- array('tagadelic', t('Tag Cloud'), t('Provide a personal tag cloud on your channel page')),
+ 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),
+ array('dislike', t('Dislike Posts'), t('Ability to dislike posts/comments'),false),
+ array('star_posts', t('Star Posts'), t('Ability to mark special posts with a star indicator'),false),
+ array('tagadelic', t('Tag Cloud'), t('Provide a personal tag cloud on your channel page'),false),
),
);