1
|
|
|
<?php declare(strict_types=1); |
2
|
|
|
|
3
|
|
|
namespace XoopsModules\Songlist\Form; |
4
|
|
|
|
5
|
|
|
|
6
|
|
|
use Xmf\Request; |
7
|
|
|
use XoopsModules\Songlist; |
8
|
|
|
//use XoopsModules\Songlist\Form\SelectAlbumForm; |
9
|
|
|
//use XoopsModules\Songlist\Form\SelectArtistForm; |
10
|
|
|
//use XoopsModules\Songlist\Form\SelectCategoryForm; |
11
|
|
|
//use XoopsModules\Songlist\Form\SelectGenreForm; |
12
|
|
|
//use XoopsModules\Songlist\Form\SelectVoiceForm; |
13
|
|
|
use XoopsModules\Songlist\Helper; |
14
|
|
|
|
15
|
|
|
xoops_loadLanguage('user'); |
16
|
|
|
|
17
|
|
|
class FormController |
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)); |
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
|
|
|
} |
1316
|
|
|
} |
1317
|
|
|
|