Passed
Pull Request — master (#2)
by Michael
07:48 queued 04:06
created
class/RequestsHandler.php 2 patches
Indentation   +195 added lines, -195 removed lines patch added patch discarded remove patch
@@ -11,199 +11,199 @@
 block discarded – undo
11 11
  */
12 12
 class RequestsHandler extends \XoopsPersistableObjectHandler
13 13
 {
14
-    /**
15
-     * RequestsHandler constructor.
16
-     * @param \XoopsDatabase $db
17
-     */
18
-    public function __construct(\XoopsDatabase $db)
19
-    {
20
-        parent::__construct($db, 'songlist_requests', Requests::class, 'rid', 'name');
21
-    }
22
-
23
-    /**
24
-     * @return array
25
-     */
26
-    public function filterFields(): array
27
-    {
28
-        return ['rid', 'artist', 'album', 'title', 'lyrics', 'uid', 'name', 'email', 'songid', 'sid', 'created', 'updated'];
29
-    }
30
-
31
-    /**
32
-     * @param $filter
33
-     * @return \CriteriaCompo
34
-     */
35
-    public function getFilterCriteria($filter): \CriteriaCompo
36
-    {
37
-        $parts    = \explode('|', $filter);
38
-        $criteria = new \CriteriaCompo();
39
-        foreach ($parts as $part) {
40
-            $var = \explode(',', $part);
41
-            if (!empty($var[1]) && !\is_numeric($var[0])) {
42
-                $object = $this->create();
43
-                if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
44
-                    || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
45
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
46
-                } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
47
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
48
-                } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
49
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
50
-                } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
51
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
52
-                }
53
-            } elseif (!empty($var[1]) && \is_numeric($var[0])) {
54
-                $criteria->add(new \Criteria($var[0], $var[1]));
55
-            }
56
-        }
57
-
58
-        return $criteria;
59
-    }
60
-
61
-    /**
62
-     * @param        $filter
63
-     * @param        $field
64
-     * @param string $sort
65
-     * @param string $op
66
-     * @param string $fct
67
-     * @return string
68
-     */
69
-    public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string
70
-    {
71
-        $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct);
72
-        if (\is_object($ele)) {
73
-            return $ele->render();
74
-        }
75
-
76
-        return ' ';
77
-    }
78
-
79
-    /**
80
-     * @param bool $force
81
-     * @return mixed
82
-     */
83
-    public function insert(\XoopsObject $obj, $force = true)
84
-    {
85
-        if ($obj->isNew()) {
86
-            $obj->setVar('created', \time());
87
-            $new      = true;
88
-            $sendmail = true;
89
-        } else {
90
-            $obj->setVar('updated', \time());
91
-            $new = false;
92
-            if (true === $obj->vars['songid']['changed']) {
93
-                $songsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Songs');
94
-                $criteria     = new \Criteria('songid', $obj->getVar('songid'));
95
-                $songs        = $songsHandler->getObjects($criteria, false);
96
-                if (\is_object($songs[0])) {
97
-                    foreach ($songs[0]->getVar('aids') as $aid) {
98
-                        $ad[] = $aid;
99
-                    }
100
-                    $obj->setVar('sid', $songs[0]->getVar('sid'));
101
-                    $obj->setVar('aid', $ad[0]);
102
-                    $sendmail = true;
103
-                }
104
-            }
105
-        }
106
-        $rid = parent::insert($obj, $force);
107
-        if ($rid) {
108
-            if ($sendmail) {
109
-                if ($new) {
110
-                    \xoops_loadLanguage('email', 'songlist');
111
-                    $xoopsMailer = \xoops_getMailer();
112
-                    $xoopsMailer->setHTML(true);
113
-                    $xoopsMailer->setTemplateDir($GLOBALS['xoops']->path('/modules/songlist/language/' . $GLOBALS['xoopsConfig']['language'] . '/mail_templates/'));
114
-                    $xoopsMailer->setTemplate('songlist_request_created.tpl');
115
-                    $xoopsMailer->setSubject(\sprintf(\_MD_SONGLIST_SUBJECT_REQUESTMADE, $rid));
116
-
117
-                    foreach (\explode('|', $GLOBALS['songlistModuleConfig']['email']) as $email) {
118
-                        $xoopsMailer->setToEmails($email);
119
-                    }
120
-
121
-                    $xoopsMailer->setToEmails($obj->getVar('email'));
122
-
123
-                    $xoopsMailer->assign('SITEURL', XOOPS_URL);
124
-                    $xoopsMailer->assign('SITENAME', $GLOBALS['xoopsConfig']['sitename']);
125
-                    $xoopsMailer->assign('RID', $rid);
126
-                    $xoopsMailer->assign('TITLE', $obj->getVar('title'));
127
-                    $xoopsMailer->assign('ALBUM', $obj->getVar('album'));
128
-                    $xoopsMailer->assign('ARTIST', $obj->getVar('artist'));
129
-                    $xoopsMailer->assign('EMAIL', $obj->getVar('email'));
130
-                    $xoopsMailer->assign('NAME', $obj->getVar('name'));
131
-
132
-                    $debug = true;
133
-
134
-                    if (!$xoopsMailer->send($debug)) {
135
-                        \xoops_error($xoopsMailer->getErrors(true), 'Email Send Error');
136
-                    }
137
-                } else {
138
-                    \xoops_loadLanguage('email', 'songlist');
139
-                    $songsHandler   = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Songs');
140
-                    $artistsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists');
141
-                    $albumsHandler  = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums');
142
-                    $genreHandler   = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre');
143
-
144
-                    $song = $songsHandler->get($obj->getVar('sid'));
145
-                    if (\is_object($song)) {
146
-                        $sng = $genre->getVar('title');
147
-                    }
148
-                    $album = $albumHandler->get($song->getVar('abid'));
149
-                    if (\is_object($album)) {
150
-                        $alb     = $genre->getVar('title');
151
-                        $alb_img = $genre->getImage();
152
-                    }
153
-                    $genre = $genreHandler->get($song->getVar('abid'));
154
-                    if (\is_object($genre)) {
155
-                        $gen = $genre->getVar('name');
156
-                    }
157
-                    $artists = $artistsHandler->getObjects(new \Criteria('aid', '(' . \implode(',', $song->getVar('aid')) . ')', 'IN'), false);
158
-                    $art     = '';
159
-                    foreach ($artists as $id => $artist) {
160
-                        $art .= $artist->getVar('name') . ($id < \count($artists) - 1 ? ', ' : '');
161
-                    }
162
-                    $xoopsMailer = \getMailer();
163
-                    $xoopsMailer->setHTML(true);
164
-                    $xoopsMailer->setTemplateDir($GLOBALS['xoops']->path('/modules/songlist/language/' . $GLOBALS['xoopsConfig']['language'] . '/mail_templates/'));
165
-                    $xoopsMailer->setTemplate('songlist_request_updated.tpl');
166
-                    $xoopsMailer->setSubject(\sprintf(\_MD_SONGLIST_SUBJECT_REQUESTFOUND, $rid));
167
-
168
-                    $xoopsMailer->setToEmails($obj->getVar('email'));
169
-
170
-                    $xoopsMailer->assign('SITEURL', XOOPS_URL);
171
-                    $xoopsMailer->assign('SITENAME', $GLOBALS['xoopsConfig']['sitename']);
172
-                    $xoopsMailer->assign('RID', $rid);
173
-                    $xoopsMailer->assign('TITLE', $obj->getVar('title'));
174
-                    $xoopsMailer->assign('ALBUM', $obj->getVar('album'));
175
-                    $xoopsMailer->assign('ARTIST', $obj->getVar('artist'));
176
-                    $xoopsMailer->assign('EMAIL', $obj->getVar('email'));
177
-                    $xoopsMailer->assign('NAME', $obj->getVar('name'));
178
-                    $xoopsMailer->assign('SONGID', $song->getVar('songid'));
179
-                    $xoopsMailer->assign('SONGURL', $song->getURL());
180
-                    $xoopsMailer->assign('FOUNDTITLE', $sng);
181
-                    $xoopsMailer->assign('FOUNDALBUM', $alb);
182
-                    $xoopsMailer->assign('FOUNDARTIST', $art);
183
-                    $xoopsMailer->assign('FOUNDGENRE', $gen);
184
-                    $xoopsMailer->assign('EMAIL', $obj->getVar('email'));
185
-                    $xoopsMailer->assign('NAME', $obj->getVar('name'));
186
-
187
-                    if (!$xoopsMailer->send()) {
188
-                        \xoops_error($xoopsMailer->getErrors(true), 'Email Send Error');
189
-                    }
190
-                }
191
-            }
192
-        }
193
-
194
-        return $rid;
195
-    }
196
-
197
-    /**
198
-     * @return string
199
-     */
200
-    public function getURL(): string
201
-    {
202
-        global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit;
203
-        if ($GLOBALS['songlistModuleConfig']['htaccess']) {
204
-            return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $op . '-' . $fct . $GLOBALS['songlistModuleConfig']['endofurl'];
205
-        }
206
-
207
-        return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct;
208
-    }
14
+	/**
15
+	 * RequestsHandler constructor.
16
+	 * @param \XoopsDatabase $db
17
+	 */
18
+	public function __construct(\XoopsDatabase $db)
19
+	{
20
+		parent::__construct($db, 'songlist_requests', Requests::class, 'rid', 'name');
21
+	}
22
+
23
+	/**
24
+	 * @return array
25
+	 */
26
+	public function filterFields(): array
27
+	{
28
+		return ['rid', 'artist', 'album', 'title', 'lyrics', 'uid', 'name', 'email', 'songid', 'sid', 'created', 'updated'];
29
+	}
30
+
31
+	/**
32
+	 * @param $filter
33
+	 * @return \CriteriaCompo
34
+	 */
35
+	public function getFilterCriteria($filter): \CriteriaCompo
36
+	{
37
+		$parts    = \explode('|', $filter);
38
+		$criteria = new \CriteriaCompo();
39
+		foreach ($parts as $part) {
40
+			$var = \explode(',', $part);
41
+			if (!empty($var[1]) && !\is_numeric($var[0])) {
42
+				$object = $this->create();
43
+				if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
44
+					|| \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
45
+					$criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
46
+				} elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
47
+					$criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
48
+				} elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
49
+					$criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
50
+				} elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
51
+					$criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
52
+				}
53
+			} elseif (!empty($var[1]) && \is_numeric($var[0])) {
54
+				$criteria->add(new \Criteria($var[0], $var[1]));
55
+			}
56
+		}
57
+
58
+		return $criteria;
59
+	}
60
+
61
+	/**
62
+	 * @param        $filter
63
+	 * @param        $field
64
+	 * @param string $sort
65
+	 * @param string $op
66
+	 * @param string $fct
67
+	 * @return string
68
+	 */
69
+	public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string
70
+	{
71
+		$ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct);
72
+		if (\is_object($ele)) {
73
+			return $ele->render();
74
+		}
75
+
76
+		return '&nbsp;';
77
+	}
78
+
79
+	/**
80
+	 * @param bool $force
81
+	 * @return mixed
82
+	 */
83
+	public function insert(\XoopsObject $obj, $force = true)
84
+	{
85
+		if ($obj->isNew()) {
86
+			$obj->setVar('created', \time());
87
+			$new      = true;
88
+			$sendmail = true;
89
+		} else {
90
+			$obj->setVar('updated', \time());
91
+			$new = false;
92
+			if (true === $obj->vars['songid']['changed']) {
93
+				$songsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Songs');
94
+				$criteria     = new \Criteria('songid', $obj->getVar('songid'));
95
+				$songs        = $songsHandler->getObjects($criteria, false);
96
+				if (\is_object($songs[0])) {
97
+					foreach ($songs[0]->getVar('aids') as $aid) {
98
+						$ad[] = $aid;
99
+					}
100
+					$obj->setVar('sid', $songs[0]->getVar('sid'));
101
+					$obj->setVar('aid', $ad[0]);
102
+					$sendmail = true;
103
+				}
104
+			}
105
+		}
106
+		$rid = parent::insert($obj, $force);
107
+		if ($rid) {
108
+			if ($sendmail) {
109
+				if ($new) {
110
+					\xoops_loadLanguage('email', 'songlist');
111
+					$xoopsMailer = \xoops_getMailer();
112
+					$xoopsMailer->setHTML(true);
113
+					$xoopsMailer->setTemplateDir($GLOBALS['xoops']->path('/modules/songlist/language/' . $GLOBALS['xoopsConfig']['language'] . '/mail_templates/'));
114
+					$xoopsMailer->setTemplate('songlist_request_created.tpl');
115
+					$xoopsMailer->setSubject(\sprintf(\_MD_SONGLIST_SUBJECT_REQUESTMADE, $rid));
116
+
117
+					foreach (\explode('|', $GLOBALS['songlistModuleConfig']['email']) as $email) {
118
+						$xoopsMailer->setToEmails($email);
119
+					}
120
+
121
+					$xoopsMailer->setToEmails($obj->getVar('email'));
122
+
123
+					$xoopsMailer->assign('SITEURL', XOOPS_URL);
124
+					$xoopsMailer->assign('SITENAME', $GLOBALS['xoopsConfig']['sitename']);
125
+					$xoopsMailer->assign('RID', $rid);
126
+					$xoopsMailer->assign('TITLE', $obj->getVar('title'));
127
+					$xoopsMailer->assign('ALBUM', $obj->getVar('album'));
128
+					$xoopsMailer->assign('ARTIST', $obj->getVar('artist'));
129
+					$xoopsMailer->assign('EMAIL', $obj->getVar('email'));
130
+					$xoopsMailer->assign('NAME', $obj->getVar('name'));
131
+
132
+					$debug = true;
133
+
134
+					if (!$xoopsMailer->send($debug)) {
135
+						\xoops_error($xoopsMailer->getErrors(true), 'Email Send Error');
136
+					}
137
+				} else {
138
+					\xoops_loadLanguage('email', 'songlist');
139
+					$songsHandler   = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Songs');
140
+					$artistsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists');
141
+					$albumsHandler  = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums');
142
+					$genreHandler   = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre');
143
+
144
+					$song = $songsHandler->get($obj->getVar('sid'));
145
+					if (\is_object($song)) {
146
+						$sng = $genre->getVar('title');
147
+					}
148
+					$album = $albumHandler->get($song->getVar('abid'));
149
+					if (\is_object($album)) {
150
+						$alb     = $genre->getVar('title');
151
+						$alb_img = $genre->getImage();
152
+					}
153
+					$genre = $genreHandler->get($song->getVar('abid'));
154
+					if (\is_object($genre)) {
155
+						$gen = $genre->getVar('name');
156
+					}
157
+					$artists = $artistsHandler->getObjects(new \Criteria('aid', '(' . \implode(',', $song->getVar('aid')) . ')', 'IN'), false);
158
+					$art     = '';
159
+					foreach ($artists as $id => $artist) {
160
+						$art .= $artist->getVar('name') . ($id < \count($artists) - 1 ? ', ' : '');
161
+					}
162
+					$xoopsMailer = \getMailer();
163
+					$xoopsMailer->setHTML(true);
164
+					$xoopsMailer->setTemplateDir($GLOBALS['xoops']->path('/modules/songlist/language/' . $GLOBALS['xoopsConfig']['language'] . '/mail_templates/'));
165
+					$xoopsMailer->setTemplate('songlist_request_updated.tpl');
166
+					$xoopsMailer->setSubject(\sprintf(\_MD_SONGLIST_SUBJECT_REQUESTFOUND, $rid));
167
+
168
+					$xoopsMailer->setToEmails($obj->getVar('email'));
169
+
170
+					$xoopsMailer->assign('SITEURL', XOOPS_URL);
171
+					$xoopsMailer->assign('SITENAME', $GLOBALS['xoopsConfig']['sitename']);
172
+					$xoopsMailer->assign('RID', $rid);
173
+					$xoopsMailer->assign('TITLE', $obj->getVar('title'));
174
+					$xoopsMailer->assign('ALBUM', $obj->getVar('album'));
175
+					$xoopsMailer->assign('ARTIST', $obj->getVar('artist'));
176
+					$xoopsMailer->assign('EMAIL', $obj->getVar('email'));
177
+					$xoopsMailer->assign('NAME', $obj->getVar('name'));
178
+					$xoopsMailer->assign('SONGID', $song->getVar('songid'));
179
+					$xoopsMailer->assign('SONGURL', $song->getURL());
180
+					$xoopsMailer->assign('FOUNDTITLE', $sng);
181
+					$xoopsMailer->assign('FOUNDALBUM', $alb);
182
+					$xoopsMailer->assign('FOUNDARTIST', $art);
183
+					$xoopsMailer->assign('FOUNDGENRE', $gen);
184
+					$xoopsMailer->assign('EMAIL', $obj->getVar('email'));
185
+					$xoopsMailer->assign('NAME', $obj->getVar('name'));
186
+
187
+					if (!$xoopsMailer->send()) {
188
+						\xoops_error($xoopsMailer->getErrors(true), 'Email Send Error');
189
+					}
190
+				}
191
+			}
192
+		}
193
+
194
+		return $rid;
195
+	}
196
+
197
+	/**
198
+	 * @return string
199
+	 */
200
+	public function getURL(): string
201
+	{
202
+		global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit;
203
+		if ($GLOBALS['songlistModuleConfig']['htaccess']) {
204
+			return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $op . '-' . $fct . $GLOBALS['songlistModuleConfig']['endofurl'];
205
+		}
206
+
207
+		return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct;
208
+	}
209 209
 }
Please login to merge, or discard this patch.
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 
3 3
 namespace XoopsModules\Songlist;
4 4
 
5
-require_once \dirname(__DIR__) . '/include/songlist.object.php';
5
+require_once \dirname(__DIR__).'/include/songlist.object.php';
6 6
 // require_once \dirname(__DIR__) . '/include/songlist.form.php';
7 7
 use  XoopsModules\Songlist\Form\FormController;
8 8
 
@@ -40,15 +40,15 @@  discard block
 block discarded – undo
40 40
             $var = \explode(',', $part);
41 41
             if (!empty($var[1]) && !\is_numeric($var[0])) {
42 42
                 $object = $this->create();
43
-                if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
44
-                    || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
45
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
43
+                if (\XOBJ_DTYPE_TXTBOX==$object->vars[$var[0]]['data_type']
44
+                    || \XOBJ_DTYPE_TXTAREA==$object->vars[$var[0]]['data_type']) {
45
+                    $criteria->add(new \Criteria('`'.$var[0].'`', '%'.$var[1].'%', ($var[2] ?? 'LIKE')));
46 46
                 } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
47
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
48
-                } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
49
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
50
-                } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
51
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
47
+                    $criteria->add(new \Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '=')));
48
+                } elseif (\XOBJ_DTYPE_ENUM==$object->vars[$var[0]]['data_type']) {
49
+                    $criteria->add(new \Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '=')));
50
+                } elseif (\XOBJ_DTYPE_ARRAY==$object->vars[$var[0]]['data_type']) {
51
+                    $criteria->add(new \Criteria('`'.$var[0].'`', '%"'.$var[1].'";%', ($var[2] ?? 'LIKE')));
52 52
                 }
53 53
             } elseif (!empty($var[1]) && \is_numeric($var[0])) {
54 54
                 $criteria->add(new \Criteria($var[0], $var[1]));
@@ -89,7 +89,7 @@  discard block
 block discarded – undo
89 89
         } else {
90 90
             $obj->setVar('updated', \time());
91 91
             $new = false;
92
-            if (true === $obj->vars['songid']['changed']) {
92
+            if (true===$obj->vars['songid']['changed']) {
93 93
                 $songsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Songs');
94 94
                 $criteria     = new \Criteria('songid', $obj->getVar('songid'));
95 95
                 $songs        = $songsHandler->getObjects($criteria, false);
@@ -110,7 +110,7 @@  discard block
 block discarded – undo
110 110
                     \xoops_loadLanguage('email', 'songlist');
111 111
                     $xoopsMailer = \xoops_getMailer();
112 112
                     $xoopsMailer->setHTML(true);
113
-                    $xoopsMailer->setTemplateDir($GLOBALS['xoops']->path('/modules/songlist/language/' . $GLOBALS['xoopsConfig']['language'] . '/mail_templates/'));
113
+                    $xoopsMailer->setTemplateDir($GLOBALS['xoops']->path('/modules/songlist/language/'.$GLOBALS['xoopsConfig']['language'].'/mail_templates/'));
114 114
                     $xoopsMailer->setTemplate('songlist_request_created.tpl');
115 115
                     $xoopsMailer->setSubject(\sprintf(\_MD_SONGLIST_SUBJECT_REQUESTMADE, $rid));
116 116
 
@@ -154,14 +154,14 @@  discard block
 block discarded – undo
154 154
                     if (\is_object($genre)) {
155 155
                         $gen = $genre->getVar('name');
156 156
                     }
157
-                    $artists = $artistsHandler->getObjects(new \Criteria('aid', '(' . \implode(',', $song->getVar('aid')) . ')', 'IN'), false);
157
+                    $artists = $artistsHandler->getObjects(new \Criteria('aid', '('.\implode(',', $song->getVar('aid')).')', 'IN'), false);
158 158
                     $art     = '';
159 159
                     foreach ($artists as $id => $artist) {
160
-                        $art .= $artist->getVar('name') . ($id < \count($artists) - 1 ? ', ' : '');
160
+                        $art .= $artist->getVar('name').($id<\count($artists)-1 ? ', ' : '');
161 161
                     }
162 162
                     $xoopsMailer = \getMailer();
163 163
                     $xoopsMailer->setHTML(true);
164
-                    $xoopsMailer->setTemplateDir($GLOBALS['xoops']->path('/modules/songlist/language/' . $GLOBALS['xoopsConfig']['language'] . '/mail_templates/'));
164
+                    $xoopsMailer->setTemplateDir($GLOBALS['xoops']->path('/modules/songlist/language/'.$GLOBALS['xoopsConfig']['language'].'/mail_templates/'));
165 165
                     $xoopsMailer->setTemplate('songlist_request_updated.tpl');
166 166
                     $xoopsMailer->setSubject(\sprintf(\_MD_SONGLIST_SUBJECT_REQUESTFOUND, $rid));
167 167
 
@@ -201,9 +201,9 @@  discard block
 block discarded – undo
201 201
     {
202 202
         global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit;
203 203
         if ($GLOBALS['songlistModuleConfig']['htaccess']) {
204
-            return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $op . '-' . $fct . $GLOBALS['songlistModuleConfig']['endofurl'];
204
+            return XOOPS_URL.'/'.$GLOBALS['songlistModuleConfig']['baseofurl'].'/'.$file.'/'.$op.'-'.$fct.$GLOBALS['songlistModuleConfig']['endofurl'];
205 205
         }
206 206
 
207
-        return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct;
207
+        return XOOPS_URL.'/modules/songlist/'.$file.'.php?op='.$op.'&fct='.$fct;
208 208
     }
209 209
 }
Please login to merge, or discard this patch.
class/SongsHandler.php 2 patches
Indentation   +375 added lines, -375 removed lines patch added patch discarded remove patch
@@ -11,303 +11,303 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class SongsHandler extends \XoopsPersistableObjectHandler
13 13
 {
14
-    /**
15
-     * SongsHandler constructor.
16
-     * @param \XoopsDatabase $db
17
-     */
18
-    public function __construct(\XoopsDatabase $db)
19
-    {
20
-        $moduleHandler                   = \xoops_getHandler('module');
21
-        $configHandler                   = \xoops_getHandler('config');
22
-        $GLOBALS['songlistModule']       = $moduleHandler->getByDirname('songlist');
23
-        $GLOBALS['songlistModuleConfig'] = $configHandler->getConfigList($GLOBALS['songlistModule']->getVar('mid'));
24
-
25
-        parent::__construct($db, 'songlist_songs', Songs::class, 'sid', 'title');
26
-    }
27
-
28
-    /**
29
-     * @return array
30
-     */
31
-    public function filterFields(): array
32
-    {
33
-        return ['sid', 'cid', 'mp3', 'gid', 'vcid', 'aids', 'abid', 'songid', 'title', 'lyrics', 'hits', 'rank', 'votes', 'tags', 'created', 'updated'];
34
-    }
35
-
36
-    /**
37
-     * @param $filter
38
-     * @return \CriteriaCompo
39
-     */
40
-    public function getFilterCriteria($filter): \CriteriaCompo
41
-    {
42
-        $parts    = \explode('|', $filter);
43
-        $criteria = new \CriteriaCompo();
44
-        foreach ($parts as $part) {
45
-            $var = \explode(',', $part);
46
-            if (!empty($var[1]) && !\is_numeric($var[0])) {
47
-                $object = $this->create();
48
-                if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
49
-                    || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
50
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
51
-                } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
52
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
53
-                } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
54
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
55
-                } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
56
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
57
-                }
58
-            } elseif (!empty($var[1]) && \is_numeric($var[0])) {
59
-                $criteria->add(new \Criteria($var[0], $var[1]));
60
-            }
61
-        }
62
-
63
-        return $criteria;
64
-    }
65
-
66
-    /**
67
-     * @param        $filter
68
-     * @param        $field
69
-     * @param string $sort
70
-     * @param string $op
71
-     * @param string $fct
72
-     * @return string
73
-     */
74
-    public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string
75
-    {
76
-        $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct);
77
-        if (\is_object($ele)) {
78
-            return $ele->render();
79
-        }
80
-
81
-        return '&nbsp;';
82
-    }
83
-
84
-    /**
85
-     * @param bool $force
86
-     * @param null $object
87
-     * @return bool|mixed
88
-     */
89
-    public function insert(\XoopsObject $obj, $force = true, $object = null)
90
-    {
91
-        if ($obj->isNew()) {
92
-            $new = true;
93
-            $old = $this->create();
94
-            $obj->setVar('created', \time());
95
-        } else {
96
-            $new = false;
97
-            $old = $this->get($obj->getVar('sid'));
98
-            $obj->setVar('updated', \time());
99
-        }
100
-
101
-        $albumsHandler   = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums');
102
-        $artistsHandler  = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists');
103
-        $genreHandler    = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre');
104
-        $voiceHandler    = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Voice');
105
-        $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category');
106
-
107
-        if (true === ($obj->vars['gid']['changed']??false)) {
108
-            if ($new || (0 != $obj->vars['gid']['value'])) {
109
-                $genre = $genreHandler->get($obj->vars['gid']['value']);
110
-                if (\is_object($genre)) {
111
-                    $genre->setVar('songs', $genre->getVar('songs') + 1);
112
-                    $genreHandler->insert($genre, true, $obj);
113
-                }
114
-            }
115
-            if (!$old->isNew() && $old->getVar('gid') > 0) {
116
-                $genre = $genreHandler->get($old->vars['gid']['value']);
117
-                if (\is_object($genre)) {
118
-                    $genre->setVar('songs', $genre->getVar('songs') - 1);
119
-                    $genreHandler->insert($genre, true, null);
120
-                }
121
-            }
122
-        }
123
-
124
-        if (true === $obj->vars['vcid']['changed']) {
125
-            if ($new || (0 != $obj->vars['vcid']['value'])) {
126
-                $voice = $voiceHandler->get($obj->vars['vcid']['value']);
127
-                if (\is_object($voice)) {
128
-                    $voice->setVar('songs', $voice->getVar('songs') + 1);
129
-                    $voiceHandler->insert($voice, true, $obj);
130
-                }
131
-            }
132
-            if (!$old->isNew() && $old->getVar('vcid') > 0) {
133
-                $voice = $voiceHandler->get($old->vars['vcid']['value']);
134
-                if (\is_object($voice)) {
135
-                    $voice->setVar('songs', $voice->getVar('songs') - 1);
136
-                    $voiceHandler->insert($voice, true, null);
137
-                }
138
-            }
139
-        }
140
-
141
-        if (true === $obj->vars['cid']['changed']) {
142
-            if (true === $new || (0 != $obj->vars['cid']['value'])) {
143
-                $category = $categoryHandler->get($obj->vars['cid']['value']);
144
-                if (\is_object($category)) {
145
-                    $category->setVar('songs', $category->getVar('songs') + 1);
146
-                    $categoryHandler->insert($category, true, $obj);
147
-                    foreach ($obj->getVar('aids') as $aid) {
148
-                        $artists                   = $artistsHandler->get($aid);
149
-                        $cids                      = $artists->getVar('cids');
150
-                        $cids[$obj->getVar('cid')] = $obj->getVar('cid');
151
-                        if (\is_object($artists)) {
152
-                            $artists->setVar('cids', $cids);
153
-                            $artistsHandler->insert($artists, true, null);
154
-                        }
155
-                    }
156
-                }
157
-            }
158
-            if (!$old->isNew() && $old->getVar('cid') > 0) {
159
-                $category = $categoryHandler->get($old->vars['cid']['value']);
160
-                if (\is_object($category)) {
161
-                    $category->setVar('songs', $category->getVar('songs') - 1);
162
-                    $categoryHandler->insert($category, true, null);
163
-                    foreach ($obj->getVar('aids') as $aid) {
164
-                        $artists = $artistsHandler->get($aid);
165
-                        $cids    = [];
166
-                        foreach ($artists->getVar('cids') as $cid) {
167
-                            if ($cid != $old->getVar('cid') || $cid == $obj->getVar('cid')) {
168
-                                $cids[$cid] = $cid;
169
-                            }
170
-                        }
171
-                        if (\is_object($artists)) {
172
-                            $artists->setVar('cids', $cids);
173
-                            $artistsHandler->insert($artists, true, null);
174
-                        }
175
-                    }
176
-                }
177
-            }
178
-        }
179
-
180
-        if (true === $obj->vars['aids']['changed'] && 0 != \count($obj->vars['aids']['value'])) {
181
-            if (true === $new || 0 != \count($obj->vars['aids']['value'])) {
182
-                foreach ($obj->vars['aids']['value'] as $aid) {
183
-                    if (!\in_array($aid, $old->vars['aids']['value'], true)) {
184
-                        $artists = $artistsHandler->get($aid);
185
-                        if (\is_object($artists)) {
186
-                            $artists->setVar('songs', $artists->getVar('songs') + 1);
187
-                            $artistsHandler->insert($artists, true, $obj);
188
-                            if (true === $new || (0 != $obj->vars['vcid']['value'])) {
189
-                                $voice = $voiceHandler->get($obj->vars['vcid']['value']);
190
-                                if (\is_object($voice)) {
191
-                                    $voice->setVar('artists', $voice->getVar('artists') + 1);
192
-                                    $voiceHandler->insert($voice, true, $obj);
193
-                                }
194
-                            }
195
-                        }
196
-                    }
197
-                }
198
-            }
199
-            if (!$old->isNew() && 0 == \count($old->getVar('aids'))) {
200
-                foreach ($old->getVar('aids') as $aid) {
201
-                    if (!\in_array($aid, $obj->vars['aids']['value'], true)) {
202
-                        $artists = $artistsHandler->get($aid);
203
-                        if (\is_object($artists)) {
204
-                            $artists->setVar('songs', $artists->getVar('songs') - 1);
205
-                            $artistsHandler->insert($artists, true, null);
206
-                            if (!$old->isNew() && $old->getVar('vcid') > 0) {
207
-                                $voice = $voiceHandler->get($old->vars['vcid']['value']);
208
-                                if (\is_object($voice)) {
209
-                                    $voice->setVar('artists', $voice->getVar('artists') - 1);
210
-                                    $voiceHandler->insert($voice, true, null);
211
-                                }
212
-                            }
213
-                        }
214
-                    }
215
-                }
216
-            }
217
-        }
218
-
219
-        if (true === $obj->vars['abid']['changed']) {
220
-            if (true === $new || (0 != $obj->vars['abid']['value'])) {
221
-                $album = $albumsHandler->get($obj->vars['abid']['value']);
222
-                if (\is_object($album)) {
223
-                    $album->setVar('songs', $album->getVar('songs') + 1);
224
-                    $albumsHandler->insert($album, true, $obj);
225
-                    if (true === $new || (0 != $obj->vars['vcid']['value'])) {
226
-                        $voice = $voiceHandler->get($obj->vars['vcid']['value']);
227
-                        if (\is_object($voice)) {
228
-                            $voice->setVar('albums', $voice->getVar('albums') + 1);
229
-                            $voiceHandler->insert($voice, true, $obj);
230
-                        }
231
-                    }
232
-                }
233
-            }
234
-            if (!$old->isNew() && $old->getVar('abid') > 0) {
235
-                $album = $albumsHandler->get($obj->vars['abid']['value']);
236
-                if (\is_object($album)) {
237
-                    $album->setVar('songs', $album->getVar('songs') - 1);
238
-                    $albumsHandler->insert($album, true, null);
239
-                    if (!$old->isNew() && $old->getVar('vcid') > 0) {
240
-                        $voice = $voiceHandler->get($old->vars['vcid']['value']);
241
-                        if (\is_object($voice)) {
242
-                            $voice->setVar('albums', $voice->getVar('albums') - 1);
243
-                            $voiceHandler->insert($voice, true, null);
244
-                        }
245
-                    }
246
-                }
247
-            }
248
-        }
249
-
250
-        if ('' == $obj->getVar('title')) {
251
-            return false;
252
-        }
253
-
254
-        $sid = parent::insert($obj, $force);
255
-        if ($obj->vars['abid']['value'] > 0) {
256
-            $album      = $albumsHandler->get($obj->vars['abid']['value']);
257
-            $arry       = $album->getVar('sids');
258
-            $arry[$sid] = $sid;
259
-            if (\is_object($album)) {
260
-                $album->setVar('sids', $arry);
261
-                $albumsHandler->insert($album);
262
-            }
263
-        }
264
-        if (\count($obj->getVar('aids')) > 0) {
265
-            foreach ($obj->getVar('aids') as $aid) {
266
-                $artist     = $artistsHandler->get($aid);
267
-                $arry       = $artist->getVar('sids');
268
-                $arry[$sid] = $sid;
269
-                if (\is_object($artists)) {
270
-                    $artist->setVar('sids', $arry);
271
-                    $artistsHandler->insert($artist);
272
-                }
273
-            }
274
-        }
275
-
276
-        return $sid;
277
-    }
278
-
279
-    public $_objects = ['object' => [], 'array' => []];
280
-
281
-    /**
282
-     * @param null $id
283
-     * @param null $fields
284
-     * @return \XoopsObject
285
-     */
286
-    public function get($id = null, $fields = null): \XoopsObject//get($id, $fields = '*')
287
-    {
288
-        $fields = $fields ?: '*';
289
-        if (!isset($this->_objects['object'][$id])) {
290
-            $this->_objects['object'][$id] = parent::get($id, $fields);
291
-            if (!isset($GLOBALS['songlistAdmin']) && \is_object($this->_objects['object'][$id])) {
292
-                $sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $this->_objects['object'][$id]->getVar($this->keyName);
293
-                $GLOBALS['xoopsDB']->queryF($sql);
294
-            }
295
-        }
296
-
297
-        return $this->_objects['object'][$id];
298
-    }
299
-
300
-    /**
301
-     * @param \CriteriaElement|\CriteriaCompo $criteria
302
-     * @param bool $id_as_key
303
-     * @param bool $as_object
304
-     * @return array
305
-     */
306
-    public function &getObjects($criteria = null, $id_as_key = false, $as_object = true): array
307
-    {
308
-        $ret = parent::getObjects($criteria, $id_as_key, $as_object);
309
-
310
-        /*if (!isset($GLOBALS['songlistAdmin'])) {
14
+	/**
15
+	 * SongsHandler constructor.
16
+	 * @param \XoopsDatabase $db
17
+	 */
18
+	public function __construct(\XoopsDatabase $db)
19
+	{
20
+		$moduleHandler                   = \xoops_getHandler('module');
21
+		$configHandler                   = \xoops_getHandler('config');
22
+		$GLOBALS['songlistModule']       = $moduleHandler->getByDirname('songlist');
23
+		$GLOBALS['songlistModuleConfig'] = $configHandler->getConfigList($GLOBALS['songlistModule']->getVar('mid'));
24
+
25
+		parent::__construct($db, 'songlist_songs', Songs::class, 'sid', 'title');
26
+	}
27
+
28
+	/**
29
+	 * @return array
30
+	 */
31
+	public function filterFields(): array
32
+	{
33
+		return ['sid', 'cid', 'mp3', 'gid', 'vcid', 'aids', 'abid', 'songid', 'title', 'lyrics', 'hits', 'rank', 'votes', 'tags', 'created', 'updated'];
34
+	}
35
+
36
+	/**
37
+	 * @param $filter
38
+	 * @return \CriteriaCompo
39
+	 */
40
+	public function getFilterCriteria($filter): \CriteriaCompo
41
+	{
42
+		$parts    = \explode('|', $filter);
43
+		$criteria = new \CriteriaCompo();
44
+		foreach ($parts as $part) {
45
+			$var = \explode(',', $part);
46
+			if (!empty($var[1]) && !\is_numeric($var[0])) {
47
+				$object = $this->create();
48
+				if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
49
+					|| \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
50
+					$criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
51
+				} elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
52
+					$criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
53
+				} elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
54
+					$criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
55
+				} elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
56
+					$criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
57
+				}
58
+			} elseif (!empty($var[1]) && \is_numeric($var[0])) {
59
+				$criteria->add(new \Criteria($var[0], $var[1]));
60
+			}
61
+		}
62
+
63
+		return $criteria;
64
+	}
65
+
66
+	/**
67
+	 * @param        $filter
68
+	 * @param        $field
69
+	 * @param string $sort
70
+	 * @param string $op
71
+	 * @param string $fct
72
+	 * @return string
73
+	 */
74
+	public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string
75
+	{
76
+		$ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct);
77
+		if (\is_object($ele)) {
78
+			return $ele->render();
79
+		}
80
+
81
+		return '&nbsp;';
82
+	}
83
+
84
+	/**
85
+	 * @param bool $force
86
+	 * @param null $object
87
+	 * @return bool|mixed
88
+	 */
89
+	public function insert(\XoopsObject $obj, $force = true, $object = null)
90
+	{
91
+		if ($obj->isNew()) {
92
+			$new = true;
93
+			$old = $this->create();
94
+			$obj->setVar('created', \time());
95
+		} else {
96
+			$new = false;
97
+			$old = $this->get($obj->getVar('sid'));
98
+			$obj->setVar('updated', \time());
99
+		}
100
+
101
+		$albumsHandler   = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums');
102
+		$artistsHandler  = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists');
103
+		$genreHandler    = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre');
104
+		$voiceHandler    = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Voice');
105
+		$categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category');
106
+
107
+		if (true === ($obj->vars['gid']['changed']??false)) {
108
+			if ($new || (0 != $obj->vars['gid']['value'])) {
109
+				$genre = $genreHandler->get($obj->vars['gid']['value']);
110
+				if (\is_object($genre)) {
111
+					$genre->setVar('songs', $genre->getVar('songs') + 1);
112
+					$genreHandler->insert($genre, true, $obj);
113
+				}
114
+			}
115
+			if (!$old->isNew() && $old->getVar('gid') > 0) {
116
+				$genre = $genreHandler->get($old->vars['gid']['value']);
117
+				if (\is_object($genre)) {
118
+					$genre->setVar('songs', $genre->getVar('songs') - 1);
119
+					$genreHandler->insert($genre, true, null);
120
+				}
121
+			}
122
+		}
123
+
124
+		if (true === $obj->vars['vcid']['changed']) {
125
+			if ($new || (0 != $obj->vars['vcid']['value'])) {
126
+				$voice = $voiceHandler->get($obj->vars['vcid']['value']);
127
+				if (\is_object($voice)) {
128
+					$voice->setVar('songs', $voice->getVar('songs') + 1);
129
+					$voiceHandler->insert($voice, true, $obj);
130
+				}
131
+			}
132
+			if (!$old->isNew() && $old->getVar('vcid') > 0) {
133
+				$voice = $voiceHandler->get($old->vars['vcid']['value']);
134
+				if (\is_object($voice)) {
135
+					$voice->setVar('songs', $voice->getVar('songs') - 1);
136
+					$voiceHandler->insert($voice, true, null);
137
+				}
138
+			}
139
+		}
140
+
141
+		if (true === $obj->vars['cid']['changed']) {
142
+			if (true === $new || (0 != $obj->vars['cid']['value'])) {
143
+				$category = $categoryHandler->get($obj->vars['cid']['value']);
144
+				if (\is_object($category)) {
145
+					$category->setVar('songs', $category->getVar('songs') + 1);
146
+					$categoryHandler->insert($category, true, $obj);
147
+					foreach ($obj->getVar('aids') as $aid) {
148
+						$artists                   = $artistsHandler->get($aid);
149
+						$cids                      = $artists->getVar('cids');
150
+						$cids[$obj->getVar('cid')] = $obj->getVar('cid');
151
+						if (\is_object($artists)) {
152
+							$artists->setVar('cids', $cids);
153
+							$artistsHandler->insert($artists, true, null);
154
+						}
155
+					}
156
+				}
157
+			}
158
+			if (!$old->isNew() && $old->getVar('cid') > 0) {
159
+				$category = $categoryHandler->get($old->vars['cid']['value']);
160
+				if (\is_object($category)) {
161
+					$category->setVar('songs', $category->getVar('songs') - 1);
162
+					$categoryHandler->insert($category, true, null);
163
+					foreach ($obj->getVar('aids') as $aid) {
164
+						$artists = $artistsHandler->get($aid);
165
+						$cids    = [];
166
+						foreach ($artists->getVar('cids') as $cid) {
167
+							if ($cid != $old->getVar('cid') || $cid == $obj->getVar('cid')) {
168
+								$cids[$cid] = $cid;
169
+							}
170
+						}
171
+						if (\is_object($artists)) {
172
+							$artists->setVar('cids', $cids);
173
+							$artistsHandler->insert($artists, true, null);
174
+						}
175
+					}
176
+				}
177
+			}
178
+		}
179
+
180
+		if (true === $obj->vars['aids']['changed'] && 0 != \count($obj->vars['aids']['value'])) {
181
+			if (true === $new || 0 != \count($obj->vars['aids']['value'])) {
182
+				foreach ($obj->vars['aids']['value'] as $aid) {
183
+					if (!\in_array($aid, $old->vars['aids']['value'], true)) {
184
+						$artists = $artistsHandler->get($aid);
185
+						if (\is_object($artists)) {
186
+							$artists->setVar('songs', $artists->getVar('songs') + 1);
187
+							$artistsHandler->insert($artists, true, $obj);
188
+							if (true === $new || (0 != $obj->vars['vcid']['value'])) {
189
+								$voice = $voiceHandler->get($obj->vars['vcid']['value']);
190
+								if (\is_object($voice)) {
191
+									$voice->setVar('artists', $voice->getVar('artists') + 1);
192
+									$voiceHandler->insert($voice, true, $obj);
193
+								}
194
+							}
195
+						}
196
+					}
197
+				}
198
+			}
199
+			if (!$old->isNew() && 0 == \count($old->getVar('aids'))) {
200
+				foreach ($old->getVar('aids') as $aid) {
201
+					if (!\in_array($aid, $obj->vars['aids']['value'], true)) {
202
+						$artists = $artistsHandler->get($aid);
203
+						if (\is_object($artists)) {
204
+							$artists->setVar('songs', $artists->getVar('songs') - 1);
205
+							$artistsHandler->insert($artists, true, null);
206
+							if (!$old->isNew() && $old->getVar('vcid') > 0) {
207
+								$voice = $voiceHandler->get($old->vars['vcid']['value']);
208
+								if (\is_object($voice)) {
209
+									$voice->setVar('artists', $voice->getVar('artists') - 1);
210
+									$voiceHandler->insert($voice, true, null);
211
+								}
212
+							}
213
+						}
214
+					}
215
+				}
216
+			}
217
+		}
218
+
219
+		if (true === $obj->vars['abid']['changed']) {
220
+			if (true === $new || (0 != $obj->vars['abid']['value'])) {
221
+				$album = $albumsHandler->get($obj->vars['abid']['value']);
222
+				if (\is_object($album)) {
223
+					$album->setVar('songs', $album->getVar('songs') + 1);
224
+					$albumsHandler->insert($album, true, $obj);
225
+					if (true === $new || (0 != $obj->vars['vcid']['value'])) {
226
+						$voice = $voiceHandler->get($obj->vars['vcid']['value']);
227
+						if (\is_object($voice)) {
228
+							$voice->setVar('albums', $voice->getVar('albums') + 1);
229
+							$voiceHandler->insert($voice, true, $obj);
230
+						}
231
+					}
232
+				}
233
+			}
234
+			if (!$old->isNew() && $old->getVar('abid') > 0) {
235
+				$album = $albumsHandler->get($obj->vars['abid']['value']);
236
+				if (\is_object($album)) {
237
+					$album->setVar('songs', $album->getVar('songs') - 1);
238
+					$albumsHandler->insert($album, true, null);
239
+					if (!$old->isNew() && $old->getVar('vcid') > 0) {
240
+						$voice = $voiceHandler->get($old->vars['vcid']['value']);
241
+						if (\is_object($voice)) {
242
+							$voice->setVar('albums', $voice->getVar('albums') - 1);
243
+							$voiceHandler->insert($voice, true, null);
244
+						}
245
+					}
246
+				}
247
+			}
248
+		}
249
+
250
+		if ('' == $obj->getVar('title')) {
251
+			return false;
252
+		}
253
+
254
+		$sid = parent::insert($obj, $force);
255
+		if ($obj->vars['abid']['value'] > 0) {
256
+			$album      = $albumsHandler->get($obj->vars['abid']['value']);
257
+			$arry       = $album->getVar('sids');
258
+			$arry[$sid] = $sid;
259
+			if (\is_object($album)) {
260
+				$album->setVar('sids', $arry);
261
+				$albumsHandler->insert($album);
262
+			}
263
+		}
264
+		if (\count($obj->getVar('aids')) > 0) {
265
+			foreach ($obj->getVar('aids') as $aid) {
266
+				$artist     = $artistsHandler->get($aid);
267
+				$arry       = $artist->getVar('sids');
268
+				$arry[$sid] = $sid;
269
+				if (\is_object($artists)) {
270
+					$artist->setVar('sids', $arry);
271
+					$artistsHandler->insert($artist);
272
+				}
273
+			}
274
+		}
275
+
276
+		return $sid;
277
+	}
278
+
279
+	public $_objects = ['object' => [], 'array' => []];
280
+
281
+	/**
282
+	 * @param null $id
283
+	 * @param null $fields
284
+	 * @return \XoopsObject
285
+	 */
286
+	public function get($id = null, $fields = null): \XoopsObject//get($id, $fields = '*')
287
+	{
288
+		$fields = $fields ?: '*';
289
+		if (!isset($this->_objects['object'][$id])) {
290
+			$this->_objects['object'][$id] = parent::get($id, $fields);
291
+			if (!isset($GLOBALS['songlistAdmin']) && \is_object($this->_objects['object'][$id])) {
292
+				$sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $this->_objects['object'][$id]->getVar($this->keyName);
293
+				$GLOBALS['xoopsDB']->queryF($sql);
294
+			}
295
+		}
296
+
297
+		return $this->_objects['object'][$id];
298
+	}
299
+
300
+	/**
301
+	 * @param \CriteriaElement|\CriteriaCompo $criteria
302
+	 * @param bool $id_as_key
303
+	 * @param bool $as_object
304
+	 * @return array
305
+	 */
306
+	public function &getObjects($criteria = null, $id_as_key = false, $as_object = true): array
307
+	{
308
+		$ret = parent::getObjects($criteria, $id_as_key, $as_object);
309
+
310
+		/*if (!isset($GLOBALS['songlistAdmin'])) {
311 311
             foreach($ret as $data) {
312 312
                 $id = [];
313 313
                 if ($as_object==true) {
@@ -328,82 +328,82 @@  discard block
 block discarded – undo
328 328
             $GLOBALS['xoopsDB']->queryF($sql);
329 329
         }*/
330 330
 
331
-        return $ret;
332
-    }
333
-
334
-    /**
335
-     * @return string
336
-     */
337
-    public function getURL(): string
338
-    {
339
-        global $file, $op, $fct, $id, $value, $gid, $vid, $vcid, $cid, $start, $limit;
340
-        if ($GLOBALS['songlistModuleConfig']['htaccess']) {
341
-            if (0 != $cid) {
342
-                $artistHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists');
343
-                $artist        = $artistHandler->get($cid);
344
-                if (\is_object($artist) && !$artist->isNew()) {
345
-                    return XOOPS_URL
346
-                           . '/'
347
-                           . $GLOBALS['songlistModuleConfig']['baseofurl']
348
-                           . '/'
349
-                           . $file
350
-                           . '/'
351
-                           . \urlencode(\str_replace([' ', \chr(9)], '-', $artist->getVar('name')))
352
-                           . '/'
353
-                           . $start
354
-                           . '-'
355
-                           . $id
356
-                           . '-'
357
-                           . $op
358
-                           . '-'
359
-                           . $fct
360
-                           . '-'
361
-                           . $gid
362
-                           . '-'
363
-                           . $cid
364
-                           . '/'
365
-                           . \urlencode($value)
366
-                           . $GLOBALS['songlistModuleConfig']['endofurl'];
367
-                }
368
-
369
-                return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $id . '-' . $op . '-' . $fct . '-' . $gid . '-' . $cid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
370
-            }
371
-
372
-            return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $id . '-' . $op . '-' . $fct . '-' . $gid . '-' . $cid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
373
-        }
374
-
375
-        return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $id . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&vid=' . $vid . '&cid=' . $cid . '&start=' . $start;
376
-    }
377
-
378
-    /**
379
-     * @return string
380
-     */
381
-    public function getSearchURL(): string
382
-    {
383
-        global $file, $op, $fct, $id, $value, $gid, $vcid, $cid, $start, $limit;
384
-        if ($GLOBALS['songlistModuleConfig']['htaccess']) {
385
-            return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $op . '-' . $fct . '-' . $gid . '-' . ($_GET['cid'] ?? $cid) . '-' . $vcid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
386
-        }
387
-
388
-        return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&value=' . \urlencode($value ?? '') . '&cid=' . $cid . '&gid=' . $gid . '&vcid=' . $vcid . '&start=' . $start;
389
-    }
390
-
391
-    /**
392
-     * @param int $limit
393
-     * @return array
394
-     */
395
-    public function getTop($limit = 1): array
396
-    {
397
-        $sql     = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit;
398
-        $results = $GLOBALS['xoopsDB']->queryF($sql);
399
-        $ret     = [];
400
-        $i       = 0;
401
-        while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) {
402
-            $ret[$i] = $this->create();
403
-            $ret[$i]->assignVars($row);
404
-            ++$i;
405
-        }
406
-
407
-        return $ret;
408
-    }
331
+		return $ret;
332
+	}
333
+
334
+	/**
335
+	 * @return string
336
+	 */
337
+	public function getURL(): string
338
+	{
339
+		global $file, $op, $fct, $id, $value, $gid, $vid, $vcid, $cid, $start, $limit;
340
+		if ($GLOBALS['songlistModuleConfig']['htaccess']) {
341
+			if (0 != $cid) {
342
+				$artistHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists');
343
+				$artist        = $artistHandler->get($cid);
344
+				if (\is_object($artist) && !$artist->isNew()) {
345
+					return XOOPS_URL
346
+						   . '/'
347
+						   . $GLOBALS['songlistModuleConfig']['baseofurl']
348
+						   . '/'
349
+						   . $file
350
+						   . '/'
351
+						   . \urlencode(\str_replace([' ', \chr(9)], '-', $artist->getVar('name')))
352
+						   . '/'
353
+						   . $start
354
+						   . '-'
355
+						   . $id
356
+						   . '-'
357
+						   . $op
358
+						   . '-'
359
+						   . $fct
360
+						   . '-'
361
+						   . $gid
362
+						   . '-'
363
+						   . $cid
364
+						   . '/'
365
+						   . \urlencode($value)
366
+						   . $GLOBALS['songlistModuleConfig']['endofurl'];
367
+				}
368
+
369
+				return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $id . '-' . $op . '-' . $fct . '-' . $gid . '-' . $cid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
370
+			}
371
+
372
+			return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $id . '-' . $op . '-' . $fct . '-' . $gid . '-' . $cid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
373
+		}
374
+
375
+		return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $id . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&vid=' . $vid . '&cid=' . $cid . '&start=' . $start;
376
+	}
377
+
378
+	/**
379
+	 * @return string
380
+	 */
381
+	public function getSearchURL(): string
382
+	{
383
+		global $file, $op, $fct, $id, $value, $gid, $vcid, $cid, $start, $limit;
384
+		if ($GLOBALS['songlistModuleConfig']['htaccess']) {
385
+			return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $op . '-' . $fct . '-' . $gid . '-' . ($_GET['cid'] ?? $cid) . '-' . $vcid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
386
+		}
387
+
388
+		return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&value=' . \urlencode($value ?? '') . '&cid=' . $cid . '&gid=' . $gid . '&vcid=' . $vcid . '&start=' . $start;
389
+	}
390
+
391
+	/**
392
+	 * @param int $limit
393
+	 * @return array
394
+	 */
395
+	public function getTop($limit = 1): array
396
+	{
397
+		$sql     = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit;
398
+		$results = $GLOBALS['xoopsDB']->queryF($sql);
399
+		$ret     = [];
400
+		$i       = 0;
401
+		while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) {
402
+			$ret[$i] = $this->create();
403
+			$ret[$i]->assignVars($row);
404
+			++$i;
405
+		}
406
+
407
+		return $ret;
408
+	}
409 409
 }
