ModuleFeedback   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 89
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 53
dl 0
loc 89
rs 10
c 1
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getInstance() 0 5 2
A __construct() 0 2 1
A getFormFeedback() 0 55 2
1
<?php declare(strict_types=1);
2
3
namespace XoopsModules\Publisher\Common;
4
5
/*
6
 You may not change or alter any portion of this comment or credits
7
 of supporting developers from this source code or any supporting source code
8
 which is considered copyrighted (c) material of the original comment or credit authors.
9
10
 This program is distributed in the hope that it will be useful,
11
 but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
*/
14
15
/**
16
 * Feedback plugin for xoops modules
17
 *
18
 * @copyright      XOOPS Project  (https://xoops.org)
19
 * @license        GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html)
20
 * @author         Michael Beck <[email protected]>
21
 * @author         Wedega - Email:<[email protected]>
22
 * @author         Fernando Santos (topet05) <[email protected]>
23
 */
24
25
/**
26
 * Class Object ModuleFeedback
27
 */
28
class ModuleFeedback extends \XoopsObject
29
{
30
    public $name    = '';
31
    public $email   = '';
32
    public $site    = '';
33
    public $type    = '';
34
    public $content = '';
35
36
    /**
37
     * Constructor
38
     *
39
     */
40
    public function __construct()
41
    {
42
    }
43
44
    /**
45
     * @static function &getInstance
46
     *
47
     */
48
    public static function getInstance(): void
49
    {
50
        static $instance = false;
51
        if (!$instance) {
52
            $instance = new self();
53
        }
54
    }
55
56
    /**
57
     * @public function getFormFeedback:
58
     * provide form for sending a feedback to module author
59
     * @param bool $action
60
     * @return \XoopsThemeForm
61
     */
62
    public function getFormFeedback($action = false)
63
    {
64
        if (!$action) {
65
            $action = $_SERVER['REQUEST_URI'];
0 ignored issues
show
Unused Code introduced by
The assignment to $action is dead and can be removed.
Loading history...
66
        }
67
        $moduleDirName      = \basename(\dirname(__DIR__, 2));
68
        $moduleDirNameUpper = \mb_strtoupper($moduleDirName);
69
        // Get Theme Form
70
        \xoops_load('XoopsFormLoader');
71
        $form = new \XoopsThemeForm(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_FORM_TITLE'), 'formfeedback', 'feedback.php', 'post', true);
72
        $form->setExtra('enctype="multipart/form-data"');
73
74
        $recipient = new \XoopsFormText(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_RECIPIENT'), 'recipient', 50, 255, $GLOBALS['xoopsModule']->getInfo('author_mail'));
75
        $recipient->setExtra('disabled="disabled"');
76
        $form->addElement($recipient);
77
        $your_name = new \XoopsFormText(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_NAME'), 'your_name', 50, 255, $this->name);
78
        $your_name->setExtra('placeholder="' . \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_NAME_PLACEHOLER') . '"');
79
        $form->addElement($your_name);
80
        $your_site = new \XoopsFormText(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_SITE'), 'your_site', 50, 255, $this->site);
81
        $your_site->setExtra('placeholder="' . \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_SITE_PLACEHOLER') . '"');
82
        $form->addElement($your_site);
83
        $yourMail = new \XoopsFormText(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_MAIL'), 'your_mail', 50, 255, $this->email);
84
        $yourMail->setExtra('placeholder="' . \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_MAIL_PLACEHOLER') . '"');
85
        $form->addElement($yourMail);
86
87
        $fbtypeSelect = new \XoopsFormSelect(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE'), 'fb_type', $this->type);
88
        $fbtypeSelect->addOption('', '');
89
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_SUGGESTION'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_SUGGESTION'));
90
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_BUGS'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_BUGS'));
91
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_TESTIMONIAL'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_TESTIMONIAL'));
92
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_FEATURES'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_FEATURES'));
93
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_OTHERS'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_OTHERS'));
94
        $form->addElement($fbtypeSelect, true);
95
96
        $editorConfigs           = [];
97
        $editorConfigs['name']   = 'fb_content';
98
        $editorConfigs['value']  = $this->content;
99
        $editorConfigs['rows']   = 5;
100
        $editorConfigs['cols']   = 40;
101
        $editorConfigs['width']  = '100%';
102
        $editorConfigs['height'] = '400px';
103
        /** @var \XoopsModuleHandler $moduleHandler */
104
        $moduleHandler = \xoops_getHandler('module');
105
        $module        = $moduleHandler->getByDirname('system');
106
        /** @var \XoopsConfigHandler $configHandler */
107
        $configHandler           = \xoops_getHandler('config');
108
        $config                  = $configHandler->getConfigsByCat(0, $module->getVar('mid'));
109
        $editorConfigs['editor'] = $config['general_editor'];
110
        $editor                  = new \XoopsFormEditor(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_CONTENT'), 'fb_content', $editorConfigs);
111
        $form->addElement($editor, true);
112
113
        $form->addElement(new \XoopsFormHidden('op', 'send'));
114
        $form->addElement(new \XoopsFormButtonTray('', \_SUBMIT, 'submit', '', false));
115
116
        return $form;
117
    }
118
}
119