]> git.mxchange.org Git - friendica.git/commitdiff
Move admin/features to src/Module
authorHypolite Petovan <hypolite@mrpetovan.com>
Mon, 22 Apr 2019 00:32:02 +0000 (20:32 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Thu, 2 May 2019 13:52:46 +0000 (09:52 -0400)
- Add Module\Admin\Features class
- Add route for admin/features
- Add features admin aside menu entry
- Move templates/admin/settings_features.tpl to templates/admin/features.tpl
- Remove admin_page_features and admin_page_features_post from mod/admin.php

mod/admin.php
src/App/Router.php
src/Module/Admin/Features.php [new file with mode: 0644]
src/Module/BaseAdminModule.php
view/templates/admin/features.tpl [new file with mode: 0644]
view/templates/admin/settings_features.tpl [deleted file]

index d6b447c793f88204bdb0e645b728adef6f4b1ce7..2b9a90b54e72a87dd6e9e331e7cfeb31be704181 100644 (file)
@@ -111,9 +111,6 @@ function admin_post(App $a)
                                }
                                $return_path = 'admin/themes/' . $theme . (!empty($_GET['mode']) ? '?mode=' . $_GET['mode'] : '');
                                break;
-                       case 'features':
-                               admin_page_features_post($a);
-                               break;
                        case 'logs':
                                admin_page_logs_post($a);
                                break;
@@ -228,9 +225,6 @@ function admin_content(App $a)
                        case 'themes':
                                $o = admin_page_themes($a);
                                break;
-                       case 'features':
-                               $o = admin_page_features($a);
-                               break;
                        case 'logs':
                                $o = admin_page_logs($a);
                                break;
@@ -1672,90 +1666,6 @@ function admin_page_viewlogs(App $a)
        ]);
 }
 