Please login to merge, or discard this patch.
Spacing   +55 added lines, -55 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 
3 3
 namespace XoopsModules\Songlist;
4 4
 
5
-require_once \dirname(__DIR__) . '/include/songlist.object.php';
5
+require_once \dirname(__DIR__).'/include/songlist.object.php';
6 6
 // require_once \dirname(__DIR__) . '/include/songlist.form.php';
7 7
 use  XoopsModules\Songlist\Form\FormController;
8 8
 
@@ -45,15 +45,15 @@  discard block
 block discarded – undo
45 45
             $var = \explode(',', $part);
46 46
             if (!empty($var[1]) && !\is_numeric($var[0])) {
47 47
                 $object = $this->create();
48
-                if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
49
-                    || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
50
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
48
+                if (\XOBJ_DTYPE_TXTBOX==$object->vars[$var[0]]['data_type']
49
+                    || \XOBJ_DTYPE_TXTAREA==$object->vars[$var[0]]['data_type']) {
50
+                    $criteria->add(new \Criteria('`'.$var[0].'`', '%'.$var[1].'%', ($var[2] ?? 'LIKE')));
51 51
                 } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
52
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
53
-                } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
54
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
55
-                } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
56
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
52
+                    $criteria->add(new \Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '=')));
53
+                } elseif (\XOBJ_DTYPE_ENUM==$object->vars[$var[0]]['data_type']) {
54
+                    $criteria->add(new \Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '=')));
55
+                } elseif (\XOBJ_DTYPE_ARRAY==$object->vars[$var[0]]['data_type']) {
56
+                    $criteria->add(new \Criteria('`'.$var[0].'`', '%"'.$var[1].'";%', ($var[2] ?? 'LIKE')));
57 57
                 }
