Passed
Pull Request — master (#88)
by Michael
02:56
created

TestdataButtons   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 29
dl 0
loc 63
rs 10
c 1
b 0
f 1
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A hideButtons() 0 8 1
A showButtons() 0 8 1
A loadButtonConfig() 0 18 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace XoopsModules\Tdmdownloads\Common;
6
7
/*
8
 You may not change or alter any portion of this comment or credits
9
 of supporting developers from this source code or any supporting source code
10
 which is considered copyrighted (c) material of the original comment or credit authors.
11
 
12
 This program is distributed in the hope that it will be useful,
13
 but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
*/
16
17
/**
18
 *
19
 * @category        Module
20
 * @author          XOOPS Development Team <https://xoops.org>
21
 * @copyright       {@link https://xoops.org/ XOOPS Project}
22
 * @license         GNU GPL 2 or later (https://www.gnu.org/licenses/gpl-2.0.html)
23
 */
24
25
use Xmf\{
26
    Module\Admin,
27
    Request,
28
    Yaml
29
};
30
use XoopsModules\Tdmdownloads\{
31
    Constants,
32
    Helper
33
};
34
35
/** @var Helper $helper */
36
37
/**
38
 * Class TestdataButtons
39
 *
40
 * Contains methods to create the Test buttons and change their visibility
41
 */
42
class TestdataButtons
43
{
44
    /** Button status constants */
45
    private const SHOW_BUTTONS = 1;
46
    private const HIDE_BUTTONS = 0;
47
48
    /**
49
     * Load the test button configuration
50
     *
51
     * @param \Xmf\Module\Admin $adminObject
52
     *
53
     * @return void
54
     */
55
    public static function loadButtonConfig(Admin $adminObject): void
56
    {
57
        $moduleDirName      = \basename(\dirname(__DIR__, 2));
58
        $moduleDirNameUpper = \mb_strtoupper($moduleDirName);
59
        $helper              = Helper::getInstance();
60
        $yamlFile            = $helper->path('/config/admin.yml');
61
        $config             = Yaml::readWrapped($yamlFile); // work with phpmyadmin YAML dumps
62
        $displaySampleButton = $config['displaySampleButton'];
63
64
        if (self::SHOW_BUTTONS == $displaySampleButton) {
65
            \xoops_loadLanguage('admin/modulesadmin', 'system');
66
            $adminObject->addItemButton(\constant('CO_' . $moduleDirNameUpper . '_' . 'LOAD_SAMPLEDATA'), $helper->url('testdata/index.php?op=load'), 'add');
67
            $adminObject->addItemButton(\constant('CO_' . $moduleDirNameUpper . '_' . 'SAVE_SAMPLEDATA'), $helper->url('testdata/index.php?op=save'), 'add');
68
            $adminObject->addItemButton(\constant('CO_' . $moduleDirNameUpper . '_' . 'CLEAR_SAMPLEDATA'), $helper->url('testdata/index.php?op=clear'), 'alert');
69
            //    $adminObject->addItemButton(constant('CO_' . $moduleDirNameUpper . '_' . 'EXPORT_SCHEMA'), $helper->url( 'testdata/index.php?op=exportschema'), 'add');
70
            $adminObject->addItemButton(\constant('CO_' . $moduleDirNameUpper . '_' . 'HIDE_SAMPLEDATA_BUTTONS'), '?op=hide_buttons', 'delete');
71
        } else {
72
            $adminObject->addItemButton(\constant('CO_' . $moduleDirNameUpper . '_' . 'SHOW_SAMPLEDATA_BUTTONS'), '?op=show_buttons', 'add');
73
            // $displaySampleButton = $config['displaySampleButton'];
74
        }
75
    }
76
77
    /**
78
     * Hide the test buttons
79
     *
80
     * @return void
81
     */
82
    public static function hideButtons(): void
83
    {
84
        $helper                     = Helper::getInstance();
85
        $yamlFile                   = $helper->path('config/admin.yml');
86
        $app                        = [];
87
        $app['displaySampleButton'] = self::HIDE_BUTTONS;
88
        Yaml::save($app, $yamlFile);
89
        $helper->redirect('admin/index.php', Constants::REDIRECT_DELAY_NONE, '');
90
    }
91
92
    /**
93
     * Show the test buttons
94
     *
95
     * @return void
96
     */
97
    public static function showButtons(): void
98
    {
99
        $helper                     = Helper::getInstance();
100
        $yamlFile                   = $helper->path('config/admin.yml');
101
        $app                        = [];
102
        $app['displaySampleButton'] = self::SHOW_BUTTONS;
103
        Yaml::save($app, $yamlFile);
104
        $helper->redirect('admin/index.php', Constants::REDIRECT_DELAY_NONE, '');
105
    }
106
}
107