-/**
- * @brief Prosesses data send by the features admin page
- *
- * @param App $a
- * @throws \Friendica\Network\HTTPException\InternalServerErrorException
- */
-function admin_page_features_post(App $a)
-{
-       BaseModule::checkFormSecurityTokenRedirectOnError('/admin/features', 'admin_manage_features');
-
-       Logger::log('postvars: ' . print_r($_POST, true), Logger::DATA);
-
-       $features = Feature::get(false);
-
-       foreach ($features as $fname => $fdata) {
-               foreach (array_slice($fdata, 1) as $f) {
-                       $feature = $f[0];
-                       $feature_state = 'feature_' . $feature;
-                       $featurelock = 'featurelock_' . $feature;
-
-                       if (!empty($_POST[$feature_state])) {
-                               $val = intval($_POST[$feature_state]);
-                       } else {
-                               $val = 0;
-                       }
-                       Config::set('feature', $feature, $val);
-
-                       if (!empty($_POST[$featurelock])) {
-                               Config::set('feature_lock', $feature, $val);
-                       } else {
-                               Config::delete('feature_lock', $feature);
-                       }
-               }
-       }
-
-       $a->internalRedirect('admin/features');
-       return; // NOTREACHED
-}
-
-/**
- * @brief Subpage for global additional feature management
- *
- * This functin generates the subpage 'Manage Additional Features'
- * for the admin panel. At this page the admin can set preferences
- * for the user settings of the 'additional features'. If needed this
- * preferences can be locked through the admin.
- *
- * The returned string contains the HTML code of the subpage 'Manage
- * Additional Features'
- *
- * @param App $a
- * @return string
- * @throws \Friendica\Network\HTTPException\InternalServerErrorException
- */
-function admin_page_features(App $a)
-{
-       if (($a->argc > 1) && ($a->getArgumentValue(1) === 'features')) {
-               $arr = [];
-               $features = Feature::get(false);
-
-               foreach ($features as $fname => $fdata) {
-                       $arr[$fname] = [];
-                       $arr[$fname][0] = $fdata[0];
-                       foreach (array_slice($fdata, 1) as $f) {
-                               $set = Config::get('feature', $f[0], $f[3]);
-                               $arr[$fname][1][] = [
-                                       ['feature_' . $f[0], $f[1], $set, $f[2], [L10n::t('Off'), L10n::t('On')]],
-                                       ['featurelock_' . $f[0], L10n::t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [L10n::t('Off'), L10n::t('On')]]
-                               ];
-                       }
-               }
-
-               $tpl = Renderer::getMarkupTemplate('admin/settings_features.tpl');
-               $o = Renderer::replaceMacros($tpl, [
-                       '$form_security_token' => BaseModule::getFormSecurityToken("admin_manage_features"),
-                       '$title' => L10n::t('Manage Additional Features'),
-                       '$features' => $arr,
-                       '$submit' => L10n::t('Save Settings'),
-               ]);
-
-               return $o;
-       }
-}
-
 function admin_page_server_vital()
 {
        // Fetch the host-meta to check if this really is a vital server
index 30f48f7c563f1e8673817ae12c82bea9f22fa1aa..af3f8e717dbab3c5424975a471b6337510063560 100644 (file)
@@ -124,6 +124,7 @@ class Router
                        $collector->addRoute(['GET', 'POST'], '/addons'                 , Module\Admin\Addons\Index::class);
                        $collector->addRoute(['GET', 'POST'], '/addons/{addon}'         , Module\Admin\Addons\Details::class);
 
+                       $collector->addRoute(['GET', 'POST'], '/features'               , Module\Admin\Features::class);
                        $collector->addRoute(['GET']        , '/federation'             , Module\Admin\Federation::class);
 
                        $collector->addRoute(['GET', 'POST'], '/themes'                 , Module\Admin\Themes\Index::class);
diff --git a/src/Module/Admin/Features.php b/src/Module/Admin/Features.php
new file mode 100644 (file)
index 0000000..e127b8c
--- /dev/null
@@ -0,0 +1,79 @@
+<?php\r
+\r
+namespace Friendica\Module\Admin;\r
+\r
+use Friendica\Content\Feature;\r
+use Friendica\Core\Config;\r
+use Friendica\Core\L10n;\r
+use Friendica\Core\Logger;\r
+use Friendica\Core\Renderer;\r
+use Friendica\Module\BaseAdminModule;\r
+\r
+class Features extends BaseAdminModule\r
+{\r
+       public static function post()\r
+       {\r
+               parent::post();\r
+\r
+               parent::checkFormSecurityTokenRedirectOnError('/admin/features', 'admin_manage_features');\r
+\r
+               $features = Feature::get(false);\r
+\r
+               foreach ($features as $fname => $fdata) {\r
+                       foreach (array_slice($fdata, 1) as $f) {\r
+                               $feature = $f[0];\r
+                               $feature_state = 'feature_' . $feature;\r
+                               $featurelock = 'featurelock_' . $feature;\r
+\r
+                               if (!empty($_POST[$feature_state])) {\r
+                                       $val = intval($_POST[$feature_state]);\r
+                               } else {\r
+                                       $val = 0;\r
+                               }\r
+                               Config::set('feature', $feature, $val);\r
+\r
+                               if (!empty($_POST[$featurelock])) {\r
+                                       Config::set('feature_lock', $feature, $val);\r
+                               } else {\r
+                                       Config::delete('feature_lock', $feature);\r
+                               }\r
+                       }\r
+               }\r
+\r
+               self::getApp()->internalRedirect('admin/features');\r
+       }\r
+\r
+       public static function content()\r
+       {\r
+               parent::content();\r
+\r
+               $a = self::getApp();\r
+\r
+               if (($a->argc > 1) && ($a->getArgumentValue(1) === 'features')) {\r
+                       $arr = [];\r
+                       $features = Feature::get(false);\r
+\r
+                       foreach ($features as $fname => $fdata) {\r
+                               $arr[$fname] = [];\r
+                               $arr[$fname][0] = $fdata[0];\r
+                               foreach (array_slice($fdata, 1) as $f) {\r
+                                       $set = Config::get('feature', $f[0], $f[3]);\r
+                                       $arr[$fname][1][] = [\r
+                                               ['feature_' . $f[0], $f[1], $set, $f[2], [L10n::t('Off'), L10n::t('On')]],\r
+                                               ['featurelock_' . $f[0], L10n::t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [L10n::t('Off'), L10n::t('On')]]\r
+                                       ];\r
+                               }\r
+                       }\r
+\r
+                       $tpl = Renderer::getMarkupTemplate('admin/features.tpl');\r
+                       $o = Renderer::replaceMacros($tpl, [\r
+                               '$form_security_token' => parent::getFormSecurityToken("admin_manage_features"),\r
+                               '$title' => L10n::t('Manage Additional Features'),\r
+                               '$features' => $arr,\r
+                               '$submit' => L10n::t('Save Settings'),\r
+                       ]);\r
+\r
+                       return $o;\r
+               }\r
+       }\r
+}
\ No newline at end of file
index cf434537ec690c179a056d4f03758b51dce8d563..07f3c078612319ac3affd83627ef381d0b95f61d 100644 (file)
@@ -56,6 +56,7 @@ abstract class BaseAdminModule extends BaseModule
                                'users'        => ['admin/users'       , L10n::t('Users')                   , 'users'],\r
                                'addons'       => ['admin/addons'      , L10n::t('Addons')                  , 'addons'],\r
                                'themes'       => ['admin/themes'      , L10n::t('Themes')                  , 'themes'],\r
+                               'features'     => ['admin/features'    , L10n::t('Additional features')     , 'features'],\r
                                'tos'          => ['admin/tos'         , L10n::t('Terms of Service')        , 'tos'],\r
                        ]],\r
                ];\r