58 58
             } elseif (!empty($var[1]) && \is_numeric($var[0])) {
59 59
                 $criteria->add(new \Criteria($var[0], $var[1]));
@@ -104,45 +104,45 @@  discard block
 block discarded – undo
104 104
         $voiceHandler    = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Voice');
105 105
         $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category');
106 106
 
107
-        if (true === ($obj->vars['gid']['changed']??false)) {
108
-            if ($new || (0 != $obj->vars['gid']['value'])) {
107
+        if (true===($obj->vars['gid']['changed'] ?? false)) {
108
+            if ($new || (0!=$obj->vars['gid']['value'])) {
109 109
                 $genre = $genreHandler->get($obj->vars['gid']['value']);
110 110
                 if (\is_object($genre)) {
111
-                    $genre->setVar('songs', $genre->getVar('songs') + 1);
111
+                    $genre->setVar('songs', $genre->getVar('songs')+1);
112 112
                     $genreHandler->insert($genre, true, $obj);
113 113
                 }
114 114
             }
115
-            if (!$old->isNew() && $old->getVar('gid') > 0) {
115
+            if (!$old->isNew() && $old->getVar('gid')>0) {
116 116
                 $genre = $genreHandler->get($old->vars['gid']['value']);
117 117
                 if (\is_object($genre)) {
118
-                    $genre->setVar('songs', $genre->getVar('songs') - 1);
118
+                    $genre->setVar('songs', $genre->getVar('songs')-1);
119 119
                     $genreHandler->insert($genre, true, null);
120 120
                 }
121 121
             }
122 122
         }
123 123
 
124
-        if (true === $obj->vars['vcid']['changed']) {
125
-            if ($new || (0 != $obj->vars['vcid']['value'])) {
124
+        if (true===$obj->vars['vcid']['changed']) {
125
+            if ($new || (0!=$obj->vars['vcid']['value'])) {
126 126
                 $voice = $voiceHandler->get($obj->vars['vcid']['value']);
127 127
                 if (\is_object($voice)) {
128
-                    $voice->setVar('songs', $voice->getVar('songs') + 1);
128
+                    $voice->setVar('songs', $voice->getVar('songs')+1);
129 129
                     $voiceHandler->insert($voice, true, $obj);
130 130
                 }
131 131
             }
132
-            if (!$old->isNew() && $old->getVar('vcid') > 0) {
132
+            if (!$old->isNew() && $old->getVar('vcid')>0) {
133 133
                 $voice = $voiceHandler->get($old->vars['vcid']['value']);
134 134
                 if (\is_object($voice)) {
135
-                    $voice->setVar('songs', $voice->getVar('songs') - 1);
135
+                    $voice->setVar('songs', $voice->getVar('songs')-1);
136 136
                     $voiceHandler->insert($voice, true, null);
137 137
                 }
138 138
             }
139 139
         }
140 140
 
141
-        if (true === $obj->vars['cid']['changed']) {
142
-            if (true === $new || (0 != $obj->vars['cid']['value'])) {
141
+        if (true===$obj->vars['cid']['changed']) {
142
+            if (true===$new || (0!=$obj->vars['cid']['value'])) {
143 143
                 $category = $categoryHandler->get($obj->vars['cid']['value']);
144 144
                 if (\is_object($category)) {
145
-                    $category->setVar('songs', $category->getVar('songs') + 1);
145
+                    $category->setVar('songs', $category->getVar('songs')+1);
146 146
                     $categoryHandler->insert($category, true, $obj);
147 147
                     foreach ($obj->getVar('aids') as $aid) {
148 148
                         $artists                   = $artistsHandler->get($aid);
@@ -155,16 +155,16 @@  discard block
 block discarded – undo
155 155
                     }
156 156
                 }
157 157
             }
158
-            if (!$old->isNew() && $old->getVar('cid') > 0) {
158
+            if (!$old->isNew() && $old->getVar('cid')>0) {
159 159
                 $category = $categoryHandler->get($old->vars['cid']['value']);
160 160
                 if (\is_object($category)) {
161
-                    $category->setVar('songs', $category->getVar('songs') - 1);
161
+                    $category->setVar('songs', $category->getVar('songs')-1);
162 162
                     $categoryHandler->insert($category, true, null);
163 163
                     foreach ($obj->getVar('aids') as $aid) {
164 164
                         $artists = $artistsHandler->get($aid);
165 165
                         $cids    = [];
166 166
                         foreach ($artists->getVar('cids') as $cid) {
167
-                            if ($cid != $old->getVar('cid') || $cid == $obj->getVar('cid')) {
167
+                            if ($cid!=$old->getVar('cid') || $cid==$obj->getVar('cid')) {
168 168
                                 $cids[$cid] = $cid;
169 169
                             }
170 170
                         }
@@ -177,18 +177,18 @@  discard block
 block discarded – undo
177 177
             }
178 178
         }
179 179
 
180
-        if (true === $obj->vars['aids']['changed'] && 0 != \count($obj->vars['aids']['value'])) {
181
-            if (true === $new || 0 != \count($obj->vars['aids']['value'])) {
180
+        if (true===$obj->vars['aids']['changed'] && 0!=\count($obj->vars['aids']['value'])) {
181
+            if (true===$new || 0!=\count($obj->vars['aids']['value'])) {
182 182
                 foreach ($obj->vars['aids']['value'] as $aid) {
183 183
                     if (!\in_array($aid, $old->vars['aids']['value'], true)) {
184 184
                         $artists = $artistsHandler->get($aid);
185 185
                         if (\is_object($artists)) {
186
-                            $artists->setVar('songs', $artists->getVar('songs') + 1);
186
+                            $artists->setVar('songs', $artists->getVar('songs')+1);
187 187
                             $artistsHandler->insert($artists, true, $obj);
188
-                            if (true === $new || (0 != $obj->vars['vcid']['value'])) {
188
+                            if (true===$new || (0!=$obj->vars['vcid']['value'])) {
189 189
                                 $voice = $voiceHandler->get($obj->vars['vcid']['value']);
190 190
                                 if (\is_object($voice)) {
191
-                                    $voice->setVar('artists', $voice->getVar('artists') + 1);
191
+                                    $voice->setVar('artists', $voice->getVar('artists')+1);
192 192
                                     $voiceHandler->insert($voice, true, $obj);
193 193
                                 }
194 194
                             }
@@ -196,17 +196,17 @@  discard block
 block discarded – undo
196 196
                     }
197 197
                 }
198 198
             }
199
-            if (!$old->isNew() && 0 == \count($old->getVar('aids'))) {
199
+            if (!$old->isNew() && 0==\count($old->getVar('aids'))) {
200 200
                 foreach ($old->getVar('aids') as $aid) {
201 201
                     if (!\in_array($aid, $obj->vars['aids']['value'], true)) {
202 202
                         $artists = $artistsHandler->get($aid);
203 203
                         if (\is_object($artists)) {
204
-                            $artists->setVar('songs', $artists->getVar('songs') - 1);
204
+                            $artists->setVar('songs', $artists->getVar('songs')-1);
205 205
                             $artistsHandler->insert($artists, true, null);
206
-                            if (!$old->isNew() && $old->getVar('vcid') > 0) {
206
+                            if (!$old->isNew() && $old->getVar('vcid')>0) {
207 207
                                 $voice = $voiceHandler->get($old->vars['vcid']['value']);
208 208
                                 if (\is_object($voice)) {
209
-                                    $voice->setVar('artists', $voice->getVar('artists') - 1);
209
+                                    $voice->setVar('artists', $voice->getVar('artists')-1);
210 210
                                     $voiceHandler->insert($voice, true, null);
211 211
                                 }
212 212
                             }
@@ -216,30 +216,30 @@  discard block
 block discarded – undo
216 216
             }
217 217
         }
218 218
 
219
-        if (true === $obj->vars['abid']['changed']) {
220
-            if (true === $new || (0 != $obj->vars['abid']['value'])) {
219
+        if (true===$obj->vars['abid']['changed']) {
220
+            if (true===$new || (0!=$obj->vars['abid']['value'])) {
221 221
                 $album = $albumsHandler->get($obj->vars['abid']['value']);
222 222
                 if (\is_object($album)) {
223
-                    $album->setVar('songs', $album->getVar('songs') + 1);
223
+                    $album->setVar('songs', $album->getVar('songs')+1);
224 224
                     $albumsHandler->insert($album, true, $obj);
225
-                    if (true === $new || (0 != $obj->vars['vcid']['value'])) {
225
+                    if (true===$new || (0!=$obj->vars['vcid']['value'])) {
226 226
                         $voice = $voiceHandler->get($obj->vars['vcid']['value']);
227 227
                         if (\is_object($voice)) {
228
-                            $voice->setVar('albums', $voice->getVar('albums') + 1);
228
+                            $voice->setVar('albums', $voice->getVar('albums')+1);
229 229
                             $voiceHandler->insert($voice, true, $obj);
230 230
                         }
231 231
                     }
232 232
                 }
233 233
             }
234
-            if (!$old->isNew() && $old->getVar('abid') > 0) {
234
+            if (!$old->isNew() && $old->getVar('abid')>0) {
235 235
                 $album = $albumsHandler->get($obj->vars['abid']['value']);
236 236
                 if (\is_object($album)) {
237
-                    $album->setVar('songs', $album->getVar('songs') - 1);
237
+                    $album->setVar('songs', $album->getVar('songs')-1);
238 238
                     $albumsHandler->insert($album, true, null);
239
-                    if (!$old->isNew() && $old->getVar('vcid') > 0) {
239
+                    if (!$old->isNew() && $old->getVar('vcid')>0) {
240 240
                         $voice = $voiceHandler->get($old->vars['vcid']['value']);
241 241
                         if (\is_object($voice)) {
242
-                            $voice->setVar('albums', $voice->getVar('albums') - 1);
242
+                            $voice->setVar('albums', $voice->getVar('albums')-1);
243 243
                             $voiceHandler->insert($voice, true, null);
244 244
                         }
245 245
                     }
@@ -247,12 +247,12 @@  discard block
 block discarded – undo
247 247
             }
248 248
         }
249 249
 
250
-        if ('' == $obj->getVar('title')) {
250
+        if (''==$obj->getVar('title')) {
251 251
             return false;
252 252
         }
253 253
 
254 254
         $sid = parent::insert($obj, $force);
255
-        if ($obj->vars['abid']['value'] > 0) {
255
+        if ($obj->vars['abid']['value']>0) {
256 256
             $album      = $albumsHandler->get($obj->vars['abid']['value']);
257 257
             $arry       = $album->getVar('sids');
258 258
             $arry[$sid] = $sid;
@@ -261,7 +261,7 @@  discard block
 block discarded – undo
261 261
                 $albumsHandler->insert($album);
262 262
             }
263 263
         }
264
-        if (\count($obj->getVar('aids')) > 0) {
264
+        if (\count($obj->getVar('aids'))>0) {
265 265
             foreach ($obj->getVar('aids') as $aid) {
266 266
                 $artist     = $artistsHandler->get($aid);
267 267
                 $arry       = $artist->getVar('sids');
@@ -289,7 +289,7 @@  discard block
 block discarded – undo
289 289
         if (!isset($this->_objects['object'][$id])) {
290 290
             $this->_objects['object'][$id] = parent::get($id, $fields);
291 291
             if (!isset($GLOBALS['songlistAdmin']) && \is_object($this->_objects['object'][$id])) {
292
-                $sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $this->_objects['object'][$id]->getVar($this->keyName);
292
+                $sql = 'UPDATE `'.$this->table.'` set hits=hits+1 where `'.$this->keyName.'` = '.$this->_objects['object'][$id]->getVar($this->keyName);
293 293
                 $GLOBALS['xoopsDB']->queryF($sql);
294 294
             }
295 295
         }
@@ -338,7 +338,7 @@  discard block
 block discarded – undo
338 338
     {
339 339
         global $file, $op, $fct, $id, $value, $gid, $vid, $vcid, $cid, $start, $limit;
340 340
         if ($GLOBALS['songlistModuleConfig']['htaccess']) {
341
-            if (0 != $cid) {
341
+            if (0!=$cid) {
342 342
                 $artistHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists');
343 343
                 $artist        = $artistHandler->get($cid);
344 344
                 if (\is_object($artist) && !$artist->isNew()) {
@@ -366,13 +366,13 @@  discard block
 block discarded – undo
366 366
                            . $GLOBALS['songlistModuleConfig']['endofurl'];
367 367
                 }
368 368
 
369
-                return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $id . '-' . $op . '-' . $fct . '-' . $gid . '-' . $cid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
369
+                return XOOPS_URL.'/'.$GLOBALS['songlistModuleConfig']['baseofurl'].'/'.$file.'/'.$start.'-'.$id.'-'.$op.'-'.$fct.'-'.$gid.'-'.$cid.'/'.\urlencode($value).$GLOBALS['songlistModuleConfig']['endofurl'];
370 370
             }
371 371
 
372
-            return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $id . '-' . $op . '-' . $fct . '-' . $gid . '-' . $cid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
372
+            return XOOPS_URL.'/'.$GLOBALS['songlistModuleConfig']['baseofurl'].'/'.$file.'/'.$start.'-'.$id.'-'.$op.'-'.$fct.'-'.$gid.'-'.$cid.'/'.\urlencode($value).$GLOBALS['songlistModuleConfig']['endofurl'];
373 373
         }
374 374
 
375
-        return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $id . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&vid=' . $vid . '&cid=' . $cid . '&start=' . $start;
375
+        return XOOPS_URL.'/modules/songlist/'.$file.'.php?op='.$op.'&fct='.$fct.'&id='.$id.'&value='.\urlencode($value ?? '').'&gid='.$gid.'&vid='.$vid.'&cid='.$cid.'&start='.$start;
376 376
     }
377 377
 
378 378
     /**
@@ -382,10 +382,10 @@  discard block
 block discarded – undo
382 382
     {
383 383
         global $file, $op, $fct, $id, $value, $gid, $vcid, $cid, $start, $limit;
384 384
         if ($GLOBALS['songlistModuleConfig']['htaccess']) {
385
-            return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/' . $file . '/' . $start . '-' . $op . '-' . $fct . '-' . $gid . '-' . ($_GET['cid'] ?? $cid) . '-' . $vcid . '/' . \urlencode($value) . $GLOBALS['songlistModuleConfig']['endofurl'];
385
+            return XOOPS_URL.'/'.$GLOBALS['songlistModuleConfig']['baseofurl'].'/'.$file.'/'.$start.'-'.$op.'-'.$fct.'-'.$gid.'-'.($_GET['cid'] ?? $cid).'-'.$vcid.'/'.\urlencode($value).$GLOBALS['songlistModuleConfig']['endofurl'];
386 386
         }
387 387
 
388
-        return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&value=' . \urlencode($value ?? '') . '&cid=' . $cid . '&gid=' . $gid . '&vcid=' . $vcid . '&start=' . $start;
388
+        return XOOPS_URL.'/modules/songlist/'.$file.'.php?op='.$op.'&fct='.$fct.'&value='.\urlencode($value ?? '').'&cid='.$cid.'&gid='.$gid.'&vcid='.$vcid.'&start='.$start;
389 389
     }
390 390
 
391 391
     /**
@@ -394,11 +394,11 @@  discard block
 block discarded – undo
394 394
      */
395 395
     public function getTop($limit = 1): array
396 396
     {
397
-        $sql     = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit;
397
+        $sql     = 'SELECT * FROM `'.$this->table.'` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT '.$limit;
398 398
         $results = $GLOBALS['xoopsDB']->queryF($sql);
399 399
         $ret     = [];
400 400
         $i       = 0;
401
-        while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) {
401
+        while (false!==($row = $GLOBALS['xoopsDB']->fetchArray($results))) {
402 402
             $ret[$i] = $this->create();
403 403
             $ret[$i]->assignVars($row);
404 404
             ++$i;
Please login to merge, or discard this patch.
class/Votes.php 2 patches
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -13,42 +13,42 @@
 block discarded – undo
13 13
  */
14 14
 class Votes extends \XoopsObject
15 15
 {
16
-    /**
17
-     * Votes constructor.
18
-     * @param null $fid
19
-     */
20
-    public function __construct($fid = null)
21
-    {
22
-        $this->initVar('vid', \XOBJ_DTYPE_INT, 0, false);
23
-        $this->initVar('sid', \XOBJ_DTYPE_INT, 0, false);
24
-        $this->initVar('uid', \XOBJ_DTYPE_INT, 0, false);
25
-        $this->initVar('ip', \XOBJ_DTYPE_TXTBOX, null, false, 64);
26
-        $this->initVar('netaddy', \XOBJ_DTYPE_TXTBOX, null, false, 255);
27
-        $this->initVar('rank', \XOBJ_DTYPE_DECIMAL, 0, false);
28
-    }
29
-
30
-    /**
31
-     * @param bool $as_array
32
-     * @return array|string
33
-     */
34
-    public function getForm($as_array = false)
35
-    {
36
-        return FormController::votes_get_form($this, $as_array);
37
-    }
38
-
39
-    /**
40
-     * @return array
41
-     */
42
-    public function toArray(): array
43
-    {
44
-        $ret  = parent::toArray();
45
-        $form = $this->getForm(true);
46
-        foreach ($form as $key => $element) {
47
-            $ret['form'][$key] = $element->render();
48
-        }
49
-
50
-        $ret['rank'] = \number_format($this->getVar('rank'), 2) . \_MI_SONGLIST_OFTEN;
51
-
52
-        return $ret;
53
-    }
16
+	/**
17
+	 * Votes constructor.
18
+	 * @param null $fid
19
+	 */
20
+	public function __construct($fid = null)
21
+	{
22
+		$this->initVar('vid', \XOBJ_DTYPE_INT, 0, false);
23
+		$this->initVar('sid', \XOBJ_DTYPE_INT, 0, false);
24
+		$this->initVar('uid', \XOBJ_DTYPE_INT, 0, false);
25
+		$this->initVar('ip', \XOBJ_DTYPE_TXTBOX, null, false, 64);
26
+		$this->initVar('netaddy', \XOBJ_DTYPE_TXTBOX, null, false, 255);
27
+		$this->initVar('rank', \XOBJ_DTYPE_DECIMAL, 0, false);
28
+	}
29
+
30
+	/**
31
+	 * @param bool $as_array
32
+	 * @return array|string
33
+	 */
34
+	public function getForm($as_array = false)
35
+	{
36
+		return FormController::votes_get_form($this, $as_array);
37
+	}
38
+
39
+	/**
40
+	 * @return array
41
+	 */
42
+	public function toArray(): array
43
+	{
44
+		$ret  = parent::toArray();
45
+		$form = $this->getForm(true);
46
+		foreach ($form as $key => $element) {
47
+			$ret['form'][$key] = $element->render();
48
+		}
49
+
50
+		$ret['rank'] = \number_format($this->getVar('rank'), 2) . \_MI_SONGLIST_OFTEN;
51
+
52
+		return $ret;
53
+	}
54 54
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 
3 3
 namespace XoopsModules\Songlist;
4 4
 
5
-require_once \dirname(__DIR__) . '/include/songlist.object.php';
5
+require_once \dirname(__DIR__).'/include/songlist.object.php';
6 6
 // require_once \dirname(__DIR__) . '/include/songlist.form.php';
7 7
 use  XoopsModules\Songlist\Form\FormController;
8 8
 
@@ -47,7 +47,7 @@  discard block
 block discarded – undo
47 47
             $ret['form'][$key] = $element->render();
48 48
         }
49 49
 
50
-        $ret['rank'] = \number_format($this->getVar('rank'), 2) . \_MI_SONGLIST_OFTEN;
50
+        $ret['rank'] = \number_format($this->getVar('rank'), 2).\_MI_SONGLIST_OFTEN;
51 51
 
52 52
         return $ret;
53 53
     }
Please login to merge, or discard this patch.
class/Utf8map.php 2 patches
Indentation   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -15,45 +15,45 @@
 block discarded – undo
15 15
  */
16 16
 class Utf8map extends XoopsObject
17 17
 {
18
-    /**
19
-     * Utf8map constructor.
20
-     * @param null $fid
21
-     */
22
-    public function __construct($fid = null)
23
-    {
24
-        $this->initVar('utfid', \XOBJ_DTYPE_INT, 0, false);
25
-        $this->initVar('from', \XOBJ_DTYPE_TXTBOX, null, false, 2);
26
-        $this->initVar('to', \XOBJ_DTYPE_TXTBOX, null, false, 2);
27
-        $this->initVar('created', \XOBJ_DTYPE_INT, 0, false);
28
-        $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false);
29
-    }
30
-
31
-    /**
32
-     * @param bool $as_array
33
-     * @return array|string
34
-     */
35
-    public function getForm($as_array = false)
36
-    {
37
-        return FormController::getFormUtf8map($this, $as_array);
38
-    }
39
-
40
-    /**
41
-     * @return array
42
-     */
43
-    public function toArray(): array
44
-    {
45
-        $ret  = parent::toArray();
46
-        $form = $this->getForm(true);
47
-        foreach ($form as $key => $element) {
48
-            $ret['form'][$key] = $element->render();
49
-        }
50
-        foreach (['created', 'updated'] as $key) {
51
-            if ($this->getVar($key) > 0) {
52
-                $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key));
53
-                $ret[$key]         = \date(_DATESTRING, $this->getVar($key));
54
-            }
55
-        }
56
-
57
-        return $ret;
58
-    }
18
+	/**
19
+	 * Utf8map constructor.
20
+	 * @param null $fid
21
+	 */
22
+	public function __construct($fid = null)
23
+	{
24
+		$this->initVar('utfid', \XOBJ_DTYPE_INT, 0, false);
25
+		$this->initVar('from', \XOBJ_DTYPE_TXTBOX, null, false, 2);
26
+		$this->initVar('to', \XOBJ_DTYPE_TXTBOX, null, false, 2);
27
+		$this->initVar('created', \XOBJ_DTYPE_INT, 0, false);
28
+		$this->initVar('updated', \XOBJ_DTYPE_INT, 0, false);
29
+	}
30
+
31
+	/**
32
+	 * @param bool $as_array
33
+	 * @return array|string
34
+	 */
35
+	public function getForm($as_array = false)
36
+	{
37
+		return FormController::getFormUtf8map($this, $as_array);
38
+	}
39
+
40
+	/**
41
+	 * @return array
42
+	 */
43
+	public function toArray(): array
44
+	{
45
+		$ret  = parent::toArray();
46
+		$form = $this->getForm(true);
47
+		foreach ($form as $key => $element) {
48
+			$ret['form'][$key] = $element->render();
49
+		}
50
+		foreach (['created', 'updated'] as $key) {
51
+			if ($this->getVar($key) > 0) {
52
+				$ret['form'][$key] = \date(_DATESTRING, $this->getVar($key));
53
+				$ret[$key]         = \date(_DATESTRING, $this->getVar($key));
54
+			}
55
+		}
56
+
57
+		return $ret;
58
+	}
59 59
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
 
7 7
 \defined('XOOPS_ROOT_PATH') || exit('Restricted access');
8 8
 
9
-require_once \dirname(__DIR__) . '/include/songlist.object.php';
9
+require_once \dirname(__DIR__).'/include/songlist.object.php';
10 10
 // require_once \dirname(__DIR__) . '/include/songlist.form.php';
11 11
 use  XoopsModules\Songlist\Form\FormController;
12 12
 
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
             $ret['form'][$key] = $element->render();
49 49
         }
50 50
         foreach (['created', 'updated'] as $key) {
51
-            if ($this->getVar($key) > 0) {
51
+            if ($this->getVar($key)>0) {
52 52
                 $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key));
53 53
                 $ret[$key]         = \date(_DATESTRING, $this->getVar($key));
54 54
             }
Please login to merge, or discard this patch.
class/VoiceHandler.php 2 patches
Indentation   +162 added lines, -162 removed lines patch added patch discarded remove patch
@@ -11,121 +11,121 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class VoiceHandler extends \XoopsPersistableObjectHandler
13 13
 {
14
-    /**
15
-     * VoiceHandler constructor.
16
-     * @param \XoopsDatabase $db
17
-     */
18
-    public function __construct(\XoopsDatabase $db)
19
-    {
20
-        parent::__construct($db, 'songlist_voice', Voice::class, 'vcid', 'name');
21
-    }
22
-
23
-    /**
24
-     * @return array
25
-     */
26
-    public function filterFields(): array
27
-    {
28
-        return ['vcid', 'name', 'artists', 'albums', 'songs', 'hits', 'rank', 'votes', 'created', 'updated'];
29
-    }
30
-
31
-    /**
32
-     * @param $filter
33
-     * @return \CriteriaCompo
34
-     */
35
-    public function getFilterCriteria($filter): \CriteriaCompo
36
-    {
37
-        $parts    = \explode('|', $filter);
38
-        $criteria = new \CriteriaCompo();
39
-        foreach ($parts as $part) {
40
-            $var = \explode(',', $part);
41
-            if (!empty($var[1]) && !\is_numeric($var[0])) {
42
-                $object = $this->create();
43
-                if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
44
-                    || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
45
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
46
-                } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
47
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
48
-                } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
49
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
50
-                } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
51
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
52
-                }
53
-            } elseif (!empty($var[1]) && \is_numeric($var[0])) {
54
-                $criteria->add(new \Criteria($var[0], $var[1]));
55
-            }
56
-        }
57
-
58
-        return $criteria;
59
-    }
60
-
61
-    /**
62
-     * @param        $filter
63
-     * @param        $field
64
-     * @param string $sort
65
-     * @param string $op
66
-     * @param string $fct
67
-     * @return string
68
-     */
69
-    public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string
70
-    {
71
-        $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct);
72
-        if (\is_object($ele)) {
73
-            return $ele->render();
74
-        }
75
-
76
-        return '&nbsp;';
77
-    }
78
-
79
-    /**
80
-     * @param bool $force
81
-     * @return bool|mixed
82
-     */
83
-    public function insert(\XoopsObject $obj, $force = true)
84
-    {
85
-        if ($obj->isNew()) {
86
-            $obj->setVar('created', \time());
87
-        } else {
88
-            $obj->setVar('updated', \time());
89
-        }
90
-        if ('' == $obj->getVar('name')) {
91
-            return false;
92
-        }
93
-
94
-        return parent::insert($obj, $force);
95
-    }
96
-
97
-    public $_objects = ['object' => [], 'array' => []];
98
-
99
-    /**
100
-     * @param null $id
101
-     * @param null $fields
102
-     * @return \XoopsObject
103
-     */
104
-    public function get($id = null, $fields = null): \XoopsObject//get($id, $fields = '*')
105
-    {
106
-        $fields = $fields ?: '*';
107
-        if (!isset($this->_objects['object'][$id])) {
108
-            $this->_objects['object'][$id] = parent::get($id, $fields);
109
-            if (!isset($GLOBALS['songlistAdmin']) && \is_object($this->_objects['object'][$id])) {
110
-                $sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $this->_objects['object'][$id]->getVar($this->keyName);
111
-                $GLOBALS['xoopsDB']->queryF($sql);
112
-            }
113
-        }
114
-
115
-        return $this->_objects['object'][$id];
116
-    }
117
-
118
-    /**
119
-     * @param \CriteriaElement|\CriteriaCompo $criteria
120
-     * @param bool $id_as_key
121
-     * @param bool $as_object
122
-     * @return array
123
-     */
124
-    public function &getObjects($criteria = null, $id_as_key = false, $as_object = true): array
125
-    {
126
-        $ret = parent::getObjects($criteria, $id_as_key, $as_object);
127
-
128
-        /*if (!isset($GLOBALS['songlistAdmin'])) {
14
+	/**
15
+	 * VoiceHandler constructor.
16
+	 * @param \XoopsDatabase $db
17
+	 */
18
+	public function __construct(\XoopsDatabase $db)
19
+	{
20
+		parent::__construct($db, 'songlist_voice', Voice::class, 'vcid', 'name');
21
+	}
22
+
23
+	/**
24
+	 * @return array
25
+	 */
26
+	public function filterFields(): array
27
+	{
28
+		return ['vcid', 'name', 'artists', 'albums', 'songs', 'hits', 'rank', 'votes', 'created', 'updated'];
29
+	}
30
+
31
+	/**
32
+	 * @param $filter
33
+	 * @return \CriteriaCompo
34
+	 */
35
+	public function getFilterCriteria($filter): \CriteriaCompo
36
+	{
37
+		$parts    = \explode('|', $filter);
38
+		$criteria = new \CriteriaCompo();
39
+		foreach ($parts as $part) {
40
+			$var = \explode(',', $part);
41
+			if (!empty($var[1]) && !\is_numeric($var[0])) {
42
+				$object = $this->create();
43
+				if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
44
+					|| \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
45
+					$criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
46
+				} elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
47
+					$criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
48
+				} elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
49
+					$criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
50
+				} elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
51
+					$criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
52
+				}
53
+			} elseif (!empty($var[1]) && \is_numeric($var[0])) {
54
+				$criteria->add(new \Criteria($var[0], $var[1]));
55
+			}
56
+		}
57
+
58
+		return $criteria;
59
+	}
60
+
61
+	/**
62
+	 * @param        $filter
63
+	 * @param        $field
64
+	 * @param string $sort
65
+	 * @param string $op
66
+	 * @param string $fct
67
+	 * @return string
68
+	 */
69
+	public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string
70
+	{
71
+		$ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct);
72
+		if (\is_object($ele)) {
73
+			return $ele->render();
74
+		}
75
+
76
+		return '&nbsp;';
77
+	}
78
+
79
+	/**
80
+	 * @param bool $force
81
+	 * @return bool|mixed
82
+	 */
83
+	public function insert(\XoopsObject $obj, $force = true)
84
+	{
85
+		if ($obj->isNew()) {
86
+			$obj->setVar('created', \time());
87
+		} else {
88
+			$obj->setVar('updated', \time());
89
+		}
90
+		if ('' == $obj->getVar('name')) {
91
+			return false;
92
+		}
93
+
94
+		return parent::insert($obj, $force);
95
+	}
96
+
97
+	public $_objects = ['object' => [], 'array' => []];
98
+
99
+	/**
100
+	 * @param null $id
101
+	 * @param null $fields
102
+	 * @return \XoopsObject
103
+	 */
104
+	public function get($id = null, $fields = null): \XoopsObject//get($id, $fields = '*')
105
+	{
106
+		$fields = $fields ?: '*';
107
+		if (!isset($this->_objects['object'][$id])) {
108
+			$this->_objects['object'][$id] = parent::get($id, $fields);
109
+			if (!isset($GLOBALS['songlistAdmin']) && \is_object($this->_objects['object'][$id])) {
110
+				$sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $this->_objects['object'][$id]->getVar($this->keyName);
111
+				$GLOBALS['xoopsDB']->queryF($sql);
112
+			}
113
+		}
114
+
115
+		return $this->_objects['object'][$id];
116
+	}
117
+
118
+	/**
119
+	 * @param \CriteriaElement|\CriteriaCompo $criteria
120
+	 * @param bool $id_as_key
121
+	 * @param bool $as_object
122
+	 * @return array
123
+	 */
124
+	public function &getObjects($criteria = null, $id_as_key = false, $as_object = true): array
125
+	{
126
+		$ret = parent::getObjects($criteria, $id_as_key, $as_object);
127
+
128
+		/*if (!isset($GLOBALS['songlistAdmin'])) {
129 129
             $id = [];
130 130
             foreach($ret as $data) {
131 131
                 if ($as_object==true) {
@@ -146,51 +146,51 @@  discard block
 block discarded – undo
146 146
             $GLOBALS['xoopsDB']->queryF($sql);
147 147
         }*/
148 148
 
149
-        return $ret;
150
-    }
151
-
152
-    /**
153
-     * @return string
154
-     */
155
-    public function getURL(): string
156
-    {
157
-        global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit;
158
-        if ($GLOBALS['songlistModuleConfig']['htaccess']) {
159
-            return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseurl'] . '/' . $file . '/' . $start . '-' . $op . '-' . $fct . '-' . $id . '-' . \urlencode($value) . '-' . $gid . '-' . $cid . $GLOBALS['songlistModuleConfig']['endofurl'];
160
-        }
161
-
162
-        return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $id . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&cid=' . $cid . '&start=' . $start;
163
-    }
164
-
165
-    /**
166
-     * @param int $limit
167
-     * @return array
168
-     */
169
-    public function getTop($limit = 1): array
170
-    {
171
-        $sql     = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit;
172
-        $results = $GLOBALS['xoopsDB']->queryF($sql);
173
-        $ret     = [];
174
-        $i       = 0;
175
-        while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) {
176
-            $ret[$i] = $this->create();
177
-            $ret[$i]->assignVars($row);
178
-            ++$i;
179
-        }
180
-
181
-        return $ret;
182
-    }
183
-
184
-    /**
185
-     * @param \XoopsObject $object
186
-     * @param bool         $force
187
-     * @return bool
188
-     */
189
-    public function delete(\XoopsObject $object, $force = true): bool
190
-    {
191
-        parent::delete($object, $force);
192
-        $sql = 'UPDATE ' . $GLOBALS['xoopsDB']->prefix('songlist_songs') . ' SET `vcid` = 0 WHERE `vcid` = ' . $object->getVar('vcid');
193
-
194
-        return $GLOBALS['xoopsDB']->queryF($sql);
195
-    }
149
+		return $ret;
150
+	}
151
+
152
+	/**
153
+	 * @return string
154
+	 */
155
+	public function getURL(): string
156
+	{
157
+		global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit;
158
+		if ($GLOBALS['songlistModuleConfig']['htaccess']) {
159
+			return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseurl'] . '/' . $file . '/' . $start . '-' . $op . '-' . $fct . '-' . $id . '-' . \urlencode($value) . '-' . $gid . '-' . $cid . $GLOBALS['songlistModuleConfig']['endofurl'];
160
+		}
161
+
162
+		return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $id . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&cid=' . $cid . '&start=' . $start;
163
+	}
164
+
165
+	/**
166
+	 * @param int $limit
167
+	 * @return array
168
+	 */
169
+	public function getTop($limit = 1): array
170
+	{
171
+		$sql     = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit;
172
+		$results = $GLOBALS['xoopsDB']->queryF($sql);
173
+		$ret     = [];
174
+		$i       = 0;
175
+		while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) {
176
+			$ret[$i] = $this->create();
177
+			$ret[$i]->assignVars($row);
178
+			++$i;
179
+		}
180
+
181
+		return $ret;
182
+	}
183
+
184
+	/**
185
+	 * @param \XoopsObject $object
186
+	 * @param bool         $force
187
+	 * @return bool
188
+	 */
189
+	public function delete(\XoopsObject $object, $force = true): bool
190
+	{
191
+		parent::delete($object, $force);
192
+		$sql = 'UPDATE ' . $GLOBALS['xoopsDB']->prefix('songlist_songs') . ' SET `vcid` = 0 WHERE `vcid` = ' . $object->getVar('vcid');
193
+
194
+		return $GLOBALS['xoopsDB']->queryF($sql);
195
+	}
196 196
 }
Please login to merge, or discard this patch.
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 
3 3
 namespace XoopsModules\Songlist;
4 4
 
5
-require_once \dirname(__DIR__) . '/include/songlist.object.php';
5
+require_once \dirname(__DIR__).'/include/songlist.object.php';
6 6
 // require_once \dirname(__DIR__) . '/include/songlist.form.php';
7 7
 use  XoopsModules\Songlist\Form\FormController;
8 8
 
@@ -40,15 +40,15 @@  discard block
 block discarded – undo
40 40
             $var = \explode(',', $part);
41 41
             if (!empty($var[1]) && !\is_numeric($var[0])) {
42 42
                 $object = $this->create();
43
-                if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type']
44
-                    || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) {
45
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE')));
43
+                if (\XOBJ_DTYPE_TXTBOX==$object->vars[$var[0]]['data_type']
44
+                    || \XOBJ_DTYPE_TXTAREA==$object->vars[$var[0]]['data_type']) {
45
+                    $criteria->add(new \Criteria('`'.$var[0].'`', '%'.$var[1].'%', ($var[2] ?? 'LIKE')));
46 46
                 } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) {
47
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
48
-                } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) {
49
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '=')));
50
-                } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) {
51
-                    $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE')));
47
+                    $criteria->add(new \Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '=')));
48
+                } elseif (\XOBJ_DTYPE_ENUM==$object->vars[$var[0]]['data_type']) {
49
+                    $criteria->add(new \Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '=')));
50
+                } elseif (\XOBJ_DTYPE_ARRAY==$object->vars[$var[0]]['data_type']) {
51
+                    $criteria->add(new \Criteria('`'.$var[0].'`', '%"'.$var[1].'";%', ($var[2] ?? 'LIKE')));
52 52
                 }
53 53
             } elseif (!empty($var[1]) && \is_numeric($var[0])) {
54 54
                 $criteria->add(new \Criteria($var[0], $var[1]));
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
         } else {
88 88
             $obj->setVar('updated', \time());
89 89
         }
90
-        if ('' == $obj->getVar('name')) {
90
+        if (''==$obj->getVar('name')) {
91 91
             return false;
92 92
         }
93 93
 
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
         if (!isset($this->_objects['object'][$id])) {
108 108
             $this->_objects['object'][$id] = parent::get($id, $fields);
109 109
             if (!isset($GLOBALS['songlistAdmin']) && \is_object($this->_objects['object'][$id])) {
110
-                $sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $this->_objects['object'][$id]->getVar($this->keyName);
110
+                $sql = 'UPDATE `'.$this->table.'` set hits=hits+1 where `'.$this->keyName.'` = '.$this->_objects['object'][$id]->getVar($this->keyName);
111 111
                 $GLOBALS['xoopsDB']->queryF($sql);
112 112
             }
113 113
         }
@@ -156,10 +156,10 @@  discard block
 block discarded – undo
156 156
     {
157 157
         global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit;
158 158
         if ($GLOBALS['songlistModuleConfig']['htaccess']) {
159
-            return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseurl'] . '/' . $file . '/' . $start . '-' . $op . '-' . $fct . '-' . $id . '-' . \urlencode($value) . '-' . $gid . '-' . $cid . $GLOBALS['songlistModuleConfig']['endofurl'];
159
+            return XOOPS_URL.'/'.$GLOBALS['songlistModuleConfig']['baseurl'].'/'.$file.'/'.$start.'-'.$op.'-'.$fct.'-'.$id.'-'.\urlencode($value).'-'.$gid.'-'.$cid.$GLOBALS['songlistModuleConfig']['endofurl'];
160 160
         }
161 161
 
162
-        return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $id . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&cid=' . $cid . '&start=' . $start;
162
+        return XOOPS_URL.'/modules/songlist/'.$file.'.php?op='.$op.'&fct='.$fct.'&id='.$id.'&value='.\urlencode($value ?? '').'&gid='.$gid.'&cid='.$cid.'&start='.$start;
163 163
     }
164 164
 
165 165
     /**
@@ -168,11 +168,11 @@  discard block
 block discarded – undo
168 168
      */
169 169
     public function getTop($limit = 1): array
170 170
     {
171
-        $sql     = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit;
171
+        $sql     = 'SELECT * FROM `'.$this->table.'` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT '.$limit;
172 172
         $results = $GLOBALS['xoopsDB']->queryF($sql);
173 173
         $ret     = [];
174 174
         $i       = 0;
175
-        while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) {
175
+        while (false!==($row = $GLOBALS['xoopsDB']->fetchArray($results))) {
176 176
             $ret[$i] = $this->create();
177 177
             $ret[$i]->assignVars($row);
178 178
             ++$i;
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
     public function delete(\XoopsObject $object, $force = true): bool
190 190
     {
191 191
         parent::delete($object, $force);
192
-        $sql = 'UPDATE ' . $GLOBALS['xoopsDB']->prefix('songlist_songs') . ' SET `vcid` = 0 WHERE `vcid` = ' . $object->getVar('vcid');
192
+        $sql = 'UPDATE '.$GLOBALS['xoopsDB']->prefix('songlist_songs').' SET `vcid` = 0 WHERE `vcid` = '.$object->getVar('vcid');
193 193
 
194 194
         return $GLOBALS['xoopsDB']->queryF($sql);
195 195
     }
Please login to merge, or discard this patch.
class/Form/SelectGenreForm.php 2 patches
Indentation   +207 added lines, -207 removed lines patch added patch discarded remove patch
@@ -53,230 +53,230 @@
 block discarded – undo
53 53
  */
54 54
 class SelectGenreForm extends XoopsFormElement
55 55
 {
56
-    /**
57
-     * Options
58
-     *
59
-     * @var array
60
-     */
61
-    public $_options = [];
62
-    /**
63
-     * Allow multiple selections?
64
-     *
65
-     * @var bool
66
-     */
67
-    public $_multiple = false;
68
-    /**
69
-     * Number of rows. "1" makes a dropdown list.
70
-     *
71
-     * @var int
72
-     */
73
-    public $_size;
74
-    /**
75
-     * Pre-selcted values
76
-     *
77
-     * @var array
78
-     */
79
-    public $_value = [];
56
+	/**
57
+	 * Options
58
+	 *
59
+	 * @var array
60
+	 */
61
+	public $_options = [];
62
+	/**
63
+	 * Allow multiple selections?
64
+	 *
65
+	 * @var bool
66
+	 */
67
+	public $_multiple = false;
68
+	/**
69
+	 * Number of rows. "1" makes a dropdown list.
70
+	 *
71
+	 * @var int
72
+	 */
73
+	public $_size;
74
+	/**
75
+	 * Pre-selcted values
76
+	 *
77
+	 * @var array
78
+	 */
79
+	public $_value = [];
80 80
 
81
-    /**
82
-     * Constructor
83
-     *
84
-     * @param string $caption  Caption
85
-     * @param string $name     "name" attribute
86
-     * @param mixed  $value    Pre-selected value (or array of them).
87
-     * @param int    $size     Number or rows. "1" makes a drop-down-list
88
-     * @param bool   $multiple Allow multiple selections?
89
-     */
90
-    public function __construct($caption, $name, $value = null, $size = 1, $multiple = false)
91
-    {
92
-        global $_form_object_options;
93
-        \xoops_loadLanguage('modinfo', 'songlist');
81
+	/**
82
+	 * Constructor
83
+	 *
84
+	 * @param string $caption  Caption
85
+	 * @param string $name     "name" attribute
86
+	 * @param mixed  $value    Pre-selected value (or array of them).
87
+	 * @param int    $size     Number or rows. "1" makes a drop-down-list
88
+	 * @param bool   $multiple Allow multiple selections?
89
+	 */
90
+	public function __construct($caption, $name, $value = null, $size = 1, $multiple = false)
91
+	{
92
+		global $_form_object_options;
93
+		\xoops_loadLanguage('modinfo', 'songlist');
94 94
 
95
-        $this->setCaption($caption);
96
-        $this->setName($name);
97
-        $this->_multiple = $multiple;
98
-        $this->_size     = (int)$size;
99
-        if (isset($value)) {
100
-            $this->setValue($value);
101
-        }
102
-        $this->addOption('0', \_MI_SONGLIST_ALL);
103
-        if (!isset($_form_object_options['genre'])) {
104
-            $genreHandler = Helper::getInstance()->getHandler('Genre');
105
-            $criteria     = new Criteria('');
106
-            $criteria->setSort('name');
107
-            $criteria->setOrder('ASC');
108
-            foreach ($genreHandler->getObjects($criteria, true) as $id => $obj) {
109
-                $_form_object_options['genre'][$id] = $obj->getVar('name');
110
-            }
111
-        }
112
-        //        if (Request::hasVar('genre', 'form_object_options')) {
113
-        if (isset($_form_object_options['genre'])) {
114
-            foreach ($_form_object_options['genre'] as $id => $value) {
115
-                $this->addOption($id, $value);
116
-            }
117
-        }
118
-    }
95
+		$this->setCaption($caption);
96
+		$this->setName($name);
97
+		$this->_multiple = $multiple;
98
+		$this->_size     = (int)$size;
99
+		if (isset($value)) {
100
+			$this->setValue($value);
101
+		}
102
+		$this->addOption('0', \_MI_SONGLIST_ALL);
103
+		if (!isset($_form_object_options['genre'])) {
104
+			$genreHandler = Helper::getInstance()->getHandler('Genre');
105
+			$criteria     = new Criteria('');
106
+			$criteria->setSort('name');
107
+			$criteria->setOrder('ASC');
108
+			foreach ($genreHandler->getObjects($criteria, true) as $id => $obj) {
109
+				$_form_object_options['genre'][$id] = $obj->getVar('name');
110
+			}
111
+		}
112
+		//        if (Request::hasVar('genre', 'form_object_options')) {
113
+		if (isset($_form_object_options['genre'])) {
114
+			foreach ($_form_object_options['genre'] as $id => $value) {
115
+				$this->addOption($id, $value);
116
+			}
117
+		}
118
+	}
119 119
 
120
-    /**
121
-     * Are multiple selections allowed?
122
-     *
123
-     * @return bool
124
-     */
125
-    public function isMultiple(): bool
126
-    {
127
-        return $this->_multiple;
128
-    }
120
+	/**
121
+	 * Are multiple selections allowed?
122
+	 *
123
+	 * @return bool
124
+	 */
125
+	public function isMultiple(): bool
126
+	{
127
+		return $this->_multiple;
128
+	}
129 129
 
130
-    /**
131
-     * Get the size
132
-     *
133
-     * @return int
134
-     */
135
-    public function getSize(): int
136
-    {
137
-        return $this->_size;
138
-    }
130
+	/**
131
+	 * Get the size
132
+	 *
133
+	 * @return int
134
+	 */
135
+	public function getSize(): int
136
+	{
137
+		return $this->_size;
138
+	}
139 139
 
140
-    /**
141
-     * Get an array of pre-selected values
142
-     *
143
-     * @param bool $encode To sanitizer the text?
144
-     * @return array
145
-     */
146
-    public function getValue($encode = false): array
147
-    {
148
-        if (!$encode) {
149
-            return $this->_value;
150
-        }
151
-        $value = [];
152
-        foreach ($this->_value as $val) {
153
-            $value[] = $val ? \htmlspecialchars($val, \ENT_QUOTES) : $val;
154
-        }
140
+	/**
141
+	 * Get an array of pre-selected values
142
+	 *
143
+	 * @param bool $encode To sanitizer the text?
144
+	 * @return array
145
+	 */
146
+	public function getValue($encode = false): array
147
+	{
148
+		if (!$encode) {
149
+			return $this->_value;
150
+		}
151
+		$value = [];
152
+		foreach ($this->_value as $val) {
153
+			$value[] = $val ? \htmlspecialchars($val, \ENT_QUOTES) : $val;
154
+		}
155 155
 
156
-        return $value;
157
-    }
156
+		return $value;
157
+	}
158 158
 
159
-    /**
160
-     * Set pre-selected values
161
-     *
162
-     * @param mixed $value
163
-     */
164
-    public function setValue($value): void
165
-    {
166
-        if (\is_array($value)) {
167
-            foreach ($value as $v) {
168
-                $this->_value[] = (int)$v;
169
-            }
159
+	/**
160
+	 * Set pre-selected values
161
+	 *
162
+	 * @param mixed $value
163
+	 */
164
+	public function setValue($value): void
165
+	{
166
+		if (\is_array($value)) {
167
+			foreach ($value as $v) {
168
+				$this->_value[] = (int)$v;
169
+			}
170 170
 
171 171
 //            $this->_value[] = array_values($value);
172
-        } elseif (isset($value)) {
173
-            $this->_value[] = $value;
174
-        }
175
-    }
172
+		} elseif (isset($value)) {
173
+			$this->_value[] = $value;
174
+		}
175
+	}
176 176
 
177
-    /**
178
-     * Add an option
179
-     *
180
-     * @param string $value "value" attribute
181
-     * @param string $name  "name" attribute
182
-     */
183
-    public function addOption($value, $name = ''): void
184
-    {
185
-        if ('' != $name) {
186
-            $this->_options[$value] = $name;
187
-        } else {
188
-            $this->_options[$value] = $value;
189
-        }
190
-    }
177
+	/**
178
+	 * Add an option
179
+	 *
180
+	 * @param string $value "value" attribute
181
+	 * @param string $name  "name" attribute
182
+	 */
183
+	public function addOption($value, $name = ''): void
184
+	{
185
+		if ('' != $name) {
186
+			$this->_options[$value] = $name;
187
+		} else {
188
+			$this->_options[$value] = $value;
189
+		}
190
+	}
191 191
 
192
-    /**
193
-     * Add multiple options
194
-     *
195
-     * @param array $options Associative array of value->name pairs
196
-     */
197
-    public function addOptionArray($options): void
198
-    {
199
-        if (\is_array($options)) {
200
-            foreach ($options as $k => $v) {
201
-                $this->addOption($k, $v);
202
-            }
203
-        }
204
-    }
192
+	/**
193
+	 * Add multiple options
194
+	 *
195
+	 * @param array $options Associative array of value->name pairs
196
+	 */
197
+	public function addOptionArray($options): void
198
+	{
199
+		if (\is_array($options)) {
200
+			foreach ($options as $k => $v) {
201
+				$this->addOption($k, $v);
202
+			}
203
+		}
204
+	}
205 205
 
206
-    /**
207
-     * Get an array with all the options
208
-     *
209
-     * Note: both name and value should be sanitized. However for backward compatibility, only value is sanitized for now.
210
-     *
211
-     * @param bool|int $encode To sanitizer the text? potential values: 0 - skip; 1 - only for value; 2 - for both value and name
212
-     * @return array Associative array of value->name pairs
213
-     */
214
-    public function getOptions($encode = false): array
215
-    {
216
-        if (!$encode) {
217
-            return $this->_options;
218
-        }
219
-        $value = [];
220
-        foreach ($this->_options as $val => $name) {
221
-            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
222
-        }
206
+	/**
207
+	 * Get an array with all the options
208
+	 *
209
+	 * Note: both name and value should be sanitized. However for backward compatibility, only value is sanitized for now.
210
+	 *
211
+	 * @param bool|int $encode To sanitizer the text? potential values: 0 - skip; 1 - only for value; 2 - for both value and name
212
+	 * @return array Associative array of value->name pairs
213
+	 */
214
+	public function getOptions($encode = false): array
215
+	{
216
+		if (!$encode) {
217
+			return $this->_options;
218
+		}
219
+		$value = [];
220
+		foreach ($this->_options as $val => $name) {
221
+			$value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
222
+		}
223 223
 
224
-        return $value;
225
-    }
224
+		return $value;
225
+	}
226 226
 
227
-    /**
228
-     * Prepare HTML for output
229
-     *
230
-     * @return string HTML
231
-     */
232
-    public function render(): string
233
-    {
234
-        $ele_name    = $this->getName();
235
-        $ele_title   = $this->getTitle();
236
-        $ele_value   = $this->getValue();
237
-        $ele_options = $this->getOptions();
238
-        $ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
239
-        if ($this->isMultiple()) {
240
-            $ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
241
-        } else {
242
-            $ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
243
-        }
244
-        foreach ($ele_options as $value => $name) {
245
-            $ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
246
-            if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
247
-                $ret .= ' selected';
248
-            }
249
-            $ret .= '>' . $name . '</option>';
250
-        }
251
-        $ret .= '</select>';
227
+	/**
228
+	 * Prepare HTML for output
229
+	 *
230
+	 * @return string HTML
231
+	 */
232
+	public function render(): string
233
+	{
234
+		$ele_name    = $this->getName();
235
+		$ele_title   = $this->getTitle();
236
+		$ele_value   = $this->getValue();
237
+		$ele_options = $this->getOptions();
238
+		$ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
239
+		if ($this->isMultiple()) {
240
+			$ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
241
+		} else {
242
+			$ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
243
+		}
244
+		foreach ($ele_options as $value => $name) {
245
+			$ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
246
+			if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
247
+				$ret .= ' selected';
248
+			}
249
+			$ret .= '>' . $name . '</option>';
250
+		}
251
+		$ret .= '</select>';
252 252
 
253
-        return $ret;
254
-    }
253
+		return $ret;
254
+	}
255 255
 
256
-    /**
257
-     * Render custom javascript validation code
258
-     *
259
-     * @seealso XoopsForm::renderValidationJS
260
-     */
261
-    public function renderValidationJS()
262
-    {
263
-        // render custom validation code if any
264
-        if (!empty($this->customValidationCode)) {
265
-            return \implode("\n", $this->customValidationCode);
266
-            // generate validation code if required
267
-        }
256
+	/**
257
+	 * Render custom javascript validation code
258
+	 *
259
+	 * @seealso XoopsForm::renderValidationJS
260
+	 */
261
+	public function renderValidationJS()
262
+	{
263
+		// render custom validation code if any
264
+		if (!empty($this->customValidationCode)) {
265
+			return \implode("\n", $this->customValidationCode);
266
+			// generate validation code if required
267
+		}
268 268
 
269
-        if ($this->isRequired()) {
270
-            $eltname    = $this->getName();
271
-            $eltcaption = $this->getCaption();
272
-            $eltmsg     = empty($eltcaption) ? \sprintf(_FORM_ENTER, $eltname) : \sprintf(_FORM_ENTER, $eltcaption);
273
-            $eltmsg     = \str_replace('"', '\"', \stripslashes($eltmsg));
269
+		if ($this->isRequired()) {
270
+			$eltname    = $this->getName();
271
+			$eltcaption = $this->getCaption();
272
+			$eltmsg     = empty($eltcaption) ? \sprintf(_FORM_ENTER, $eltname) : \sprintf(_FORM_ENTER, $eltcaption);
273
+			$eltmsg     = \str_replace('"', '\"', \stripslashes($eltmsg));
274 274
 
275
-            return "\nvar hasSelected = false; var selectBox = myform.{$eltname};"
276
-                   . 'for (i = 0; i < selectBox.options.length; i++ ) { if (selectBox.options[i].selected === true) { hasSelected = true; break; } }'
277
-                   . "if (!hasSelected) { window.alert(\"{$eltmsg}\"); selectBox.focus(); return false; }";
278
-        }
275
+			return "\nvar hasSelected = false; var selectBox = myform.{$eltname};"
276
+				   . 'for (i = 0; i < selectBox.options.length; i++ ) { if (selectBox.options[i].selected === true) { hasSelected = true; break; } }'
277
+				   . "if (!hasSelected) { window.alert(\"{$eltmsg}\"); selectBox.focus(); return false; }";
278
+		}
279 279
 
280
-        return '';
281
-    }
280
+		return '';
281
+	}
282 282
 }
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -95,7 +95,7 @@  discard block
 block discarded – undo
95 95
         $this->setCaption($caption);
96 96
         $this->setName($name);
97 97
         $this->_multiple = $multiple;
98
-        $this->_size     = (int)$size;
98
+        $this->_size     = (int) $size;
99 99
         if (isset($value)) {
100 100
             $this->setValue($value);
101 101
         }
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
     {
166 166
         if (\is_array($value)) {
167 167
             foreach ($value as $v) {
168
-                $this->_value[] = (int)$v;
168
+                $this->_value[] = (int) $v;
169 169
             }
170 170
 
171 171
 //            $this->_value[] = array_values($value);
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
      */
183 183
     public function addOption($value, $name = ''): void
184 184
     {
185
-        if ('' != $name) {
185
+        if (''!=$name) {
186 186
             $this->_options[$value] = $name;
187 187
         } else {
188 188
             $this->_options[$value] = $value;
@@ -218,7 +218,7 @@  discard block
 block discarded – undo
218 218
         }
219 219
         $value = [];
220 220
         foreach ($this->_options as $val => $name) {
221
-            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
221
+            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode>1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
222 222
         }
223 223
 
224 224
         return $value;
@@ -235,18 +235,18 @@  discard block
 block discarded – undo
235 235
         $ele_title   = $this->getTitle();
236 236
         $ele_value   = $this->getValue();
237 237
         $ele_options = $this->getOptions();
238
-        $ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
238
+        $ret         = '<select size="'.$this->getSize().'"'.$this->getExtra();
239 239
         if ($this->isMultiple()) {
240
-            $ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
240
+            $ret .= ' name="'.$ele_name.'[]" id="'.$ele_name.'" title="'.$ele_title.'" multiple="multiple">';
241 241
         } else {
242
-            $ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
242
+            $ret .= ' name="'.$ele_name.'" id="'.$ele_name.'" title="'.$ele_title.'">';
243 243
         }
244 244
         foreach ($ele_options as $value => $name) {
245
-            $ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
246
-            if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
245
+            $ret .= '<option value="'.\htmlspecialchars((string) $value, \ENT_QUOTES).'"';
246
+            if (\count($ele_value)>0 && \in_array($value, $ele_value, true)) {
247 247
                 $ret .= ' selected';
248 248
             }
249
-            $ret .= '>' . $name . '</option>';
249
+            $ret .= '>'.$name.'</option>';
250 250
         }
251 251
         $ret .= '</select>';
252 252
 
Please login to merge, or discard this patch.
class/Form/FormController.php 2 patches
Indentation   +1296 added lines, -1296 removed lines patch added patch discarded remove patch
@@ -16,1301 +16,1301 @@
 block discarded – undo
16 16
 
17 17
 class FormController
18 18
 {
19
-    /**
20
-     * Get {@link XoopsThemeForm} for adding/editing fields
21
-     *
22
-     * @param object $field  {@link ProfileField} object to get edit form for
23
-     * @param mixed  $action URL to submit to - or false for $_SERVER['SCRIPT_NAME']
24
-     *
25
-     * @return object
26
-     */
27
-    public static function getFieldForm($field, $action = false)
28
-    {
29
-        if (false === $action) {
30
-            $action = $_SERVER['SCRIPT_NAME'];
31
-        }
32
-
33
-        $helper = Helper::getInstance();
34
-        $helper->loadLanguage('forms');
35
-
36
-        $title = $field->isNew() ? sprintf(_FRM_SONGLIST_FIELDS_ADD, _FRM_SONGLIST_FIELDS_FIELD) : sprintf(_FRM_SONGLIST_FIELDS_EDIT, _FRM_SONGLIST_FIELDS_FIELD);
37
-
38
-        xoops_load('XoopsFormLoader');
39
-
40
-        $form = new \XoopsThemeForm($title, 'form', $action, 'post', true);
41
-
42
-        $form->addElement(new \XoopsFormText(_FRM_SONGLIST_FIELDS_TITLE, 'field_title', 35, 255, $field->getVar('field_title', 'e')));
43
-        $form->addElement(new \XoopsFormTextArea(_FRM_SONGLIST_FIELDS_DESCRIPTION, 'field_description', $field->getVar('field_description', 'e')));
44
-
45
-        if ($field->isNew()) {
46
-            $fieldcid = [1 => 0];
47
-        } else {
48
-            $fieldcid = $field->getVar('cids');
49
-        }
50
-        $categoryHandler = Helper::getInstance()
51
-                                 ->getHandler('Category');
52
-        $cat_select      = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_CATEGORY, 'cids', $fieldcid, 7, true);
53
-        $cat_select->addOption(0, _FRM_SONGLIST_FIELDS_DEFAULT);
54
-        foreach ($categoryHandler->getObjects(null, true) as $cid => $category) {
55
-            $cat_select->addOption($cid, $category->getVar('name'));
56
-        }
57
-        $form->addElement($cat_select);
58
-        $form->addElement(new \XoopsFormText(_FRM_SONGLIST_FIELDS_WEIGHT, 'field_weight', 10, 10, $field->getVar('field_weight', 'e')));
59
-        if ($field->getVar('field_config') || $field->isNew()) {
60
-            if ($field->isNew()) {
61
-                $form->addElement(new \XoopsFormText(_FRM_SONGLIST_FIELDS_NAME, 'field_name', 35, 255, $field->getVar('field_name', 'e')));
62
-            } else {
63
-                $form->addElement(new \XoopsFormLabel(_FRM_SONGLIST_FIELDS_NAME, $field->getVar('field_name')));
64
-                $form->addElement(new \XoopsFormHidden('id', $field->getVar('field_id')));
65
-            }
66
-
67
-            //autotext and theme left out of this one as fields of that type should never be changed (valid assumption, I think)
68
-            $fieldtypes = [
69
-                'checkbox'     => _FRM_SONGLIST_FIELDS_CHECKBOX,
70
-                'date'         => _FRM_SONGLIST_FIELDS_DATE,
71
-                'datetime'     => _FRM_SONGLIST_FIELDS_DATETIME,
72
-                'longdate'     => _FRM_SONGLIST_FIELDS_LONGDATE,
73
-                'group'        => _FRM_SONGLIST_FIELDS_GROUP,
74
-                'group_multi'  => _FRM_SONGLIST_FIELDS_GROUPMULTI,
75
-                'language'     => _FRM_SONGLIST_FIELDS_LANGUAGE,
76
-                'radio'        => _FRM_SONGLIST_FIELDS_RADIO,
77
-                'select'       => _FRM_SONGLIST_FIELDS_SELECT,
78
-                'select_multi' => _FRM_SONGLIST_FIELDS_SELECTMULTI,
79
-                'textarea'     => _FRM_SONGLIST_FIELDS_TEXTAREA,
80
-                'dhtml'        => _FRM_SONGLIST_FIELDS_DHTMLTEXTAREA,
81
-                'textbox'      => _FRM_SONGLIST_FIELDS_TEXTBOX,
82
-                'timezone'     => _FRM_SONGLIST_FIELDS_TIMEZONE,
83
-                'yesno'        => _FRM_SONGLIST_FIELDS_YESNO,
84
-            ];
85
-
86
-            $element_select = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_TYPE, 'field_type', $field->getVar('field_type', 'e'));
87
-            $element_select->addOptionArray($fieldtypes);
88
-
89
-            $form->addElement($element_select);
90
-
91
-            switch ($field->getVar('field_type')) {
92
-                case 'textbox':
93
-                    $valuetypes = [
94
-                        XOBJ_DTYPE_ARRAY   => _FRM_SONGLIST_FIELDS_ARRAY,
95
-                        XOBJ_DTYPE_EMAIL   => _FRM_SONGLIST_FIELDS_EMAIL,
96
-                        XOBJ_DTYPE_INT     => _FRM_SONGLIST_FIELDS_INT,
97
-                        XOBJ_DTYPE_FLOAT   => _FRM_SONGLIST_FIELDS_FLOAT,
98
-                        XOBJ_DTYPE_DECIMAL => _FRM_SONGLIST_FIELDS_DECIMAL,
99
-                        XOBJ_DTYPE_TXTAREA => _FRM_SONGLIST_FIELDS_TXTAREA,
100
-                        XOBJ_DTYPE_TXTBOX  => _FRM_SONGLIST_FIELDS_TXTBOX,
101
-                        XOBJ_DTYPE_URL     => _FRM_SONGLIST_FIELDS_URL,
102
-                        XOBJ_DTYPE_OTHER   => _FRM_SONGLIST_FIELDS_OTHER,
103
-                    ];
104
-
105
-                    $type_select = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_VALUETYPE, 'field_valuetype', $field->getVar('field_valuetype', 'e'));
106
-                    $type_select->addOptionArray($valuetypes);
107
-                    $form->addElement($type_select);
108
-                    break;
109
-                case 'select':
110
-                case 'radio':
111
-                    $valuetypes = [
112
-                        XOBJ_DTYPE_ARRAY   => _FRM_SONGLIST_FIELDS_ARRAY,
113
-                        XOBJ_DTYPE_EMAIL   => _FRM_SONGLIST_FIELDS_EMAIL,
114
-                        XOBJ_DTYPE_INT     => _FRM_SONGLIST_FIELDS_INT,
115
-                        XOBJ_DTYPE_FLOAT   => _FRM_SONGLIST_FIELDS_FLOAT,
116
-                        XOBJ_DTYPE_DECIMAL => _FRM_SONGLIST_FIELDS_DECIMAL,
117
-                        XOBJ_DTYPE_TXTAREA => _FRM_SONGLIST_FIELDS_TXTAREA,
118
-                        XOBJ_DTYPE_TXTBOX  => _FRM_SONGLIST_FIELDS_TXTBOX,
119
-                        XOBJ_DTYPE_URL     => _FRM_SONGLIST_FIELDS_URL,
120
-                        XOBJ_DTYPE_OTHER   => _FRM_SONGLIST_FIELDS_OTHER,
121
-                    ];
122
-
123
-                    $type_select = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_VALUETYPE, 'field_valuetype', $field->getVar('field_valuetype', 'e'));
124
-                    $type_select->addOptionArray($valuetypes);
125
-                    $form->addElement($type_select);
126
-                    break;
127
-            }
128
-
129
-            //$form->addElement(new \XoopsFormRadioYN(_FRM_SONGLIST_FIELDS_NOTNULL, 'field_notnull', $field->getVar('field_notnull', 'e') ));
130
-
131
-            if ('select' === $field->getVar('field_type') || 'select_multi' === $field->getVar('field_type') || 'radio' === $field->getVar('field_type') || 'checkbox' === $field->getVar('field_type')) {
132
-                $options = $field->getVar('field_options');
133
-                if (count($options) > 0) {
134
-                    $remove_options          = new \XoopsFormCheckBox(_FRM_SONGLIST_FIELDS_REMOVEOPTIONS, 'removeOptions');
135
-                    $remove_options->columns = 3;
136
-                    asort($options);
137
-                    foreach (array_keys($options) as $key) {
138
-                        $options[$key] .= "[{$key}]";
139
-                    }
140
-                    $remove_options->addOptionArray($options);
141
-                    $form->addElement($remove_options);
142
-                }
143
-
144
-                $option_text = "<table  cellspacing='1'><tr><td width='20%'>" . _FRM_SONGLIST_FIELDS_KEY . '</td><td>' . _FRM_SONGLIST_FIELDS_VALUE . '</td></tr>';
145
-                for ($i = 0; $i < 3; ++$i) {
146
-                    $option_text .= "<tr><td><input type='text' name='addOption[{$i}][key]' id='addOption[{$i}][key]' size='15'></td><td><input type='text' name='addOption[{$i}][value]' id='addOption[{$i}][value]' size='35'></td></tr>";
147
-                    $option_text .= "<tr height='3px'><td colspan='2'> </td></tr>";
148
-                }
149
-                $option_text .= '</table>';
150
-                $form->addElement(new \XoopsFormLabel(_FRM_SONGLIST_FIELDS_ADDOPTION, $option_text));
151
-            }
152
-        }
153
-
154
-        if ($field->getVar('field_edit')) {
155
-            switch ($field->getVar('field_type')) {
156
-                case 'textbox':
157
-                case 'textarea':
158
-                case 'dhtml':
159
-                    $form->addElement(new \XoopsFormText(_FRM_SONGLIST_FIELDS_MAXLENGTH, 'field_maxlength', 35, 35, $field->getVar('field_maxlength', 'e')));
160
-                    $form->addElement(new \XoopsFormTextArea(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
161
-                    break;
162
-                case 'checkbox':
163
-                case 'select_multi':
164
-                    $def_value = null !== $field->getVar('field_default', 'e') ? unserialize(($field->getVar('field_default', 'n')) ?? '') : null;
165
-                    $element   = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $def_value, 8, true);
166
-                    $options   = $field->getVar('field_options');
167
-                    asort($options);
168
-                    // If options do not include an empty element, then add a blank option to prevent any default selection
169
-                    if (!array_key_exists('', $options)) {
170
-                        $element->addOption('', _NONE);
171
-                    }
172
-                    $element->addOptionArray($options);
173
-                    $form->addElement($element);
174
-                    break;
175
-                case 'select':
176
-                case 'radio':
177
-                    $def_value = null !== $field->getVar('field_default', 'e') ? $field->getVar('field_default') : null;
178
-                    $element   = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $def_value);
179
-                    $options   = $field->getVar('field_options');
180
-                    asort($options);
181
-                    // If options do not include an empty element, then add a blank option to prevent any default selection
182
-                    if (!array_key_exists('', $options)) {
183
-                        $element->addOption('', _NONE);
184
-                    }
185
-                    $element->addOptionArray($options);
186
-                    $form->addElement($element);
187
-                    break;
188
-                case 'date':
189
-                    $form->addElement(new \XoopsFormTextDateSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', 15, $field->getVar('field_default', 'e')));
190
-                    break;
191
-                case 'longdate':
192
-                    $form->addElement(new \XoopsFormTextDateSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', 15, strtotime($field->getVar('field_default', 'e'))));
193
-                    break;
194
-                case 'datetime':
195
-                    $form->addElement(new \XoopsFormDateTime(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', 15, $field->getVar('field_default', 'e')));
196
-                    break;
197
-                case 'yesno':
198
-                    $form->addElement(new \XoopsFormRadioYN(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
199
-                    break;
200
-                case 'timezone':
201
-                    $form->addElement(new \XoopsFormSelectTimezone(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
202
-                    break;
203
-                case 'language':
204
-                    $form->addElement(new \XoopsFormSelectLang(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
205
-                    break;
206
-                case 'group':
207
-                    $form->addElement(new \XoopsFormSelectGroup(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', true, $field->getVar('field_default', 'e')));
208
-                    break;
209
-                case 'group_multi':
210
-                    $form->addElement(new \XoopsFormSelectGroup(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', true, $field->getVar('field_default', 'e'), 5, true));
211
-                    break;
212
-                case 'theme':
213
-                    $form->addElement(new \XoopsFormSelectTheme(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
214
-                    break;
215
-                case 'autotext':
216
-                    $form->addElement(new \XoopsFormTextArea(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
217
-                    break;
218
-            }
219
-        }
220
-
221
-        /** @var \XoopsGroupPermHandler $grouppermHandler */
222
-        $grouppermHandler = xoops_getHandler('groupperm');
223
-        $searchable_types = [
224
-            'textbox',
225
-            'select',
226
-            'radio',
227
-            'yesno',
228
-            'date',
229
-            'datetime',
230
-            'timezone',
231
-            'language',
232
-        ];
233
-        if (in_array($field->getVar('field_type'), $searchable_types, true)) {
234
-            $search_groups = $grouppermHandler->getGroupIds('songlist_search', $field->getVar('field_id'), $GLOBALS['songlistModule']->getVar('mid'));
235
-            $form->addElement(new \XoopsFormSelectGroup(_FRM_SONGLIST_FIELDS_PROF_SEARCH, 'songlist_search', true, $search_groups, 5, true));
236
-        }
237
-        if ($field->getVar('field_edit') || $field->isNew()) {
238
-            if ($field->isNew()) {
239
-                $editable_groups = [];
240
-            } else {
241
-                //Load groups
242
-                $editable_groups = $grouppermHandler->getGroupIds('songlist_edit', $field->getVar('field_id'), $GLOBALS['songlistModule']->getVar('mid'));
243
-            }
244
-            $form->addElement(new \XoopsFormSelectGroup(_FRM_SONGLIST_FIELDS_PROF_EDITABLE, 'songlist_edit', false, $editable_groups, 5, true));
19
+	/**
20
+	 * Get {@link XoopsThemeForm} for adding/editing fields
21
+	 *
22
+	 * @param object $field  {@link ProfileField} object to get edit form for
23
+	 * @param mixed  $action URL to submit to - or false for $_SERVER['SCRIPT_NAME']
24
+	 *
25
+	 * @return object
26
+	 */
27
+	public static function getFieldForm($field, $action = false)
28
+	{
29
+		if (false === $action) {
30
+			$action = $_SERVER['SCRIPT_NAME'];
31
+		}
32
+
33
+		$helper = Helper::getInstance();
34
+		$helper->loadLanguage('forms');
35
+
36
+		$title = $field->isNew() ? sprintf(_FRM_SONGLIST_FIELDS_ADD, _FRM_SONGLIST_FIELDS_FIELD) : sprintf(_FRM_SONGLIST_FIELDS_EDIT, _FRM_SONGLIST_FIELDS_FIELD);
37
+
38
+		xoops_load('XoopsFormLoader');
39
+
40
+		$form = new \XoopsThemeForm($title, 'form', $action, 'post', true);
41
+
42
+		$form->addElement(new \XoopsFormText(_FRM_SONGLIST_FIELDS_TITLE, 'field_title', 35, 255, $field->getVar('field_title', 'e')));
43
+		$form->addElement(new \XoopsFormTextArea(_FRM_SONGLIST_FIELDS_DESCRIPTION, 'field_description', $field->getVar('field_description', 'e')));
44
+
45
+		if ($field->isNew()) {
46
+			$fieldcid = [1 => 0];
47
+		} else {
48
+			$fieldcid = $field->getVar('cids');
49
+		}
50
+		$categoryHandler = Helper::getInstance()
51
+								 ->getHandler('Category');
52
+		$cat_select      = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_CATEGORY, 'cids', $fieldcid, 7, true);
53
+		$cat_select->addOption(0, _FRM_SONGLIST_FIELDS_DEFAULT);
54
+		foreach ($categoryHandler->getObjects(null, true) as $cid => $category) {
55
+			$cat_select->addOption($cid, $category->getVar('name'));
56
+		}
57
+		$form->addElement($cat_select);
58
+		$form->addElement(new \XoopsFormText(_FRM_SONGLIST_FIELDS_WEIGHT, 'field_weight', 10, 10, $field->getVar('field_weight', 'e')));
59
+		if ($field->getVar('field_config') || $field->isNew()) {
60
+			if ($field->isNew()) {
61
+				$form->addElement(new \XoopsFormText(_FRM_SONGLIST_FIELDS_NAME, 'field_name', 35, 255, $field->getVar('field_name', 'e')));
62
+			} else {
63
+				$form->addElement(new \XoopsFormLabel(_FRM_SONGLIST_FIELDS_NAME, $field->getVar('field_name')));
64
+				$form->addElement(new \XoopsFormHidden('id', $field->getVar('field_id')));
65
+			}
66
+
67
+			//autotext and theme left out of this one as fields of that type should never be changed (valid assumption, I think)
68
+			$fieldtypes = [
69
+				'checkbox'     => _FRM_SONGLIST_FIELDS_CHECKBOX,
70
+				'date'         => _FRM_SONGLIST_FIELDS_DATE,
71
+				'datetime'     => _FRM_SONGLIST_FIELDS_DATETIME,
72
+				'longdate'     => _FRM_SONGLIST_FIELDS_LONGDATE,
73
+				'group'        => _FRM_SONGLIST_FIELDS_GROUP,
74
+				'group_multi'  => _FRM_SONGLIST_FIELDS_GROUPMULTI,
75
+				'language'     => _FRM_SONGLIST_FIELDS_LANGUAGE,
76
+				'radio'        => _FRM_SONGLIST_FIELDS_RADIO,
77
+				'select'       => _FRM_SONGLIST_FIELDS_SELECT,
78
+				'select_multi' => _FRM_SONGLIST_FIELDS_SELECTMULTI,
79
+				'textarea'     => _FRM_SONGLIST_FIELDS_TEXTAREA,
80
+				'dhtml'        => _FRM_SONGLIST_FIELDS_DHTMLTEXTAREA,
81
+				'textbox'      => _FRM_SONGLIST_FIELDS_TEXTBOX,
82
+				'timezone'     => _FRM_SONGLIST_FIELDS_TIMEZONE,
83
+				'yesno'        => _FRM_SONGLIST_FIELDS_YESNO,
84
+			];
85
+
86
+			$element_select = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_TYPE, 'field_type', $field->getVar('field_type', 'e'));
87
+			$element_select->addOptionArray($fieldtypes);
88
+
89
+			$form->addElement($element_select);
90
+
91
+			switch ($field->getVar('field_type')) {
92
+				case 'textbox':
93
+					$valuetypes = [
94
+						XOBJ_DTYPE_ARRAY   => _FRM_SONGLIST_FIELDS_ARRAY,
95
+						XOBJ_DTYPE_EMAIL   => _FRM_SONGLIST_FIELDS_EMAIL,
96
+						XOBJ_DTYPE_INT     => _FRM_SONGLIST_FIELDS_INT,
97
+						XOBJ_DTYPE_FLOAT   => _FRM_SONGLIST_FIELDS_FLOAT,
98
+						XOBJ_DTYPE_DECIMAL => _FRM_SONGLIST_FIELDS_DECIMAL,
99
+						XOBJ_DTYPE_TXTAREA => _FRM_SONGLIST_FIELDS_TXTAREA,
100
+						XOBJ_DTYPE_TXTBOX  => _FRM_SONGLIST_FIELDS_TXTBOX,
101
+						XOBJ_DTYPE_URL     => _FRM_SONGLIST_FIELDS_URL,
102
+						XOBJ_DTYPE_OTHER   => _FRM_SONGLIST_FIELDS_OTHER,
103
+					];
104
+
105
+					$type_select = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_VALUETYPE, 'field_valuetype', $field->getVar('field_valuetype', 'e'));
106
+					$type_select->addOptionArray($valuetypes);
107
+					$form->addElement($type_select);
108
+					break;
109
+				case 'select':
110
+				case 'radio':
111
+					$valuetypes = [
112
+						XOBJ_DTYPE_ARRAY   => _FRM_SONGLIST_FIELDS_ARRAY,
113
+						XOBJ_DTYPE_EMAIL   => _FRM_SONGLIST_FIELDS_EMAIL,
114
+						XOBJ_DTYPE_INT     => _FRM_SONGLIST_FIELDS_INT,
115
+						XOBJ_DTYPE_FLOAT   => _FRM_SONGLIST_FIELDS_FLOAT,
116
+						XOBJ_DTYPE_DECIMAL => _FRM_SONGLIST_FIELDS_DECIMAL,
117
+						XOBJ_DTYPE_TXTAREA => _FRM_SONGLIST_FIELDS_TXTAREA,
118
+						XOBJ_DTYPE_TXTBOX  => _FRM_SONGLIST_FIELDS_TXTBOX,
119
+						XOBJ_DTYPE_URL     => _FRM_SONGLIST_FIELDS_URL,
120
+						XOBJ_DTYPE_OTHER   => _FRM_SONGLIST_FIELDS_OTHER,
121
+					];
122
+
123
+					$type_select = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_VALUETYPE, 'field_valuetype', $field->getVar('field_valuetype', 'e'));
124
+					$type_select->addOptionArray($valuetypes);
125
+					$form->addElement($type_select);
126
+					break;
127
+			}
128
+
129
+			//$form->addElement(new \XoopsFormRadioYN(_FRM_SONGLIST_FIELDS_NOTNULL, 'field_notnull', $field->getVar('field_notnull', 'e') ));
130
+
131
+			if ('select' === $field->getVar('field_type') || 'select_multi' === $field->getVar('field_type') || 'radio' === $field->getVar('field_type') || 'checkbox' === $field->getVar('field_type')) {
132
+				$options = $field->getVar('field_options');
133
+				if (count($options) > 0) {
134
+					$remove_options          = new \XoopsFormCheckBox(_FRM_SONGLIST_FIELDS_REMOVEOPTIONS, 'removeOptions');
135
+					$remove_options->columns = 3;
136
+					asort($options);
137
+					foreach (array_keys($options) as $key) {
138
+						$options[$key] .= "[{$key}]";
139
+					}
140
+					$remove_options->addOptionArray($options);
141
+					$form->addElement($remove_options);
142
+				}
143
+
144
+				$option_text = "<table  cellspacing='1'><tr><td width='20%'>" . _FRM_SONGLIST_FIELDS_KEY . '</td><td>' . _FRM_SONGLIST_FIELDS_VALUE . '</td></tr>';
145
+				for ($i = 0; $i < 3; ++$i) {
146
+					$option_text .= "<tr><td><input type='text' name='addOption[{$i}][key]' id='addOption[{$i}][key]' size='15'></td><td><input type='text' name='addOption[{$i}][value]' id='addOption[{$i}][value]' size='35'></td></tr>";
147
+					$option_text .= "<tr height='3px'><td colspan='2'> </td></tr>";
148
+				}
149
+				$option_text .= '</table>';
150
+				$form->addElement(new \XoopsFormLabel(_FRM_SONGLIST_FIELDS_ADDOPTION, $option_text));
151
+			}
152
+		}
153
+
154
+		if ($field->getVar('field_edit')) {
155
+			switch ($field->getVar('field_type')) {
156
+				case 'textbox':
157
+				case 'textarea':
158
+				case 'dhtml':
159
+					$form->addElement(new \XoopsFormText(_FRM_SONGLIST_FIELDS_MAXLENGTH, 'field_maxlength', 35, 35, $field->getVar('field_maxlength', 'e')));
160
+					$form->addElement(new \XoopsFormTextArea(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
161
+					break;
162
+				case 'checkbox':
163
+				case 'select_multi':
164
+					$def_value = null !== $field->getVar('field_default', 'e') ? unserialize(($field->getVar('field_default', 'n')) ?? '') : null;
165
+					$element   = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $def_value, 8, true);
166
+					$options   = $field->getVar('field_options');
167
+					asort($options);
168
+					// If options do not include an empty element, then add a blank option to prevent any default selection
169
+					if (!array_key_exists('', $options)) {
170
+						$element->addOption('', _NONE);
171
+					}
172
+					$element->addOptionArray($options);
173
+					$form->addElement($element);
174
+					break;
175
+				case 'select':
176
+				case 'radio':
177
+					$def_value = null !== $field->getVar('field_default', 'e') ? $field->getVar('field_default') : null;
178
+					$element   = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $def_value);
179
+					$options   = $field->getVar('field_options');
180
+					asort($options);
181
+					// If options do not include an empty element, then add a blank option to prevent any default selection
182
+					if (!array_key_exists('', $options)) {
183
+						$element->addOption('', _NONE);
184
+					}
185
+					$element->addOptionArray($options);
186
+					$form->addElement($element);
187
+					break;
188
+				case 'date':
189
+					$form->addElement(new \XoopsFormTextDateSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', 15, $field->getVar('field_default', 'e')));
190
+					break;
191
+				case 'longdate':
192
+					$form->addElement(new \XoopsFormTextDateSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', 15, strtotime($field->getVar('field_default', 'e'))));
193
+					break;
194
+				case 'datetime':
195
+					$form->addElement(new \XoopsFormDateTime(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', 15, $field->getVar('field_default', 'e')));
196
+					break;
197
+				case 'yesno':
198
+					$form->addElement(new \XoopsFormRadioYN(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
199
+					break;
200
+				case 'timezone':
201
+					$form->addElement(new \XoopsFormSelectTimezone(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
202
+					break;
203
+				case 'language':
204
+					$form->addElement(new \XoopsFormSelectLang(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
205
+					break;
206
+				case 'group':
207
+					$form->addElement(new \XoopsFormSelectGroup(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', true, $field->getVar('field_default', 'e')));
208
+					break;
209
+				case 'group_multi':
210
+					$form->addElement(new \XoopsFormSelectGroup(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', true, $field->getVar('field_default', 'e'), 5, true));
211
+					break;
212
+				case 'theme':
213
+					$form->addElement(new \XoopsFormSelectTheme(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
214
+					break;
215
+				case 'autotext':
216
+					$form->addElement(new \XoopsFormTextArea(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $field->getVar('field_default', 'e')));
217
+					break;
218
+			}
219
+		}
220
+
221
+		/** @var \XoopsGroupPermHandler $grouppermHandler */
222
+		$grouppermHandler = xoops_getHandler('groupperm');
223
+		$searchable_types = [
224
+			'textbox',
225
+			'select',
226
+			'radio',
227
+			'yesno',
228
+			'date',
229
+			'datetime',
230
+			'timezone',
231
+			'language',
232
+		];
233
+		if (in_array($field->getVar('field_type'), $searchable_types, true)) {
234
+			$search_groups = $grouppermHandler->getGroupIds('songlist_search', $field->getVar('field_id'), $GLOBALS['songlistModule']->getVar('mid'));
235
+			$form->addElement(new \XoopsFormSelectGroup(_FRM_SONGLIST_FIELDS_PROF_SEARCH, 'songlist_search', true, $search_groups, 5, true));
236
+		}
237
+		if ($field->getVar('field_edit') || $field->isNew()) {
238
+			if ($field->isNew()) {
239
+				$editable_groups = [];
240
+			} else {
241
+				//Load groups
242
+				$editable_groups = $grouppermHandler->getGroupIds('songlist_edit', $field->getVar('field_id'), $GLOBALS['songlistModule']->getVar('mid'));
243
+			}
244
+			$form->addElement(new \XoopsFormSelectGroup(_FRM_SONGLIST_FIELDS_PROF_EDITABLE, 'songlist_edit', false, $editable_groups, 5, true));
245 245
 //            $form->addElement($steps_select);
246
-        }
247
-        $form->addElement(new \XoopsFormHidden('op', 'save'));
248
-        $form->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
249
-
250
-        return $form;
251
-    }
252
-
253
-    /**
254
-     * Get {@link XoopsThemeForm} for editing a user
255
-     *
256
-     * @param bool $action
257
-     * @return object
258
-     * @internal param object $user <a href='psi_element://XoopsUser'>XoopsUser</a> to edit to edit
259
-     */
260
-    public static function getUserSearchForm($action = false)
261
-    {
262
-        xoops_loadLanguage('forms', 'songlist');
263
-
264
-        if (!$action) {
265
-            $action = $_SERVER['SCRIPT_NAME'];
266
-        }
267
-        if (empty($GLOBALS['xoopsConfigUser'])) {
268
-            /** @var \XoopsConfigHandler $configHandler */
269
-            $configHandler              = xoops_getHandler('config');
270
-            $GLOBALS['xoopsConfigUser'] = $configHandler->getConfigsByCat(XOOPS_CONF_USER);
271
-        }
272
-
273
-        $helper = Helper::getInstance();
274
-
275
-        $title = _FRM_SONGLIST_FIELDS_SEARCH;
276
-
277
-        $form = new \XoopsThemeForm($title, 'search', $action, 'post', true);
278
-
279
-        $songlistHandler = Helper::getInstance()
280
-                                 ->getHandler('Profile', 'objects');
281
-        // Get fields
282
-        $fields = $songlistHandler->loadFields();
283
-
284
-        /** @var \XoopsGroupPermHandler $grouppermHandler */
285
-        $grouppermHandler = xoops_getHandler('groupperm');
286
-        /** @var \XoopsConfigHandler $configHandler */
287
-        $configHandler = xoops_getHandler('config');
288
-        $groups        = is_object($GLOBALS['xoopsUser']) ? $GLOBALS['xoopsUser']->getGroups() : [XOOPS_GROUP_ANONYMOUS];
289
-        /** @var \XoopsModuleHandler $moduleHandler */
290
-        $moduleHandler = xoops_getHandler('module');
291
-        $xoModule      = $moduleHandler->getByDirname('objects');
292
-        $modid         = $xoModule->getVar('mid');
293
-
294
-        // Get ids of fields that can be edited
295
-        /** @var \XoopsGroupPermHandler $grouppermHandler */
296
-        $grouppermHandler = xoops_getHandler('groupperm');
297
-
298
-        $editable_fields = $grouppermHandler->getItemIds('songlist_search', $groups, $modid);
299
-
300
-        $catHandler = Helper::getInstance()
301
-                            ->getHandler('Category');
302
-
303
-        $selcat = new \XoopsFormSelect('Form', 'cid', !empty($_REQUEST['cid']) ? Request::getInt('cid', 0, 'REQUEST') : 0, 1, false, false, false, true);
304
-        $selcat->setExtra(' onChange="window.location=\'' . XOOPS_URL . '/modules/objects/search.php?op=search&fct=form&cid=\'+document.search.cid.options[document.search.cid.selectedIndex].value"');
305
-
306
-        $form->addElement($selcat, true);
307
-
308
-        $categories = [];
309
-
310
-        $criteria       = new \CriteriaCompo(new \Criteria('cid', !empty($_REQUEST['cid']) ? Request::getInt('cid', 0, 'REQUEST') : '0'), 'OR');
311
-        $all_categories = $catHandler->getObjects($criteria, true, false);
312
-        $count_fields   = count($fields);
313
-
314
-        foreach (array_keys($fields) as $i) {
315
-            if (in_array($fields[$i]->getVar('field_id'), $editable_fields, true)) {
316
-                // Set default value for user fields if available
317
-                $fieldinfo['element']  = $fields[$i]->getSearchElement();
318
-                $fieldinfo['required'] = false;
319
-
320
-                foreach ($fields[$i]->getVar('cids') as $catidid => $cid) {
321
-                    if (array_key_exists($cid, $all_categories)) {
322
-                        $key              = $all_categories[$cid]['cat_weight'] * $count_fields + $cid;
323
-                        $elements[$key][] = $fieldinfo;
324
-                        $weights[$key][]  = $fields[$i]->getVar('field_weight');
325
-                        $categories[$key] = $all_categories[$cid];
326
-                    } elseif (in_array(0, $fields[$i]->getVar('cids'), true)) {
327
-                        $key              = $all_categories[$cid]['cat_weight'] * $count_fields + $cid;
328
-                        $elements[$key][] = $fieldinfo;
329
-                        $weights[$key][]  = $fields[$i]->getVar('field_weight');
330
-                        $categories[$key] = $all_categories[$cid];
331
-                    }
332
-                }
333
-            }
334
-        }
335
-
336
-        ksort($elements);
337
-        foreach (array_keys($elements) as $k) {
338
-            array_multisort($weights[$k], SORT_ASC, array_keys($elements[$k]), SORT_ASC, $elements[$k]);
339
-            $title = isset($categories[$k]) ? $categories[$k]['cat_title'] : _FRM_SONGLIST_FORM_DEFAULT;
340
-            $desc  = isset($categories[$k]) ? $categories[$k]['cat_description'] : '';
341
-            $form->addElement(new \XoopsFormLabel("<h3>{$title}</h3>", $desc), false);
342
-            foreach (array_keys($elements[$k]) as $i) {
343
-                $form->addElement($elements[$k][$i]['element'], $elements[$k][$i]['required']);
344
-            }
345
-        }
346
-
347
-        $form->addElement(new \XoopsFormHidden('fct', 'objects'));
348
-        $form->addElement(new \XoopsFormHidden('op', 'search'));
349
-        $form->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
350
-
351
-        return $form;
352
-    }
353
-
354
-    /**
355
-     * @param bool $as_array
356
-     * @return string
357
-     */
358
-    public static function  getFormImport($as_array = false): string
359
-    {
360
-        xoops_loadLanguage('forms', 'songlist');
361
-
362
-        $sform = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_IMPORT, 'import', $_SERVER['SCRIPT_NAME'], 'post', true);
363
-        $sform->setExtra("enctype='multipart/form-data'");
364
-
365
-        $ele['op']      = new \XoopsFormHidden('op', 'import');
366
-        $ele['fct']     = new \XoopsFormHidden('fct', 'upload');
367
-        $ele['xmlfile'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_UPLOAD_XML : ''), 'xmlfile', 1024 * 1024 * 1024 * 32);
368
-        $ele['xmlfile']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_UPLOAD_XML_DESC : ''));
369
-        $ele['file'] = new \XoopsFormSelect((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_EXISTING_XML : ''), 'file');
370
-        $ele['file']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_EXISTING_XML_DESC : ''));
371
-        $ele['file']->addOption('', '*********');
372
-        xoops_load('XoopsLists');
373
-        foreach (\XoopsLists::getFileListAsArray($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'])) as $file) {
374
-            if ('xml' === mb_substr($file, mb_strlen($file) - 3, 3)) {
375
-                $ele['file']->addOption($file, $file);
376
-            }
377
-        }
378
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
379
-
380
-        $required = [];
381
-
382
-        foreach ($ele as $id => $obj) {
383
-            if (in_array($id, $required, true)) {
384
-                $sform->addElement($obj, true);
385
-            } else {
386
-                $sform->addElement($obj, false);
387
-            }
388
-        }
389
-
390
-        return $sform->render();
391
-    }
392
-
393
-    /**
394
-     * @param      $file
395
-     * @param bool $as_array
396
-     * @return string
397
-     */
398
-    public static function  getFormImportb($file, $as_array = false): string
399
-    {
400
-        xoops_loadLanguage('forms', 'songlist');
401
-
402
-        $sform = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_ELEMENTS, 'elements', $_SERVER['SCRIPT_NAME'], 'post', true);
403
-
404
-        $filesize = filesize($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'] . $file));
405
-        $mb       = floor($filesize / 1024 / 1024);
406
-        if ($mb > 32) {
407
-            set_ini('memory_limit', ($mb + 128) . 'M');
408
-        }
409
-        set_time_limit(3600);
410
-
411
-        $i = 0;
412
-        foreach (file($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'] . $_SESSION['xmlfile'])) as $data) {
413
-            ++$i;
414
-            if ($i < 20) {
415
-                $line .= htmlspecialchars($data, ENT_QUOTES | ENT_HTML5) . ($i < 19 ? "\n" : '');
416
-            }
417
-        }
418
-
419
-        $ele['op']      = new \XoopsFormHidden('op', 'import');
420
-        $ele['fct']     = new \XoopsFormHidden('fct', 'import');
421
-        $ele['example'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_EXAMPLE : ''), '<pre>' . $line . '</pre>');
422
-        $ele['example']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_EXAMPLE_DESC : ''));
423
-        $ele['collection'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_COLLECTION : ''), 'collection', 32, 128, 'collection');
424
-        $ele['collection']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_COLLECTION_DESC : ''));
425
-        $ele['record'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_RECORD : ''), 'record', 32, 128, 'record');
426
-        $ele['record']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_RECORD_DESC : ''));
427
-        $ele['genre'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_GENRES : ''), 'genre', 32, 128, 'genre');
428
-        $ele['genre']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_GENRES_DESC : ''));
429
-        $ele['voice'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_VOICE : ''), 'voice', 32, 128, 'voice');
430
-        $ele['voice']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_VOICE_DESC : ''));
431
-        $ele['category'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_CATEGORY : ''), 'category', 32, 128, 'category');
432
-        $ele['category']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_CATEGORY_DESC : ''));
433
-        $ele['artist'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_ARTIST : ''), 'artist', 32, 128, 'artist');
434
-        $ele['artist']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_ARTIST_DESC : ''));
435
-        $ele['album'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_ALBUM : ''), 'album', 32, 128, 'album');
436
-        $ele['album']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_ALBUM_DESC : ''));
437
-        $ele['songid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_SONGID : ''), 'songid', 32, 128, 'songid');
438
-        $ele['songid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_SONGID_DESC : ''));
439
-        $ele['traxid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TRAXID : ''), 'traxid', 32, 128, 'trackno');
440
-        $ele['traxid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TRAXID_DESC : ''));
441
-        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TITLE : ''), 'title', 32, 128, 'title');
442
-        $ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TITLE_DESC : ''));
443
-        $ele['lyrics'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_LYRICS : ''), 'lyrics', 32, 128, 'lyric');
444
-        $ele['lyrics']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_LYRICS_DESC : ''));
445
-        $ele['tags'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TAGS : ''), 'tags', 32, 128, 'tags');
446
-        $ele['tags']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TAGS_DESC : ''));
447
-        $ele['mp3'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_MP3 : ''), 'mp3', 32, 128, 'mp3');
448
-        $ele['mp3']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_MP3_DESC : ''));
449
-        $extrasHandler = Helper::getInstance()
450
-                               ->getHandler('Extras');
451
-        $fields        = $extrasHandler->getFields(null);
452
-        foreach ($fields as $field) {
453
-            $ele[$field->getVar('field_name')] = new \XoopsFormText((!$as_array ? $field->getVar('field_title') : ''), $field->getVar('field_name'), 32, 128, $field->getVar('field_name'));
454
-            $ele[$field->getVar('field_name')]->setDescription((!$as_array ? $field->getVar('field_description') : ''));
455
-        }
456
-        $ele['limiting'] = new \XoopsFormRadioYN((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_LIMITING : ''), 'limiting');
457
-        $ele['limiting']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_LIMITING_DESC : ''));
458
-        $ele['records'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_RECORDS : ''), 'records', 10, 10, '250');
459
-        $ele['records']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_RECORDS_DESC : ''));
460
-        $ele['wait'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_WAIT : ''), 'wait', 10, 10, '40');
461
-        $ele['wait']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_WAIT_DESC : ''));
462
-
463
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
464
-
465
-        $required = [];
466
-
467
-        foreach ($ele as $id => $obj) {
468
-            if (in_array($id, $required, true)) {
469
-                $sform->addElement($obj, true);
470
-            } else {
471
-                $sform->addElement($obj, false);
472
-            }
473
-        }
474
-
475
-        return $sform->render();
476
-    }
477
-
478
-    /**
479
-     * @param      $object
480
-     * @param bool $as_array
481
-     * @return array|string
482
-     */
483
-    public static function  getFormGenre($object, $as_array = false)
484
-    {
485
-        if (!is_object($object)) {
486
-            $handler = Helper::getInstance()
487
-                             ->getHandler('Genre');
488
-            $object  = $handler->create();
489
-        }
490
-
491
-        xoops_loadLanguage('forms', 'songlist');
492
-        $ele = [];
493
-
494
-        if ($object->isNew()) {
495
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_GENRE, 'genre', $_SERVER['SCRIPT_NAME'], 'post', true);
496
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
497
-        } else {
498
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_GENRE, 'genre', $_SERVER['SCRIPT_NAME'], 'post', true);
499
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
500
-        }
501
-
502
-        $sform->setExtra("enctype='multipart/form-data'");
503
-
504
-        $id = $object->getVar('gid');
505
-        if (empty($id)) {
506
-            $id = '0';
507
-        }
508
-
509
-        $ele['op']  = new \XoopsFormHidden('op', 'genre');
510
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
511
-        if ($as_array) {
512
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
513
-        } else {
514
-            $ele['id'] = new \XoopsFormHidden('id', $id);
515
-        }
516
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
517
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
518
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
519
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
520
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
521
-
522
-        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_GENRE_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
523
-        $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_GENRE_NAME_DESC : ''));
524
-        $ele['albums']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_ALBUMS : ''), $object->getVar('albums'));
525
-        $ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_ARTISTS : ''), $object->getVar('artists'));
526
-        $ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_SONGS : ''), $object->getVar('songs'));
527
-        $ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_HITS : ''), $object->getVar('hits'));
528
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
529
-        if ($object->getVar('created') > 0) {
530
-            $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
531
-        }
532
-        if ($object->getVar('updated') > 0) {
533
-            $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
534
-        }
535
-
536
-        if ($as_array) {
537
-            return $ele;
538
-        }
539
-
540
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
541
-
542
-        $required = ['name'];
543
-
544
-        foreach ($ele as $id => $obj) {
545
-            if (in_array($id, $required, true)) {
546
-                $sform->addElement($obj, true);
547
-            } else {
548
-                $sform->addElement($obj, false);
549
-            }
550
-        }
551
-
552
-        return $sform->render();
553
-    }
554
-
555
-    /**
556
-     * @param      $object
557
-     * @param bool $as_array
558
-     * @return array|string
559
-     */
560
-    public static function  getFormVoice($object, $as_array = false)
561
-    {
562
-        if (!is_object($object)) {
563
-            $handler = Helper::getInstance()
564
-                             ->getHandler('Voice');
565
-            $object  = $handler->create();
566
-        }
567
-
568
-        xoops_loadLanguage('forms', 'songlist');
569
-        $ele = [];
570
-
571
-        if ($object->isNew()) {
572
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_VOICE, 'voice', $_SERVER['SCRIPT_NAME'], 'post', true);
573
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
574
-        } else {
575
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_VOICE, 'voice', $_SERVER['SCRIPT_NAME'], 'post', true);
576
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
577
-        }
578
-
579
-        $sform->setExtra("enctype='multipart/form-data'");
580
-
581
-        $id = $object->getVar('vcid');
582
-        if (empty($id)) {
583
-            $id = '0';
584
-        }
585
-
586
-        $ele['op']  = new \XoopsFormHidden('op', 'voice');
587
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
588
-        if ($as_array) {
589
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
590
-        } else {
591
-            $ele['id'] = new \XoopsFormHidden('id', $id);
592
-        }
593
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
594
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
595
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
596
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
597
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
598
-
599
-        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_VOICE_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
600
-        $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_VOICE_NAME_DESC : ''));
601
-        $ele['albums']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_ALBUMS : ''), $object->getVar('albums'));
602
-        $ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_ARTISTS : ''), $object->getVar('artists'));
603
-        $ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_SONGS : ''), $object->getVar('songs'));
604
-        $ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_HITS : ''), $object->getVar('hits'));
605
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
606
-        if ($object->getVar('created') > 0) {
607
-            $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
608
-        }
609
-        if ($object->getVar('updated') > 0) {
610
-            $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
611
-        }
612
-
613
-        if ($as_array) {
614
-            return $ele;
615
-        }
616
-
617
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
618
-
619
-        $required = ['name'];
620
-
621
-        foreach ($ele as $id => $obj) {
622
-            if (in_array($id, $required, true)) {
623
-                $sform->addElement($obj, true);
624
-            } else {
625
-                $sform->addElement($obj, false);
626
-            }
627
-        }
628
-
629
-        return $sform->render();
630
-    }
631
-
632
-    /**
633
-     * @param      $object
634
-     * @param bool $as_array
635
-     * @return array|string
636
-     */
637
-    public static function  getFormAlbums($object, $as_array = false)
638
-    {
639
-        if (!is_object($object)) {
640
-            $handler = Helper::getInstance()
641
-                             ->getHandler('Albums');
642
-            $object  = $handler->create();
643
-        }
644
-
645
-        xoops_loadLanguage('forms', 'songlist');
646
-        $ele = [];
647
-
648
-        if ($object->isNew()) {
649
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_ALBUMS, 'albums', $_SERVER['SCRIPT_NAME'], 'post', true);
650
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
651
-        } else {
652
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_ALBUMS, 'albums', $_SERVER['SCRIPT_NAME'], 'post', true);
653
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
654
-        }
655
-
656
-        $sform->setExtra("enctype='multipart/form-data'");
657
-
658
-        $id = $object->getVar('abid');
659
-        if (empty($id)) {
660
-            $id = '0';
661
-        }
662
-
663
-        $ele['op']  = new \XoopsFormHidden('op', 'albums');
664
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
665
-        if ($as_array) {
666
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
667
-        } else {
668
-            $ele['id'] = new \XoopsFormHidden('id', $id);
669
-        }
670
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
671
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
672
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
673
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
674
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
675
-
676
-        $ele['cid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CATEGORY : ''), $id . '[cid]', $object->getVar('cid'), 1, false, false, false);
677
-        $ele['cid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CATEGORY_DESC : ''));
678
-        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
679
-        $ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_TITLE_DESC : ''));
680
-        $ele['image'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPLOAD_POSTER : ''), 'image', $GLOBALS['songlistModuleConfig']['filesize_upload']);
681
-        $ele['image']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPLOAD_POSTER_DESC : ''));
682
-        if ('' != $object->getVar('image') && file_exists($GLOBALS['xoops']->path($object->getVar('path') . $object->getVar('image')))) {
683
-            $ele['image_preview'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_POSTER : ''), '<img src="' . $object->getImage('image') . '" width="340px">');
684
-            $ele['image_preview']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_POSTER_DESC : ''));
685
-        }
686
-        $ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_ARTISTS : ''), $object->getVar('artists'));
687
-        $ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_SONGS : ''), $object->getVar('songs'));
688
-        $ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_HITS : ''), $object->getVar('hits'));
689
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
690
-        if ($object->getVar('created') > 0) {
691
-            $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
692
-        }
693
-        if ($object->getVar('updated') > 0) {
694
-            $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
695
-        }
696
-
697
-        if ($as_array) {
698
-            return $ele;
699
-        }
700
-
701
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
702
-
703
-        $required = ['name', 'id', 'source'];
704
-
705
-        foreach ($ele as $id => $obj) {
706
-            if (in_array($id, $required, true)) {
707
-                $sform->addElement($obj, true);
708
-            } else {
709
-                $sform->addElement($obj, false);
710
-            }
711
-        }
712
-
713
-        return $sform->render();
714
-    }
715
-
716
-    /**
717
-     * @param Songlist\Artists $object
718
-     * @param bool             $as_array
719
-     * @return array|string
720
-     */
721
-    public static function  getFormArtists($object, $as_array = false)
722
-    {
723
-        if (!is_object($object)) {
724
-            $handler = Helper::getInstance()
725
-                             ->getHandler('Artists');
726
-            $object  = $handler->create();
727
-        }
728
-
729
-        xoops_loadLanguage('forms', 'songlist');
730
-        $ele = [];
731
-
732
-        if ($object->isNew()) {
733
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_ARTISTS, 'artists', $_SERVER['SCRIPT_NAME'], 'post', true);
734
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
735
-        } else {
736
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_ARTISTS, 'artists', $_SERVER['SCRIPT_NAME'], 'post', true);
737
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
738
-        }
739
-
740
-        $id = $object->getVar('aid');
741
-        if (empty($id)) {
742
-            $id = '0';
743
-        }
744
-
745
-        $ele['op']  = new \XoopsFormHidden('op', 'artists');
746
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
747
-        if ($as_array) {
748
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
749
-        } else {
750
-            $ele['id'] = new \XoopsFormHidden('id', $id);
751
-        }
752
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
753
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
754
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
755
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
756
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
757
-
758
-        $ele['cids'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CATEGORY : ''), $id . '[cids]', $object->getVar('cids'), 7, true, false, false);
759
-        $ele['cids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CATEGORY_DESC : ''));
760
-        //$ele['singer'] = new \XoopsModules\Songlist\Form\SelectSingerForm(($as_array==false?_FRM_SONGLIST_FORM_ARTISTS_SINGER:''), $id.'[singer]', $object->getVar('singer'), 1, false, false, false);
761
-        //$ele['singer']->setDescription(($as_array==false?_FRM_SONGLIST_FORM_ARTISTS_SINGER_DESC:''));
762
-        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
763
-        $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_NAME_DESC : ''));
764
-        $ele['albums'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_ALBUMS : ''), $object->getVar('albums'));
765
-        $ele['songs']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_SONGS : ''), $object->getVar('songs'));
766
-        $ele['hits']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_HITS : ''), $object->getVar('hits'));
767
-        $ele['rank']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
768
-        if ($object->getVar('created') > 0) {
769
-            $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
770
-        }
771
-        if ($object->getVar('updated') > 0) {
772
-            $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
773
-        }
774
-
775
-        if ($as_array) {
776
-            return $ele;
777
-        }
778
-
779
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
780
-
781
-        $required = ['name', 'mimetype', 'support'];
782
-
783
-        foreach ($ele as $id => $obj) {
784
-            if (in_array($id, $required, true)) {
785
-                $sform->addElement($obj, true);
786
-            } else {
787
-                $sform->addElement($obj, false);
788
-            }
789
-        }
790
-
791
-        return $sform->render();
792
-    }
793
-
794
-    /**
795
-     * @param      $object
796
-     * @param bool $as_array
797
-     * @return array|string
798
-     */
799
-    public static function  getFormCategory($object, $as_array = false)
800
-    {
801
-        if (!is_object($object)) {
802
-            $handler = Helper::getInstance()
803
-                             ->getHandler('Category');
804
-            $object  = $handler->create();
805
-        }
806
-
807
-        xoops_loadLanguage('forms', 'songlist');
808
-        $ele = [];
809
-
810
-        if ($object->isNew()) {
811
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_CATEGORY, 'category', $_SERVER['SCRIPT_NAME'], 'post', true);
812
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
813
-        } else {
814
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_CATEGORY, 'category', $_SERVER['SCRIPT_NAME'], 'post', true);
815
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
816
-        }
817
-
818
-        $sform->setExtra("enctype='multipart/form-data'");
819
-
820
-        $id = $object->getVar('cid');
821
-        if (empty($id)) {
822
-            $id = '0';
823
-        }
824
-
825
-        $ele['op']  = new \XoopsFormHidden('op', 'category');
826
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
827
-        if ($as_array) {
828
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
829
-        } else {
830
-            $ele['id'] = new \XoopsFormHidden('id', $id);
831
-        }
832
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
833
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
834
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
835
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
836
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
837
-
838
-        $ele['pid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_PARENT : ''), $id . '[pid]', $object->getVar('pid'), 1, false, $object->getVar('cid'));
839
-        $ele['pid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_PARENT_DESC : ''));
840
-        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
841
-        $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_NAME_DESC : ''));
842
-        $description_configs           = [];
843
-        $description_configs['name']   = $id . '[description]';
844
-        $description_configs['value']  = $object->getVar('description');
845
-        $description_configs['rows']   = 35;
846
-        $description_configs['cols']   = 60;
847
-        $description_configs['width']  = '100%';
848
-        $description_configs['height'] = '400px';
849
-        $ele['description']            = new \XoopsFormEditor(_FRM_SONGLIST_FORM_CATEGORY_DESCRIPTION, $GLOBALS['songlistModuleConfig']['editor'], $description_configs);
850
-        $ele['description']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_DESCRIPTION_DESC : ''));
851
-        $ele['image'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPLOAD_POSTER : ''), 'image', $GLOBALS['songlistModuleConfig']['filesize_upload']);
852
-        $ele['image']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPLOAD_POSTER_DESC : ''));
853
-        if ('' != $object->getVar('image') && file_exists($GLOBALS['xoops']->path($object->getVar('path') . $object->getVar('image')))) {
854
-            $ele['image_preview'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_POSTER : ''), '<img src="' . $object->getImage('image') . '" width="340px">');
855
-            $ele['image_preview']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_POSTER_DESC : ''));
856
-        }
857
-        $ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_ARTISTS : ''), $object->getVar('artists'));
858
-        $ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_SONGS : ''), $object->getVar('songs'));
859
-        $ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_HITS : ''), $object->getVar('hits'));
860
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
861
-        if ($object->getVar('created') > 0) {
862
-            $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
863
-        }
864
-        if ($object->getVar('updated') > 0) {
865
-            $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
866
-        }
867
-
868
-        if ($as_array) {
869
-            return $ele;
870
-        }
871
-
872
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
873
-
874
-        $required = ['name', 'id', 'source'];
875
-
876
-        foreach ($ele as $id => $obj) {
877
-            if (in_array($id, $required, true)) {
878
-                $sform->addElement($obj, true);
879
-            } else {
880
-                $sform->addElement($obj, false);
881
-            }
882
-        }
883
-
884
-        return $sform->render();
885
-    }
886
-
887
-    /**
888
-     * @param      $object
889
-     * @param bool $as_array
890
-     * @return array|string
891
-     */
892
-    public static function  getFormUtf8map($object, $as_array = false)
893
-    {
894
-        if (!is_object($object)) {
895
-            $handler = Helper::getInstance()
896
-                             ->getHandler('Utf8map');
897
-            $object  = $handler->create();
898
-        }
899
-
900
-        xoops_loadLanguage('forms', 'songlist');
901
-        $ele = [];
902
-
903
-        if ($object->isNew()) {
904
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_UTF8MAP, 'utf8map', $_SERVER['SCRIPT_NAME'], 'post', true);
905
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
906
-        } else {
907
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_UTF8MAP, 'utf8map', $_SERVER['SCRIPT_NAME'], 'post', true);
908
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
909
-        }
910
-
911
-        $sform->setExtra("enctype='multipart/form-data'");
912
-
913
-        $id = $object->getVar('utfid');
914
-        if (empty($id)) {
915
-            $id = '0';
916
-        }
917
-
918
-        $ele['op']  = new \XoopsFormHidden('op', 'utf8map');
919
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
920
-        if ($as_array) {
921
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
922
-        } else {
923
-            $ele['id'] = new \XoopsFormHidden('id', $id);
924
-        }
925
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
926
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
927
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
928
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
929
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
930
-
931
-        $ele['from'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_FROM : ''), $id . '[from]', (!$as_array ? 6 : 4), 2, $object->getVar('from'));
932
-        $ele['from']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_FROM_DESC : ''));
933
-        $ele['to'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_TO : ''), $id . '[to]', (!$as_array ? 6 : 4), 2, $object->getVar('to'));
934
-        $ele['to']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_TO_DESC : ''));
935
-
936
-        if ($object->getVar('created') > 0) {
937
-            $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
938
-        }
939
-        if ($object->getVar('updated') > 0) {
940
-            $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
941
-        }
942
-
943
-        if ($as_array) {
944
-            return $ele;
945
-        }
946
-
947
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
948
-
949
-        $required = ['from', 'to'];
950
-
951
-        foreach ($ele as $id => $obj) {
952
-            if (in_array($id, $required, true)) {
953
-                $sform->addElement($obj, true);
954
-            } else {
955
-                $sform->addElement($obj, false);
956
-            }
957
-        }
958
-
959
-        return $sform->render();
960
-    }
961
-
962
-    /**
963
-     * @param      $object
964
-     * @param bool $as_array
965
-     * @return array|string
966
-     */
967
-    public static function  getFormRequests($object, $as_array = false)
968
-    {
969
-        if (!is_object($object)) {
970
-            $handler = Helper::getInstance()
971
-                             ->getHandler('Requests');
972
-            $object  = $handler->create();
973
-        }
974
-
975
-        xoops_loadLanguage('forms', 'songlist');
976
-        $ele = [];
977
-
978
-        if ($object->isNew()) {
979
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_REQUESTS, 'requests', $_SERVER['SCRIPT_NAME'], 'post', true);
980
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
981
-        } else {
982
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_REQUESTS, 'requests', $_SERVER['SCRIPT_NAME'], 'post', true);
983
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
984
-        }
985
-
986
-        $sform->setExtra("enctype='multipart/form-data'");
987
-
988
-        $id = $object->getVar('rid');
989
-        if (empty($id)) {
990
-            $id = '0';
991
-        }
992
-
993
-        $ele['op']  = new \XoopsFormHidden('op', 'requests');
994
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
995
-        if ($as_array) {
996
-            $ele['id'] = new \XoopsFormHidden('id', $id);
997
-        } else {
998
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
999
-        }
1000
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1001
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1002
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1003
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1004
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1005
-
1006
-        $ele['artist'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ARTIST : ''), $id . '[artist]', (!$as_array ? 55 : 21), 128, $object->getVar('artist'));
1007
-        $ele['artist']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ARTIST_DESC : ''));
1008
-        $ele['album'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ALBUM : ''), $id . '[album]', (!$as_array ? 55 : 21), 128, $object->getVar('album'));
1009
-        $ele['album']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ALBUM_DESC : ''));
1010
-        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
1011
-        $ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_TITLE_DESC : ''));
1012
-        $ele['lyrics'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_LYRICS : ''), $id . '[lyrics]', (!$as_array ? 55 : 21), 128, $object->getVar('lyrics'));
1013
-        $ele['lyrics']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_LYRICS_DESC : ''));
1014
-
1015
-        if (is_object($GLOBALS['xoopsUser'])) {
1016
-            $ele['uid']  = new \XoopsFormHidden('uid', $GLOBALS['xoopsUser']->getVar('uid'));
1017
-            $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? $GLOBALS['xoopsUser']->getVar('name') : $object->getVar('name')));
1018
-            $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME_DESC : ''));
1019
-            $ele['email'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL : ''), $id . '[email]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? $GLOBALS['xoopsUser']->getVar('email') : $object->getVar('email')));
1020
-            $ele['email']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL_DESC : ''));
1021
-        } else {
1022
-            $ele['uid']  = new \XoopsFormHidden('uid', 0);
1023
-            $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? '' : $object->getVar('name')));
1024
-            $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME_DESC : ''));
1025
-            $ele['email'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL : ''), $id . '[email]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? '' : $object->getVar('email')));
1026
-            $ele['email']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL_DESC : ''));
1027
-        }
1028
-        if ($object->getVar('created') > 0) {
1029
-            $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
1030
-        }
1031
-        if ($object->getVar('updated') > 0) {
1032
-            $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
1033
-        }
1034
-
1035
-        if ($as_array) {
1036
-            return $ele;
1037
-        }
1038
-
1039
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
1040
-
1041
-        $required = ['name', 'email'];
1042
-
1043
-        foreach ($ele as $id => $obj) {
1044
-            if (in_array($id, $required, true)) {
1045
-                $sform->addElement($obj, true);
1046
-            } else {
1047
-                $sform->addElement($obj, false);
1048
-            }
1049
-        }
1050
-
1051
-        return $sform->render();
1052
-    }
1053
-
1054
-    /**
1055
-     * @param      $object
1056
-     * @param bool $as_array
1057
-     * @return array|string
1058
-     */
1059
-    public static function  getFormSongs($object, $as_array = false)
1060
-    {
1061
-        if (!is_object($object)) {
1062
-            $handler = Helper::getInstance()
1063
-                             ->getHandler('Songs');
1064
-            $object  = $handler->create();
1065
-        }
1066
-
1067
-        xoops_loadLanguage('forms', 'songlist');
1068
-        $ele = [];
1069
-
1070
-        if ($object->isNew()) {
1071
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_SONGS, 'songs', $_SERVER['SCRIPT_NAME'], 'post', true);
1072
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
1073
-        } else {
1074
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_SONGS, 'songs', $_SERVER['SCRIPT_NAME'], 'post', true);
1075
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
1076
-        }
1077
-
1078
-        $sform->setExtra("enctype='multipart/form-data'");
1079
-
1080
-        $id = $object->getVar('sid');
1081
-        if (empty($id)) {
1082
-            $id = '0';
1083
-        }
1084
-
1085
-        $ele['op']  = new \XoopsFormHidden('op', 'songs');
1086
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
1087
-        if ($as_array) {
1088
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
1089
-        } else {
1090
-            $ele['id'] = new \XoopsFormHidden('id', $id);
1091
-        }
1092
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1093
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1094
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1095
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1096
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1097
-
1098
-        $ele['cid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CATEGORY : ''), $id . '[cid]', ($_REQUEST['cid'] ?? $object->getVar('cid')), 1, false);
1099
-        $ele['cid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CATEGORY_DESC : ''));
1100
-        if ($GLOBALS['songlistModuleConfig']['genre']) {
1101
-            $ele['gids'] = new SelectGenreForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_GENRE : ''), $id . '[gids]', ($_REQUEST['gids'] ?? $object->getVar('gids')), 8, true);
1102
-            $ele['gids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_GENRE_DESC : ''));
1103
-        }
1104
-        if ($GLOBALS['songlistModuleConfig']['voice']) {
1105
-            $ele['vcid'] = new SelectVoiceForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_VOICE : ''), $id . '[vcid]', ($_REQUEST['vcid'] ?? $object->getVar('vcid')), 1, false);
1106
-            $ele['vcid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_VOICE_DESC : ''));
1107
-        }
1108
-        if ($GLOBALS['songlistModuleConfig']['album']) {
1109
-            $ele['abid'] = new SelectAlbumForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ALBUM : ''), $id . '[abid]', $object->getVar('abid'), 1, false);
1110
-            $ele['abid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ALBUM_DESC : ''));
1111
-        }
1112
-        $ele['aids'] = new SelectArtistForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ARTISTS : ''), $id . '[aids]', $object->getVar('aids'), 7, true);
1113
-        $ele['aids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ARTISTS_DESC : ''));
1114
-        $ele['songid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_SONGID : ''), $id . '[songid]', (!$as_array ? 25 : 15), 32, $object->getVar('songid'));
1115
-        $ele['songid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_SONGID_DESC : ''));
1116
-        $ele['traxid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TRAXID : ''), $id . '[traxid]', (!$as_array ? 25 : 15), 32, $object->getVar('traxid'));
1117
-        $ele['traxid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TRAXID_DESC : ''));
1118
-        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
1119
-        $ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TITLE_DESC : ''));
1120
-        $description_configs           = [];
1121
-        $description_configs['name']   = $id . '[lyrics]';
1122
-        $description_configs['value']  = $object->getVar('lyrics');
1123
-        $description_configs['rows']   = 35;
1124
-        $description_configs['cols']   = 60;
1125
-        $description_configs['width']  = '100%';
1126
-        $description_configs['height'] = '400px';
1127
-        $ele['lyrics']                 = new \XoopsFormEditor(_FRM_SONGLIST_FORM_SONGS_LYRICS, $GLOBALS['songlistModuleConfig']['editor'], $description_configs);
1128
-        $ele['lyrics']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_LYRICS_DESC : ''));
1129
-        $ele['mp3'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_SONGS_MP3 : ''), 'mp3' . $id, $GLOBALS['songlistModuleConfig']['mp3_filesize']);
1130
-        $ele['mp3']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_MP3_DESC : ''));
1131
-        $categoryHandler = Helper::getInstance()
1132
-                                 ->getHandler('Category');
1133
-        $criteria        = new \CriteriaCompo(new \Criteria('cid', !empty($_REQUEST['cid']) ? Request::getInt('cid', 0, 'REQUEST') : $object->getVar('cid')));
1134
-        $all_categories  = $categoryHandler->getObjects($criteria, true, false);
1135
-
1136
-        // Dynamic fields
1137
-        $extrasHandler = Helper::getInstance()
1138
-                               ->getHandler('Extras');
1139
-        /** @var \XoopsGroupPermHandler $grouppermHandler */
1140
-        $grouppermHandler = xoops_getHandler('groupperm');
1141
-        /** @var \XoopsModuleHandler $moduleHandler */
1142
-        $moduleHandler = xoops_getHandler('module');
1143
-        $xoModule      = $moduleHandler->getByDirname('songlist');
1144
-        $modid         = $xoModule->getVar('mid');
1145
-
1146
-        if (is_object($GLOBALS['xoopsUser'])) {
1147
-            $groups = $GLOBALS['xoopsUser']->getGroups();
1148
-        } else {
1149
-            $groups = [XOOPS_GROUP_ANONYMOUS => XOOPS_GROUP_ANONYMOUS];
1150
-        }
1151
-
1152
-        $count_fields = 0;
1153
-        $fields       = $extrasHandler->loadFields();
1154
-
1155
-        $required = [];
1156
-        $elements = [];
1157
-        $weights  = [];
1158
-        if ($object->getVar('sid') > 0) {
1159
-            $extra = $extrasHandler->get($object->getVar('sid'));
1160
-        } else {
1161
-            $extra = $extrasHandler->create();
1162
-        }
1163
-        $allnames = [];
1164
-        if (is_array($fields)) {
1165
-            foreach (array_keys($fields) as $i) {
1166
-                if ((0 != $object->getVar('sid') && $grouppermHandler->checkRight('songlist_edit', $fields[$i]->getVar('field_id'), $groups, $modid))
1167
-                    || (0 == $object->getVar('sid') && $grouppermHandler->checkRight('songlist_post', $fields[$i]->getVar('field_id'), $groups, $modid))) {
1168
-                    $fieldinfo['element']  = $fields[$i]->getEditElement($object, $extra);
1169
-                    $fieldinfo['required'] = $fields[$i]->getVar('field_required');
1170
-                    foreach ($fields[$i]->getVar('cids') as $catidid => $cid) {
1171
-                        if (!in_array($fields[$i]->getVar('field_name'), $allnames, true)) {
1172
-                            $allnames[] = $fields[$i]->getVar('field_name');
1173
-                            if (array_key_exists($cid, $all_categories)
1174
-                                || $cid == (!empty($_REQUEST['cid'])
1175
-                                    ? Request::getInt('cid', 0, 'REQUEST')
1176
-                                    : $object->getVar('cid'))) {
1177
-                                $key              = (isset($all_categories[$cid]) ? $all_categories[$cid]['weight'] : 0)
1178
-                                                    * $count_fields + $object->getVar('cid');
1179
-                                $elements[$key][] = $fieldinfo;
1180
-                                $weights[$key][]  = $fields[$i]->getVar('field_weight');
1181
-                            } elseif (in_array(0, $fields[$i]->getVar('cids'), true)) {
1182
-                                $key              = (isset($all_categories[$cid]) ? $all_categories[$cid]['weight'] : 0) * $count_fields + $object->getVar('cid');
1183
-                                $elements[$key][] = $fieldinfo;
1184
-                                $weights[$key][]  = $fields[$i]->getVar('field_weight');
1185
-                            }
1186
-                        }
1187
-                    }
1188
-                }
1189
-            }
1190
-        }
1191
-        if (is_array($elements)) {
1192
-            ksort($elements);
1193
-            foreach (array_keys($elements) as $k) {
1194
-                array_multisort($weights[$k], SORT_ASC, array_keys($elements[$k]), SORT_ASC, $elements[$k]);
1195
-                foreach (array_keys($elements[$k]) as $i) {
1196
-                    $ele[$k] = $elements[$k][$i]['element'];
1197
-                    if (true === $elements[$k][$i]['required']) {
1198
-                        $required[$k] = $elements[$k][$i]['element']->getName();
1199
-                    }
1200
-                }
1201
-            }
1202
-        }
1203
-
1204
-        if (class_exists(\XoopsModules\Tag\FormTag::class)) {
1205
-            $ele['tags'] = new \XoopsModules\Tag\FormTag('tags', 60, 255, $object->getVar('sid'), $object->getVar('cid'));
1206
-        } else {
1207
-            $ele['tags'] = new \XoopsFormHidden('tags', $object->getVar('tags'));
1208
-        }
1209
-
1210
-        $ele['hits'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_HITS : ''), $object->getVar('hits'));
1211
-        $ele['rank'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
1212
-        if ($object->getVar('created') > 0) {
1213
-            $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
1214
-        }
1215
-        if ($object->getVar('updated') > 0) {
1216
-            $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
1217
-        }
1218
-        if ($as_array) {
1219
-            return $ele;
1220
-        }
1221
-
1222
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
1223
-
1224
-        foreach ($ele as $id => $obj) {
1225
-            if (in_array($id, $required, true)) {
1226
-                $sform->addElement($obj, true);
1227
-            } else {
1228
-                $sform->addElement($obj, false);
1229
-            }
1230
-        }
1231
-
1232
-        return $sform->render();
1233
-    }
1234
-
1235
-    /**
1236
-     * @param      $object
1237
-     * @param bool $as_array
1238
-     * @return array|string
1239
-     */
1240
-    public static function  getFormVotes($object, $as_array = false)
1241
-    {
1242
-        if (!is_object($object)) {
1243
-            $handler = Helper::getInstance()
1244
-                             ->getHandler('Votes');
1245
-            $object  = $handler->create();
1246
-        }
1247
-
1248
-        xoops_loadLanguage('forms', 'songlist');
1249
-        $ele = [];
1250
-
1251
-        if ($object->isNew()) {
1252
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_CART, 'votes', $_SERVER['SCRIPT_NAME'], 'post', true);
1253
-            $ele['mode'] = new \XoopsFormHidden('mode', 'new');
1254
-        } else {
1255
-            $sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_CART, 'votes', $_SERVER['SCRIPT_NAME'], 'post', true);
1256
-            $ele['mode'] = new \XoopsFormHidden('mode', 'edit');
1257
-        }
1258
-
1259
-        $sform->setExtra("enctype='multipart/form-data'");
1260
-
1261
-        $id = $object->getVar('cid');
1262
-        if (empty($id)) {
1263
-            $id = '0';
1264
-        }
1265
-
1266
-        $ele['op']  = new \XoopsFormHidden('op', 'votes');
1267
-        $ele['fct'] = new \XoopsFormHidden('fct', 'save');
1268
-        if ($as_array) {
1269
-            $ele['id'] = new \XoopsFormHidden('id', $id);
1270
-        } else {
1271
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
1272
-        }
1273
-        $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1274
-        $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1275
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1276
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1277
-        $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1278
-
1279
-        $songsHandler = Helper::getInstance()
1280
-                              ->getHandler('Songs');
1281
-        $userHandler  = xoops_getHandler('user');
1282
-        $song         = $songsHandler->get($object->getVar('sid'));
1283
-        $user         = $userHandler->get($object->getVar('uid'));
1284
-        if (is_object($song)) {
1285
-            $ele['sid'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_SONG : ''), $song->getVar('title'));
1286
-        } else {
1287
-            $ele['sid'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_SONG : ''), $object->getVar('sid'));
1288
-        }
1289
-        if (is_object($user)) {
1290
-            $ele['uid'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_USER : ''), $user->getVar('uname'));
1291
-        } else {
1292
-            $ele['uid'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_USER : ''), _GUESTS);
1293
-        }
1294
-        $ele['ip']      = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_IP : ''), $object->getVar('ip'));
1295
-        $ele['netaddy'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_NETADDY : ''), $object->getVar('netaddy'));
1296
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_RANK : ''), $object->getVar('rank') . ' of 10');
1297
-
1298
-        if ($as_array) {
1299
-            return $ele;
1300
-        }
1301
-
1302
-        $ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
1303
-
1304
-        $required = [];
1305
-
1306
-        foreach ($ele as $id => $obj) {
1307
-            if (in_array($id, $required, true)) {
1308
-                $sform->addElement($obj, true);
1309
-            } else {
1310
-                $sform->addElement($obj, false);
1311
-            }
1312
-        }
1313
-
1314
-        return $sform->render();
1315
-    }
246
+		}
247
+		$form->addElement(new \XoopsFormHidden('op', 'save'));
248
+		$form->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
249
+
250
+		return $form;
251
+	}
252
+
253
+	/**
254
+	 * Get {@link XoopsThemeForm} for editing a user
255
+	 *
256
+	 * @param bool $action
257
+	 * @return object
258
+	 * @internal param object $user <a href='psi_element://XoopsUser'>XoopsUser</a> to edit to edit
259
+	 */
260
+	public static function getUserSearchForm($action = false)
261
+	{
262
+		xoops_loadLanguage('forms', 'songlist');
263
+
264
+		if (!$action) {
265
+			$action = $_SERVER['SCRIPT_NAME'];
266
+		}
267
+		if (empty($GLOBALS['xoopsConfigUser'])) {
268
+			/** @var \XoopsConfigHandler $configHandler */
269
+			$configHandler              = xoops_getHandler('config');
270
+			$GLOBALS['xoopsConfigUser'] = $configHandler->getConfigsByCat(XOOPS_CONF_USER);
271
+		}
272
+
273
+		$helper = Helper::getInstance();
274
+
275
+		$title = _FRM_SONGLIST_FIELDS_SEARCH;
276
+
277
+		$form = new \XoopsThemeForm($title, 'search', $action, 'post', true);
278
+
279
+		$songlistHandler = Helper::getInstance()
280
+								 ->getHandler('Profile', 'objects');
281
+		// Get fields
282
+		$fields = $songlistHandler->loadFields();
283
+
284
+		/** @var \XoopsGroupPermHandler $grouppermHandler */
285
+		$grouppermHandler = xoops_getHandler('groupperm');
286
+		/** @var \XoopsConfigHandler $configHandler */
287
+		$configHandler = xoops_getHandler('config');
288
+		$groups        = is_object($GLOBALS['xoopsUser']) ? $GLOBALS['xoopsUser']->getGroups() : [XOOPS_GROUP_ANONYMOUS];
289
+		/** @var \XoopsModuleHandler $moduleHandler */
290
+		$moduleHandler = xoops_getHandler('module');
291
+		$xoModule      = $moduleHandler->getByDirname('objects');
292
+		$modid         = $xoModule->getVar('mid');
293
+
294
+		// Get ids of fields that can be edited
295
+		/** @var \XoopsGroupPermHandler $grouppermHandler */
296
+		$grouppermHandler = xoops_getHandler('groupperm');
297
+
298
+		$editable_fields = $grouppermHandler->getItemIds('songlist_search', $groups, $modid);
299
+
300
+		$catHandler = Helper::getInstance()
301
+							->getHandler('Category');
302
+
303
+		$selcat = new \XoopsFormSelect('Form', 'cid', !empty($_REQUEST['cid']) ? Request::getInt('cid', 0, 'REQUEST') : 0, 1, false, false, false, true);
304
+		$selcat->setExtra(' onChange="window.location=\'' . XOOPS_URL . '/modules/objects/search.php?op=search&fct=form&cid=\'+document.search.cid.options[document.search.cid.selectedIndex].value"');
305
+
306
+		$form->addElement($selcat, true);
307
+
308
+		$categories = [];
309
+
310
+		$criteria       = new \CriteriaCompo(new \Criteria('cid', !empty($_REQUEST['cid']) ? Request::getInt('cid', 0, 'REQUEST') : '0'), 'OR');
311
+		$all_categories = $catHandler->getObjects($criteria, true, false);
312
+		$count_fields   = count($fields);
313
+
314
+		foreach (array_keys($fields) as $i) {
315
+			if (in_array($fields[$i]->getVar('field_id'), $editable_fields, true)) {
316
+				// Set default value for user fields if available
317
+				$fieldinfo['element']  = $fields[$i]->getSearchElement();
318
+				$fieldinfo['required'] = false;
319
+
320
+				foreach ($fields[$i]->getVar('cids') as $catidid => $cid) {
321
+					if (array_key_exists($cid, $all_categories)) {
322
+						$key              = $all_categories[$cid]['cat_weight'] * $count_fields + $cid;
323
+						$elements[$key][] = $fieldinfo;
324
+						$weights[$key][]  = $fields[$i]->getVar('field_weight');
325
+						$categories[$key] = $all_categories[$cid];
326
+					} elseif (in_array(0, $fields[$i]->getVar('cids'), true)) {
327
+						$key              = $all_categories[$cid]['cat_weight'] * $count_fields + $cid;
328
+						$elements[$key][] = $fieldinfo;
329
+						$weights[$key][]  = $fields[$i]->getVar('field_weight');
330
+						$categories[$key] = $all_categories[$cid];
331
+					}
332
+				}
333
+			}
334
+		}
335
+
336
+		ksort($elements);
337
+		foreach (array_keys($elements) as $k) {
338
+			array_multisort($weights[$k], SORT_ASC, array_keys($elements[$k]), SORT_ASC, $elements[$k]);
339
+			$title = isset($categories[$k]) ? $categories[$k]['cat_title'] : _FRM_SONGLIST_FORM_DEFAULT;
340
+			$desc  = isset($categories[$k]) ? $categories[$k]['cat_description'] : '';
341
+			$form->addElement(new \XoopsFormLabel("<h3>{$title}</h3>", $desc), false);
342
+			foreach (array_keys($elements[$k]) as $i) {
343
+				$form->addElement($elements[$k][$i]['element'], $elements[$k][$i]['required']);
344
+			}
345
+		}
346
+
347
+		$form->addElement(new \XoopsFormHidden('fct', 'objects'));
348
+		$form->addElement(new \XoopsFormHidden('op', 'search'));
349
+		$form->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
350
+
351
+		return $form;
352
+	}
353
+
354
+	/**
355
+	 * @param bool $as_array
356
+	 * @return string
357
+	 */
358
+	public static function  getFormImport($as_array = false): string
359
+	{
360
+		xoops_loadLanguage('forms', 'songlist');
361
+
362
+		$sform = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_IMPORT, 'import', $_SERVER['SCRIPT_NAME'], 'post', true);
363
+		$sform->setExtra("enctype='multipart/form-data'");
364
+
365
+		$ele['op']      = new \XoopsFormHidden('op', 'import');
366
+		$ele['fct']     = new \XoopsFormHidden('fct', 'upload');
367
+		$ele['xmlfile'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_UPLOAD_XML : ''), 'xmlfile', 1024 * 1024 * 1024 * 32);
368
+		$ele['xmlfile']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_UPLOAD_XML_DESC : ''));
369
+		$ele['file'] = new \XoopsFormSelect((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_EXISTING_XML : ''), 'file');
370
+		$ele['file']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_EXISTING_XML_DESC : ''));
371
+		$ele['file']->addOption('', '*********');
372
+		xoops_load('XoopsLists');
373
+		foreach (\XoopsLists::getFileListAsArray($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'])) as $file) {
374
+			if ('xml' === mb_substr($file, mb_strlen($file) - 3, 3)) {
375
+				$ele['file']->addOption($file, $file);
376
+			}
377
+		}
378
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
379
+
380
+		$required = [];
381
+
382
+		foreach ($ele as $id => $obj) {
383
+			if (in_array($id, $required, true)) {
384
+				$sform->addElement($obj, true);
385
+			} else {
386
+				$sform->addElement($obj, false);
387
+			}
388
+		}
389
+
390
+		return $sform->render();
391
+	}
392
+
393
+	/**
394
+	 * @param      $file
395
+	 * @param bool $as_array
396
+	 * @return string
397
+	 */
398
+	public static function  getFormImportb($file, $as_array = false): string
399
+	{
400
+		xoops_loadLanguage('forms', 'songlist');
401
+
402
+		$sform = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_ELEMENTS, 'elements', $_SERVER['SCRIPT_NAME'], 'post', true);
403
+
404
+		$filesize = filesize($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'] . $file));
405
+		$mb       = floor($filesize / 1024 / 1024);
406
+		if ($mb > 32) {
407
+			set_ini('memory_limit', ($mb + 128) . 'M');
408
+		}
409
+		set_time_limit(3600);
410
+
411
+		$i = 0;
412
+		foreach (file($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'] . $_SESSION['xmlfile'])) as $data) {
413
+			++$i;
414
+			if ($i < 20) {
415
+				$line .= htmlspecialchars($data, ENT_QUOTES | ENT_HTML5) . ($i < 19 ? "\n" : '');
416
+			}
417
+		}
418
+
419
+		$ele['op']      = new \XoopsFormHidden('op', 'import');
420
+		$ele['fct']     = new \XoopsFormHidden('fct', 'import');
421
+		$ele['example'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_EXAMPLE : ''), '<pre>' . $line . '</pre>');
422
+		$ele['example']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_EXAMPLE_DESC : ''));
423
+		$ele['collection'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_COLLECTION : ''), 'collection', 32, 128, 'collection');
424
+		$ele['collection']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_COLLECTION_DESC : ''));
425
+		$ele['record'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_RECORD : ''), 'record', 32, 128, 'record');
426
+		$ele['record']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_RECORD_DESC : ''));
427
+		$ele['genre'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_GENRES : ''), 'genre', 32, 128, 'genre');
428
+		$ele['genre']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_GENRES_DESC : ''));
429
+		$ele['voice'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_VOICE : ''), 'voice', 32, 128, 'voice');
430
+		$ele['voice']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_VOICE_DESC : ''));
431
+		$ele['category'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_CATEGORY : ''), 'category', 32, 128, 'category');
432
+		$ele['category']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_CATEGORY_DESC : ''));
433
+		$ele['artist'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_ARTIST : ''), 'artist', 32, 128, 'artist');
434
+		$ele['artist']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_ARTIST_DESC : ''));
435
+		$ele['album'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_ALBUM : ''), 'album', 32, 128, 'album');
436
+		$ele['album']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_ALBUM_DESC : ''));
437
+		$ele['songid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_SONGID : ''), 'songid', 32, 128, 'songid');
438
+		$ele['songid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_SONGID_DESC : ''));
439
+		$ele['traxid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TRAXID : ''), 'traxid', 32, 128, 'trackno');
440
+		$ele['traxid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TRAXID_DESC : ''));
441
+		$ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TITLE : ''), 'title', 32, 128, 'title');
442
+		$ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TITLE_DESC : ''));
443
+		$ele['lyrics'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_LYRICS : ''), 'lyrics', 32, 128, 'lyric');
444
+		$ele['lyrics']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_LYRICS_DESC : ''));
445
+		$ele['tags'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TAGS : ''), 'tags', 32, 128, 'tags');
446
+		$ele['tags']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_TAGS_DESC : ''));
447
+		$ele['mp3'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_MP3 : ''), 'mp3', 32, 128, 'mp3');
448
+		$ele['mp3']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_MP3_DESC : ''));
449
+		$extrasHandler = Helper::getInstance()
450
+							   ->getHandler('Extras');
451
+		$fields        = $extrasHandler->getFields(null);
452
+		foreach ($fields as $field) {
453
+			$ele[$field->getVar('field_name')] = new \XoopsFormText((!$as_array ? $field->getVar('field_title') : ''), $field->getVar('field_name'), 32, 128, $field->getVar('field_name'));
454
+			$ele[$field->getVar('field_name')]->setDescription((!$as_array ? $field->getVar('field_description') : ''));
455
+		}
456
+		$ele['limiting'] = new \XoopsFormRadioYN((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_LIMITING : ''), 'limiting');
457
+		$ele['limiting']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_LIMITING_DESC : ''));
458
+		$ele['records'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_RECORDS : ''), 'records', 10, 10, '250');
459
+		$ele['records']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_RECORDS_DESC : ''));
460
+		$ele['wait'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_WAIT : ''), 'wait', 10, 10, '40');
461
+		$ele['wait']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_WAIT_DESC : ''));
462
+
463
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
464
+
465
+		$required = [];
466
+
467
+		foreach ($ele as $id => $obj) {
468
+			if (in_array($id, $required, true)) {
469
+				$sform->addElement($obj, true);
470
+			} else {
471
+				$sform->addElement($obj, false);
472
+			}
473
+		}
474
+
475
+		return $sform->render();
476
+	}
477
+
478
+	/**
479
+	 * @param      $object
480
+	 * @param bool $as_array
481
+	 * @return array|string
482
+	 */
483
+	public static function  getFormGenre($object, $as_array = false)
484
+	{
485
+		if (!is_object($object)) {
486
+			$handler = Helper::getInstance()
487
+							 ->getHandler('Genre');
488
+			$object  = $handler->create();
489
+		}
490
+
491
+		xoops_loadLanguage('forms', 'songlist');
492
+		$ele = [];
493
+
494
+		if ($object->isNew()) {
495
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_GENRE, 'genre', $_SERVER['SCRIPT_NAME'], 'post', true);
496
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
497
+		} else {
498
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_GENRE, 'genre', $_SERVER['SCRIPT_NAME'], 'post', true);
499
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
500
+		}
501
+
502
+		$sform->setExtra("enctype='multipart/form-data'");
503
+
504
+		$id = $object->getVar('gid');
505
+		if (empty($id)) {
506
+			$id = '0';
507
+		}
508
+
509
+		$ele['op']  = new \XoopsFormHidden('op', 'genre');
510
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
511
+		if ($as_array) {
512
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
513
+		} else {
514
+			$ele['id'] = new \XoopsFormHidden('id', $id);
515
+		}
516
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
517
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
518
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
519
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
520
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
521
+
522
+		$ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_GENRE_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
523
+		$ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_GENRE_NAME_DESC : ''));
524
+		$ele['albums']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_ALBUMS : ''), $object->getVar('albums'));
525
+		$ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_ARTISTS : ''), $object->getVar('artists'));
526
+		$ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_SONGS : ''), $object->getVar('songs'));
527
+		$ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_HITS : ''), $object->getVar('hits'));
528
+		$ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
529
+		if ($object->getVar('created') > 0) {
530
+			$ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
531
+		}
532
+		if ($object->getVar('updated') > 0) {
533
+			$ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
534
+		}
535
+
536
+		if ($as_array) {
537
+			return $ele;
538
+		}
539
+
540
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
541
+
542
+		$required = ['name'];
543
+
544
+		foreach ($ele as $id => $obj) {
545
+			if (in_array($id, $required, true)) {
546
+				$sform->addElement($obj, true);
547
+			} else {
548
+				$sform->addElement($obj, false);
549
+			}
550
+		}
551
+
552
+		return $sform->render();
553
+	}
554
+
555
+	/**
556
+	 * @param      $object
557
+	 * @param bool $as_array
558
+	 * @return array|string
559
+	 */
560
+	public static function  getFormVoice($object, $as_array = false)
561
+	{
562
+		if (!is_object($object)) {
563
+			$handler = Helper::getInstance()
564
+							 ->getHandler('Voice');
565
+			$object  = $handler->create();
566
+		}
567
+
568
+		xoops_loadLanguage('forms', 'songlist');
569
+		$ele = [];
570
+
571
+		if ($object->isNew()) {
572
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_VOICE, 'voice', $_SERVER['SCRIPT_NAME'], 'post', true);
573
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
574
+		} else {
575
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_VOICE, 'voice', $_SERVER['SCRIPT_NAME'], 'post', true);
576
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
577
+		}
578
+
579
+		$sform->setExtra("enctype='multipart/form-data'");
580
+
581
+		$id = $object->getVar('vcid');
582
+		if (empty($id)) {
583
+			$id = '0';
584
+		}
585
+
586
+		$ele['op']  = new \XoopsFormHidden('op', 'voice');
587
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
588
+		if ($as_array) {
589
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
590
+		} else {
591
+			$ele['id'] = new \XoopsFormHidden('id', $id);
592
+		}
593
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
594
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
595
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
596
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
597
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
598
+
599
+		$ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_VOICE_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
600
+		$ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_VOICE_NAME_DESC : ''));
601
+		$ele['albums']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_ALBUMS : ''), $object->getVar('albums'));
602
+		$ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_ARTISTS : ''), $object->getVar('artists'));
603
+		$ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_SONGS : ''), $object->getVar('songs'));
604
+		$ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_HITS : ''), $object->getVar('hits'));
605
+		$ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
606
+		if ($object->getVar('created') > 0) {
607
+			$ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
608
+		}
609
+		if ($object->getVar('updated') > 0) {
610
+			$ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
611
+		}
612
+
613
+		if ($as_array) {
614
+			return $ele;
615
+		}
616
+
617
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
618
+
619
+		$required = ['name'];
620
+
621
+		foreach ($ele as $id => $obj) {
622
+			if (in_array($id, $required, true)) {
623
+				$sform->addElement($obj, true);
624
+			} else {
625
+				$sform->addElement($obj, false);
626
+			}
627
+		}
628
+
629
+		return $sform->render();
630
+	}
631
+
632
+	/**
633
+	 * @param      $object
634
+	 * @param bool $as_array
635
+	 * @return array|string
636
+	 */
637
+	public static function  getFormAlbums($object, $as_array = false)
638
+	{
639
+		if (!is_object($object)) {
640
+			$handler = Helper::getInstance()
641
+							 ->getHandler('Albums');
642
+			$object  = $handler->create();
643
+		}
644
+
645
+		xoops_loadLanguage('forms', 'songlist');
646
+		$ele = [];
647
+
648
+		if ($object->isNew()) {
649
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_ALBUMS, 'albums', $_SERVER['SCRIPT_NAME'], 'post', true);
650
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
651
+		} else {
652
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_ALBUMS, 'albums', $_SERVER['SCRIPT_NAME'], 'post', true);
653
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
654
+		}
655
+
656
+		$sform->setExtra("enctype='multipart/form-data'");
657
+
658
+		$id = $object->getVar('abid');
659
+		if (empty($id)) {
660
+			$id = '0';
661
+		}
662
+
663
+		$ele['op']  = new \XoopsFormHidden('op', 'albums');
664
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
665
+		if ($as_array) {
666
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
667
+		} else {
668
+			$ele['id'] = new \XoopsFormHidden('id', $id);
669
+		}
670
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
671
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
672
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
673
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
674
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
675
+
676
+		$ele['cid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CATEGORY : ''), $id . '[cid]', $object->getVar('cid'), 1, false, false, false);
677
+		$ele['cid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CATEGORY_DESC : ''));
678
+		$ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
679
+		$ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_TITLE_DESC : ''));
680
+		$ele['image'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPLOAD_POSTER : ''), 'image', $GLOBALS['songlistModuleConfig']['filesize_upload']);
681
+		$ele['image']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPLOAD_POSTER_DESC : ''));
682
+		if ('' != $object->getVar('image') && file_exists($GLOBALS['xoops']->path($object->getVar('path') . $object->getVar('image')))) {
683
+			$ele['image_preview'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_POSTER : ''), '<img src="' . $object->getImage('image') . '" width="340px">');
684
+			$ele['image_preview']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_POSTER_DESC : ''));
685
+		}
686
+		$ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_ARTISTS : ''), $object->getVar('artists'));
687
+		$ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_SONGS : ''), $object->getVar('songs'));
688
+		$ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_HITS : ''), $object->getVar('hits'));
689
+		$ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
690
+		if ($object->getVar('created') > 0) {
691
+			$ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
692
+		}
693
+		if ($object->getVar('updated') > 0) {
694
+			$ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
695
+		}
696
+
697
+		if ($as_array) {
698
+			return $ele;
699
+		}
700
+
701
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
702
+
703
+		$required = ['name', 'id', 'source'];
704
+
705
+		foreach ($ele as $id => $obj) {
706
+			if (in_array($id, $required, true)) {
707
+				$sform->addElement($obj, true);
708
+			} else {
709
+				$sform->addElement($obj, false);
710
+			}
711
+		}
712
+
713
+		return $sform->render();
714
+	}
715
+
716
+	/**
717
+	 * @param Songlist\Artists $object
718
+	 * @param bool             $as_array
719
+	 * @return array|string
720
+	 */
721
+	public static function  getFormArtists($object, $as_array = false)
722
+	{
723
+		if (!is_object($object)) {
724
+			$handler = Helper::getInstance()
725
+							 ->getHandler('Artists');
726
+			$object  = $handler->create();
727
+		}
728
+
729
+		xoops_loadLanguage('forms', 'songlist');
730
+		$ele = [];
731
+
732
+		if ($object->isNew()) {
733
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_ARTISTS, 'artists', $_SERVER['SCRIPT_NAME'], 'post', true);
734
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
735
+		} else {
736
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_ARTISTS, 'artists', $_SERVER['SCRIPT_NAME'], 'post', true);
737
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
738
+		}
739
+
740
+		$id = $object->getVar('aid');
741
+		if (empty($id)) {
742
+			$id = '0';
743
+		}
744
+
745
+		$ele['op']  = new \XoopsFormHidden('op', 'artists');
746
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
747
+		if ($as_array) {
748
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
749
+		} else {
750
+			$ele['id'] = new \XoopsFormHidden('id', $id);
751
+		}
752
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
753
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
754
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
755
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
756
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
757
+
758
+		$ele['cids'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CATEGORY : ''), $id . '[cids]', $object->getVar('cids'), 7, true, false, false);
759
+		$ele['cids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CATEGORY_DESC : ''));
760
+		//$ele['singer'] = new \XoopsModules\Songlist\Form\SelectSingerForm(($as_array==false?_FRM_SONGLIST_FORM_ARTISTS_SINGER:''), $id.'[singer]', $object->getVar('singer'), 1, false, false, false);
761
+		//$ele['singer']->setDescription(($as_array==false?_FRM_SONGLIST_FORM_ARTISTS_SINGER_DESC:''));
762
+		$ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
763
+		$ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_NAME_DESC : ''));
764
+		$ele['albums'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_ALBUMS : ''), $object->getVar('albums'));
765
+		$ele['songs']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_SONGS : ''), $object->getVar('songs'));
766
+		$ele['hits']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_HITS : ''), $object->getVar('hits'));
767
+		$ele['rank']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
768
+		if ($object->getVar('created') > 0) {
769
+			$ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
770
+		}
771
+		if ($object->getVar('updated') > 0) {
772
+			$ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
773
+		}
774
+
775
+		if ($as_array) {
776
+			return $ele;
777
+		}
778
+
779
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
780
+
781
+		$required = ['name', 'mimetype', 'support'];
782
+
783
+		foreach ($ele as $id => $obj) {
784
+			if (in_array($id, $required, true)) {
785
+				$sform->addElement($obj, true);
786
+			} else {
787
+				$sform->addElement($obj, false);
788
+			}
789
+		}
790
+
791
+		return $sform->render();
792
+	}
793
+
794
+	/**
795
+	 * @param      $object
796
+	 * @param bool $as_array
797
+	 * @return array|string
798
+	 */
799
+	public static function  getFormCategory($object, $as_array = false)
800
+	{
801
+		if (!is_object($object)) {
802
+			$handler = Helper::getInstance()
803
+							 ->getHandler('Category');
804
+			$object  = $handler->create();
805
+		}
806
+
807
+		xoops_loadLanguage('forms', 'songlist');
808
+		$ele = [];
809
+
810
+		if ($object->isNew()) {
811
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_CATEGORY, 'category', $_SERVER['SCRIPT_NAME'], 'post', true);
812
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
813
+		} else {
814
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_CATEGORY, 'category', $_SERVER['SCRIPT_NAME'], 'post', true);
815
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
816
+		}
817
+
818
+		$sform->setExtra("enctype='multipart/form-data'");
819
+
820
+		$id = $object->getVar('cid');
821
+		if (empty($id)) {
822
+			$id = '0';
823
+		}
824
+
825
+		$ele['op']  = new \XoopsFormHidden('op', 'category');
826
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
827
+		if ($as_array) {
828
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
829
+		} else {
830
+			$ele['id'] = new \XoopsFormHidden('id', $id);
831
+		}
832
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
833
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
834
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
835
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
836
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
837
+
838
+		$ele['pid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_PARENT : ''), $id . '[pid]', $object->getVar('pid'), 1, false, $object->getVar('cid'));
839
+		$ele['pid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_PARENT_DESC : ''));
840
+		$ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
841
+		$ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_NAME_DESC : ''));
842
+		$description_configs           = [];
843
+		$description_configs['name']   = $id . '[description]';
844
+		$description_configs['value']  = $object->getVar('description');
845
+		$description_configs['rows']   = 35;
846
+		$description_configs['cols']   = 60;
847
+		$description_configs['width']  = '100%';
848
+		$description_configs['height'] = '400px';
849
+		$ele['description']            = new \XoopsFormEditor(_FRM_SONGLIST_FORM_CATEGORY_DESCRIPTION, $GLOBALS['songlistModuleConfig']['editor'], $description_configs);
850
+		$ele['description']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_DESCRIPTION_DESC : ''));
851
+		$ele['image'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPLOAD_POSTER : ''), 'image', $GLOBALS['songlistModuleConfig']['filesize_upload']);
852
+		$ele['image']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPLOAD_POSTER_DESC : ''));
853
+		if ('' != $object->getVar('image') && file_exists($GLOBALS['xoops']->path($object->getVar('path') . $object->getVar('image')))) {
854
+			$ele['image_preview'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_POSTER : ''), '<img src="' . $object->getImage('image') . '" width="340px">');
855
+			$ele['image_preview']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_POSTER_DESC : ''));
856
+		}
857
+		$ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_ARTISTS : ''), $object->getVar('artists'));
858
+		$ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_SONGS : ''), $object->getVar('songs'));
859
+		$ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_HITS : ''), $object->getVar('hits'));
860
+		$ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
861
+		if ($object->getVar('created') > 0) {
862
+			$ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
863
+		}
864
+		if ($object->getVar('updated') > 0) {
865
+			$ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
866
+		}
867
+
868
+		if ($as_array) {
869
+			return $ele;
870
+		}
871
+
872
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
873
+
874
+		$required = ['name', 'id', 'source'];
875
+
876
+		foreach ($ele as $id => $obj) {
877
+			if (in_array($id, $required, true)) {
878
+				$sform->addElement($obj, true);
879
+			} else {
880
+				$sform->addElement($obj, false);
881
+			}
882
+		}
883
+
884
+		return $sform->render();
885
+	}
886
+
887
+	/**
888
+	 * @param      $object
889
+	 * @param bool $as_array
890
+	 * @return array|string
891
+	 */
892
+	public static function  getFormUtf8map($object, $as_array = false)
893
+	{
894
+		if (!is_object($object)) {
895
+			$handler = Helper::getInstance()
896
+							 ->getHandler('Utf8map');
897
+			$object  = $handler->create();
898
+		}
899
+
900
+		xoops_loadLanguage('forms', 'songlist');
901
+		$ele = [];
902
+
903
+		if ($object->isNew()) {
904
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_UTF8MAP, 'utf8map', $_SERVER['SCRIPT_NAME'], 'post', true);
905
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
906
+		} else {
907
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_UTF8MAP, 'utf8map', $_SERVER['SCRIPT_NAME'], 'post', true);
908
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
909
+		}
910
+
911
+		$sform->setExtra("enctype='multipart/form-data'");
912
+
913
+		$id = $object->getVar('utfid');
914
+		if (empty($id)) {
915
+			$id = '0';
916
+		}
917
+
918
+		$ele['op']  = new \XoopsFormHidden('op', 'utf8map');
919
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
920
+		if ($as_array) {
921
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
922
+		} else {
923
+			$ele['id'] = new \XoopsFormHidden('id', $id);
924
+		}
925
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
926
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
927
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
928
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
929
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
930
+
931
+		$ele['from'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_FROM : ''), $id . '[from]', (!$as_array ? 6 : 4), 2, $object->getVar('from'));
932
+		$ele['from']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_FROM_DESC : ''));
933
+		$ele['to'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_TO : ''), $id . '[to]', (!$as_array ? 6 : 4), 2, $object->getVar('to'));
934
+		$ele['to']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_TO_DESC : ''));
935
+
936
+		if ($object->getVar('created') > 0) {
937
+			$ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
938
+		}
939
+		if ($object->getVar('updated') > 0) {
940
+			$ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
941
+		}
942
+
943
+		if ($as_array) {
944
+			return $ele;
945
+		}
946
+
947
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
948
+
949
+		$required = ['from', 'to'];
950
+
951
+		foreach ($ele as $id => $obj) {
952
+			if (in_array($id, $required, true)) {
953
+				$sform->addElement($obj, true);
954
+			} else {
955
+				$sform->addElement($obj, false);
956
+			}
957
+		}
958
+
959
+		return $sform->render();
960
+	}
961
+
962
+	/**
963
+	 * @param      $object
964
+	 * @param bool $as_array
965
+	 * @return array|string
966
+	 */
967
+	public static function  getFormRequests($object, $as_array = false)
968
+	{
969
+		if (!is_object($object)) {
970
+			$handler = Helper::getInstance()
971
+							 ->getHandler('Requests');
972
+			$object  = $handler->create();
973
+		}
974
+
975
+		xoops_loadLanguage('forms', 'songlist');
976
+		$ele = [];
977
+
978
+		if ($object->isNew()) {
979
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_REQUESTS, 'requests', $_SERVER['SCRIPT_NAME'], 'post', true);
980
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
981
+		} else {
982
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_REQUESTS, 'requests', $_SERVER['SCRIPT_NAME'], 'post', true);
983
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
984
+		}
985
+
986
+		$sform->setExtra("enctype='multipart/form-data'");
987
+
988
+		$id = $object->getVar('rid');
989
+		if (empty($id)) {
990
+			$id = '0';
991
+		}
992
+
993
+		$ele['op']  = new \XoopsFormHidden('op', 'requests');
994
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
995
+		if ($as_array) {
996
+			$ele['id'] = new \XoopsFormHidden('id', $id);
997
+		} else {
998
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
999
+		}
1000
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1001
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1002
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1003
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1004
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1005
+
1006
+		$ele['artist'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ARTIST : ''), $id . '[artist]', (!$as_array ? 55 : 21), 128, $object->getVar('artist'));
1007
+		$ele['artist']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ARTIST_DESC : ''));
1008
+		$ele['album'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ALBUM : ''), $id . '[album]', (!$as_array ? 55 : 21), 128, $object->getVar('album'));
1009
+		$ele['album']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ALBUM_DESC : ''));
1010
+		$ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
1011
+		$ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_TITLE_DESC : ''));
1012
+		$ele['lyrics'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_LYRICS : ''), $id . '[lyrics]', (!$as_array ? 55 : 21), 128, $object->getVar('lyrics'));
1013
+		$ele['lyrics']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_LYRICS_DESC : ''));
1014
+
1015
+		if (is_object($GLOBALS['xoopsUser'])) {
1016
+			$ele['uid']  = new \XoopsFormHidden('uid', $GLOBALS['xoopsUser']->getVar('uid'));
1017
+			$ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? $GLOBALS['xoopsUser']->getVar('name') : $object->getVar('name')));
1018
+			$ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME_DESC : ''));
1019
+			$ele['email'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL : ''), $id . '[email]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? $GLOBALS['xoopsUser']->getVar('email') : $object->getVar('email')));
1020
+			$ele['email']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL_DESC : ''));
1021
+		} else {
1022
+			$ele['uid']  = new \XoopsFormHidden('uid', 0);
1023
+			$ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? '' : $object->getVar('name')));
1024
+			$ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME_DESC : ''));
1025
+			$ele['email'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL : ''), $id . '[email]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? '' : $object->getVar('email')));
1026
+			$ele['email']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL_DESC : ''));
1027
+		}
1028
+		if ($object->getVar('created') > 0) {
1029
+			$ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
1030
+		}
1031
+		if ($object->getVar('updated') > 0) {
1032
+			$ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
1033
+		}
1034
+
1035
+		if ($as_array) {
1036
+			return $ele;
1037
+		}
1038
+
1039
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
1040
+
1041
+		$required = ['name', 'email'];
1042
+
1043
+		foreach ($ele as $id => $obj) {
1044
+			if (in_array($id, $required, true)) {
1045
+				$sform->addElement($obj, true);
1046
+			} else {
1047
+				$sform->addElement($obj, false);
1048
+			}
1049
+		}
1050
+
1051
+		return $sform->render();
1052
+	}
1053
+
1054
+	/**
1055
+	 * @param      $object
1056
+	 * @param bool $as_array
1057
+	 * @return array|string
1058
+	 */
1059
+	public static function  getFormSongs($object, $as_array = false)
1060
+	{
1061
+		if (!is_object($object)) {
1062
+			$handler = Helper::getInstance()
1063
+							 ->getHandler('Songs');
1064
+			$object  = $handler->create();
1065
+		}
1066
+
1067
+		xoops_loadLanguage('forms', 'songlist');
1068
+		$ele = [];
1069
+
1070
+		if ($object->isNew()) {
1071
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_SONGS, 'songs', $_SERVER['SCRIPT_NAME'], 'post', true);
1072
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
1073
+		} else {
1074
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_SONGS, 'songs', $_SERVER['SCRIPT_NAME'], 'post', true);
1075
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
1076
+		}
1077
+
1078
+		$sform->setExtra("enctype='multipart/form-data'");
1079
+
1080
+		$id = $object->getVar('sid');
1081
+		if (empty($id)) {
1082
+			$id = '0';
1083
+		}
1084
+
1085
+		$ele['op']  = new \XoopsFormHidden('op', 'songs');
1086
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
1087
+		if ($as_array) {
1088
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
1089
+		} else {
1090
+			$ele['id'] = new \XoopsFormHidden('id', $id);
1091
+		}
1092
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1093
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1094
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1095
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1096
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1097
+
1098
+		$ele['cid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CATEGORY : ''), $id . '[cid]', ($_REQUEST['cid'] ?? $object->getVar('cid')), 1, false);
1099
+		$ele['cid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CATEGORY_DESC : ''));
1100
+		if ($GLOBALS['songlistModuleConfig']['genre']) {
1101
+			$ele['gids'] = new SelectGenreForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_GENRE : ''), $id . '[gids]', ($_REQUEST['gids'] ?? $object->getVar('gids')), 8, true);
1102
+			$ele['gids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_GENRE_DESC : ''));
1103
+		}
1104
+		if ($GLOBALS['songlistModuleConfig']['voice']) {
1105
+			$ele['vcid'] = new SelectVoiceForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_VOICE : ''), $id . '[vcid]', ($_REQUEST['vcid'] ?? $object->getVar('vcid')), 1, false);
1106
+			$ele['vcid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_VOICE_DESC : ''));
1107
+		}
1108
+		if ($GLOBALS['songlistModuleConfig']['album']) {
1109
+			$ele['abid'] = new SelectAlbumForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ALBUM : ''), $id . '[abid]', $object->getVar('abid'), 1, false);
1110
+			$ele['abid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ALBUM_DESC : ''));
1111
+		}
1112
+		$ele['aids'] = new SelectArtistForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ARTISTS : ''), $id . '[aids]', $object->getVar('aids'), 7, true);
1113
+		$ele['aids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ARTISTS_DESC : ''));
1114
+		$ele['songid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_SONGID : ''), $id . '[songid]', (!$as_array ? 25 : 15), 32, $object->getVar('songid'));
1115
+		$ele['songid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_SONGID_DESC : ''));
1116
+		$ele['traxid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TRAXID : ''), $id . '[traxid]', (!$as_array ? 25 : 15), 32, $object->getVar('traxid'));
1117
+		$ele['traxid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TRAXID_DESC : ''));
1118
+		$ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
1119
+		$ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TITLE_DESC : ''));
1120
+		$description_configs           = [];
1121
+		$description_configs['name']   = $id . '[lyrics]';
1122
+		$description_configs['value']  = $object->getVar('lyrics');
1123
+		$description_configs['rows']   = 35;
1124
+		$description_configs['cols']   = 60;
1125
+		$description_configs['width']  = '100%';
1126
+		$description_configs['height'] = '400px';
1127
+		$ele['lyrics']                 = new \XoopsFormEditor(_FRM_SONGLIST_FORM_SONGS_LYRICS, $GLOBALS['songlistModuleConfig']['editor'], $description_configs);
1128
+		$ele['lyrics']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_LYRICS_DESC : ''));
1129
+		$ele['mp3'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_SONGS_MP3 : ''), 'mp3' . $id, $GLOBALS['songlistModuleConfig']['mp3_filesize']);
1130
+		$ele['mp3']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_MP3_DESC : ''));
1131
+		$categoryHandler = Helper::getInstance()
1132
+								 ->getHandler('Category');
1133
+		$criteria        = new \CriteriaCompo(new \Criteria('cid', !empty($_REQUEST['cid']) ? Request::getInt('cid', 0, 'REQUEST') : $object->getVar('cid')));
1134
+		$all_categories  = $categoryHandler->getObjects($criteria, true, false);
1135
+
1136
+		// Dynamic fields
1137
+		$extrasHandler = Helper::getInstance()
1138
+							   ->getHandler('Extras');
1139
+		/** @var \XoopsGroupPermHandler $grouppermHandler */
1140
+		$grouppermHandler = xoops_getHandler('groupperm');
1141
+		/** @var \XoopsModuleHandler $moduleHandler */
1142
+		$moduleHandler = xoops_getHandler('module');
1143
+		$xoModule      = $moduleHandler->getByDirname('songlist');
1144
+		$modid         = $xoModule->getVar('mid');
1145
+
1146
+		if (is_object($GLOBALS['xoopsUser'])) {
1147
+			$groups = $GLOBALS['xoopsUser']->getGroups();
1148
+		} else {
1149
+			$groups = [XOOPS_GROUP_ANONYMOUS => XOOPS_GROUP_ANONYMOUS];
1150
+		}
1151
+
1152
+		$count_fields = 0;
1153
+		$fields       = $extrasHandler->loadFields();
1154
+
1155
+		$required = [];
1156
+		$elements = [];
1157
+		$weights  = [];
1158
+		if ($object->getVar('sid') > 0) {
1159
+			$extra = $extrasHandler->get($object->getVar('sid'));
1160
+		} else {
1161
+			$extra = $extrasHandler->create();
1162
+		}
1163
+		$allnames = [];
1164
+		if (is_array($fields)) {
1165
+			foreach (array_keys($fields) as $i) {
1166
+				if ((0 != $object->getVar('sid') && $grouppermHandler->checkRight('songlist_edit', $fields[$i]->getVar('field_id'), $groups, $modid))
1167
+					|| (0 == $object->getVar('sid') && $grouppermHandler->checkRight('songlist_post', $fields[$i]->getVar('field_id'), $groups, $modid))) {
1168
+					$fieldinfo['element']  = $fields[$i]->getEditElement($object, $extra);
1169
+					$fieldinfo['required'] = $fields[$i]->getVar('field_required');
1170
+					foreach ($fields[$i]->getVar('cids') as $catidid => $cid) {
1171
+						if (!in_array($fields[$i]->getVar('field_name'), $allnames, true)) {
1172
+							$allnames[] = $fields[$i]->getVar('field_name');
1173
+							if (array_key_exists($cid, $all_categories)
1174
+								|| $cid == (!empty($_REQUEST['cid'])
1175
+									? Request::getInt('cid', 0, 'REQUEST')
1176
+									: $object->getVar('cid'))) {
1177
+								$key              = (isset($all_categories[$cid]) ? $all_categories[$cid]['weight'] : 0)
1178
+													* $count_fields + $object->getVar('cid');
1179
+								$elements[$key][] = $fieldinfo;
1180
+								$weights[$key][]  = $fields[$i]->getVar('field_weight');
1181
+							} elseif (in_array(0, $fields[$i]->getVar('cids'), true)) {
1182
+								$key              = (isset($all_categories[$cid]) ? $all_categories[$cid]['weight'] : 0) * $count_fields + $object->getVar('cid');
1183
+								$elements[$key][] = $fieldinfo;
1184
+								$weights[$key][]  = $fields[$i]->getVar('field_weight');
1185
+							}
1186
+						}
1187
+					}
1188
+				}
1189
+			}
1190
+		}
1191
+		if (is_array($elements)) {
1192
+			ksort($elements);
1193
+			foreach (array_keys($elements) as $k) {
1194
+				array_multisort($weights[$k], SORT_ASC, array_keys($elements[$k]), SORT_ASC, $elements[$k]);
1195
+				foreach (array_keys($elements[$k]) as $i) {
1196
+					$ele[$k] = $elements[$k][$i]['element'];
1197
+					if (true === $elements[$k][$i]['required']) {
1198
+						$required[$k] = $elements[$k][$i]['element']->getName();
1199
+					}
1200
+				}
1201
+			}
1202
+		}
1203
+
1204
+		if (class_exists(\XoopsModules\Tag\FormTag::class)) {
1205
+			$ele['tags'] = new \XoopsModules\Tag\FormTag('tags', 60, 255, $object->getVar('sid'), $object->getVar('cid'));
1206
+		} else {
1207
+			$ele['tags'] = new \XoopsFormHidden('tags', $object->getVar('tags'));
1208
+		}
1209
+
1210
+		$ele['hits'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_HITS : ''), $object->getVar('hits'));
1211
+		$ele['rank'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
1212
+		if ($object->getVar('created') > 0) {
1213
+			$ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
1214
+		}
1215
+		if ($object->getVar('updated') > 0) {
1216
+			$ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
1217
+		}
1218
+		if ($as_array) {
1219
+			return $ele;
1220
+		}
1221
+
1222
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
1223
+
1224
+		foreach ($ele as $id => $obj) {
1225
+			if (in_array($id, $required, true)) {
1226
+				$sform->addElement($obj, true);
1227
+			} else {
1228
+				$sform->addElement($obj, false);
1229
+			}
1230
+		}
1231
+
1232
+		return $sform->render();
1233
+	}
1234
+
1235
+	/**
1236
+	 * @param      $object
1237
+	 * @param bool $as_array
1238
+	 * @return array|string
1239
+	 */
1240
+	public static function  getFormVotes($object, $as_array = false)
1241
+	{
1242
+		if (!is_object($object)) {
1243
+			$handler = Helper::getInstance()
1244
+							 ->getHandler('Votes');
1245
+			$object  = $handler->create();
1246
+		}
1247
+
1248
+		xoops_loadLanguage('forms', 'songlist');
1249
+		$ele = [];
1250
+
1251
+		if ($object->isNew()) {
1252
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_CART, 'votes', $_SERVER['SCRIPT_NAME'], 'post', true);
1253
+			$ele['mode'] = new \XoopsFormHidden('mode', 'new');
1254
+		} else {
1255
+			$sform       = new \XoopsThemeForm(_FRM_SONGLIST_FORM_EDIT_CART, 'votes', $_SERVER['SCRIPT_NAME'], 'post', true);
1256
+			$ele['mode'] = new \XoopsFormHidden('mode', 'edit');
1257
+		}
1258
+
1259
+		$sform->setExtra("enctype='multipart/form-data'");
1260
+
1261
+		$id = $object->getVar('cid');
1262
+		if (empty($id)) {
1263
+			$id = '0';
1264
+		}
1265
+
1266
+		$ele['op']  = new \XoopsFormHidden('op', 'votes');
1267
+		$ele['fct'] = new \XoopsFormHidden('fct', 'save');
1268
+		if ($as_array) {
1269
+			$ele['id'] = new \XoopsFormHidden('id', $id);
1270
+		} else {
1271
+			$ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
1272
+		}
1273
+		$ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1274
+		$ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1275
+		$ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1276
+		$ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1277
+		$ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1278
+
1279
+		$songsHandler = Helper::getInstance()
1280
+							  ->getHandler('Songs');
1281
+		$userHandler  = xoops_getHandler('user');
1282
+		$song         = $songsHandler->get($object->getVar('sid'));
1283
+		$user         = $userHandler->get($object->getVar('uid'));
1284
+		if (is_object($song)) {
1285
+			$ele['sid'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_SONG : ''), $song->getVar('title'));
1286
+		} else {
1287
+			$ele['sid'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_SONG : ''), $object->getVar('sid'));
1288
+		}
1289
+		if (is_object($user)) {
1290
+			$ele['uid'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_USER : ''), $user->getVar('uname'));
1291
+		} else {
1292
+			$ele['uid'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_USER : ''), _GUESTS);
1293
+		}
1294
+		$ele['ip']      = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_IP : ''), $object->getVar('ip'));
1295
+		$ele['netaddy'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_NETADDY : ''), $object->getVar('netaddy'));
1296
+		$ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_RANK : ''), $object->getVar('rank') . ' of 10');
1297
+
1298
+		if ($as_array) {
1299
+			return $ele;
1300
+		}
1301
+
1302
+		$ele['submit'] = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
1303
+
1304
+		$required = [];
1305
+
1306
+		foreach ($ele as $id => $obj) {
1307
+			if (in_array($id, $required, true)) {
1308
+				$sform->addElement($obj, true);
1309
+			} else {
1310
+				$sform->addElement($obj, false);
1311
+			}
1312
+		}
1313
+
1314
+		return $sform->render();
1315
+	}
1316 1316
 }
