ModuleFeedback   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 91
Duplicated Lines 0 %

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getFormFeedback() 0 55 2
A getInstance() 0 5 2
A __construct() 0 2 1
1
<?php
2
3
namespace XoopsModules\Groupmanager\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
use XoopsFormButtonTray;
16
use XoopsFormEditor;
17
use XoopsFormHidden;
18
use XoopsFormSelect;
19
use XoopsFormText;
20
use XoopsObject;
21
use XoopsThemeForm;
22
23
24
25
/**
26
 * Feedback plugin for xoops modules
27
 *
28
 * @copyright      XOOPS Project  (https://xoops.org)
29
 * @license        GNU GPL 2 or later (https://www.gnu.org/licenses/gpl-2.0.html)
30
 * @author         Michael Beck <[email protected]>
31
 * @author         Wedega - Email:<[email protected]>
32
 * @author         Fernando Santos (topet05) <[email protected]>
33
 */
34
35
/**
36
 * Class Object ModuleFeedback
37
 */
38
class ModuleFeedback extends XoopsObject
39
{
40
    public $name    = '';
41
    public $email   = '';
42
    public $site    = '';
43
    public $type    = '';
44
    public $content = '';
45
46
    /**
47
     * Constructor
48
     *
49
     * @param null
50
     */
51
    public function __construct()
52
    {
53
    }
54
55
    /**
56
     * @static function &getInstance
57
     *
58
     * @param null
59
     */
60
    public static function getInstance()
61
    {
62
        static $instance = false;
63
        if (!$instance) {
64
            $instance = new self();
65
        }
66
    }
67
68
    /**
69
     * @public function getFormFeedback:
70
     * provide form for sending a feedback to module author
71
     * @param bool $action
72
     * @return \XoopsThemeForm
73
     */
74
    public function getFormFeedback($action = false)
75
    {
76
        if (!$action) {
77
            $action = $_SERVER['REQUEST_URI'];
0 ignored issues
show
Unused Code introduced by
The assignment to $action is dead and can be removed.
Loading history...
78
        }
79
        $moduleDirName      = \basename(\dirname(__DIR__, 2));
80
        $moduleDirNameUpper = mb_strtoupper($moduleDirName);
81
        // Get Theme Form
82
        \xoops_load('XoopsFormLoader');
83
        $form = new XoopsThemeForm(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_FORM_TITLE'), 'formfeedback', 'feedback.php', 'post', true);
84
        $form->setExtra('enctype="multipart/form-data"');
85
86
        $recipient = new XoopsFormText(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_RECIPIENT'), 'recipient', 50, 255, $GLOBALS['xoopsModule']->getInfo('author_mail'));
87
        $recipient->setExtra('disabled="disabled"');
88
        $form->addElement($recipient);
89
        $your_name = new XoopsFormText(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_NAME'), 'your_name', 50, 255, $this->name);
90
        $your_name->setExtra('placeholder="' . \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_NAME_PLACEHOLER') . '"');
91
        $form->addElement($your_name);
92
        $your_site = new XoopsFormText(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_SITE'), 'your_site', 50, 255, $this->site);
93
        $your_site->setExtra('placeholder="' . \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_SITE_PLACEHOLER') . '"');
94
        $form->addElement($your_site);
95
        $your_mail = new XoopsFormText(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_MAIL'), 'your_mail', 50, 255, $this->email);
96
        $your_mail->setExtra('placeholder="' . \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_MAIL_PLACEHOLER') . '"');
97
        $form->addElement($your_mail);
98
99
        $fbtypeSelect = new XoopsFormSelect(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE'), 'fb_type', $this->type);
100
        $fbtypeSelect->addOption('', '');
101
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_SUGGESTION'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_SUGGESTION'));
102
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_BUGS'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_BUGS'));
103
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_TESTIMONIAL'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_TESTIMONIAL'));
104
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_FEATURES'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_FEATURES'));
105
        $fbtypeSelect->addOption(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_OTHERS'), \constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_OTHERS'));
106
        $form->addElement($fbtypeSelect, true);
107
108
        $editorConfigs           = [];
109
        $editorConfigs['name']   = 'fb_content';
110
        $editorConfigs['value']  = $this->content;
111
        $editorConfigs['rows']   = 5;
112
        $editorConfigs['cols']   = 40;
113
        $editorConfigs['width']  = '100%';
114
        $editorConfigs['height'] = '400px';
115
        /** @var \XoopsModuleHandler $moduleHandler */
116
        $moduleHandler = \xoops_getHandler('module');
117
        $module        = $moduleHandler->getByDirname('system');
118
        /** @var \XoopsConfigHandler $configHandler */
119
        $configHandler           = \xoops_getHandler('config');
120
        $config                  = $configHandler->getConfigsByCat(0, $module->getVar('mid'));
121
        $editorConfigs['editor'] = $config['general_editor'];
122
        $editor                  = new XoopsFormEditor(\constant('CO_' . $moduleDirNameUpper . '_' . 'FB_TYPE_CONTENT'), 'fb_content', $editorConfigs);
123
        $form->addElement($editor, true);
124
125
        $form->addElement(new XoopsFormHidden('op', 'send'));
126
        $form->addElement(new XoopsFormButtonTray('', _SUBMIT, 'submit', '', false));
127
128
        return $form;
129
    }
130
}
131