diff --git a/view/templates/admin/features.tpl b/view/templates/admin/features.tpl
new file mode 100644 (file)
index 0000000..f0b696f
--- /dev/null
@@ -0,0 +1,26 @@
+
+<div id="adminpage">
+       <h1>{{$title}}</h1>
+
+       <form action="admin/features" method="post" autocomplete="off">
+       <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+
+       {{foreach $features as $g => $f}}
+       <h3 class="settings-heading"><a href="javascript:;">{{$f.0}}</a></h3>
+
+       <div class="settings-content-block">
+               {{foreach $f.1 as $fcat}}
+                       <div class="settings-block">
+                       {{include file="field_yesno.tpl" field=$fcat.0}}
+                       {{include file="field_yesno.tpl" field=$fcat.1}}
+                       </div>
+               {{/foreach}}
+
+               <div class="settings-submit-wrapper" >
+                       <input type="submit" name="submit" class="settings-features-submit" value="{{$submit}}" />
+               </div>
+       </div>
+       {{/foreach}}
+
+       </form>
+</div>
diff --git a/view/templates/admin/settings_features.tpl b/view/templates/admin/settings_features.tpl
deleted file mode 100644 (file)
index f0b696f..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-
-<div id="adminpage">
-       <h1>{{$title}}</h1>
-
-       <form action="admin/features" method="post" autocomplete="off">
-       <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-       {{foreach $features as $g => $f}}
-       <h3 class="settings-heading"><a href="javascript:;">{{$f.0}}</a></h3>
-
-       <div class="settings-content-block">
-               {{foreach $f.1 as $fcat}}
-                       <div class="settings-block">
-                       {{include file="field_yesno.tpl" field=$fcat.0}}
-                       {{include file="field_yesno.tpl" field=$fcat.1}}
-                       </div>
-               {{/foreach}}
-
-               <div class="settings-submit-wrapper" >
-                       <input type="submit" name="submit" class="settings-features-submit" value="{{$submit}}" />
-               </div>
-       </div>
-       {{/foreach}}
-
-       </form>
-</div>