Please login to merge, or discard this patch.
Spacing   +110 added lines, -110 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
      */
27 27
     public static function getFieldForm($field, $action = false)
28 28
     {
29
-        if (false === $action) {
29
+        if (false===$action) {
30 30
             $action = $_SERVER['SCRIPT_NAME'];
31 31
         }
32 32
 
@@ -128,9 +128,9 @@  discard block
 block discarded – undo
128 128
 
129 129
             //$form->addElement(new \XoopsFormRadioYN(_FRM_SONGLIST_FIELDS_NOTNULL, 'field_notnull', $field->getVar('field_notnull', 'e') ));
130 130
 
131
-            if ('select' === $field->getVar('field_type') || 'select_multi' === $field->getVar('field_type') || 'radio' === $field->getVar('field_type') || 'checkbox' === $field->getVar('field_type')) {
131
+            if ('select'===$field->getVar('field_type') || 'select_multi'===$field->getVar('field_type') || 'radio'===$field->getVar('field_type') || 'checkbox'===$field->getVar('field_type')) {
132 132
                 $options = $field->getVar('field_options');
133
-                if (count($options) > 0) {
133
+                if (count($options)>0) {
134 134
                     $remove_options          = new \XoopsFormCheckBox(_FRM_SONGLIST_FIELDS_REMOVEOPTIONS, 'removeOptions');
135 135
                     $remove_options->columns = 3;
136 136
                     asort($options);
@@ -141,8 +141,8 @@  discard block
 block discarded – undo
141 141
                     $form->addElement($remove_options);
142 142
                 }
143 143
 
144
-                $option_text = "<table  cellspacing='1'><tr><td width='20%'>" . _FRM_SONGLIST_FIELDS_KEY . '</td><td>' . _FRM_SONGLIST_FIELDS_VALUE . '</td></tr>';
145
-                for ($i = 0; $i < 3; ++$i) {
144
+                $option_text = "<table  cellspacing='1'><tr><td width='20%'>"._FRM_SONGLIST_FIELDS_KEY.'</td><td>'._FRM_SONGLIST_FIELDS_VALUE.'</td></tr>';
145
+                for ($i = 0; $i<3; ++$i) {
146 146
                     $option_text .= "<tr><td><input type='text' name='addOption[{$i}][key]' id='addOption[{$i}][key]' size='15'></td><td><input type='text' name='addOption[{$i}][value]' id='addOption[{$i}][value]' size='35'></td></tr>";
147 147
                     $option_text .= "<tr height='3px'><td colspan='2'> </td></tr>";
148 148
                 }
@@ -161,7 +161,7 @@  discard block
 block discarded – undo
161 161
                     break;
162 162
                 case 'checkbox':
163 163
                 case 'select_multi':
164
-                    $def_value = null !== $field->getVar('field_default', 'e') ? unserialize(($field->getVar('field_default', 'n')) ?? '') : null;
164
+                    $def_value = null!==$field->getVar('field_default', 'e') ? unserialize(($field->getVar('field_default', 'n')) ?? '') : null;
165 165
                     $element   = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $def_value, 8, true);
166 166
                     $options   = $field->getVar('field_options');
167 167
                     asort($options);
@@ -174,7 +174,7 @@  discard block
 block discarded – undo
174 174
                     break;
175 175
                 case 'select':
176 176
                 case 'radio':
177
-                    $def_value = null !== $field->getVar('field_default', 'e') ? $field->getVar('field_default') : null;
177
+                    $def_value = null!==$field->getVar('field_default', 'e') ? $field->getVar('field_default') : null;
178 178
                     $element   = new \XoopsFormSelect(_FRM_SONGLIST_FIELDS_DEFAULT, 'field_default', $def_value);
179 179
                     $options   = $field->getVar('field_options');
180 180
                     asort($options);
@@ -301,7 +301,7 @@  discard block
 block discarded – undo
301 301
                             ->getHandler('Category');
302 302
 
303 303
         $selcat = new \XoopsFormSelect('Form', 'cid', !empty($_REQUEST['cid']) ? Request::getInt('cid', 0, 'REQUEST') : 0, 1, false, false, false, true);
304
-        $selcat->setExtra(' onChange="window.location=\'' . XOOPS_URL . '/modules/objects/search.php?op=search&fct=form&cid=\'+document.search.cid.options[document.search.cid.selectedIndex].value"');
304
+        $selcat->setExtra(' onChange="window.location=\''.XOOPS_URL.'/modules/objects/search.php?op=search&fct=form&cid=\'+document.search.cid.options[document.search.cid.selectedIndex].value"');
305 305
 
306 306
         $form->addElement($selcat, true);
307 307
 
@@ -319,12 +319,12 @@  discard block
 block discarded – undo
319 319
 
320 320
                 foreach ($fields[$i]->getVar('cids') as $catidid => $cid) {
321 321
                     if (array_key_exists($cid, $all_categories)) {
322
-                        $key              = $all_categories[$cid]['cat_weight'] * $count_fields + $cid;
322
+                        $key              = $all_categories[$cid]['cat_weight']*$count_fields+$cid;
323 323
                         $elements[$key][] = $fieldinfo;
324 324
                         $weights[$key][]  = $fields[$i]->getVar('field_weight');
325 325
                         $categories[$key] = $all_categories[$cid];
326 326
                     } elseif (in_array(0, $fields[$i]->getVar('cids'), true)) {
327
-                        $key              = $all_categories[$cid]['cat_weight'] * $count_fields + $cid;
327
+                        $key              = $all_categories[$cid]['cat_weight']*$count_fields+$cid;
328 328
                         $elements[$key][] = $fieldinfo;
329 329
                         $weights[$key][]  = $fields[$i]->getVar('field_weight');
330 330
                         $categories[$key] = $all_categories[$cid];
@@ -364,14 +364,14 @@  discard block
 block discarded – undo
364 364
 
365 365
         $ele['op']      = new \XoopsFormHidden('op', 'import');
366 366
         $ele['fct']     = new \XoopsFormHidden('fct', 'upload');
367
-        $ele['xmlfile'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_UPLOAD_XML : ''), 'xmlfile', 1024 * 1024 * 1024 * 32);
367
+        $ele['xmlfile'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_UPLOAD_XML : ''), 'xmlfile', 1024*1024*1024*32);
368 368
         $ele['xmlfile']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_UPLOAD_XML_DESC : ''));
369 369
         $ele['file'] = new \XoopsFormSelect((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_EXISTING_XML : ''), 'file');
370 370
         $ele['file']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_IMPORT_EXISTING_XML_DESC : ''));
371 371
         $ele['file']->addOption('', '*********');
372 372
         xoops_load('XoopsLists');
373 373
         foreach (\XoopsLists::getFileListAsArray($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'])) as $file) {
374
-            if ('xml' === mb_substr($file, mb_strlen($file) - 3, 3)) {
374
+            if ('xml'===mb_substr($file, mb_strlen($file)-3, 3)) {
375 375
                 $ele['file']->addOption($file, $file);
376 376
             }
377 377
         }
@@ -401,24 +401,24 @@  discard block
 block discarded – undo
401 401
 
402 402
         $sform = new \XoopsThemeForm(_FRM_SONGLIST_FORM_ISNEW_ELEMENTS, 'elements', $_SERVER['SCRIPT_NAME'], 'post', true);
403 403
 
404
-        $filesize = filesize($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'] . $file));
405
-        $mb       = floor($filesize / 1024 / 1024);
406
-        if ($mb > 32) {
407
-            set_ini('memory_limit', ($mb + 128) . 'M');
404
+        $filesize = filesize($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'].$file));
405
+        $mb       = floor($filesize/1024/1024);
406
+        if ($mb>32) {
407
+            set_ini('memory_limit', ($mb+128).'M');
408 408
         }
409 409
         set_time_limit(3600);
410 410
 
411 411
         $i = 0;
412
-        foreach (file($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'] . $_SESSION['xmlfile'])) as $data) {
412
+        foreach (file($GLOBALS['xoops']->path($GLOBALS['songlistModuleConfig']['upload_areas'].$_SESSION['xmlfile'])) as $data) {
413 413
             ++$i;
414
-            if ($i < 20) {
415
-                $line .= htmlspecialchars($data, ENT_QUOTES | ENT_HTML5) . ($i < 19 ? "\n" : '');
414
+            if ($i<20) {
415
+                $line .= htmlspecialchars($data, ENT_QUOTES | ENT_HTML5).($i<19 ? "\n" : '');
416 416
             }
417 417
         }
418 418
 
419 419
         $ele['op']      = new \XoopsFormHidden('op', 'import');
420 420
         $ele['fct']     = new \XoopsFormHidden('fct', 'import');
421
-        $ele['example'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_EXAMPLE : ''), '<pre>' . $line . '</pre>');
421
+        $ele['example'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_EXAMPLE : ''), '<pre>'.$line.'</pre>');
422 422
         $ele['example']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_EXAMPLE_DESC : ''));
423 423
         $ele['collection'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_COLLECTION : ''), 'collection', 32, 128, 'collection');
424 424
         $ele['collection']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ELEMENT_COLLECTION_DESC : ''));
@@ -509,27 +509,27 @@  discard block
 block discarded – undo
509 509
         $ele['op']  = new \XoopsFormHidden('op', 'genre');
510 510
         $ele['fct'] = new \XoopsFormHidden('fct', 'save');
511 511
         if ($as_array) {
512
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
512
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
513 513
         } else {
514 514
             $ele['id'] = new \XoopsFormHidden('id', $id);
515 515
         }
516 516
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
517 517
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
518
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
519
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
518
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
519
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
520 520
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
521 521
 
522
-        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_GENRE_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
522
+        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_GENRE_NAME : ''), $id.'[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
523 523
         $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_GENRE_NAME_DESC : ''));
524 524
         $ele['albums']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_ALBUMS : ''), $object->getVar('albums'));
525 525
         $ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_ARTISTS : ''), $object->getVar('artists'));
526 526
         $ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_SONGS : ''), $object->getVar('songs'));
527 527
         $ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_HITS : ''), $object->getVar('hits'));
528
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
529
-        if ($object->getVar('created') > 0) {
528
+        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_RANK : ''), number_format(($object->getVar('rank')>0 && $object->getVar('votes')>0 ? $object->getVar('rank')/$object->getVar('votes') : 0), 2).' of 10');
529
+        if ($object->getVar('created')>0) {
530 530
             $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
531 531
         }
532
-        if ($object->getVar('updated') > 0) {
532
+        if ($object->getVar('updated')>0) {
533 533
             $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_GENRE_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
534 534
         }
535 535
 
@@ -586,27 +586,27 @@  discard block
 block discarded – undo
586 586
         $ele['op']  = new \XoopsFormHidden('op', 'voice');
587 587
         $ele['fct'] = new \XoopsFormHidden('fct', 'save');
588 588
         if ($as_array) {
589
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
589
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
590 590
         } else {
591 591
             $ele['id'] = new \XoopsFormHidden('id', $id);
592 592
         }
593 593
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
594 594
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
595
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
596
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
595
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
596
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
597 597
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
598 598
 
599
-        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_VOICE_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
599
+        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_VOICE_NAME : ''), $id.'[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
600 600
         $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_VOICE_NAME_DESC : ''));
601 601
         $ele['albums']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_ALBUMS : ''), $object->getVar('albums'));
602 602
         $ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_ARTISTS : ''), $object->getVar('artists'));
603 603
         $ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_SONGS : ''), $object->getVar('songs'));
604 604
         $ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_HITS : ''), $object->getVar('hits'));
605
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
606
-        if ($object->getVar('created') > 0) {
605
+        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_RANK : ''), number_format(($object->getVar('rank')>0 && $object->getVar('votes')>0 ? $object->getVar('rank')/$object->getVar('votes') : 0), 2).' of 10');
606
+        if ($object->getVar('created')>0) {
607 607
             $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
608 608
         }
609
-        if ($object->getVar('updated') > 0) {
609
+        if ($object->getVar('updated')>0) {
610 610
             $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOICE_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
611 611
         }
612 612
 
@@ -663,34 +663,34 @@  discard block
 block discarded – undo
663 663
         $ele['op']  = new \XoopsFormHidden('op', 'albums');
664 664
         $ele['fct'] = new \XoopsFormHidden('fct', 'save');
665 665
         if ($as_array) {
666
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
666
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
667 667
         } else {
668 668
             $ele['id'] = new \XoopsFormHidden('id', $id);
669 669
         }
670 670
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
671 671
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
672
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
673
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
672
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
673
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
674 674
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
675 675
 
676
-        $ele['cid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CATEGORY : ''), $id . '[cid]', $object->getVar('cid'), 1, false, false, false);
676
+        $ele['cid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CATEGORY : ''), $id.'[cid]', $object->getVar('cid'), 1, false, false, false);
677 677
         $ele['cid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CATEGORY_DESC : ''));
678
-        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
678
+        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_TITLE : ''), $id.'[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
679 679
         $ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_TITLE_DESC : ''));
680 680
         $ele['image'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPLOAD_POSTER : ''), 'image', $GLOBALS['songlistModuleConfig']['filesize_upload']);
681 681
         $ele['image']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPLOAD_POSTER_DESC : ''));
682
-        if ('' != $object->getVar('image') && file_exists($GLOBALS['xoops']->path($object->getVar('path') . $object->getVar('image')))) {
683
-            $ele['image_preview'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_POSTER : ''), '<img src="' . $object->getImage('image') . '" width="340px">');
682
+        if (''!=$object->getVar('image') && file_exists($GLOBALS['xoops']->path($object->getVar('path').$object->getVar('image')))) {
683
+            $ele['image_preview'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_POSTER : ''), '<img src="'.$object->getImage('image').'" width="340px">');
684 684
             $ele['image_preview']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_POSTER_DESC : ''));
685 685
         }
686 686
         $ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_ARTISTS : ''), $object->getVar('artists'));
687 687
         $ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_SONGS : ''), $object->getVar('songs'));
688 688
         $ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_HITS : ''), $object->getVar('hits'));
689
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
690
-        if ($object->getVar('created') > 0) {
689
+        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_RANK : ''), number_format(($object->getVar('rank')>0 && $object->getVar('votes')>0 ? $object->getVar('rank')/$object->getVar('votes') : 0), 2).' of 10');
690
+        if ($object->getVar('created')>0) {
691 691
             $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
692 692
         }
693
-        if ($object->getVar('updated') > 0) {
693
+        if ($object->getVar('updated')>0) {
694 694
             $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ALBUMS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
695 695
         }
696 696
 
@@ -745,30 +745,30 @@  discard block
 block discarded – undo
745 745
         $ele['op']  = new \XoopsFormHidden('op', 'artists');
746 746
         $ele['fct'] = new \XoopsFormHidden('fct', 'save');
747 747
         if ($as_array) {
748
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
748
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
749 749
         } else {
750 750
             $ele['id'] = new \XoopsFormHidden('id', $id);
751 751
         }
752 752
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
753 753
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
754
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
755
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
754
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
755
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
756 756
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
757 757
 
758
-        $ele['cids'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CATEGORY : ''), $id . '[cids]', $object->getVar('cids'), 7, true, false, false);
758
+        $ele['cids'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CATEGORY : ''), $id.'[cids]', $object->getVar('cids'), 7, true, false, false);
759 759
         $ele['cids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CATEGORY_DESC : ''));
760 760
         //$ele['singer'] = new \XoopsModules\Songlist\Form\SelectSingerForm(($as_array==false?_FRM_SONGLIST_FORM_ARTISTS_SINGER:''), $id.'[singer]', $object->getVar('singer'), 1, false, false, false);
761 761
         //$ele['singer']->setDescription(($as_array==false?_FRM_SONGLIST_FORM_ARTISTS_SINGER_DESC:''));
762
-        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
762
+        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_NAME : ''), $id.'[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
763 763
         $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_NAME_DESC : ''));
764 764
         $ele['albums'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_ALBUMS : ''), $object->getVar('albums'));
765 765
         $ele['songs']  = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_SONGS : ''), $object->getVar('songs'));
766 766
         $ele['hits']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_HITS : ''), $object->getVar('hits'));
767
-        $ele['rank']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
768
-        if ($object->getVar('created') > 0) {
767
+        $ele['rank']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_RANK : ''), number_format(($object->getVar('rank')>0 && $object->getVar('votes')>0 ? $object->getVar('rank')/$object->getVar('votes') : 0), 2).' of 10');
768
+        if ($object->getVar('created')>0) {
769 769
             $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
770 770
         }
771
-        if ($object->getVar('updated') > 0) {
771
+        if ($object->getVar('updated')>0) {
772 772
             $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_ARTISTS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
773 773
         }
774 774
 
@@ -825,22 +825,22 @@  discard block
 block discarded – undo
825 825
         $ele['op']  = new \XoopsFormHidden('op', 'category');
826 826
         $ele['fct'] = new \XoopsFormHidden('fct', 'save');
827 827
         if ($as_array) {
828
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
828
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
829 829
         } else {
830 830
             $ele['id'] = new \XoopsFormHidden('id', $id);
831 831
         }
832 832
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
833 833
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
834
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
835
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
834
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
835
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
836 836
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
837 837
 
838
-        $ele['pid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_PARENT : ''), $id . '[pid]', $object->getVar('pid'), 1, false, $object->getVar('cid'));
838
+        $ele['pid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_PARENT : ''), $id.'[pid]', $object->getVar('pid'), 1, false, $object->getVar('cid'));
839 839
         $ele['pid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_PARENT_DESC : ''));
840
-        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
840
+        $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_NAME : ''), $id.'[name]', (!$as_array ? 55 : 21), 128, $object->getVar('name'));
841 841
         $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_NAME_DESC : ''));
842 842
         $description_configs           = [];
843
-        $description_configs['name']   = $id . '[description]';
843
+        $description_configs['name']   = $id.'[description]';
844 844
         $description_configs['value']  = $object->getVar('description');
845 845
         $description_configs['rows']   = 35;
846 846
         $description_configs['cols']   = 60;
@@ -850,18 +850,18 @@  discard block
 block discarded – undo
850 850
         $ele['description']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_DESCRIPTION_DESC : ''));
851 851
         $ele['image'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPLOAD_POSTER : ''), 'image', $GLOBALS['songlistModuleConfig']['filesize_upload']);
852 852
         $ele['image']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPLOAD_POSTER_DESC : ''));
853
-        if ('' != $object->getVar('image') && file_exists($GLOBALS['xoops']->path($object->getVar('path') . $object->getVar('image')))) {
854
-            $ele['image_preview'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_POSTER : ''), '<img src="' . $object->getImage('image') . '" width="340px">');
853
+        if (''!=$object->getVar('image') && file_exists($GLOBALS['xoops']->path($object->getVar('path').$object->getVar('image')))) {
854
+            $ele['image_preview'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_POSTER : ''), '<img src="'.$object->getImage('image').'" width="340px">');
855 855
             $ele['image_preview']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_POSTER_DESC : ''));
856 856
         }
857 857
         $ele['artists'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_ARTISTS : ''), $object->getVar('artists'));
858 858
         $ele['songs']   = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_SONGS : ''), $object->getVar('songs'));
859 859
         $ele['hits']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_HITS : ''), $object->getVar('hits'));
860
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
861
-        if ($object->getVar('created') > 0) {
860
+        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_RANK : ''), number_format(($object->getVar('rank')>0 && $object->getVar('votes')>0 ? $object->getVar('rank')/$object->getVar('votes') : 0), 2).' of 10');
861
+        if ($object->getVar('created')>0) {
862 862
             $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
863 863
         }
864
-        if ($object->getVar('updated') > 0) {
864
+        if ($object->getVar('updated')>0) {
865 865
             $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_CATEGORY_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
866 866
         }
867 867
 
@@ -918,25 +918,25 @@  discard block
 block discarded – undo
918 918
         $ele['op']  = new \XoopsFormHidden('op', 'utf8map');
919 919
         $ele['fct'] = new \XoopsFormHidden('fct', 'save');
920 920
         if ($as_array) {
921
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
921
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
922 922
         } else {
923 923
             $ele['id'] = new \XoopsFormHidden('id', $id);
924 924
         }
925 925
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
926 926
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
927
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
928
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
927
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
928
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
929 929
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
930 930
 
931
-        $ele['from'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_FROM : ''), $id . '[from]', (!$as_array ? 6 : 4), 2, $object->getVar('from'));
931
+        $ele['from'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_FROM : ''), $id.'[from]', (!$as_array ? 6 : 4), 2, $object->getVar('from'));
932 932
         $ele['from']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_FROM_DESC : ''));
933
-        $ele['to'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_TO : ''), $id . '[to]', (!$as_array ? 6 : 4), 2, $object->getVar('to'));
933
+        $ele['to'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_TO : ''), $id.'[to]', (!$as_array ? 6 : 4), 2, $object->getVar('to'));
934 934
         $ele['to']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_TO_DESC : ''));
935 935
 
936
-        if ($object->getVar('created') > 0) {
936
+        if ($object->getVar('created')>0) {
937 937
             $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
938 938
         }
939
-        if ($object->getVar('updated') > 0) {
939
+        if ($object->getVar('updated')>0) {
940 940
             $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_UTF8MAP_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
941 941
         }
942 942
 
@@ -995,40 +995,40 @@  discard block
 block discarded – undo
995 995
         if ($as_array) {
996 996
             $ele['id'] = new \XoopsFormHidden('id', $id);
997 997
         } else {
998
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
998
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
999 999
         }
1000 1000
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1001 1001
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1002
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1003
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1002
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
1003
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
1004 1004
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1005 1005
 
1006
-        $ele['artist'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ARTIST : ''), $id . '[artist]', (!$as_array ? 55 : 21), 128, $object->getVar('artist'));
1006
+        $ele['artist'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ARTIST : ''), $id.'[artist]', (!$as_array ? 55 : 21), 128, $object->getVar('artist'));
1007 1007
         $ele['artist']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ARTIST_DESC : ''));
1008
-        $ele['album'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ALBUM : ''), $id . '[album]', (!$as_array ? 55 : 21), 128, $object->getVar('album'));
1008
+        $ele['album'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ALBUM : ''), $id.'[album]', (!$as_array ? 55 : 21), 128, $object->getVar('album'));
1009 1009
         $ele['album']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_ALBUM_DESC : ''));
1010
-        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
1010
+        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_TITLE : ''), $id.'[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
1011 1011
         $ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_TITLE_DESC : ''));
1012
-        $ele['lyrics'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_LYRICS : ''), $id . '[lyrics]', (!$as_array ? 55 : 21), 128, $object->getVar('lyrics'));
1012
+        $ele['lyrics'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_LYRICS : ''), $id.'[lyrics]', (!$as_array ? 55 : 21), 128, $object->getVar('lyrics'));
1013 1013
         $ele['lyrics']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_LYRICS_DESC : ''));
1014 1014
 
1015 1015
         if (is_object($GLOBALS['xoopsUser'])) {
1016 1016
             $ele['uid']  = new \XoopsFormHidden('uid', $GLOBALS['xoopsUser']->getVar('uid'));
1017
-            $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? $GLOBALS['xoopsUser']->getVar('name') : $object->getVar('name')));
1017
+            $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME : ''), $id.'[name]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? $GLOBALS['xoopsUser']->getVar('name') : $object->getVar('name')));
1018 1018
             $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME_DESC : ''));
1019
-            $ele['email'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL : ''), $id . '[email]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? $GLOBALS['xoopsUser']->getVar('email') : $object->getVar('email')));
1019
+            $ele['email'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL : ''), $id.'[email]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? $GLOBALS['xoopsUser']->getVar('email') : $object->getVar('email')));
1020 1020
             $ele['email']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL_DESC : ''));
1021 1021
         } else {
1022 1022
             $ele['uid']  = new \XoopsFormHidden('uid', 0);
1023
-            $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME : ''), $id . '[name]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? '' : $object->getVar('name')));
1023
+            $ele['name'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME : ''), $id.'[name]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? '' : $object->getVar('name')));
1024 1024
             $ele['name']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_NAME_DESC : ''));
1025
-            $ele['email'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL : ''), $id . '[email]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? '' : $object->getVar('email')));
1025
+            $ele['email'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL : ''), $id.'[email]', (!$as_array ? 55 : 21), 128, ($object->isNew() ? '' : $object->getVar('email')));
1026 1026
             $ele['email']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_EMAIL_DESC : ''));
1027 1027
         }
1028
-        if ($object->getVar('created') > 0) {
1028
+        if ($object->getVar('created')>0) {
1029 1029
             $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
1030 1030
         }
1031
-        if ($object->getVar('updated') > 0) {
1031
+        if ($object->getVar('updated')>0) {
1032 1032
             $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_REQUESTS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
1033 1033
         }
1034 1034
 
@@ -1085,40 +1085,40 @@  discard block
 block discarded – undo
1085 1085
         $ele['op']  = new \XoopsFormHidden('op', 'songs');
1086 1086
         $ele['fct'] = new \XoopsFormHidden('fct', 'save');
1087 1087
         if ($as_array) {
1088
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
1088
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
1089 1089
         } else {
1090 1090
             $ele['id'] = new \XoopsFormHidden('id', $id);
1091 1091
         }
1092 1092
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1093 1093
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1094
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1095
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1094
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
1095
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
1096 1096
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1097 1097
 
1098
-        $ele['cid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CATEGORY : ''), $id . '[cid]', ($_REQUEST['cid'] ?? $object->getVar('cid')), 1, false);
1098
+        $ele['cid'] = new SelectCategoryForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CATEGORY : ''), $id.'[cid]', ($_REQUEST['cid'] ?? $object->getVar('cid')), 1, false);
1099 1099
         $ele['cid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CATEGORY_DESC : ''));
1100 1100
         if ($GLOBALS['songlistModuleConfig']['genre']) {
1101
-            $ele['gids'] = new SelectGenreForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_GENRE : ''), $id . '[gids]', ($_REQUEST['gids'] ?? $object->getVar('gids')), 8, true);
1101
+            $ele['gids'] = new SelectGenreForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_GENRE : ''), $id.'[gids]', ($_REQUEST['gids'] ?? $object->getVar('gids')), 8, true);
1102 1102
             $ele['gids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_GENRE_DESC : ''));
1103 1103
         }
1104 1104
         if ($GLOBALS['songlistModuleConfig']['voice']) {
1105
-            $ele['vcid'] = new SelectVoiceForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_VOICE : ''), $id . '[vcid]', ($_REQUEST['vcid'] ?? $object->getVar('vcid')), 1, false);
1105
+            $ele['vcid'] = new SelectVoiceForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_VOICE : ''), $id.'[vcid]', ($_REQUEST['vcid'] ?? $object->getVar('vcid')), 1, false);
1106 1106
             $ele['vcid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_VOICE_DESC : ''));
1107 1107
         }
1108 1108
         if ($GLOBALS['songlistModuleConfig']['album']) {
1109
-            $ele['abid'] = new SelectAlbumForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ALBUM : ''), $id . '[abid]', $object->getVar('abid'), 1, false);
1109
+            $ele['abid'] = new SelectAlbumForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ALBUM : ''), $id.'[abid]', $object->getVar('abid'), 1, false);
1110 1110
             $ele['abid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ALBUM_DESC : ''));
1111 1111
         }
1112
-        $ele['aids'] = new SelectArtistForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ARTISTS : ''), $id . '[aids]', $object->getVar('aids'), 7, true);
1112
+        $ele['aids'] = new SelectArtistForm((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ARTISTS : ''), $id.'[aids]', $object->getVar('aids'), 7, true);
1113 1113
         $ele['aids']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_ARTISTS_DESC : ''));
1114
-        $ele['songid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_SONGID : ''), $id . '[songid]', (!$as_array ? 25 : 15), 32, $object->getVar('songid'));
1114
+        $ele['songid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_SONGID : ''), $id.'[songid]', (!$as_array ? 25 : 15), 32, $object->getVar('songid'));
1115 1115
         $ele['songid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_SONGID_DESC : ''));
1116
-        $ele['traxid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TRAXID : ''), $id . '[traxid]', (!$as_array ? 25 : 15), 32, $object->getVar('traxid'));
1116
+        $ele['traxid'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TRAXID : ''), $id.'[traxid]', (!$as_array ? 25 : 15), 32, $object->getVar('traxid'));
1117 1117
         $ele['traxid']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TRAXID_DESC : ''));
1118
-        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TITLE : ''), $id . '[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
1118
+        $ele['title'] = new \XoopsFormText((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TITLE : ''), $id.'[title]', (!$as_array ? 55 : 21), 128, $object->getVar('title'));
1119 1119
         $ele['title']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_TITLE_DESC : ''));
1120 1120
         $description_configs           = [];
1121
-        $description_configs['name']   = $id . '[lyrics]';
1121
+        $description_configs['name']   = $id.'[lyrics]';
1122 1122
         $description_configs['value']  = $object->getVar('lyrics');
1123 1123
         $description_configs['rows']   = 35;
1124 1124
         $description_configs['cols']   = 60;
@@ -1126,7 +1126,7 @@  discard block
 block discarded – undo
1126 1126
         $description_configs['height'] = '400px';
1127 1127
         $ele['lyrics']                 = new \XoopsFormEditor(_FRM_SONGLIST_FORM_SONGS_LYRICS, $GLOBALS['songlistModuleConfig']['editor'], $description_configs);
1128 1128
         $ele['lyrics']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_LYRICS_DESC : ''));
1129
-        $ele['mp3'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_SONGS_MP3 : ''), 'mp3' . $id, $GLOBALS['songlistModuleConfig']['mp3_filesize']);
1129
+        $ele['mp3'] = new \XoopsFormFile((!$as_array ? _FRM_SONGLIST_FORM_SONGS_MP3 : ''), 'mp3'.$id, $GLOBALS['songlistModuleConfig']['mp3_filesize']);
1130 1130
         $ele['mp3']->setDescription((!$as_array ? _FRM_SONGLIST_FORM_SONGS_MP3_DESC : ''));
1131 1131
         $categoryHandler = Helper::getInstance()
1132 1132
                                  ->getHandler('Category');
@@ -1155,7 +1155,7 @@  discard block
 block discarded – undo
1155 1155
         $required = [];
1156 1156
         $elements = [];
1157 1157
         $weights  = [];
1158
-        if ($object->getVar('sid') > 0) {
1158
+        if ($object->getVar('sid')>0) {
1159 1159
             $extra = $extrasHandler->get($object->getVar('sid'));
1160 1160
         } else {
1161 1161
             $extra = $extrasHandler->create();
@@ -1163,23 +1163,23 @@  discard block
 block discarded – undo
1163 1163
         $allnames = [];
1164 1164
         if (is_array($fields)) {
1165 1165
             foreach (array_keys($fields) as $i) {
1166
-                if ((0 != $object->getVar('sid') && $grouppermHandler->checkRight('songlist_edit', $fields[$i]->getVar('field_id'), $groups, $modid))
1167
-                    || (0 == $object->getVar('sid') && $grouppermHandler->checkRight('songlist_post', $fields[$i]->getVar('field_id'), $groups, $modid))) {
1166
+                if ((0!=$object->getVar('sid') && $grouppermHandler->checkRight('songlist_edit', $fields[$i]->getVar('field_id'), $groups, $modid))
1167
+                    || (0==$object->getVar('sid') && $grouppermHandler->checkRight('songlist_post', $fields[$i]->getVar('field_id'), $groups, $modid))) {
1168 1168
                     $fieldinfo['element']  = $fields[$i]->getEditElement($object, $extra);
1169 1169
                     $fieldinfo['required'] = $fields[$i]->getVar('field_required');
1170 1170
                     foreach ($fields[$i]->getVar('cids') as $catidid => $cid) {
1171 1171
                         if (!in_array($fields[$i]->getVar('field_name'), $allnames, true)) {
1172 1172
                             $allnames[] = $fields[$i]->getVar('field_name');
1173 1173
                             if (array_key_exists($cid, $all_categories)
1174
-                                || $cid == (!empty($_REQUEST['cid'])
1174
+                                || $cid==(!empty($_REQUEST['cid'])
1175 1175
                                     ? Request::getInt('cid', 0, 'REQUEST')
1176 1176
                                     : $object->getVar('cid'))) {
1177 1177
                                 $key              = (isset($all_categories[$cid]) ? $all_categories[$cid]['weight'] : 0)
1178
-                                                    * $count_fields + $object->getVar('cid');
1178
+                                                    * $count_fields+$object->getVar('cid');
1179 1179
                                 $elements[$key][] = $fieldinfo;
1180 1180
                                 $weights[$key][]  = $fields[$i]->getVar('field_weight');
1181 1181
                             } elseif (in_array(0, $fields[$i]->getVar('cids'), true)) {
1182
-                                $key              = (isset($all_categories[$cid]) ? $all_categories[$cid]['weight'] : 0) * $count_fields + $object->getVar('cid');
1182
+                                $key              = (isset($all_categories[$cid]) ? $all_categories[$cid]['weight'] : 0)*$count_fields+$object->getVar('cid');
1183 1183
                                 $elements[$key][] = $fieldinfo;
1184 1184
                                 $weights[$key][]  = $fields[$i]->getVar('field_weight');
1185 1185
                             }
@@ -1194,7 +1194,7 @@  discard block
 block discarded – undo
1194 1194
                 array_multisort($weights[$k], SORT_ASC, array_keys($elements[$k]), SORT_ASC, $elements[$k]);
1195 1195
                 foreach (array_keys($elements[$k]) as $i) {
1196 1196
                     $ele[$k] = $elements[$k][$i]['element'];
1197
-                    if (true === $elements[$k][$i]['required']) {
1197
+                    if (true===$elements[$k][$i]['required']) {
1198 1198
                         $required[$k] = $elements[$k][$i]['element']->getName();
1199 1199
                     }
1200 1200
                 }
@@ -1208,11 +1208,11 @@  discard block
 block discarded – undo
1208 1208
         }
1209 1209
 
1210 1210
         $ele['hits'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_HITS : ''), $object->getVar('hits'));
1211
-        $ele['rank'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_RANK : ''), number_format(($object->getVar('rank') > 0 && $object->getVar('votes') > 0 ? $object->getVar('rank') / $object->getVar('votes') : 0), 2) . ' of 10');
1212
-        if ($object->getVar('created') > 0) {
1211
+        $ele['rank'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_RANK : ''), number_format(($object->getVar('rank')>0 && $object->getVar('votes')>0 ? $object->getVar('rank')/$object->getVar('votes') : 0), 2).' of 10');
1212
+        if ($object->getVar('created')>0) {
1213 1213
             $ele['created'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_CREATED : ''), date(_DATESTRING, $object->getVar('created')));
1214 1214
         }
1215
-        if ($object->getVar('updated') > 0) {
1215
+        if ($object->getVar('updated')>0) {
1216 1216
             $ele['updated'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_SONGS_UPDATED : ''), date(_DATESTRING, $object->getVar('updated')));
1217 1217
         }
1218 1218
         if ($as_array) {
@@ -1268,12 +1268,12 @@  discard block
 block discarded – undo
1268 1268
         if ($as_array) {
1269 1269
             $ele['id'] = new \XoopsFormHidden('id', $id);
1270 1270
         } else {
1271
-            $ele['id'] = new \XoopsFormHidden('id[' . $id . ']', $id);
1271
+            $ele['id'] = new \XoopsFormHidden('id['.$id.']', $id);
1272 1272
         }
1273 1273
         $ele['sort']   = new \XoopsFormHidden('sort', $_REQUEST['sort'] ?? 'created');
1274 1274
         $ele['order']  = new \XoopsFormHidden('order', $_REQUEST['order'] ?? 'DESC');
1275
-        $ele['start']  = new \XoopsFormHidden('start', (string)Request::getInt('start', 0, 'REQUEST'));
1276
-        $ele['limit']  = new \XoopsFormHidden('limit', (string)Request::getInt('limit', 0, 'REQUEST'));
1275
+        $ele['start']  = new \XoopsFormHidden('start', (string) Request::getInt('start', 0, 'REQUEST'));
1276
+        $ele['limit']  = new \XoopsFormHidden('limit', (string) Request::getInt('limit', 0, 'REQUEST'));
1277 1277
         $ele['filter'] = new \XoopsFormHidden('filter', $_REQUEST['filter'] ?? '1,1');
1278 1278
 
1279 1279
         $songsHandler = Helper::getInstance()
@@ -1293,7 +1293,7 @@  discard block
 block discarded – undo
1293 1293
         }
1294 1294
         $ele['ip']      = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_IP : ''), $object->getVar('ip'));
1295 1295
         $ele['netaddy'] = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_NETADDY : ''), $object->getVar('netaddy'));
1296
-        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_RANK : ''), $object->getVar('rank') . ' of 10');
1296
+        $ele['rank']    = new \XoopsFormLabel((!$as_array ? _FRM_SONGLIST_FORM_VOTES_RANK : ''), $object->getVar('rank').' of 10');
1297 1297
 
1298 1298
         if ($as_array) {
1299 1299
             return $ele;
Please login to merge, or discard this patch.
class/Form/SelectAlbumForm.php 2 patches
Indentation   +208 added lines, -208 removed lines patch added patch discarded remove patch
@@ -53,230 +53,230 @@
 block discarded – undo
53 53
  */
54 54
 class SelectAlbumForm extends XoopsFormElement
55 55
 {
56
-    /**
57
-     * Options
58
-     *
59
-     * @var array
60
-     */
61
-    public $_options = [];
62
-    /**
63
-     * Allow multiple selections?
64
-     *
65
-     * @var bool
66
-     */
67
-    public $_multiple = false;
68
-    /**
69
-     * Number of rows. "1" makes a dropdown list.
70
-     *
71
-     * @var int
72
-     */
73
-    public $_size;
74
-    /**
75
-     * Pre-selcted values
76
-     *
77
-     * @var array
78
-     */
79
-    public $_value = [];
56
+	/**
57
+	 * Options
58
+	 *
59
+	 * @var array
60
+	 */
61
+	public $_options = [];
62
+	/**
63
+	 * Allow multiple selections?
64
+	 *
65
+	 * @var bool
66
+	 */
67
+	public $_multiple = false;
68
+	/**
69
+	 * Number of rows. "1" makes a dropdown list.
70
+	 *
71
+	 * @var int
72
+	 */
73
+	public $_size;
74
+	/**
75
+	 * Pre-selcted values
76
+	 *
77
+	 * @var array
78
+	 */
79
+	public $_value = [];
80 80
 
81
-    /**
82
-     * Constructor
83
-     *
84
-     * @param string $caption  Caption
85
-     * @param string $name     "name" attribute
86
-     * @param mixed  $value    Pre-selected value (or array of them).
87
-     * @param int    $size     Number or rows. "1" makes a drop-down-list
88
-     * @param bool   $multiple Allow multiple selections?
89
-     * @param int    $ownid
90
-     */
91
-    public function __construct($caption, $name, $value = null, $size = 1, $multiple = false, $ownid = 0)
92
-    {
93
-        global $_form_object_options;
94
-        \xoops_loadLanguage('modinfo', 'songlist');
81
+	/**
82
+	 * Constructor
83
+	 *
84
+	 * @param string $caption  Caption
85
+	 * @param string $name     "name" attribute
86
+	 * @param mixed  $value    Pre-selected value (or array of them).
87
+	 * @param int    $size     Number or rows. "1" makes a drop-down-list
88
+	 * @param bool   $multiple Allow multiple selections?
89
+	 * @param int    $ownid
90
+	 */
91
+	public function __construct($caption, $name, $value = null, $size = 1, $multiple = false, $ownid = 0)
92
+	{
93
+		global $_form_object_options;
94
+		\xoops_loadLanguage('modinfo', 'songlist');
95 95
 
96
-        $this->setCaption($caption);
97
-        $this->setName($name);
98
-        $this->_multiple = $multiple;
99
-        $this->_size     = (int)$size;
100
-        if (isset($value)) {
101
-            $this->setValue($value);
102
-        }
103
-        $this->addOption('0', \_MI_SONGLIST_NONE);
104
-        if (!isset($_form_object_options['albums'])) {
105
-            $albumsHandler = Helper::getInstance()->getHandler('Albums');
106
-            $criteria      = new Criteria('');
107
-            $criteria->setSort('title');
108
-            $criteria->setOrder('ASC');
109
-            foreach ($albumsHandler->getObjects($criteria, true) as $id => $obj) {
110
-                $_form_object_options['albums'][$id] = $obj->getVar('title');
111
-            }
112
-        }
113
-        //        if (Request::hasVar('albums', 'form_object_options')) {
114
-        if (isset($_form_object_options['albums'])) {
115
-            foreach ($_form_object_options['albums'] as $id => $value) {
116
-                $this->addOption($id, $value);
117
-            }
118
-        }
119
-    }
96
+		$this->setCaption($caption);
97
+		$this->setName($name);
98
+		$this->_multiple = $multiple;
99
+		$this->_size     = (int)$size;
100
+		if (isset($value)) {
101
+			$this->setValue($value);
102
+		}
103
+		$this->addOption('0', \_MI_SONGLIST_NONE);
104
+		if (!isset($_form_object_options['albums'])) {
105
+			$albumsHandler = Helper::getInstance()->getHandler('Albums');
106
+			$criteria      = new Criteria('');
107
+			$criteria->setSort('title');
108
+			$criteria->setOrder('ASC');
109
+			foreach ($albumsHandler->getObjects($criteria, true) as $id => $obj) {
110
+				$_form_object_options['albums'][$id] = $obj->getVar('title');
111
+			}
112
+		}
113
+		//        if (Request::hasVar('albums', 'form_object_options')) {
114
+		if (isset($_form_object_options['albums'])) {
115
+			foreach ($_form_object_options['albums'] as $id => $value) {
116
+				$this->addOption($id, $value);
117
+			}
118
+		}
119
+	}
120 120
 
121
-    /**
122
-     * Are multiple selections allowed?
123
-     *
124
-     * @return bool
125
-     */
126
-    public function isMultiple(): bool
127
-    {
128
-        return $this->_multiple;
129
-    }
121
+	/**
122
+	 * Are multiple selections allowed?
123
+	 *
124
+	 * @return bool
125
+	 */
126
+	public function isMultiple(): bool
127
+	{
128
+		return $this->_multiple;
129
+	}
130 130
 
131
-    /**
132
-     * Get the size
133
-     *
134
-     * @return int
135
-     */
136
-    public function getSize(): int
137
-    {
138
-        return $this->_size;
139
-    }
131
+	/**
132
+	 * Get the size
133
+	 *
134
+	 * @return int
135
+	 */
136
+	public function getSize(): int
137
+	{
138
+		return $this->_size;
139
+	}
140 140
 
141
-    /**
142
-     * Get an array of pre-selected values
143
-     *
144
-     * @param bool $encode To sanitizer the text?
145
-     * @return array
146
-     */
147
-    public function getValue($encode = false): array
148
-    {
149
-        if (!$encode) {
150
-            return $this->_value;
151
-        }
152
-        $value = [];
153
-        foreach ($this->_value as $val) {
154
-            $value[] = $val ? \htmlspecialchars($val, \ENT_QUOTES) : $val;
155
-        }
141
+	/**
142
+	 * Get an array of pre-selected values
143
+	 *
144
+	 * @param bool $encode To sanitizer the text?
145
+	 * @return array
146
+	 */
147
+	public function getValue($encode = false): array
148
+	{
149
+		if (!$encode) {
150
+			return $this->_value;
151
+		}
152
+		$value = [];
153
+		foreach ($this->_value as $val) {
154
+			$value[] = $val ? \htmlspecialchars($val, \ENT_QUOTES) : $val;
155
+		}
156 156
 
157
-        return $value;
158
-    }
157
+		return $value;
158
+	}
159 159
 
160
-    /**
161
-     * Set pre-selected values
162
-     *
163
-     * @param mixed $value
164
-     */
165
-    public function setValue($value): void
166
-    {
167
-        if (\is_array($value)) {
168
-            foreach ($value as $v) {
169
-                $this->_value[] = (int)$v;
170
-            }
160
+	/**
161
+	 * Set pre-selected values
162
+	 *
163
+	 * @param mixed $value
164
+	 */
165
+	public function setValue($value): void
166
+	{
167
+		if (\is_array($value)) {
168
+			foreach ($value as $v) {
169
+				$this->_value[] = (int)$v;
170
+			}
171 171
 //            $this->_value[] = array_values($value);
172
-        } elseif (isset($value)) {
173
-            $this->_value[] = $value;
174
-        }
175
-    }
172
+		} elseif (isset($value)) {
173
+			$this->_value[] = $value;
174
+		}
175
+	}
176 176
 
177
-    /**
178
-     * Add an option
179
-     *
180
-     * @param string $value "value" attribute
181
-     * @param string $name  "name" attribute
182
-     */
183
-    public function addOption($value, $name = ''): void
184
-    {
185
-        if ('' != $name) {
186
-            $this->_options[$value] = $name;
187
-        } else {
188
-            $this->_options[$value] = $value;
189
-        }
190
-    }
177
+	/**
178
+	 * Add an option
179
+	 *
180
+	 * @param string $value "value" attribute
181
+	 * @param string $name  "name" attribute
182
+	 */
183
+	public function addOption($value, $name = ''): void
184
+	{
185
+		if ('' != $name) {
186
+			$this->_options[$value] = $name;
187
+		} else {
188
+			$this->_options[$value] = $value;
189
+		}
190
+	}
191 191
 
192
-    /**
193
-     * Add multiple options
194
-     *
195
-     * @param array $options Associative array of value->name pairs
196
-     */
197
-    public function addOptionArray($options): void
198
-    {
199
-        if (\is_array($options)) {
200
-            foreach ($options as $k => $v) {
201
-                $this->addOption($k, $v);
202
-            }
203
-        }
204
-    }
192
+	/**
193
+	 * Add multiple options
194
+	 *
195
+	 * @param array $options Associative array of value->name pairs
196
+	 */
197
+	public function addOptionArray($options): void
198
+	{
199
+		if (\is_array($options)) {
200
+			foreach ($options as $k => $v) {
201
+				$this->addOption($k, $v);
202
+			}
203
+		}
204
+	}
205 205
 
206
-    /**
207
-     * Get an array with all the options
208
-     *
209
-     * Note: both name and value should be sanitized. However for backward compatibility, only value is sanitized for now.
210
-     *
211
-     * @param bool|int $encode To sanitizer the text? potential values: 0 - skip; 1 - only for value; 2 - for both value and name
212
-     * @return array Associative array of value->name pairs
213
-     */
214
-    public function getOptions($encode = false): array
215
-    {
216
-        if (!$encode) {
217
-            return $this->_options;
218
-        }
219
-        $value = [];
220
-        foreach ($this->_options as $val => $name) {
221
-            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
222
-        }
206
+	/**
207
+	 * Get an array with all the options
208
+	 *
209
+	 * Note: both name and value should be sanitized. However for backward compatibility, only value is sanitized for now.
210
+	 *
211
+	 * @param bool|int $encode To sanitizer the text? potential values: 0 - skip; 1 - only for value; 2 - for both value and name
212
+	 * @return array Associative array of value->name pairs
213
+	 */
214
+	public function getOptions($encode = false): array
215
+	{
216
+		if (!$encode) {
217
+			return $this->_options;
218
+		}
219
+		$value = [];
220
+		foreach ($this->_options as $val => $name) {
221
+			$value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
222
+		}
223 223
 
224
-        return $value;
225
-    }
224
+		return $value;
225
+	}
226 226
 
227
-    /**
228
-     * Prepare HTML for output
229
-     *
230
-     * @return string HTML
231
-     */
232
-    public function render(): string
233
-    {
234
-        $ele_name    = $this->getName();
235
-        $ele_title   = $this->getTitle();
236
-        $ele_value   = $this->getValue();
237
-        $ele_options = $this->getOptions();
238
-        $ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
239
-        if ($this->isMultiple()) {
240
-            $ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
241
-        } else {
242
-            $ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
243
-        }
244
-        foreach ($ele_options as $value => $name) {
245
-            $ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
246
-            if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
247
-                $ret .= ' selected';
248
-            }
249
-            $ret .= '>' . $name . '</option>';
250
-        }
251
-        $ret .= '</select>';
227
+	/**
228
+	 * Prepare HTML for output
229
+	 *
230
+	 * @return string HTML
231
+	 */
232
+	public function render(): string
233
+	{
234
+		$ele_name    = $this->getName();
235
+		$ele_title   = $this->getTitle();
236
+		$ele_value   = $this->getValue();
237
+		$ele_options = $this->getOptions();
238
+		$ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
239
+		if ($this->isMultiple()) {
240
+			$ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
241
+		} else {
242
+			$ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
243
+		}
244
+		foreach ($ele_options as $value => $name) {
245
+			$ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
246
+			if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
247
+				$ret .= ' selected';
248
+			}
249
+			$ret .= '>' . $name . '</option>';
250
+		}
251
+		$ret .= '</select>';
252 252
 
253
-        return $ret;
254
-    }
253
+		return $ret;
254
+	}
255 255
 
256
-    /**
257
-     * Render custom javascript validation code
258
-     *
259
-     * @seealso XoopsForm::renderValidationJS
260
-     */
261
-    public function renderValidationJS()
262
-    {
263
-        // render custom validation code if any
264
-        if (!empty($this->customValidationCode)) {
265
-            return \implode("\n", $this->customValidationCode);
266
-            // generate validation code if required
267
-        }
256
+	/**
257
+	 * Render custom javascript validation code
258
+	 *
259
+	 * @seealso XoopsForm::renderValidationJS
260
+	 */
261
+	public function renderValidationJS()
262
+	{
263
+		// render custom validation code if any
264
+		if (!empty($this->customValidationCode)) {
265
+			return \implode("\n", $this->customValidationCode);
266
+			// generate validation code if required
267
+		}
268 268
 
269
-        if ($this->isRequired()) {
270
-            $eltname    = $this->getName();
271
-            $eltcaption = $this->getCaption();
272
-            $eltmsg     = empty($eltcaption) ? \sprintf(_FORM_ENTER, $eltname) : \sprintf(_FORM_ENTER, $eltcaption);
273
-            $eltmsg     = \str_replace('"', '\"', \stripslashes($eltmsg));
269
+		if ($this->isRequired()) {
270
+			$eltname    = $this->getName();
271
+			$eltcaption = $this->getCaption();
272
+			$eltmsg     = empty($eltcaption) ? \sprintf(_FORM_ENTER, $eltname) : \sprintf(_FORM_ENTER, $eltcaption);
273
+			$eltmsg     = \str_replace('"', '\"', \stripslashes($eltmsg));
274 274
 
275
-            return "\nvar hasSelected = false; var selectBox = myform.{$eltname};"
276
-                   . 'for (i = 0; i < selectBox.options.length; i++ ) { if (selectBox.options[i].selected === true) { hasSelected = true; break; } }'
277
-                   . "if (!hasSelected) { window.alert(\"{$eltmsg}\"); selectBox.focus(); return false; }";
278
-        }
275
+			return "\nvar hasSelected = false; var selectBox = myform.{$eltname};"
276
+				   . 'for (i = 0; i < selectBox.options.length; i++ ) { if (selectBox.options[i].selected === true) { hasSelected = true; break; } }'
277
+				   . "if (!hasSelected) { window.alert(\"{$eltmsg}\"); selectBox.focus(); return false; }";
278
+		}
279 279
 
280
-        return '';
281
-    }
280
+		return '';
281
+	}
282 282
 }
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
         $this->setCaption($caption);
97 97
         $this->setName($name);
98 98
         $this->_multiple = $multiple;
99
-        $this->_size     = (int)$size;
99
+        $this->_size     = (int) $size;
100 100
         if (isset($value)) {
101 101
             $this->setValue($value);
102 102
         }
@@ -166,7 +166,7 @@  discard block
 block discarded – undo
166 166
     {
167 167
         if (\is_array($value)) {
168 168
             foreach ($value as $v) {
169
-                $this->_value[] = (int)$v;
169
+                $this->_value[] = (int) $v;
170 170
             }
171 171
 //            $this->_value[] = array_values($value);
172 172
         } elseif (isset($value)) {
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
      */
183 183
     public function addOption($value, $name = ''): void
184 184
     {
185
-        if ('' != $name) {
185
+        if (''!=$name) {
186 186
             $this->_options[$value] = $name;
187 187
         } else {
188 188
             $this->_options[$value] = $value;
@@ -218,7 +218,7 @@  discard block
 block discarded – undo
218 218
         }
219 219
         $value = [];
220 220
         foreach ($this->_options as $val => $name) {
221
-            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
221
+            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode>1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
222 222
         }
223 223
 
224 224
         return $value;
@@ -235,18 +235,18 @@  discard block
 block discarded – undo
235 235
         $ele_title   = $this->getTitle();
236 236
         $ele_value   = $this->getValue();
237 237
         $ele_options = $this->getOptions();
238
-        $ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
238
+        $ret         = '<select size="'.$this->getSize().'"'.$this->getExtra();
239 239
         if ($this->isMultiple()) {
240
-            $ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
240
+            $ret .= ' name="'.$ele_name.'[]" id="'.$ele_name.'" title="'.$ele_title.'" multiple="multiple">';
241 241
         } else {
242
-            $ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
242
+            $ret .= ' name="'.$ele_name.'" id="'.$ele_name.'" title="'.$ele_title.'">';
243 243
         }
244 244
         foreach ($ele_options as $value => $name) {
245
-            $ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
246
-            if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
245
+            $ret .= '<option value="'.\htmlspecialchars((string) $value, \ENT_QUOTES).'"';
246
+            if (\count($ele_value)>0 && \in_array($value, $ele_value, true)) {
247 247
                 $ret .= ' selected';
248 248
             }
249
-            $ret .= '>' . $name . '</option>';
249
+            $ret .= '>'.$name.'</option>';
250 250
         }
251 251
         $ret .= '</select>';
252 252
 
Please login to merge, or discard this patch.
class/Form/SelectSongForm.php 2 patches
Indentation   +218 added lines, -218 removed lines patch added patch discarded remove patch
@@ -50,240 +50,240 @@
 block discarded – undo
50 50
  */
51 51
 class SelectSongForm extends \XoopsFormElement
52 52
 {
53
-    /**
54
-     * Options
55
-     *
56
-     * @var array
57
-     */
58
-    public $_options = [];
59
-    /**
60
-     * Allow multiple selections?
61
-     *
62
-     * @var bool
63
-     */
64
-    public $_multiple = false;
65
-    /**
66
-     * Number of rows. "1" makes a dropdown list.
67
-     *
68
-     * @var int
69
-     */
70
-    public $_size;
71
-    /**
72
-     * Pre-selcted values
73
-     *
74
-     * @var array
75
-     */
76
-    public $_value = [];
53
+	/**
54
+	 * Options
55
+	 *
56
+	 * @var array
57
+	 */
58
+	public $_options = [];
59
+	/**
60
+	 * Allow multiple selections?
61
+	 *
62
+	 * @var bool
63
+	 */
64
+	public $_multiple = false;
65
+	/**
66
+	 * Number of rows. "1" makes a dropdown list.
67
+	 *
68
+	 * @var int
69
+	 */
70
+	public $_size;
71
+	/**
72
+	 * Pre-selcted values
73
+	 *
74
+	 * @var array
75
+	 */
76
+	public $_value = [];
77 77
 
78
-    /**
79
-     * Constructor
80
-     *
81
-     * @param string $caption  Caption
82
-     * @param string $name     "name" attribute
83
-     * @param mixed  $value    Pre-selected value (or array of them).
84
-     * @param int    $size     Number or rows. "1" makes a drop-down-list
85
-     * @param bool   $multiple Allow multiple selections?
86
-     * @param int    $id
87
-     * @param string $field
88
-     */
89
-    public function __construct($caption, $name, $value = null, $size = 1, $multiple = false, $id = -1, $field = 'cid')
90
-    {
91
-        global $_form_object_options;
92
-        \xoops_loadLanguage('modinfo', 'songlist');
78
+	/**
79
+	 * Constructor
80
+	 *
81
+	 * @param string $caption  Caption
82
+	 * @param string $name     "name" attribute
83
+	 * @param mixed  $value    Pre-selected value (or array of them).
84
+	 * @param int    $size     Number or rows. "1" makes a drop-down-list
85
+	 * @param bool   $multiple Allow multiple selections?
86
+	 * @param int    $id
87
+	 * @param string $field
88
+	 */
89
+	public function __construct($caption, $name, $value = null, $size = 1, $multiple = false, $id = -1, $field = 'cid')
90
+	{
91
+		global $_form_object_options;
92
+		\xoops_loadLanguage('modinfo', 'songlist');
93 93
 
94
-        $this->setCaption($caption);
95
-        $this->setName($name);
96
-        $this->_multiple = $multiple;
97
-        $this->_size     = (int)$size;
98
-        if (isset($value)) {
99
-            $this->setValue($value);
100
-        }
101
-        $this->addOption('0', \_MI_SONGLIST_NONE);
102
-        if (-1 == $id) {
103
-            if (!isset($_form_object_options['songs'][$field][$id])) {
104
-                $songsHandler = Helper::getInstance()->getHandler('Songs');
105
-                $criteria     = new \Criteria('');
106
-                $criteria->setSort('title');
107
-                $criteria->setOrder('ASC');
108
-                foreach ($songsHandler->getObjects($criteria, true) as $id => $obj) {
109
-                    $_form_object_options['songs'][$field][$id][$id] = $obj->getVar('title');
110
-                }
111
-            }
112
-        } elseif (!isset($_form_object_options['songs'][$field][$id])) {
113
-                $songsHandler = Helper::getInstance()->getHandler('Songs');
114
-                $criteria     = new \Criteria('`' . $field . '`', $id);
115
-                $criteria->setSort('title');
116
-                $criteria->setOrder('ASC');
117
-                foreach ($songsHandler->getObjects($criteria) as $id => $obj) {
118
-                    $_form_object_options['songs'][$field][$id][$id] = $obj->getVar('title');
119
-                }
120
-        }
121
-        if (isset($_form_object_options['songs'][$field][$id])) {
122
-            foreach ($_form_object_options['songs'][$field][$id] as $id => $value) {
123
-                $this->addOption($id, $value);
124
-            }
125
-        }
126
-    }
94
+		$this->setCaption($caption);
95
+		$this->setName($name);
96
+		$this->_multiple = $multiple;
97
+		$this->_size     = (int)$size;
98
+		if (isset($value)) {
99
+			$this->setValue($value);
100
+		}
101
+		$this->addOption('0', \_MI_SONGLIST_NONE);
102
+		if (-1 == $id) {
103
+			if (!isset($_form_object_options['songs'][$field][$id])) {
104
+				$songsHandler = Helper::getInstance()->getHandler('Songs');
105
+				$criteria     = new \Criteria('');
106
+				$criteria->setSort('title');
107
+				$criteria->setOrder('ASC');
108
+				foreach ($songsHandler->getObjects($criteria, true) as $id => $obj) {
109
+					$_form_object_options['songs'][$field][$id][$id] = $obj->getVar('title');
110
+				}
111
+			}
112
+		} elseif (!isset($_form_object_options['songs'][$field][$id])) {
113
+				$songsHandler = Helper::getInstance()->getHandler('Songs');
114
+				$criteria     = new \Criteria('`' . $field . '`', $id);
115
+				$criteria->setSort('title');
116
+				$criteria->setOrder('ASC');
117
+				foreach ($songsHandler->getObjects($criteria) as $id => $obj) {
118
+					$_form_object_options['songs'][$field][$id][$id] = $obj->getVar('title');
119
+				}
120
+		}
121
+		if (isset($_form_object_options['songs'][$field][$id])) {
122
+			foreach ($_form_object_options['songs'][$field][$id] as $id => $value) {
123
+				$this->addOption($id, $value);
124
+			}
125
+		}
126
+	}
127 127
 
128
-    /**
129
-     * Are multiple selections allowed?
130
-     *
131
-     * @return bool
132
-     */
133
-    public function isMultiple(): bool
134
-    {
135
-        return $this->_multiple;
136
-    }
128
+	/**
129
+	 * Are multiple selections allowed?
130
+	 *
131
+	 * @return bool
132
+	 */
133
+	public function isMultiple(): bool
134
+	{
135
+		return $this->_multiple;
136
+	}
137 137
 
138
-    /**
139
-     * Get the size
140
-     *
141
-     * @return int
142
-     */
143
-    public function getSize(): int
144
-    {
145
-        return $this->_size;
146
-    }
138
+	/**
139
+	 * Get the size
140
+	 *
141
+	 * @return int
142
+	 */
143
+	public function getSize(): int
144
+	{
145
+		return $this->_size;
146
+	}
147 147
 
148
-    /**
149
-     * Get an array of pre-selected values
150
-     *
151
-     * @param bool $encode To sanitizer the text?
152
-     * @return array
153
-     */
154
-    public function getValue($encode = false): array
155
-    {
156
-        if (!$encode) {
157
-            return $this->_value;
158
-        }
159
-        $value = [];
160
-        foreach ($this->_value as $val) {
161
-            $value[] = $val ? \htmlspecialchars($val, \ENT_QUOTES) : $val;
162
-        }
148
+	/**
149
+	 * Get an array of pre-selected values
150
+	 *
151
+	 * @param bool $encode To sanitizer the text?
152
+	 * @return array
153
+	 */
154
+	public function getValue($encode = false): array
155
+	{
156
+		if (!$encode) {
157
+			return $this->_value;
158
+		}
159
+		$value = [];
160
+		foreach ($this->_value as $val) {
161
+			$value[] = $val ? \htmlspecialchars($val, \ENT_QUOTES) : $val;
162
+		}
163 163
 
164
-        return $value;
165
-    }
164
+		return $value;
165
+	}
166 166
 
167
-    /**
168
-     * Set pre-selected values
169
-     *
170
-     * @param mixed $value
171
-     */
172
-    public function setValue($value): void
173
-    {
174
-        if (\is_array($value)) {
175
-            foreach ($value as $v) {
176
-                $this->_value[] = (int)$v;
177
-            }
167
+	/**
168
+	 * Set pre-selected values
169
+	 *
170
+	 * @param mixed $value
171
+	 */
172
+	public function setValue($value): void
173
+	{
174
+		if (\is_array($value)) {
175
+			foreach ($value as $v) {
176
+				$this->_value[] = (int)$v;
177
+			}
178 178
 //            $this->_value[] = array_values($value);
179
-        } elseif (isset($value)) {
180
-            $this->_value[] = $value;
181
-        }
182
-    }
179
+		} elseif (isset($value)) {
180
+			$this->_value[] = $value;
181
+		}
182
+	}
183 183
 
184
-    /**
185
-     * Add an option
186
-     *
187
-     * @param string $value "value" attribute
188
-     * @param string $name  "name" attribute
189
-     */
190
-    public function addOption($value, $name = ''): void
191
-    {
192
-        if ('' != $name) {
193
-            $this->_options[$value] = $name;
194
-        } else {
195
-            $this->_options[$value] = $value;
196
-        }
197
-    }
184
+	/**
185
+	 * Add an option
186
+	 *
187
+	 * @param string $value "value" attribute
188
+	 * @param string $name  "name" attribute
189
+	 */
190
+	public function addOption($value, $name = ''): void
191
+	{
192
+		if ('' != $name) {
193
+			$this->_options[$value] = $name;
194
+		} else {
195
+			$this->_options[$value] = $value;
196
+		}
197
+	}
198 198
 
199
-    /**
200
-     * Add multiple options
201
-     *
202
-     * @param array $options Associative array of value->name pairs
203
-     */
204
-    public function addOptionArray($options): void
205
-    {
206
-        if (\is_array($options)) {
207
-            foreach ($options as $k => $v) {
208
-                $this->addOption($k, $v);
209
-            }
210
-        }
211
-    }
199
+	/**
200
+	 * Add multiple options
201
+	 *
202
+	 * @param array $options Associative array of value->name pairs
203
+	 */
204
+	public function addOptionArray($options): void
205
+	{
206
+		if (\is_array($options)) {
207
+			foreach ($options as $k => $v) {
208
+				$this->addOption($k, $v);
209
+			}
210
+		}
211
+	}
212 212
 
213
-    /**
214
-     * Get an array with all the options
215
-     *
216
-     * Note: both name and value should be sanitized. However for backward compatibility, only value is sanitized for now.
217
-     *
218
-     * @param bool|int $encode To sanitizer the text? potential values: 0 - skip; 1 - only for value; 2 - for both value and name
219
-     * @return array Associative array of value->name pairs
220
-     */
221
-    public function getOptions($encode = false): array
222
-    {
223
-        if (!$encode) {
224
-            return $this->_options;
225
-        }
226
-        $value = [];
227
-        foreach ($this->_options as $val => $name) {
228
-            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
229
-        }
213
+	/**
214
+	 * Get an array with all the options
215
+	 *
216
+	 * Note: both name and value should be sanitized. However for backward compatibility, only value is sanitized for now.
217
+	 *
218
+	 * @param bool|int $encode To sanitizer the text? potential values: 0 - skip; 1 - only for value; 2 - for both value and name
219
+	 * @return array Associative array of value->name pairs
220
+	 */
221
+	public function getOptions($encode = false): array
222
+	{
223
+		if (!$encode) {
224
+			return $this->_options;
225
+		}
226
+		$value = [];
227
+		foreach ($this->_options as $val => $name) {
228
+			$value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
229
+		}
230 230
 
231
-        return $value;
232
-    }
231
+		return $value;
232
+	}
233 233
 
234
-    /**
235
-     * Prepare HTML for output
236
-     *
237
-     * @return string HTML
238
-     */
239
-    public function render(): string
240
-    {
241
-        $ele_name    = $this->getName();
242
-        $ele_title   = $this->getTitle();
243
-        $ele_value   = $this->getValue();
244
-        $ele_options = $this->getOptions();
245
-        $ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
246
-        if ($this->isMultiple()) {
247
-            $ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
248
-        } else {
249
-            $ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
250
-        }
251
-        foreach ($ele_options as $value => $name) {
252
-            $ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
253
-            if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
254
-                $ret .= ' selected';
255
-            }
256
-            $ret .= '>' . $name . '</option>';
257
-        }
258
-        $ret .= '</select>';
234
+	/**
235
+	 * Prepare HTML for output
236
+	 *
237
+	 * @return string HTML
238
+	 */
239
+	public function render(): string
240
+	{
241
+		$ele_name    = $this->getName();
242
+		$ele_title   = $this->getTitle();
243
+		$ele_value   = $this->getValue();
244
+		$ele_options = $this->getOptions();
245
+		$ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
246
+		if ($this->isMultiple()) {
247
+			$ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
248
+		} else {
249
+			$ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
250
+		}
251
+		foreach ($ele_options as $value => $name) {
252
+			$ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
253
+			if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
254
+				$ret .= ' selected';
255
+			}
256
+			$ret .= '>' . $name . '</option>';
257
+		}
258
+		$ret .= '</select>';
259 259
 
260
-        return $ret;
261
-    }
260
+		return $ret;
261
+	}
262 262
 
263
-    /**
264
-     * Render custom javascript validation code
265
-     *
266
-     * @seealso XoopsForm::renderValidationJS
267
-     */
268
-    public function renderValidationJS()
269
-    {
270
-        // render custom validation code if any
271
-        if (!empty($this->customValidationCode)) {
272
-            return \implode("\n", $this->customValidationCode);
273
-            // generate validation code if required
274
-        }
263
+	/**
264
+	 * Render custom javascript validation code
265
+	 *
266
+	 * @seealso XoopsForm::renderValidationJS
267
+	 */
268
+	public function renderValidationJS()
269
+	{
270
+		// render custom validation code if any
271
+		if (!empty($this->customValidationCode)) {
272
+			return \implode("\n", $this->customValidationCode);
273
+			// generate validation code if required
274
+		}
275 275
 
276
-        if ($this->isRequired()) {
277
-            $eltname    = $this->getName();
278
-            $eltcaption = $this->getCaption();
279
-            $eltmsg     = empty($eltcaption) ? \sprintf(_FORM_ENTER, $eltname) : \sprintf(_FORM_ENTER, $eltcaption);
280
-            $eltmsg     = \str_replace('"', '\"', \stripslashes($eltmsg));
276
+		if ($this->isRequired()) {
277
+			$eltname    = $this->getName();
278
+			$eltcaption = $this->getCaption();
279
+			$eltmsg     = empty($eltcaption) ? \sprintf(_FORM_ENTER, $eltname) : \sprintf(_FORM_ENTER, $eltcaption);
280
+			$eltmsg     = \str_replace('"', '\"', \stripslashes($eltmsg));
281 281
 
282
-            return "\nvar hasSelected = false; var selectBox = myform.{$eltname};"
283
-                   . 'for (i = 0; i < selectBox.options.length; i++ ) { if (selectBox.options[i].selected === true) { hasSelected = true; break; } }'
284
-                   . "if (!hasSelected) { window.alert(\"{$eltmsg}\"); selectBox.focus(); return false; }";
285
-        }
282
+			return "\nvar hasSelected = false; var selectBox = myform.{$eltname};"
283
+				   . 'for (i = 0; i < selectBox.options.length; i++ ) { if (selectBox.options[i].selected === true) { hasSelected = true; break; } }'
284
+				   . "if (!hasSelected) { window.alert(\"{$eltmsg}\"); selectBox.focus(); return false; }";
285
+		}
286 286
 
287
-        return '';
288
-    }
287
+		return '';
288
+	}
289 289
 }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -94,12 +94,12 @@  discard block
 block discarded – undo
94 94
         $this->setCaption($caption);
95 95
         $this->setName($name);
96 96
         $this->_multiple = $multiple;
97
-        $this->_size     = (int)$size;
97
+        $this->_size     = (int) $size;
98 98
         if (isset($value)) {
99 99
             $this->setValue($value);
100 100
         }
101 101
         $this->addOption('0', \_MI_SONGLIST_NONE);
102
-        if (-1 == $id) {
102
+        if (-1==$id) {
103 103
             if (!isset($_form_object_options['songs'][$field][$id])) {
104 104
                 $songsHandler = Helper::getInstance()->getHandler('Songs');
105 105
                 $criteria     = new \Criteria('');
@@ -111,7 +111,7 @@  discard block
 block discarded – undo
111 111
             }
112 112
         } elseif (!isset($_form_object_options['songs'][$field][$id])) {
113 113
                 $songsHandler = Helper::getInstance()->getHandler('Songs');
114
-                $criteria     = new \Criteria('`' . $field . '`', $id);
114
+                $criteria     = new \Criteria('`'.$field.'`', $id);
115 115
                 $criteria->setSort('title');
116 116
                 $criteria->setOrder('ASC');
117 117
                 foreach ($songsHandler->getObjects($criteria) as $id => $obj) {
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
     {
174 174
         if (\is_array($value)) {
175 175
             foreach ($value as $v) {
176
-                $this->_value[] = (int)$v;
176
+                $this->_value[] = (int) $v;
177 177
             }
178 178
 //            $this->_value[] = array_values($value);
179 179
         } elseif (isset($value)) {
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
      */
190 190
     public function addOption($value, $name = ''): void
191 191
     {
192
-        if ('' != $name) {
192
+        if (''!=$name) {
193 193
             $this->_options[$value] = $name;
194 194
         } else {
195 195
             $this->_options[$value] = $value;
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
         }
226 226
         $value = [];
227 227
         foreach ($this->_options as $val => $name) {
228
-            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode > 1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
228
+            $value[$encode ? \htmlspecialchars($val, \ENT_QUOTES) : $val] = ($encode>1) ? \htmlspecialchars($name, \ENT_QUOTES) : $name;
229 229
         }
230 230
 
231 231
         return $value;
@@ -242,18 +242,18 @@  discard block
 block discarded – undo
242 242
         $ele_title   = $this->getTitle();
243 243
         $ele_value   = $this->getValue();
244 244
         $ele_options = $this->getOptions();
245
-        $ret         = '<select size="' . $this->getSize() . '"' . $this->getExtra();
245
+        $ret         = '<select size="'.$this->getSize().'"'.$this->getExtra();
246 246
         if ($this->isMultiple()) {
247
-            $ret .= ' name="' . $ele_name . '[]" id="' . $ele_name . '" title="' . $ele_title . '" multiple="multiple">';
247
+            $ret .= ' name="'.$ele_name.'[]" id="'.$ele_name.'" title="'.$ele_title.'" multiple="multiple">';
248 248
         } else {
249
-            $ret .= ' name="' . $ele_name . '" id="' . $ele_name . '" title="' . $ele_title . '">';
249
+            $ret .= ' name="'.$ele_name.'" id="'.$ele_name.'" title="'.$ele_title.'">';
250 250
         }
251 251
         foreach ($ele_options as $value => $name) {
252
-            $ret .= '<option value="' . \htmlspecialchars((string)$value, \ENT_QUOTES) . '"';
253
-            if (\count($ele_value) > 0 && \in_array($value, $ele_value, true)) {
252
+            $ret .= '<option value="'.\htmlspecialchars((string) $value, \ENT_QUOTES).'"';
253
+            if (\count($ele_value)>0 && \in_array($value, $ele_value, true)) {
254 254
                 $ret .= ' selected';
255 255
             }
256
-            $ret .= '>' . $name . '</option>';
256
+            $ret .= '>'.$name.'</option>';
257 257
         }
258 258
         $ret .= '</select>';
259 259
 
Please login to merge, or discard this patch.