@@ -17,98 +17,98 @@ |
||
17 | 17 | */ |
18 | 18 | class Utf8mapHandler extends XoopsPersistableObjectHandler |
19 | 19 | { |
20 | - /** |
|
21 | - * Utf8mapHandler constructor. |
|
22 | - * @param \XoopsDatabase $db |
|
23 | - */ |
|
24 | - public function __construct(XoopsDatabase $db) |
|
25 | - { |
|
26 | - parent::__construct($db, 'songlist_utf8map', Utf8map::class, 'utfid', 'from'); |
|
27 | - } |
|
20 | + /** |
|
21 | + * Utf8mapHandler constructor. |
|
22 | + * @param \XoopsDatabase $db |
|
23 | + */ |
|
24 | + public function __construct(XoopsDatabase $db) |
|
25 | + { |
|
26 | + parent::__construct($db, 'songlist_utf8map', Utf8map::class, 'utfid', 'from'); |
|
27 | + } |
|
28 | 28 | |
29 | - /** |
|
30 | - * @return array |
|
31 | - */ |
|
32 | - public function filterFields(): array |
|
33 | - { |
|
34 | - return ['utfid', 'from', 'to', 'created', 'updated']; |
|
35 | - } |
|
29 | + /** |
|
30 | + * @return array |
|
31 | + */ |
|
32 | + public function filterFields(): array |
|
33 | + { |
|
34 | + return ['utfid', 'from', 'to', 'created', 'updated']; |
|
35 | + } |
|
36 | 36 | |
37 | - /** |
|
38 | - * @param $filter |
|
39 | - * @return \CriteriaCompo |
|
40 | - */ |
|
41 | - public function getFilterCriteria($filter): CriteriaCompo |
|
42 | - { |
|
43 | - $parts = \explode('|', $filter); |
|
44 | - $criteria = new CriteriaCompo(); |
|
45 | - foreach ($parts as $part) { |
|
46 | - $var = \explode(',', $part); |
|
47 | - if (!empty($var[1]) && !\is_numeric($var[0])) { |
|
48 | - $object = $this->create(); |
|
49 | - if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
50 | - || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
51 | - $criteria->add(new Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
52 | - } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
|
53 | - $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
54 | - } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
55 | - $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
56 | - } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
57 | - $criteria->add(new Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
58 | - } |
|
59 | - } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
|
60 | - $criteria->add(new Criteria($var[0], $var[1])); |
|
61 | - } |
|
62 | - } |
|
37 | + /** |
|
38 | + * @param $filter |
|
39 | + * @return \CriteriaCompo |
|
40 | + */ |
|
41 | + public function getFilterCriteria($filter): CriteriaCompo |
|
42 | + { |
|
43 | + $parts = \explode('|', $filter); |
|
44 | + $criteria = new CriteriaCompo(); |
|
45 | + foreach ($parts as $part) { |
|
46 | + $var = \explode(',', $part); |
|
47 | + if (!empty($var[1]) && !\is_numeric($var[0])) { |
|
48 | + $object = $this->create(); |
|
49 | + if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
50 | + || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
51 | + $criteria->add(new Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
52 | + } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
|
53 | + $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
54 | + } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
55 | + $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
56 | + } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
57 | + $criteria->add(new Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
58 | + } |
|
59 | + } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
|
60 | + $criteria->add(new Criteria($var[0], $var[1])); |
|
61 | + } |
|
62 | + } |
|
63 | 63 | |
64 | - return $criteria; |
|
65 | - } |
|
64 | + return $criteria; |
|
65 | + } |
|
66 | 66 | |
67 | - /** |
|
68 | - * @param $filter |
|
69 | - * @param $field |
|
70 | - * @param string $sort |
|
71 | - * @param string $op |
|
72 | - * @param string $fct |
|
73 | - * @return string |
|
74 | - */ |
|
75 | - public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string |
|
76 | - { |
|
77 | - $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct); |
|
78 | - if (\is_object($ele)) { |
|
79 | - return $ele->render(); |
|
80 | - } |
|
67 | + /** |
|
68 | + * @param $filter |
|
69 | + * @param $field |
|
70 | + * @param string $sort |
|
71 | + * @param string $op |
|
72 | + * @param string $fct |
|
73 | + * @return string |
|
74 | + */ |
|
75 | + public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string |
|
76 | + { |
|
77 | + $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct); |
|
78 | + if (\is_object($ele)) { |
|
79 | + return $ele->render(); |
|
80 | + } |
|
81 | 81 | |
82 | - return ' '; |
|
83 | - } |
|
82 | + return ' '; |
|
83 | + } |
|
84 | 84 | |
85 | - /** |
|
86 | - * @param bool $force |
|
87 | - * @return mixed |
|
88 | - */ |
|
89 | - public function insert(XoopsObject $obj, $force = true) |
|
90 | - { |
|
91 | - if ($obj->isNew()) { |
|
92 | - $obj->setVar('created', \time()); |
|
93 | - } else { |
|
94 | - $obj->setVar('updated', \time()); |
|
95 | - } |
|
85 | + /** |
|
86 | + * @param bool $force |
|
87 | + * @return mixed |
|
88 | + */ |
|
89 | + public function insert(XoopsObject $obj, $force = true) |
|
90 | + { |
|
91 | + if ($obj->isNew()) { |
|
92 | + $obj->setVar('created', \time()); |
|
93 | + } else { |
|
94 | + $obj->setVar('updated', \time()); |
|
95 | + } |
|
96 | 96 | |
97 | - return parent::insert($obj, $force); |
|
98 | - } |
|
97 | + return parent::insert($obj, $force); |
|
98 | + } |
|
99 | 99 | |
100 | - /** |
|
101 | - * @param string $phrase |
|
102 | - * @param null $criteria |
|
103 | - * @return string|string[] |
|
104 | - */ |
|
105 | - public function convert($phrase = '', $criteria = null) |
|
106 | - { |
|
107 | - foreach ($this->getObjects($criteria, true) as $utfid => $utf8) { |
|
108 | - $phrase = \str_replace(mb_strtolower($utf8->getVar('from')), \mb_strtolower($utf8->getVar('to')), $phrase); |
|
109 | - $phrase = \str_replace(mb_strtoupper($utf8->getVar('from')), \mb_strtoupper($utf8->getVar('to')), $phrase); |
|
110 | - } |
|
100 | + /** |
|
101 | + * @param string $phrase |
|
102 | + * @param null $criteria |
|
103 | + * @return string|string[] |
|
104 | + */ |
|
105 | + public function convert($phrase = '', $criteria = null) |
|
106 | + { |
|
107 | + foreach ($this->getObjects($criteria, true) as $utfid => $utf8) { |
|
108 | + $phrase = \str_replace(mb_strtolower($utf8->getVar('from')), \mb_strtolower($utf8->getVar('to')), $phrase); |
|
109 | + $phrase = \str_replace(mb_strtoupper($utf8->getVar('from')), \mb_strtoupper($utf8->getVar('to')), $phrase); |
|
110 | + } |
|
111 | 111 | |
112 | - return $phrase; |
|
113 | - } |
|
112 | + return $phrase; |
|
113 | + } |
|
114 | 114 | } |
@@ -8,7 +8,7 @@ discard block |
||
8 | 8 | use XoopsObject; |
9 | 9 | use XoopsPersistableObjectHandler; |
10 | 10 | |
11 | -require_once \dirname(__DIR__) . '/include/songlist.object.php'; |
|
11 | +require_once \dirname(__DIR__).'/include/songlist.object.php'; |
|
12 | 12 | // require_once \dirname(__DIR__) . '/include/songlist.form.php'; |
13 | 13 | use XoopsModules\Songlist\Form\FormController; |
14 | 14 | |
@@ -46,15 +46,15 @@ discard block |
||
46 | 46 | $var = \explode(',', $part); |
47 | 47 | if (!empty($var[1]) && !\is_numeric($var[0])) { |
48 | 48 | $object = $this->create(); |
49 | - if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
50 | - || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
51 | - $criteria->add(new Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
49 | + if (\XOBJ_DTYPE_TXTBOX==$object->vars[$var[0]]['data_type'] |
|
50 | + || \XOBJ_DTYPE_TXTAREA==$object->vars[$var[0]]['data_type']) { |
|
51 | + $criteria->add(new Criteria('`'.$var[0].'`', '%'.$var[1].'%', ($var[2] ?? 'LIKE'))); |
|
52 | 52 | } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
53 | - $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
54 | - } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
55 | - $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
56 | - } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
57 | - $criteria->add(new Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
53 | + $criteria->add(new Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '='))); |
|
54 | + } elseif (\XOBJ_DTYPE_ENUM==$object->vars[$var[0]]['data_type']) { |
|
55 | + $criteria->add(new Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '='))); |
|
56 | + } elseif (\XOBJ_DTYPE_ARRAY==$object->vars[$var[0]]['data_type']) { |
|
57 | + $criteria->add(new Criteria('`'.$var[0].'`', '%"'.$var[1].'";%', ($var[2] ?? 'LIKE'))); |
|
58 | 58 | } |
59 | 59 | } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
60 | 60 | $criteria->add(new Criteria($var[0], $var[1])); |
@@ -11,83 +11,83 @@ |
||
11 | 11 | */ |
12 | 12 | class Genre extends \XoopsObject |
13 | 13 | { |
14 | - /** |
|
15 | - * Genre constructor. |
|
16 | - * @param null $fid |
|
17 | - */ |
|
18 | - public function __construct($fid = null) |
|
19 | - { |
|
20 | - $this->initVar('gid', \XOBJ_DTYPE_INT, 0, false); |
|
21 | - $this->initVar('name', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
22 | - $this->initVar('artists', \XOBJ_DTYPE_INT, 0, false); |
|
23 | - $this->initVar('albums', \XOBJ_DTYPE_INT, 0, false); |
|
24 | - $this->initVar('songs', \XOBJ_DTYPE_INT, 0, false); |
|
25 | - $this->initVar('hits', \XOBJ_DTYPE_INT, 0, false); |
|
26 | - $this->initVar('rank', \XOBJ_DTYPE_DECIMAL, 0, false); |
|
27 | - $this->initVar('votes', \XOBJ_DTYPE_INT, 0, false); |
|
28 | - $this->initVar('created', \XOBJ_DTYPE_INT, 0, false); |
|
29 | - $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false); |
|
30 | - } |
|
14 | + /** |
|
15 | + * Genre constructor. |
|
16 | + * @param null $fid |
|
17 | + */ |
|
18 | + public function __construct($fid = null) |
|
19 | + { |
|
20 | + $this->initVar('gid', \XOBJ_DTYPE_INT, 0, false); |
|
21 | + $this->initVar('name', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
22 | + $this->initVar('artists', \XOBJ_DTYPE_INT, 0, false); |
|
23 | + $this->initVar('albums', \XOBJ_DTYPE_INT, 0, false); |
|
24 | + $this->initVar('songs', \XOBJ_DTYPE_INT, 0, false); |
|
25 | + $this->initVar('hits', \XOBJ_DTYPE_INT, 0, false); |
|
26 | + $this->initVar('rank', \XOBJ_DTYPE_DECIMAL, 0, false); |
|
27 | + $this->initVar('votes', \XOBJ_DTYPE_INT, 0, false); |
|
28 | + $this->initVar('created', \XOBJ_DTYPE_INT, 0, false); |
|
29 | + $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false); |
|
30 | + } |
|
31 | 31 | |
32 | - /** |
|
33 | - * @param bool $as_array |
|
34 | - * @return array|string |
|
35 | - */ |
|
36 | - public function getForm($as_array = false) |
|
37 | - { |
|
38 | - return FormController::getFormGenre($this, $as_array); |
|
39 | - } |
|
32 | + /** |
|
33 | + * @param bool $as_array |
|
34 | + * @return array|string |
|
35 | + */ |
|
36 | + public function getForm($as_array = false) |
|
37 | + { |
|
38 | + return FormController::getFormGenre($this, $as_array); |
|
39 | + } |
|
40 | 40 | |
41 | - /** |
|
42 | - * @return array |
|
43 | - */ |
|
44 | - public function toArray(): array |
|
45 | - { |
|
46 | - $ret = parent::toArray(); |
|
47 | - $form = $this->getForm(true); |
|
48 | - foreach ($form as $key => $element) { |
|
49 | - $ret['form'][$key] = $element->render(); |
|
50 | - } |
|
51 | - foreach (['created', 'updated'] as $key) { |
|
52 | - if ($this->getVar($key) > 0) { |
|
53 | - $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
|
54 | - $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
|
55 | - } |
|
56 | - } |
|
57 | - $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
41 | + /** |
|
42 | + * @return array |
|
43 | + */ |
|
44 | + public function toArray(): array |
|
45 | + { |
|
46 | + $ret = parent::toArray(); |
|
47 | + $form = $this->getForm(true); |
|
48 | + foreach ($form as $key => $element) { |
|
49 | + $ret['form'][$key] = $element->render(); |
|
50 | + } |
|
51 | + foreach (['created', 'updated'] as $key) { |
|
52 | + if ($this->getVar($key) > 0) { |
|
53 | + $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
|
54 | + $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
|
55 | + } |
|
56 | + } |
|
57 | + $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
58 | 58 | |
59 | - return $ret; |
|
60 | - } |
|
59 | + return $ret; |
|
60 | + } |
|
61 | 61 | |
62 | - /** |
|
63 | - * @return string |
|
64 | - */ |
|
65 | - public function getURL(): string |
|
66 | - { |
|
67 | - global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit; |
|
68 | - if ($GLOBALS['songlistModuleConfig']['htaccess']) { |
|
69 | - return XOOPS_URL |
|
70 | - . '/' |
|
71 | - . $GLOBALS['songlistModuleConfig']['baseurl'] |
|
72 | - . '/' |
|
73 | - . $file |
|
74 | - . '/' |
|
75 | - . \urlencode(\str_replace([' ', \chr(9)], '-', $this->getVar('name'))) |
|
76 | - . '/' |
|
77 | - . $op |
|
78 | - . '-' |
|
79 | - . $fct |
|
80 | - . '-' |
|
81 | - . $this->getVar('gid') |
|
82 | - . '-' |
|
83 | - . \urlencode($value) |
|
84 | - . '-' |
|
85 | - . $gid |
|
86 | - . '-' |
|
87 | - . $cid |
|
88 | - . $GLOBALS['songlistModuleConfig']['endofurl']; |
|
89 | - } |
|
62 | + /** |
|
63 | + * @return string |
|
64 | + */ |
|
65 | + public function getURL(): string |
|
66 | + { |
|
67 | + global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit; |
|
68 | + if ($GLOBALS['songlistModuleConfig']['htaccess']) { |
|
69 | + return XOOPS_URL |
|
70 | + . '/' |
|
71 | + . $GLOBALS['songlistModuleConfig']['baseurl'] |
|
72 | + . '/' |
|
73 | + . $file |
|
74 | + . '/' |
|
75 | + . \urlencode(\str_replace([' ', \chr(9)], '-', $this->getVar('name'))) |
|
76 | + . '/' |
|
77 | + . $op |
|
78 | + . '-' |
|
79 | + . $fct |
|
80 | + . '-' |
|
81 | + . $this->getVar('gid') |
|
82 | + . '-' |
|
83 | + . \urlencode($value) |
|
84 | + . '-' |
|
85 | + . $gid |
|
86 | + . '-' |
|
87 | + . $cid |
|
88 | + . $GLOBALS['songlistModuleConfig']['endofurl']; |
|
89 | + } |
|
90 | 90 | |
91 | - return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $this->getVar('gid') . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&cid=' . $cid; |
|
92 | - } |
|
91 | + return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $this->getVar('gid') . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&cid=' . $cid; |
|
92 | + } |
|
93 | 93 | } |
@@ -2,7 +2,7 @@ discard block |
||
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 | |
@@ -49,12 +49,12 @@ discard block |
||
49 | 49 | $ret['form'][$key] = $element->render(); |
50 | 50 | } |
51 | 51 | foreach (['created', 'updated'] as $key) { |
52 | - if ($this->getVar($key) > 0) { |
|
52 | + if ($this->getVar($key)>0) { |
|
53 | 53 | $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
54 | 54 | $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
55 | 55 | } |
56 | 56 | } |
57 | - $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
57 | + $ret['rank'] = \number_format(($this->getVar('rank')>0 && $this->getVar('votes')>0 ? $this->getVar('rank')/$this->getVar('votes') : 0), 2).\_MI_SONGLIST_OFTEN; |
|
58 | 58 | |
59 | 59 | return $ret; |
60 | 60 | } |
@@ -88,6 +88,6 @@ discard block |
||
88 | 88 | . $GLOBALS['songlistModuleConfig']['endofurl']; |
89 | 89 | } |
90 | 90 | |
91 | - return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=' . $op . '&fct=' . $fct . '&id=' . $this->getVar('gid') . '&value=' . \urlencode($value ?? '') . '&gid=' . $gid . '&cid=' . $cid; |
|
91 | + return XOOPS_URL.'/modules/songlist/'.$file.'.php?op='.$op.'&fct='.$fct.'&id='.$this->getVar('gid').'&value='.\urlencode($value ?? '').'&gid='.$gid.'&cid='.$cid; |
|
92 | 92 | } |
93 | 93 | } |
@@ -11,213 +11,213 @@ |
||
11 | 11 | */ |
12 | 12 | class ExtrasHandler extends XoopsPersistableObjectHandler |
13 | 13 | { |
14 | - /** |
|
15 | - * holds reference to {@link ObjectsFieldHandler} object |
|
16 | - */ |
|
17 | - public $_fHandler; |
|
18 | - /** |
|
19 | - * Array of {@link XoopsObjectsField} objects |
|
20 | - * @var array |
|
21 | - */ |
|
22 | - public $_fields = []; |
|
23 | - |
|
24 | - /** |
|
25 | - * ExtrasHandler constructor. |
|
26 | - * @param \XoopsDatabase $db |
|
27 | - */ |
|
28 | - public function __construct(XoopsDatabase $db) |
|
29 | - { |
|
30 | - parent::__construct($db, 'songlist_extra', Extras::class, 'sid'); |
|
31 | - $this->_fHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Field'); |
|
32 | - } |
|
33 | - |
|
34 | - /** |
|
35 | - * create a new {@link Extras} |
|
36 | - * |
|
37 | - * @param bool $isNew Flag the new objects as "new"? |
|
38 | - * |
|
39 | - * @return object {@link Extras} |
|
40 | - */ |
|
41 | - public function &create($isNew = true): object |
|
42 | - { |
|
43 | - $obj = new $this->className($this->loadFields()); |
|
44 | - $obj->handler = $this; |
|
45 | - $obj->setNew(); |
|
46 | - |
|
47 | - return $obj; |
|
48 | - } |
|
49 | - |
|
50 | - /** |
|
51 | - * Get a {@link Extras} |
|
52 | - * |
|
53 | - * @param null $id |
|
54 | - * @param null $fields |
|
55 | - * @return object <a href='psi_element://Extras'>Extras</a> |
|
56 | - */ |
|
57 | - public function get($id = null, $fields = null): object //get($uid, $createOnFailure = true) |
|
58 | - { |
|
59 | - if (null === $fields) { |
|
60 | - $fields = true; |
|
61 | - } |
|
62 | - $obj = parent::get($id); |
|
63 | - if (!\is_object($obj) && $fields) { |
|
64 | - $obj = $this->create(); |
|
65 | - } |
|
66 | - |
|
67 | - return $obj; |
|
68 | - } |
|
69 | - |
|
70 | - /** |
|
71 | - * Create new {@link ObjectsField} object |
|
72 | - * |
|
73 | - * @param bool $isNew |
|
74 | - * |
|
75 | - * @return object |
|
76 | - */ |
|
77 | - public function &createField($isNew = true): object |
|
78 | - { |
|
79 | - $return = $this->_fHandler->create($isNew); |
|
80 | - |
|
81 | - return $return; |
|
82 | - } |
|
83 | - |
|
84 | - /** |
|
85 | - * Load field information |
|
86 | - * |
|
87 | - * @return array|false |
|
88 | - */ |
|
89 | - public function loadFields() |
|
90 | - { |
|
91 | - if (0 == \count($this->_fields)) { |
|
92 | - $this->_fields = $this->_fHandler->loadFields(); |
|
93 | - } |
|
94 | - |
|
95 | - return (0 == $this->_fields || empty($this->_fields) ? false : $this->_fields); |
|
96 | - } |
|
97 | - |
|
98 | - /** |
|
99 | - * @return array |
|
100 | - */ |
|
101 | - public function getPostVars(): array |
|
102 | - { |
|
103 | - return ['sid', 'cid', 'gid', 'aids', 'abid', 'songid', 'title', 'lyrics', 'hits', 'rank', 'votes', 'tags', 'created', 'updated']; |
|
104 | - } |
|
105 | - |
|
106 | - /** |
|
107 | - * @param $criteria |
|
108 | - * @param bool $id_as_key |
|
109 | - * @param bool $as_object |
|
110 | - * @return array |
|
111 | - */ |
|
112 | - public function getFields($criteria, $id_as_key = true, $as_object = true): array |
|
113 | - { |
|
114 | - return $this->_fHandler->getObjects($criteria, $id_as_key, $as_object); |
|
115 | - } |
|
116 | - |
|
117 | - /** |
|
118 | - * Insert a field in the database |
|
119 | - * |
|
120 | - * @param XoopsObject $field |
|
121 | - * @param bool $force |
|
122 | - * @return mixed|void |
|
123 | - */ |
|
124 | - public function insertField($field, $force = false) |
|
125 | - { |
|
126 | - return $this->_fHandler->insert($field, $force); |
|
127 | - } |
|
128 | - |
|
129 | - /** |
|
130 | - * Delete a field from the database |
|
131 | - * |
|
132 | - * @param XoopsObject $field |
|
133 | - * @param bool $force |
|
134 | - * @return bool |
|
135 | - */ |
|
136 | - public function deleteField($field, $force = false) |
|
137 | - { |
|
138 | - return $this->_fHandler->delete($field, $force); |
|
139 | - } |
|
140 | - |
|
141 | - /** |
|
142 | - * Save a new field in the database |
|
143 | - * |
|
144 | - * @param array $vars array of variables, taken from $module->loadInfo('Extras')['field'] |
|
145 | - * @param int $weight |
|
146 | - * @return string |
|
147 | - * @internal param int $categoryid ID of the category to add it to |
|
148 | - * @internal param int $type valuetype of the field |
|
149 | - * @internal param int $moduleid ID of the module, this field belongs to |
|
150 | - */ |
|
151 | - public function saveField($vars, $weight = 0): string |
|
152 | - { |
|
153 | - $field = $this->createField(); |
|
154 | - $field->setVar('field_name', $vars['name']); |
|
155 | - $field->setVar('field_valuetype', $vars['valuetype']); |
|
156 | - $field->setVar('field_type', $vars['type']); |
|
157 | - $field->setVar('field_weight', $weight); |
|
158 | - if (isset($vars['title'])) { |
|
159 | - $field->setVar('field_title', $vars['title']); |
|
160 | - } |
|
161 | - if (isset($vars['description'])) { |
|
162 | - $field->setVar('field_description', $vars['description']); |
|
163 | - } |
|
164 | - if (isset($vars['required'])) { |
|
165 | - $field->setVar('field_required', $vars['required']); //0 = no, 1 = yes |
|
166 | - } |
|
167 | - if (isset($vars['maxlength'])) { |
|
168 | - $field->setVar('field_maxlength', $vars['maxlength']); |
|
169 | - } |
|
170 | - if (isset($vars['default'])) { |
|
171 | - $field->setVar('field_default', $vars['default']); |
|
172 | - } |
|
173 | - if (isset($vars['notnull'])) { |
|
174 | - $field->setVar('field_notnull', $vars['notnull']); |
|
175 | - } |
|
176 | - if (isset($vars['show'])) { |
|
177 | - $field->setVar('field_show', $vars['show']); |
|
178 | - } |
|
179 | - if (isset($vars['edit'])) { |
|
180 | - $field->setVar('field_edit', $vars['edit']); |
|
181 | - } |
|
182 | - if (isset($vars['config'])) { |
|
183 | - $field->setVar('field_config', $vars['config']); |
|
184 | - } |
|
185 | - if (isset($vars['options'])) { |
|
186 | - $field->setVar('field_options', $vars['options']); |
|
187 | - } else { |
|
188 | - $field->setVar('field_options', []); |
|
189 | - } |
|
190 | - if ($this->insertField($field)) { |
|
191 | - $msg = ' Field <b>' . $vars['name'] . '</b> added to the database'; |
|
192 | - } else { |
|
193 | - $msg = ' <span style="color:#ff0000;">ERROR: Could not insert field <b>' . $vars['name'] . '</b> into the database. ' . \implode(' ', $field->getErrors()) . $this->db->error() . '</span>'; |
|
194 | - } |
|
195 | - unset($field); |
|
196 | - |
|
197 | - return $msg; |
|
198 | - } |
|
199 | - |
|
200 | - /** |
|
201 | - * insert a new object in the database |
|
202 | - * |
|
203 | - * @param \XoopsObject $obj reference to the object |
|
204 | - * @param bool $force whether to force the query execution despite security settings |
|
205 | - * @param bool $checkObject check if the object is dirty and clean the attributes |
|
206 | - * |
|
207 | - * @return bool FALSE if failed, TRUE if already present and unchanged or successful |
|
208 | - */ |
|
209 | - public function insert(XoopsObject $obj, $force = false, $checkObject = true): bool |
|
210 | - { |
|
211 | - $uservars = $this->getPostVars(); |
|
212 | - foreach ($uservars as $var) { |
|
213 | - if ('sid' != $var) { |
|
214 | - unset($obj->vars[$var]); |
|
215 | - } |
|
216 | - } |
|
217 | - if (0 == \count($obj->vars)) { |
|
218 | - return true; |
|
219 | - } |
|
220 | - |
|
221 | - return (bool)parent::insert($obj, $force, $checkObject); |
|
222 | - } |
|
14 | + /** |
|
15 | + * holds reference to {@link ObjectsFieldHandler} object |
|
16 | + */ |
|
17 | + public $_fHandler; |
|
18 | + /** |
|
19 | + * Array of {@link XoopsObjectsField} objects |
|
20 | + * @var array |
|
21 | + */ |
|
22 | + public $_fields = []; |
|
23 | + |
|
24 | + /** |
|
25 | + * ExtrasHandler constructor. |
|
26 | + * @param \XoopsDatabase $db |
|
27 | + */ |
|
28 | + public function __construct(XoopsDatabase $db) |
|
29 | + { |
|
30 | + parent::__construct($db, 'songlist_extra', Extras::class, 'sid'); |
|
31 | + $this->_fHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Field'); |
|
32 | + } |
|
33 | + |
|
34 | + /** |
|
35 | + * create a new {@link Extras} |
|
36 | + * |
|
37 | + * @param bool $isNew Flag the new objects as "new"? |
|
38 | + * |
|
39 | + * @return object {@link Extras} |
|
40 | + */ |
|
41 | + public function &create($isNew = true): object |
|
42 | + { |
|
43 | + $obj = new $this->className($this->loadFields()); |
|
44 | + $obj->handler = $this; |
|
45 | + $obj->setNew(); |
|
46 | + |
|
47 | + return $obj; |
|
48 | + } |
|
49 | + |
|
50 | + /** |
|
51 | + * Get a {@link Extras} |
|
52 | + * |
|
53 | + * @param null $id |
|
54 | + * @param null $fields |
|
55 | + * @return object <a href='psi_element://Extras'>Extras</a> |
|
56 | + */ |
|
57 | + public function get($id = null, $fields = null): object //get($uid, $createOnFailure = true) |
|
58 | + { |
|
59 | + if (null === $fields) { |
|
60 | + $fields = true; |
|
61 | + } |
|
62 | + $obj = parent::get($id); |
|
63 | + if (!\is_object($obj) && $fields) { |
|
64 | + $obj = $this->create(); |
|
65 | + } |
|
66 | + |
|
67 | + return $obj; |
|
68 | + } |
|
69 | + |
|
70 | + /** |
|
71 | + * Create new {@link ObjectsField} object |
|
72 | + * |
|
73 | + * @param bool $isNew |
|
74 | + * |
|
75 | + * @return object |
|
76 | + */ |
|
77 | + public function &createField($isNew = true): object |
|
78 | + { |
|
79 | + $return = $this->_fHandler->create($isNew); |
|
80 | + |
|
81 | + return $return; |
|
82 | + } |
|
83 | + |
|
84 | + /** |
|
85 | + * Load field information |
|
86 | + * |
|
87 | + * @return array|false |
|
88 | + */ |
|
89 | + public function loadFields() |
|
90 | + { |
|
91 | + if (0 == \count($this->_fields)) { |
|
92 | + $this->_fields = $this->_fHandler->loadFields(); |
|
93 | + } |
|
94 | + |
|
95 | + return (0 == $this->_fields || empty($this->_fields) ? false : $this->_fields); |
|
96 | + } |
|
97 | + |
|
98 | + /** |
|
99 | + * @return array |
|
100 | + */ |
|
101 | + public function getPostVars(): array |
|
102 | + { |
|
103 | + return ['sid', 'cid', 'gid', 'aids', 'abid', 'songid', 'title', 'lyrics', 'hits', 'rank', 'votes', 'tags', 'created', 'updated']; |
|
104 | + } |
|
105 | + |
|
106 | + /** |
|
107 | + * @param $criteria |
|
108 | + * @param bool $id_as_key |
|
109 | + * @param bool $as_object |
|
110 | + * @return array |
|
111 | + */ |
|
112 | + public function getFields($criteria, $id_as_key = true, $as_object = true): array |
|
113 | + { |
|
114 | + return $this->_fHandler->getObjects($criteria, $id_as_key, $as_object); |
|
115 | + } |
|
116 | + |
|
117 | + /** |
|
118 | + * Insert a field in the database |
|
119 | + * |
|
120 | + * @param XoopsObject $field |
|
121 | + * @param bool $force |
|
122 | + * @return mixed|void |
|
123 | + */ |
|
124 | + public function insertField($field, $force = false) |
|
125 | + { |
|
126 | + return $this->_fHandler->insert($field, $force); |
|
127 | + } |
|
128 | + |
|
129 | + /** |
|
130 | + * Delete a field from the database |
|
131 | + * |
|
132 | + * @param XoopsObject $field |
|
133 | + * @param bool $force |
|
134 | + * @return bool |
|
135 | + */ |
|
136 | + public function deleteField($field, $force = false) |
|
137 | + { |
|
138 | + return $this->_fHandler->delete($field, $force); |
|
139 | + } |
|
140 | + |
|
141 | + /** |
|
142 | + * Save a new field in the database |
|
143 | + * |
|
144 | + * @param array $vars array of variables, taken from $module->loadInfo('Extras')['field'] |
|
145 | + * @param int $weight |
|
146 | + * @return string |
|
147 | + * @internal param int $categoryid ID of the category to add it to |
|
148 | + * @internal param int $type valuetype of the field |
|
149 | + * @internal param int $moduleid ID of the module, this field belongs to |
|
150 | + */ |
|
151 | + public function saveField($vars, $weight = 0): string |
|
152 | + { |
|
153 | + $field = $this->createField(); |
|
154 | + $field->setVar('field_name', $vars['name']); |
|
155 | + $field->setVar('field_valuetype', $vars['valuetype']); |
|
156 | + $field->setVar('field_type', $vars['type']); |
|
157 | + $field->setVar('field_weight', $weight); |
|
158 | + if (isset($vars['title'])) { |
|
159 | + $field->setVar('field_title', $vars['title']); |
|
160 | + } |
|
161 | + if (isset($vars['description'])) { |
|
162 | + $field->setVar('field_description', $vars['description']); |
|
163 | + } |
|
164 | + if (isset($vars['required'])) { |
|
165 | + $field->setVar('field_required', $vars['required']); //0 = no, 1 = yes |
|
166 | + } |
|
167 | + if (isset($vars['maxlength'])) { |
|
168 | + $field->setVar('field_maxlength', $vars['maxlength']); |
|
169 | + } |
|
170 | + if (isset($vars['default'])) { |
|
171 | + $field->setVar('field_default', $vars['default']); |
|
172 | + } |
|
173 | + if (isset($vars['notnull'])) { |
|
174 | + $field->setVar('field_notnull', $vars['notnull']); |
|
175 | + } |
|
176 | + if (isset($vars['show'])) { |
|
177 | + $field->setVar('field_show', $vars['show']); |
|
178 | + } |
|
179 | + if (isset($vars['edit'])) { |
|
180 | + $field->setVar('field_edit', $vars['edit']); |
|
181 | + } |
|
182 | + if (isset($vars['config'])) { |
|
183 | + $field->setVar('field_config', $vars['config']); |
|
184 | + } |
|
185 | + if (isset($vars['options'])) { |
|
186 | + $field->setVar('field_options', $vars['options']); |
|
187 | + } else { |
|
188 | + $field->setVar('field_options', []); |
|
189 | + } |
|
190 | + if ($this->insertField($field)) { |
|
191 | + $msg = ' Field <b>' . $vars['name'] . '</b> added to the database'; |
|
192 | + } else { |
|
193 | + $msg = ' <span style="color:#ff0000;">ERROR: Could not insert field <b>' . $vars['name'] . '</b> into the database. ' . \implode(' ', $field->getErrors()) . $this->db->error() . '</span>'; |
|
194 | + } |
|
195 | + unset($field); |
|
196 | + |
|
197 | + return $msg; |
|
198 | + } |
|
199 | + |
|
200 | + /** |
|
201 | + * insert a new object in the database |
|
202 | + * |
|
203 | + * @param \XoopsObject $obj reference to the object |
|
204 | + * @param bool $force whether to force the query execution despite security settings |
|
205 | + * @param bool $checkObject check if the object is dirty and clean the attributes |
|
206 | + * |
|
207 | + * @return bool FALSE if failed, TRUE if already present and unchanged or successful |
|
208 | + */ |
|
209 | + public function insert(XoopsObject $obj, $force = false, $checkObject = true): bool |
|
210 | + { |
|
211 | + $uservars = $this->getPostVars(); |
|
212 | + foreach ($uservars as $var) { |
|
213 | + if ('sid' != $var) { |
|
214 | + unset($obj->vars[$var]); |
|
215 | + } |
|
216 | + } |
|
217 | + if (0 == \count($obj->vars)) { |
|
218 | + return true; |
|
219 | + } |
|
220 | + |
|
221 | + return (bool)parent::insert($obj, $force, $checkObject); |
|
222 | + } |
|
223 | 223 | } |
@@ -56,7 +56,7 @@ discard block |
||
56 | 56 | */ |
57 | 57 | public function get($id = null, $fields = null): object //get($uid, $createOnFailure = true) |
58 | 58 | { |
59 | - if (null === $fields) { |
|
59 | + if (null===$fields) { |
|
60 | 60 | $fields = true; |
61 | 61 | } |
62 | 62 | $obj = parent::get($id); |
@@ -88,11 +88,11 @@ discard block |
||
88 | 88 | */ |
89 | 89 | public function loadFields() |
90 | 90 | { |
91 | - if (0 == \count($this->_fields)) { |
|
91 | + if (0==\count($this->_fields)) { |
|
92 | 92 | $this->_fields = $this->_fHandler->loadFields(); |
93 | 93 | } |
94 | 94 | |
95 | - return (0 == $this->_fields || empty($this->_fields) ? false : $this->_fields); |
|
95 | + return (0==$this->_fields || empty($this->_fields) ? false : $this->_fields); |
|
96 | 96 | } |
97 | 97 | |
98 | 98 | /** |
@@ -188,9 +188,9 @@ discard block |
||
188 | 188 | $field->setVar('field_options', []); |
189 | 189 | } |
190 | 190 | if ($this->insertField($field)) { |
191 | - $msg = ' Field <b>' . $vars['name'] . '</b> added to the database'; |
|
191 | + $msg = ' Field <b>'.$vars['name'].'</b> added to the database'; |
|
192 | 192 | } else { |
193 | - $msg = ' <span style="color:#ff0000;">ERROR: Could not insert field <b>' . $vars['name'] . '</b> into the database. ' . \implode(' ', $field->getErrors()) . $this->db->error() . '</span>'; |
|
193 | + $msg = ' <span style="color:#ff0000;">ERROR: Could not insert field <b>'.$vars['name'].'</b> into the database. '.\implode(' ', $field->getErrors()).$this->db->error().'</span>'; |
|
194 | 194 | } |
195 | 195 | unset($field); |
196 | 196 | |
@@ -210,14 +210,14 @@ discard block |
||
210 | 210 | { |
211 | 211 | $uservars = $this->getPostVars(); |
212 | 212 | foreach ($uservars as $var) { |
213 | - if ('sid' != $var) { |
|
213 | + if ('sid'!=$var) { |
|
214 | 214 | unset($obj->vars[$var]); |
215 | 215 | } |
216 | 216 | } |
217 | - if (0 == \count($obj->vars)) { |
|
217 | + if (0==\count($obj->vars)) { |
|
218 | 218 | return true; |
219 | 219 | } |
220 | 220 | |
221 | - return (bool)parent::insert($obj, $force, $checkObject); |
|
221 | + return (bool) parent::insert($obj, $force, $checkObject); |
|
222 | 222 | } |
223 | 223 | } |
@@ -7,165 +7,165 @@ discard block |
||
7 | 7 | */ |
8 | 8 | class CategoryHandler extends \XoopsPersistableObjectHandler |
9 | 9 | { |
10 | - /** |
|
11 | - * CategoryHandler constructor. |
|
12 | - * @param \XoopsDatabase $db |
|
13 | - */ |
|
14 | - public function __construct(\XoopsDatabase $db) |
|
15 | - { |
|
16 | - parent::__construct($db, 'songlist_category', Category::class, 'cid', 'name'); |
|
17 | - } |
|
18 | - |
|
19 | - /** |
|
20 | - * @return array |
|
21 | - */ |
|
22 | - public function filterFields(): array |
|
23 | - { |
|
24 | - return ['cid', 'pid', 'weight', 'name', 'image', 'path', 'artists', 'albums', 'songs', 'hits', 'rank', 'votes', 'created', 'updated']; |
|
25 | - } |
|
26 | - |
|
27 | - /** |
|
28 | - * @param $filter |
|
29 | - * @return \CriteriaCompo |
|
30 | - */ |
|
31 | - public function getFilterCriteria($filter): \CriteriaCompo |
|
32 | - { |
|
33 | - $parts = \explode('|', $filter); |
|
34 | - $criteria = new \CriteriaCompo(); |
|
35 | - foreach ($parts as $part) { |
|
36 | - $var = \explode(',', $part); |
|
37 | - if (!empty($var[1]) && !\is_numeric($var[0])) { |
|
38 | - $object = $this->create(); |
|
39 | - if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
40 | - || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
41 | - $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
42 | - } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
|
43 | - $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
44 | - } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
45 | - $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
46 | - } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
47 | - $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
48 | - } |
|
49 | - } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
|
50 | - $criteria->add(new \Criteria($var[0], $var[1])); |
|
51 | - } |
|
52 | - } |
|
53 | - |
|
54 | - return $criteria; |
|
55 | - } |
|
56 | - |
|
57 | - /** |
|
58 | - * @param $filter |
|
59 | - * @param $field |
|
60 | - * @param string $sort |
|
61 | - * @param string $op |
|
62 | - * @param string $fct |
|
63 | - * @return string |
|
64 | - */ |
|
65 | - public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string |
|
66 | - { |
|
67 | - $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct); |
|
68 | - if (\is_object($ele)) { |
|
69 | - return $ele->render(); |
|
70 | - } |
|
71 | - |
|
72 | - return ' '; |
|
73 | - } |
|
74 | - |
|
75 | - /** |
|
76 | - * @param int $pid |
|
77 | - * @return mixed |
|
78 | - */ |
|
79 | - public function GetCatAndSubCat($pid = 0) |
|
80 | - { |
|
81 | - $categories = $this->getObjects(new \Criteria('pid', $pid), true); |
|
82 | - $langs_array = $this->TreeIDs([], $categories, -1); |
|
83 | - |
|
84 | - return $langs_array; |
|
85 | - } |
|
86 | - |
|
87 | - /** |
|
88 | - * @param $langs_array |
|
89 | - * @param $categories |
|
90 | - * @param $level |
|
91 | - * @return mixed |
|
92 | - */ |
|
93 | - private function TreeIDs($langs_array, $categories, $level) |
|
94 | - { |
|
95 | - foreach ($categories as $catid => $category) { |
|
96 | - $langs_array[$catid] = $catid; |
|
97 | - $categoriesb = $this->getObjects(new \Criteria('pid', $catid), true); |
|
98 | - if ($categoriesb) { |
|
99 | - $langs_array = $this->TreeIDs($langs_array, $categoriesb, $level); |
|
100 | - } |
|
101 | - } |
|
102 | - |
|
103 | - return $langs_array; |
|
104 | - } |
|
105 | - |
|
106 | - /** |
|
107 | - * @param bool $force |
|
108 | - * @return bool|mixed |
|
109 | - */ |
|
110 | - public function insert(\XoopsObject $obj, $force = true) |
|
111 | - { |
|
112 | - if ($obj->isNew()) { |
|
113 | - $obj->setVar('created', \time()); |
|
114 | - } else { |
|
115 | - $obj->setVar('updated', \time()); |
|
116 | - } |
|
117 | - if ('' == $obj->getVar('name')) { |
|
118 | - return false; |
|
119 | - } |
|
120 | - |
|
121 | - return parent::insert($obj, $force); |
|
122 | - } |
|
123 | - |
|
124 | - public $_objects = ['object' => [], 'array' => []]; |
|
125 | - |
|
126 | - /** |
|
127 | - * @param null $id |
|
128 | - * @param null $fields |
|
129 | - * @return \XoopsObject |
|
130 | - */ |
|
131 | - public function get($id = null, $fields = null): \XoopsObject//get($id, $fields = '*') |
|
132 | - { |
|
133 | - $fields = $fields ?: '*'; |
|
134 | - if (!isset($this->_objects['object'][$id])) { |
|
135 | - $this->_objects['object'][$id] = parent::get($id, $fields); |
|
136 | - if (!isset($GLOBALS['songlistAdmin'])) { |
|
137 | - $sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $id; |
|
138 | - $GLOBALS['xoopsDB']->queryF($sql); |
|
139 | - } |
|
140 | - } |
|
141 | - |
|
142 | - return $this->_objects['object'][$id]; |
|
143 | - } |
|
144 | - |
|
145 | - /** |
|
146 | - * @param \XoopsObject $object |
|
147 | - * @param bool $force |
|
148 | - * @return bool |
|
149 | - */ |
|
150 | - public function delete(\XoopsObject $object, $force = true): bool |
|
151 | - { |
|
152 | - parent::delete($object, $force); |
|
153 | - $sql = 'UPDATE ' . $GLOBALS['xoopsDB']->prefix('songlist_songs') . ' SET `cid` = 0 WHERE `cid` = ' . $object->getVar('cid'); |
|
154 | - |
|
155 | - return $GLOBALS['xoopsDB']->queryF($sql); |
|
156 | - } |
|
157 | - |
|
158 | - /** |
|
159 | - * @param \CriteriaElement|\CriteriaCompo $criteria |
|
160 | - * @param bool $id_as_key |
|
161 | - * @param bool $as_object |
|
162 | - * @return array |
|
163 | - */ |
|
164 | - public function &getObjects($criteria = null, $id_as_key = false, $as_object = true): array |
|
165 | - { |
|
166 | - $ret = parent::getObjects($criteria, $id_as_key, $as_object); |
|
167 | - |
|
168 | - /*if (!isset($GLOBALS['songlistAdmin'])) { |
|
10 | + /** |
|
11 | + * CategoryHandler constructor. |
|
12 | + * @param \XoopsDatabase $db |
|
13 | + */ |
|
14 | + public function __construct(\XoopsDatabase $db) |
|
15 | + { |
|
16 | + parent::__construct($db, 'songlist_category', Category::class, 'cid', 'name'); |
|
17 | + } |
|
18 | + |
|
19 | + /** |
|
20 | + * @return array |
|
21 | + */ |
|
22 | + public function filterFields(): array |
|
23 | + { |
|
24 | + return ['cid', 'pid', 'weight', 'name', 'image', 'path', 'artists', 'albums', 'songs', 'hits', 'rank', 'votes', 'created', 'updated']; |
|
25 | + } |
|
26 | + |
|
27 | + /** |
|
28 | + * @param $filter |
|
29 | + * @return \CriteriaCompo |
|
30 | + */ |
|
31 | + public function getFilterCriteria($filter): \CriteriaCompo |
|
32 | + { |
|
33 | + $parts = \explode('|', $filter); |
|
34 | + $criteria = new \CriteriaCompo(); |
|
35 | + foreach ($parts as $part) { |
|
36 | + $var = \explode(',', $part); |
|
37 | + if (!empty($var[1]) && !\is_numeric($var[0])) { |
|
38 | + $object = $this->create(); |
|
39 | + if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
40 | + || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
41 | + $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
42 | + } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
|
43 | + $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
44 | + } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
45 | + $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
46 | + } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
47 | + $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
48 | + } |
|
49 | + } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
|
50 | + $criteria->add(new \Criteria($var[0], $var[1])); |
|
51 | + } |
|
52 | + } |
|
53 | + |
|
54 | + return $criteria; |
|
55 | + } |
|
56 | + |
|
57 | + /** |
|
58 | + * @param $filter |
|
59 | + * @param $field |
|
60 | + * @param string $sort |
|
61 | + * @param string $op |
|
62 | + * @param string $fct |
|
63 | + * @return string |
|
64 | + */ |
|
65 | + public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string |
|
66 | + { |
|
67 | + $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct); |
|
68 | + if (\is_object($ele)) { |
|
69 | + return $ele->render(); |
|
70 | + } |
|
71 | + |
|
72 | + return ' '; |
|
73 | + } |
|
74 | + |
|
75 | + /** |
|
76 | + * @param int $pid |
|
77 | + * @return mixed |
|
78 | + */ |
|
79 | + public function GetCatAndSubCat($pid = 0) |
|
80 | + { |
|
81 | + $categories = $this->getObjects(new \Criteria('pid', $pid), true); |
|
82 | + $langs_array = $this->TreeIDs([], $categories, -1); |
|
83 | + |
|
84 | + return $langs_array; |
|
85 | + } |
|
86 | + |
|
87 | + /** |
|
88 | + * @param $langs_array |
|
89 | + * @param $categories |
|
90 | + * @param $level |
|
91 | + * @return mixed |
|
92 | + */ |
|
93 | + private function TreeIDs($langs_array, $categories, $level) |
|
94 | + { |
|
95 | + foreach ($categories as $catid => $category) { |
|
96 | + $langs_array[$catid] = $catid; |
|
97 | + $categoriesb = $this->getObjects(new \Criteria('pid', $catid), true); |
|
98 | + if ($categoriesb) { |
|
99 | + $langs_array = $this->TreeIDs($langs_array, $categoriesb, $level); |
|
100 | + } |
|
101 | + } |
|
102 | + |
|
103 | + return $langs_array; |
|
104 | + } |
|
105 | + |
|
106 | + /** |
|
107 | + * @param bool $force |
|
108 | + * @return bool|mixed |
|
109 | + */ |
|
110 | + public function insert(\XoopsObject $obj, $force = true) |
|
111 | + { |
|
112 | + if ($obj->isNew()) { |
|
113 | + $obj->setVar('created', \time()); |
|
114 | + } else { |
|
115 | + $obj->setVar('updated', \time()); |
|
116 | + } |
|
117 | + if ('' == $obj->getVar('name')) { |
|
118 | + return false; |
|
119 | + } |
|
120 | + |
|
121 | + return parent::insert($obj, $force); |
|
122 | + } |
|
123 | + |
|
124 | + public $_objects = ['object' => [], 'array' => []]; |
|
125 | + |
|
126 | + /** |
|
127 | + * @param null $id |
|
128 | + * @param null $fields |
|
129 | + * @return \XoopsObject |
|
130 | + */ |
|
131 | + public function get($id = null, $fields = null): \XoopsObject//get($id, $fields = '*') |
|
132 | + { |
|
133 | + $fields = $fields ?: '*'; |
|
134 | + if (!isset($this->_objects['object'][$id])) { |
|
135 | + $this->_objects['object'][$id] = parent::get($id, $fields); |
|
136 | + if (!isset($GLOBALS['songlistAdmin'])) { |
|
137 | + $sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $id; |
|
138 | + $GLOBALS['xoopsDB']->queryF($sql); |
|
139 | + } |
|
140 | + } |
|
141 | + |
|
142 | + return $this->_objects['object'][$id]; |
|
143 | + } |
|
144 | + |
|
145 | + /** |
|
146 | + * @param \XoopsObject $object |
|
147 | + * @param bool $force |
|
148 | + * @return bool |
|
149 | + */ |
|
150 | + public function delete(\XoopsObject $object, $force = true): bool |
|
151 | + { |
|
152 | + parent::delete($object, $force); |
|
153 | + $sql = 'UPDATE ' . $GLOBALS['xoopsDB']->prefix('songlist_songs') . ' SET `cid` = 0 WHERE `cid` = ' . $object->getVar('cid'); |
|
154 | + |
|
155 | + return $GLOBALS['xoopsDB']->queryF($sql); |
|
156 | + } |
|
157 | + |
|
158 | + /** |
|
159 | + * @param \CriteriaElement|\CriteriaCompo $criteria |
|
160 | + * @param bool $id_as_key |
|
161 | + * @param bool $as_object |
|
162 | + * @return array |
|
163 | + */ |
|
164 | + public function &getObjects($criteria = null, $id_as_key = false, $as_object = true): array |
|
165 | + { |
|
166 | + $ret = parent::getObjects($criteria, $id_as_key, $as_object); |
|
167 | + |
|
168 | + /*if (!isset($GLOBALS['songlistAdmin'])) { |
|
169 | 169 | $id = []; |
170 | 170 | foreach($ret as $data) { |
171 | 171 | if ($as_object==true) { |
@@ -186,25 +186,25 @@ discard block |
||
186 | 186 | $GLOBALS['xoopsDB']->queryF($sql); |
187 | 187 | }*/ |
188 | 188 | |
189 | - return $ret; |
|
190 | - } |
|
191 | - |
|
192 | - /** |
|
193 | - * @param int $limit |
|
194 | - * @return array |
|
195 | - */ |
|
196 | - public function getTop($limit = 1): array |
|
197 | - { |
|
198 | - $sql = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit; |
|
199 | - $results = $GLOBALS['xoopsDB']->queryF($sql); |
|
200 | - $ret = []; |
|
201 | - $i = 0; |
|
202 | - while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) { |
|
203 | - $ret[$i] = $this->create(); |
|
204 | - $ret[$i]->assignVars($row); |
|
205 | - ++$i; |
|
206 | - } |
|
207 | - |
|
208 | - return $ret; |
|
209 | - } |
|
189 | + return $ret; |
|
190 | + } |
|
191 | + |
|
192 | + /** |
|
193 | + * @param int $limit |
|
194 | + * @return array |
|
195 | + */ |
|
196 | + public function getTop($limit = 1): array |
|
197 | + { |
|
198 | + $sql = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit; |
|
199 | + $results = $GLOBALS['xoopsDB']->queryF($sql); |
|
200 | + $ret = []; |
|
201 | + $i = 0; |
|
202 | + while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) { |
|
203 | + $ret[$i] = $this->create(); |
|
204 | + $ret[$i]->assignVars($row); |
|
205 | + ++$i; |
|
206 | + } |
|
207 | + |
|
208 | + return $ret; |
|
209 | + } |
|
210 | 210 | } |
@@ -36,15 +36,15 @@ discard block |
||
36 | 36 | $var = \explode(',', $part); |
37 | 37 | if (!empty($var[1]) && !\is_numeric($var[0])) { |
38 | 38 | $object = $this->create(); |
39 | - if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
40 | - || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
41 | - $criteria->add(new \Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
39 | + if (\XOBJ_DTYPE_TXTBOX==$object->vars[$var[0]]['data_type'] |
|
40 | + || \XOBJ_DTYPE_TXTAREA==$object->vars[$var[0]]['data_type']) { |
|
41 | + $criteria->add(new \Criteria('`'.$var[0].'`', '%'.$var[1].'%', ($var[2] ?? 'LIKE'))); |
|
42 | 42 | } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
43 | - $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
44 | - } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
45 | - $criteria->add(new \Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
46 | - } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
47 | - $criteria->add(new \Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
43 | + $criteria->add(new \Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '='))); |
|
44 | + } elseif (\XOBJ_DTYPE_ENUM==$object->vars[$var[0]]['data_type']) { |
|
45 | + $criteria->add(new \Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '='))); |
|
46 | + } elseif (\XOBJ_DTYPE_ARRAY==$object->vars[$var[0]]['data_type']) { |
|
47 | + $criteria->add(new \Criteria('`'.$var[0].'`', '%"'.$var[1].'";%', ($var[2] ?? 'LIKE'))); |
|
48 | 48 | } |
49 | 49 | } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
50 | 50 | $criteria->add(new \Criteria($var[0], $var[1])); |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | } else { |
115 | 115 | $obj->setVar('updated', \time()); |
116 | 116 | } |
117 | - if ('' == $obj->getVar('name')) { |
|
117 | + if (''==$obj->getVar('name')) { |
|
118 | 118 | return false; |
119 | 119 | } |
120 | 120 | |
@@ -134,7 +134,7 @@ discard block |
||
134 | 134 | if (!isset($this->_objects['object'][$id])) { |
135 | 135 | $this->_objects['object'][$id] = parent::get($id, $fields); |
136 | 136 | if (!isset($GLOBALS['songlistAdmin'])) { |
137 | - $sql = 'UPDATE `' . $this->table . '` set hits=hits+1 where `' . $this->keyName . '` = ' . $id; |
|
137 | + $sql = 'UPDATE `'.$this->table.'` set hits=hits+1 where `'.$this->keyName.'` = '.$id; |
|
138 | 138 | $GLOBALS['xoopsDB']->queryF($sql); |
139 | 139 | } |
140 | 140 | } |
@@ -150,7 +150,7 @@ discard block |
||
150 | 150 | public function delete(\XoopsObject $object, $force = true): bool |
151 | 151 | { |
152 | 152 | parent::delete($object, $force); |
153 | - $sql = 'UPDATE ' . $GLOBALS['xoopsDB']->prefix('songlist_songs') . ' SET `cid` = 0 WHERE `cid` = ' . $object->getVar('cid'); |
|
153 | + $sql = 'UPDATE '.$GLOBALS['xoopsDB']->prefix('songlist_songs').' SET `cid` = 0 WHERE `cid` = '.$object->getVar('cid'); |
|
154 | 154 | |
155 | 155 | return $GLOBALS['xoopsDB']->queryF($sql); |
156 | 156 | } |
@@ -195,11 +195,11 @@ discard block |
||
195 | 195 | */ |
196 | 196 | public function getTop($limit = 1): array |
197 | 197 | { |
198 | - $sql = 'SELECT * FROM `' . $this->table . '` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT ' . $limit; |
|
198 | + $sql = 'SELECT * FROM `'.$this->table.'` WHERE `rank`>=0 ORDER BY (`rank`/`votes`) DESC LIMIT '.$limit; |
|
199 | 199 | $results = $GLOBALS['xoopsDB']->queryF($sql); |
200 | 200 | $ret = []; |
201 | 201 | $i = 0; |
202 | - while (false !== ($row = $GLOBALS['xoopsDB']->fetchArray($results))) { |
|
202 | + while (false!==($row = $GLOBALS['xoopsDB']->fetchArray($results))) { |
|
203 | 203 | $ret[$i] = $this->create(); |
204 | 204 | $ret[$i]->assignVars($row); |
205 | 205 | ++$i; |
@@ -14,54 +14,54 @@ |
||
14 | 14 | */ |
15 | 15 | class Requests extends XoopsObject |
16 | 16 | { |
17 | - /** |
|
18 | - * Requests constructor. |
|
19 | - * @param null $fid |
|
20 | - */ |
|
21 | - public function __construct($fid = null) |
|
22 | - { |
|
23 | - $this->initVar('rid', \XOBJ_DTYPE_INT, 0, false); |
|
24 | - $this->initVar('aid', \XOBJ_DTYPE_INT, 0, false); |
|
25 | - $this->initVar('artist', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
26 | - $this->initVar('album', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
27 | - $this->initVar('title', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
28 | - $this->initVar('lyrics', \XOBJ_DTYPE_OTHER, null, false); |
|
29 | - $this->initVar('uid', \XOBJ_DTYPE_INT, 0, false); |
|
30 | - $this->initVar('name', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
31 | - $this->initVar('email', \XOBJ_DTYPE_TXTBOX, null, false, 255); |
|
32 | - $this->initVar('songid', \XOBJ_DTYPE_TXTBOX, null, false, 32); |
|
33 | - $this->initVar('sid', \XOBJ_DTYPE_INT, 0, false); |
|
34 | - $this->initVar('created', \XOBJ_DTYPE_INT, 0, false); |
|
35 | - $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false); |
|
36 | - } |
|
17 | + /** |
|
18 | + * Requests constructor. |
|
19 | + * @param null $fid |
|
20 | + */ |
|
21 | + public function __construct($fid = null) |
|
22 | + { |
|
23 | + $this->initVar('rid', \XOBJ_DTYPE_INT, 0, false); |
|
24 | + $this->initVar('aid', \XOBJ_DTYPE_INT, 0, false); |
|
25 | + $this->initVar('artist', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
26 | + $this->initVar('album', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
27 | + $this->initVar('title', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
28 | + $this->initVar('lyrics', \XOBJ_DTYPE_OTHER, null, false); |
|
29 | + $this->initVar('uid', \XOBJ_DTYPE_INT, 0, false); |
|
30 | + $this->initVar('name', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
31 | + $this->initVar('email', \XOBJ_DTYPE_TXTBOX, null, false, 255); |
|
32 | + $this->initVar('songid', \XOBJ_DTYPE_TXTBOX, null, false, 32); |
|
33 | + $this->initVar('sid', \XOBJ_DTYPE_INT, 0, false); |
|
34 | + $this->initVar('created', \XOBJ_DTYPE_INT, 0, false); |
|
35 | + $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false); |
|
36 | + } |
|
37 | 37 | |
38 | - /** |
|
39 | - * @param bool $as_array |
|
40 | - * @return array|string |
|
41 | - */ |
|
42 | - public function getForm($as_array = false) |
|
43 | - { |
|
44 | - return FormController::getFormRequests($this, $as_array); |
|
45 | - } |
|
38 | + /** |
|
39 | + * @param bool $as_array |
|
40 | + * @return array|string |
|
41 | + */ |
|
42 | + public function getForm($as_array = false) |
|
43 | + { |
|
44 | + return FormController::getFormRequests($this, $as_array); |
|
45 | + } |
|
46 | 46 | |
47 | - /** |
|
48 | - * @return array |
|
49 | - */ |
|
50 | - public function toArray(): array |
|
51 | - { |
|
52 | - $ret = parent::toArray(); |
|
53 | - $form = $this->getForm(true); |
|
54 | - $form['songid'] = new XoopsFormText('', $this->getVar('rid') . '[songid]', 11, 32); |
|
55 | - foreach ($form as $key => $element) { |
|
56 | - $ret['form'][$key] = $element->render(); |
|
57 | - } |
|
58 | - foreach (['created', 'updated'] as $key) { |
|
59 | - if ($this->getVar($key) > 0) { |
|
60 | - $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
|
61 | - $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
|
62 | - } |
|
63 | - } |
|
47 | + /** |
|
48 | + * @return array |
|
49 | + */ |
|
50 | + public function toArray(): array |
|
51 | + { |
|
52 | + $ret = parent::toArray(); |
|
53 | + $form = $this->getForm(true); |
|
54 | + $form['songid'] = new XoopsFormText('', $this->getVar('rid') . '[songid]', 11, 32); |
|
55 | + foreach ($form as $key => $element) { |
|
56 | + $ret['form'][$key] = $element->render(); |
|
57 | + } |
|
58 | + foreach (['created', 'updated'] as $key) { |
|
59 | + if ($this->getVar($key) > 0) { |
|
60 | + $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
|
61 | + $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
|
62 | + } |
|
63 | + } |
|
64 | 64 | |
65 | - return $ret; |
|
66 | - } |
|
65 | + return $ret; |
|
66 | + } |
|
67 | 67 | } |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | use XoopsFormText; |
6 | 6 | use XoopsObject; |
7 | 7 | |
8 | -require_once \dirname(__DIR__) . '/include/songlist.object.php'; |
|
8 | +require_once \dirname(__DIR__).'/include/songlist.object.php'; |
|
9 | 9 | // require_once \dirname(__DIR__) . '/include/songlist.form.php'; |
10 | 10 | use XoopsModules\Songlist\Form\FormController; |
11 | 11 | |
@@ -51,12 +51,12 @@ discard block |
||
51 | 51 | { |
52 | 52 | $ret = parent::toArray(); |
53 | 53 | $form = $this->getForm(true); |
54 | - $form['songid'] = new XoopsFormText('', $this->getVar('rid') . '[songid]', 11, 32); |
|
54 | + $form['songid'] = new XoopsFormText('', $this->getVar('rid').'[songid]', 11, 32); |
|
55 | 55 | foreach ($form as $key => $element) { |
56 | 56 | $ret['form'][$key] = $element->render(); |
57 | 57 | } |
58 | 58 | foreach (['created', 'updated'] as $key) { |
59 | - if ($this->getVar($key) > 0) { |
|
59 | + if ($this->getVar($key)>0) { |
|
60 | 60 | $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
61 | 61 | $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
62 | 62 | } |
@@ -9,94 +9,94 @@ |
||
9 | 9 | */ |
10 | 10 | class Category extends \XoopsObject |
11 | 11 | { |
12 | - /** |
|
13 | - * Category constructor. |
|
14 | - * @param null $fid |
|
15 | - */ |
|
16 | - public function __construct($fid = null) |
|
17 | - { |
|
18 | - $this->initVar('cid', \XOBJ_DTYPE_INT, 0, false); |
|
19 | - $this->initVar('pid', \XOBJ_DTYPE_INT, 0, false); |
|
20 | - $this->initVar('weight', \XOBJ_DTYPE_INT, 1, false); |
|
21 | - $this->initVar('name', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
22 | - $this->initVar('description', \XOBJ_DTYPE_OTHER, null, false); |
|
23 | - $this->initVar('image', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
24 | - $this->initVar('path', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
25 | - $this->initVar('artists', \XOBJ_DTYPE_INT, 0, false); |
|
26 | - $this->initVar('albums', \XOBJ_DTYPE_INT, 0, false); |
|
27 | - $this->initVar('songs', \XOBJ_DTYPE_INT, 0, false); |
|
28 | - $this->initVar('hits', \XOBJ_DTYPE_INT, 0, false); |
|
29 | - $this->initVar('rank', \XOBJ_DTYPE_DECIMAL, 0, false); |
|
30 | - $this->initVar('votes', \XOBJ_DTYPE_INT, 0, false); |
|
31 | - $this->initVar('created', \XOBJ_DTYPE_INT, 0, false); |
|
32 | - $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false); |
|
33 | - } |
|
12 | + /** |
|
13 | + * Category constructor. |
|
14 | + * @param null $fid |
|
15 | + */ |
|
16 | + public function __construct($fid = null) |
|
17 | + { |
|
18 | + $this->initVar('cid', \XOBJ_DTYPE_INT, 0, false); |
|
19 | + $this->initVar('pid', \XOBJ_DTYPE_INT, 0, false); |
|
20 | + $this->initVar('weight', \XOBJ_DTYPE_INT, 1, false); |
|
21 | + $this->initVar('name', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
22 | + $this->initVar('description', \XOBJ_DTYPE_OTHER, null, false); |
|
23 | + $this->initVar('image', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
24 | + $this->initVar('path', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
25 | + $this->initVar('artists', \XOBJ_DTYPE_INT, 0, false); |
|
26 | + $this->initVar('albums', \XOBJ_DTYPE_INT, 0, false); |
|
27 | + $this->initVar('songs', \XOBJ_DTYPE_INT, 0, false); |
|
28 | + $this->initVar('hits', \XOBJ_DTYPE_INT, 0, false); |
|
29 | + $this->initVar('rank', \XOBJ_DTYPE_DECIMAL, 0, false); |
|
30 | + $this->initVar('votes', \XOBJ_DTYPE_INT, 0, false); |
|
31 | + $this->initVar('created', \XOBJ_DTYPE_INT, 0, false); |
|
32 | + $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false); |
|
33 | + } |
|
34 | 34 | |
35 | - /** |
|
36 | - * @param bool $as_array |
|
37 | - * @return array|string |
|
38 | - */ |
|
39 | - public function getForm($as_array = false) |
|
40 | - { |
|
41 | - return FormController::getFormCategory($this, $as_array); |
|
42 | - } |
|
35 | + /** |
|
36 | + * @param bool $as_array |
|
37 | + * @return array|string |
|
38 | + */ |
|
39 | + public function getForm($as_array = false) |
|
40 | + { |
|
41 | + return FormController::getFormCategory($this, $as_array); |
|
42 | + } |
|
43 | 43 | |
44 | - /** |
|
45 | - * @return array |
|
46 | - */ |
|
47 | - public function toArray(): array |
|
48 | - { |
|
49 | - $ret = parent::toArray(); |
|
50 | - $form = $this->getForm(true); |
|
51 | - foreach ($form as $key => $element) { |
|
52 | - $ret['form'][$key] = $element->render(); |
|
53 | - } |
|
54 | - foreach (['created', 'updated'] as $key) { |
|
55 | - if ($this->getVar($key) > 0) { |
|
56 | - $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
|
57 | - $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
|
58 | - } |
|
59 | - } |
|
60 | - $ret['picture'] = $this->getImage('image', false); |
|
61 | - $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
62 | - $ret['url'] = $this->getURL(); |
|
63 | - $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category'); |
|
64 | - if ($categoryHandler->getCount(new \Criteria('pid', $this->getVar('cid')))) { |
|
65 | - foreach ($categoryHandler->getObjects(new \Criteria('pid', $this->getVar('cid')), true) as $cid => $cat) { |
|
66 | - $ret['subcategories'][$cid] = $cat->toArray(); |
|
67 | - } |
|
68 | - } |
|
44 | + /** |
|
45 | + * @return array |
|
46 | + */ |
|
47 | + public function toArray(): array |
|
48 | + { |
|
49 | + $ret = parent::toArray(); |
|
50 | + $form = $this->getForm(true); |
|
51 | + foreach ($form as $key => $element) { |
|
52 | + $ret['form'][$key] = $element->render(); |
|
53 | + } |
|
54 | + foreach (['created', 'updated'] as $key) { |
|
55 | + if ($this->getVar($key) > 0) { |
|
56 | + $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
|
57 | + $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
|
58 | + } |
|
59 | + } |
|
60 | + $ret['picture'] = $this->getImage('image', false); |
|
61 | + $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
62 | + $ret['url'] = $this->getURL(); |
|
63 | + $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category'); |
|
64 | + if ($categoryHandler->getCount(new \Criteria('pid', $this->getVar('cid')))) { |
|
65 | + foreach ($categoryHandler->getObjects(new \Criteria('pid', $this->getVar('cid')), true) as $cid => $cat) { |
|
66 | + $ret['subcategories'][$cid] = $cat->toArray(); |
|
67 | + } |
|
68 | + } |
|
69 | 69 | |
70 | - return $ret; |
|
71 | - } |
|
70 | + return $ret; |
|
71 | + } |
|
72 | 72 | |
73 | - /** |
|
74 | - * @param string $field |
|
75 | - * @param bool $local |
|
76 | - * @return bool|string |
|
77 | - */ |
|
78 | - public function getImage($field = 'image', $local = false) |
|
79 | - { |
|
80 | - if ('' == $this->getVar($field)) { |
|
81 | - return false; |
|
82 | - } |
|
83 | - if (!\file_exists($GLOBALS['xoops']->path($this->getVar('path') . $this->getVar($field)))) { |
|
84 | - return false; |
|
85 | - } |
|
86 | - if (!$local) { |
|
87 | - return XOOPS_URL . '/' . \str_replace(DS, '/', $this->getVar('path')) . $this->getVar($field); |
|
88 | - } |
|
73 | + /** |
|
74 | + * @param string $field |
|
75 | + * @param bool $local |
|
76 | + * @return bool|string |
|
77 | + */ |
|
78 | + public function getImage($field = 'image', $local = false) |
|
79 | + { |
|
80 | + if ('' == $this->getVar($field)) { |
|
81 | + return false; |
|
82 | + } |
|
83 | + if (!\file_exists($GLOBALS['xoops']->path($this->getVar('path') . $this->getVar($field)))) { |
|
84 | + return false; |
|
85 | + } |
|
86 | + if (!$local) { |
|
87 | + return XOOPS_URL . '/' . \str_replace(DS, '/', $this->getVar('path')) . $this->getVar($field); |
|
88 | + } |
|
89 | 89 | |
90 | - return XOOPS_ROOT_PATH . DS . $this->getVar('path') . $this->getVar($field); |
|
91 | - } |
|
90 | + return XOOPS_ROOT_PATH . DS . $this->getVar('path') . $this->getVar($field); |
|
91 | + } |
|
92 | 92 | |
93 | - /** |
|
94 | - * @return string |
|
95 | - */ |
|
96 | - public function getURL(): string |
|
97 | - { |
|
98 | - global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit; |
|
93 | + /** |
|
94 | + * @return string |
|
95 | + */ |
|
96 | + public function getURL(): string |
|
97 | + { |
|
98 | + global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit; |
|
99 | 99 | |
100 | - return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=category&fct=set&id=' . $this->getVar('cid') . '&value=' . \urlencode($file??'') . '&gid=' . $gid . '&cid=' . $cid; |
|
101 | - } |
|
100 | + return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=category&fct=set&id=' . $this->getVar('cid') . '&value=' . \urlencode($file??'') . '&gid=' . $gid . '&cid=' . $cid; |
|
101 | + } |
|
102 | 102 | } |
@@ -52,13 +52,13 @@ discard block |
||
52 | 52 | $ret['form'][$key] = $element->render(); |
53 | 53 | } |
54 | 54 | foreach (['created', 'updated'] as $key) { |
55 | - if ($this->getVar($key) > 0) { |
|
55 | + if ($this->getVar($key)>0) { |
|
56 | 56 | $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
57 | 57 | $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
58 | 58 | } |
59 | 59 | } |
60 | 60 | $ret['picture'] = $this->getImage('image', false); |
61 | - $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
61 | + $ret['rank'] = \number_format(($this->getVar('rank')>0 && $this->getVar('votes')>0 ? $this->getVar('rank')/$this->getVar('votes') : 0), 2).\_MI_SONGLIST_OFTEN; |
|
62 | 62 | $ret['url'] = $this->getURL(); |
63 | 63 | $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category'); |
64 | 64 | if ($categoryHandler->getCount(new \Criteria('pid', $this->getVar('cid')))) { |
@@ -77,17 +77,17 @@ discard block |
||
77 | 77 | */ |
78 | 78 | public function getImage($field = 'image', $local = false) |
79 | 79 | { |
80 | - if ('' == $this->getVar($field)) { |
|
80 | + if (''==$this->getVar($field)) { |
|
81 | 81 | return false; |
82 | 82 | } |
83 | - if (!\file_exists($GLOBALS['xoops']->path($this->getVar('path') . $this->getVar($field)))) { |
|
83 | + if (!\file_exists($GLOBALS['xoops']->path($this->getVar('path').$this->getVar($field)))) { |
|
84 | 84 | return false; |
85 | 85 | } |
86 | 86 | if (!$local) { |
87 | - return XOOPS_URL . '/' . \str_replace(DS, '/', $this->getVar('path')) . $this->getVar($field); |
|
87 | + return XOOPS_URL.'/'.\str_replace(DS, '/', $this->getVar('path')).$this->getVar($field); |
|
88 | 88 | } |
89 | 89 | |
90 | - return XOOPS_ROOT_PATH . DS . $this->getVar('path') . $this->getVar($field); |
|
90 | + return XOOPS_ROOT_PATH.DS.$this->getVar('path').$this->getVar($field); |
|
91 | 91 | } |
92 | 92 | |
93 | 93 | /** |
@@ -97,6 +97,6 @@ discard block |
||
97 | 97 | { |
98 | 98 | global $file, $op, $fct, $id, $value, $gid, $cid, $start, $limit; |
99 | 99 | |
100 | - return XOOPS_URL . '/modules/songlist/' . $file . '.php?op=category&fct=set&id=' . $this->getVar('cid') . '&value=' . \urlencode($file??'') . '&gid=' . $gid . '&cid=' . $cid; |
|
100 | + return XOOPS_URL.'/modules/songlist/'.$file.'.php?op=category&fct=set&id='.$this->getVar('cid').'&value='.\urlencode($file ?? '').'&gid='.$gid.'&cid='.$cid; |
|
101 | 101 | } |
102 | 102 | } |
@@ -15,169 +15,169 @@ |
||
15 | 15 | */ |
16 | 16 | class Songs extends XoopsObject |
17 | 17 | { |
18 | - /** |
|
19 | - * Songs constructor. |
|
20 | - * @param null $fid |
|
21 | - */ |
|
22 | - public function __construct($fid = null) |
|
23 | - { |
|
24 | - $this->initVar('sid', \XOBJ_DTYPE_INT, 0, false); |
|
25 | - $this->initVar('cid', \XOBJ_DTYPE_INT, 0, false); |
|
26 | - $this->initVar('gids', \XOBJ_DTYPE_ARRAY, 0, false); |
|
27 | - $this->initVar('vcid', \XOBJ_DTYPE_INT, 0, false); |
|
28 | - $this->initVar('aids', \XOBJ_DTYPE_ARRAY, [], false); |
|
29 | - $this->initVar('abid', \XOBJ_DTYPE_INT, 0, false); |
|
30 | - $this->initVar('songid', \XOBJ_DTYPE_TXTBOX, null, false, 32); |
|
31 | - $this->initVar('traxid', \XOBJ_DTYPE_TXTBOX, null, false, 32); |
|
32 | - $this->initVar('title', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
33 | - $this->initVar('lyrics', \XOBJ_DTYPE_OTHER, null, false); |
|
34 | - $this->initVar('hits', \XOBJ_DTYPE_INT, 0, false); |
|
35 | - $this->initVar('rank', \XOBJ_DTYPE_DECIMAL, 0, false); |
|
36 | - $this->initVar('votes', \XOBJ_DTYPE_INT, 0, false); |
|
37 | - $this->initVar('tags', \XOBJ_DTYPE_TXTBOX, null, false, 255); |
|
38 | - $this->initVar('mp3', \XOBJ_DTYPE_OTHER, null, false, 500); |
|
39 | - $this->initVar('created', \XOBJ_DTYPE_INT, 0, false); |
|
40 | - $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false); |
|
41 | - } |
|
42 | - |
|
43 | - /** |
|
44 | - * @param bool $as_array |
|
45 | - * @return array|string |
|
46 | - */ |
|
47 | - public function getForm($as_array = false) |
|
48 | - { |
|
49 | - return FormController::getFormSongs($this, $as_array); |
|
50 | - } |
|
51 | - |
|
52 | - /** |
|
53 | - * @param bool $extra |
|
54 | - * @return array |
|
55 | - */ |
|
56 | - public function toArray($extra = true): array |
|
57 | - { |
|
58 | - $ret = parent::toArray(); |
|
59 | - |
|
60 | - $GLOBALS['myts'] = MyTextSanitizer::getInstance(); |
|
61 | - |
|
62 | - $ret['lyrics'] = $GLOBALS['myts']->displayTarea($this->getVar('lyrics'), true, true, true, true, true); |
|
63 | - |
|
64 | - $form = $this->getForm(true); |
|
65 | - foreach ($form as $key => $element) { |
|
66 | - $ret['form'][$key] = $element->render(); |
|
67 | - } |
|
68 | - foreach (['created', 'updated'] as $key) { |
|
69 | - if ($this->getVar($key) > 0) { |
|
70 | - $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
|
71 | - $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
|
72 | - } |
|
73 | - } |
|
74 | - |
|
75 | - $ret['url'] = $this->getURL(); |
|
76 | - |
|
77 | - $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
78 | - |
|
79 | - if (!empty($ret['mp3'])) { |
|
80 | - $ret['mp3'] = '<embed flashvars="playerID=1&bg=0xf8f8f8&leftbg=0x3786b3&lefticon=0x78bee3&rightbg=0x3786b3&rightbghover=0x78bee3&righticon=0x78bee3&righticonhover=0x3786b3&text=0x666666&slider=0x3786b3&track=0xcccccc&border=0x666666&loader=0x78bee3&loop=no&soundFile=' |
|
81 | - . $ret['mp3'] |
|
82 | - . "\" quality='high' menu='false' wmode='transparent' pluginspage='https://www.macromedia.com/go/getflashplayer' src='" |
|
83 | - . XOOPS_URL |
|
84 | - . "/images/form/player.swf' width=290 height=24 type='application/x-shockwave-flash'></embed>"; |
|
85 | - } |
|
86 | - |
|
87 | - $helper = Helper::getInstance(); |
|
88 | - if (1 == $helper->getConfig('tags') |
|
89 | - && \class_exists(\XoopsModules\Tag\Tagbar::class) |
|
90 | - && \xoops_isActiveModule('tag')) { |
|
91 | - $tagbarObj = new \XoopsModules\Tag\Tagbar(); |
|
92 | - $ret['tagbar'] = $tagbarObj->getTagbar($this->getVar('sid'), $this->getVar('cid')); |
|
93 | - } |
|
94 | - |
|
95 | - $extrasHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Extras'); |
|
96 | - $fieldHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Field'); |
|
97 | - $visibilityHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Visibility'); |
|
98 | - |
|
99 | - $extras = $extrasHandler->get($this->getVar('sid')); |
|
100 | - if ($extras) { |
|
101 | - if (\is_object($GLOBALS['xoopsUser'])) { |
|
102 | - $fields_id = $visibilityHandler->getVisibleFields([], $GLOBALS['xoopsUser']->getGroups()); |
|
103 | - } elseif (!\is_object($GLOBALS['xoopsUser'])) { |
|
104 | - $fields_id = $visibilityHandler->getVisibleFields([], []); |
|
105 | - } |
|
106 | - |
|
107 | - if (\count($fields_id) > 0) { |
|
108 | - $criteria = new Criteria('field_id', '(' . \implode(',', $fields_id) . ')', 'IN'); |
|
109 | - $criteria->setSort('field_weight'); |
|
110 | - $fields = $fieldHandler->getObjects($criteria, true); |
|
111 | - foreach ($fields as $id => $field) { |
|
112 | - if (\in_array($this->getVar('cid'), $field->getVar('cids'), true)) { |
|
113 | - $ret['fields'][$id]['title'] = $field->getVar('field_title'); |
|
114 | - if (\is_object($GLOBALS['xoopsUser'])) { |
|
115 | - $ret['fields'][$id]['value'] = htmlspecialchars_decode($field->getOutputValue($GLOBALS['xoopsUser'], $extras)); |
|
116 | - } elseif (!\is_object($GLOBALS['xoopsUser'])) { |
|
117 | - $ret['fields'][$id]['value'] = htmlspecialchars_decode($extras->getVar($field->getVar('field_name'))); |
|
118 | - } |
|
119 | - } |
|
120 | - } |
|
121 | - } |
|
122 | - } |
|
123 | - |
|
124 | - if (!$extra) { |
|
125 | - return $ret; |
|
126 | - } |
|
127 | - |
|
128 | - if (0 != $this->getVar('cid')) { |
|
129 | - $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category'); |
|
130 | - $category = $categoryHandler->get($this->getVar('cid')); |
|
131 | - $ret['category'] = $category->toArray(false); |
|
132 | - } |
|
133 | - |
|
134 | - if (0 != \count($this->getVar('gids'))) { |
|
135 | - $i = 0; |
|
136 | - $genreHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre'); |
|
137 | - $ret['genre'] = ''; |
|
138 | - $genres = $genreHandler->getObjects(new Criteria('gid', '(' . \implode(',', $this->getVar('gids')) . ')', 'IN'), true); |
|
139 | - foreach ($genres as $gid => $genre) { |
|
140 | - $ret['genre_array'][$gid] = $genre->toArray(false); |
|
141 | - ++$i; |
|
142 | - $ret['genre'] .= $genre->getVar('name') . ($i < \count($genres) ? ', ' : ''); |
|
143 | - } |
|
144 | - } |
|
145 | - if (0 != $this->getVar('vcid')) { |
|
146 | - $voiceHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Voice'); |
|
147 | - $voice = $voiceHandler->get($this->getVar('vcid')); |
|
148 | - $ret['voice'] = $voice->toArray(false); |
|
149 | - } |
|
150 | - |
|
151 | - if (0 != \count($this->getVar('aids'))) { |
|
152 | - $artistsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists'); |
|
153 | - foreach ($this->getVar('aids') as $aid) { |
|
154 | - $artist = $artistsHandler->get($aid); |
|
155 | - $ret['artists_array'][$aid] = $artist->toArray(false); |
|
156 | - } |
|
157 | - } |
|
158 | - |
|
159 | - if (0 != $this->getVar('abid')) { |
|
160 | - $albumsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums'); |
|
161 | - $albums = $albumsHandler->get($this->getVar('abid')); |
|
162 | - if (null !== $albums) { |
|
163 | - $ret['albums'] = $albums->toArray(false); |
|
164 | - } |
|
165 | - |
|
166 | - } |
|
167 | - |
|
168 | - return $ret; |
|
169 | - } |
|
170 | - |
|
171 | - /** |
|
172 | - * @return string |
|
173 | - */ |
|
174 | - public function getURL(): string |
|
175 | - { |
|
176 | - global $file, $op, $fct, $id, $value, $vcid, $gid, $cid, $start, $limit; |
|
177 | - if ($GLOBALS['songlistModuleConfig']['htaccess']) { |
|
178 | - return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/index/' . \urlencode(\str_replace([' ', \chr(9)], '-', $this->getVar('title'))) . '/item-item-' . $this->getVar('sid') . $GLOBALS['songlistModuleConfig']['endofurl']; |
|
179 | - } |
|
180 | - |
|
181 | - return XOOPS_URL . '/modules/songlist/index.php?op=item&fct=item&id=' . $this->getVar('sid') . '&value=' . \urlencode($value ?? '') . '&vcid=' . $vcid . '&gid=' . $gid . '&cid=' . $cid; |
|
182 | - } |
|
18 | + /** |
|
19 | + * Songs constructor. |
|
20 | + * @param null $fid |
|
21 | + */ |
|
22 | + public function __construct($fid = null) |
|
23 | + { |
|
24 | + $this->initVar('sid', \XOBJ_DTYPE_INT, 0, false); |
|
25 | + $this->initVar('cid', \XOBJ_DTYPE_INT, 0, false); |
|
26 | + $this->initVar('gids', \XOBJ_DTYPE_ARRAY, 0, false); |
|
27 | + $this->initVar('vcid', \XOBJ_DTYPE_INT, 0, false); |
|
28 | + $this->initVar('aids', \XOBJ_DTYPE_ARRAY, [], false); |
|
29 | + $this->initVar('abid', \XOBJ_DTYPE_INT, 0, false); |
|
30 | + $this->initVar('songid', \XOBJ_DTYPE_TXTBOX, null, false, 32); |
|
31 | + $this->initVar('traxid', \XOBJ_DTYPE_TXTBOX, null, false, 32); |
|
32 | + $this->initVar('title', \XOBJ_DTYPE_TXTBOX, null, false, 128); |
|
33 | + $this->initVar('lyrics', \XOBJ_DTYPE_OTHER, null, false); |
|
34 | + $this->initVar('hits', \XOBJ_DTYPE_INT, 0, false); |
|
35 | + $this->initVar('rank', \XOBJ_DTYPE_DECIMAL, 0, false); |
|
36 | + $this->initVar('votes', \XOBJ_DTYPE_INT, 0, false); |
|
37 | + $this->initVar('tags', \XOBJ_DTYPE_TXTBOX, null, false, 255); |
|
38 | + $this->initVar('mp3', \XOBJ_DTYPE_OTHER, null, false, 500); |
|
39 | + $this->initVar('created', \XOBJ_DTYPE_INT, 0, false); |
|
40 | + $this->initVar('updated', \XOBJ_DTYPE_INT, 0, false); |
|
41 | + } |
|
42 | + |
|
43 | + /** |
|
44 | + * @param bool $as_array |
|
45 | + * @return array|string |
|
46 | + */ |
|
47 | + public function getForm($as_array = false) |
|
48 | + { |
|
49 | + return FormController::getFormSongs($this, $as_array); |
|
50 | + } |
|
51 | + |
|
52 | + /** |
|
53 | + * @param bool $extra |
|
54 | + * @return array |
|
55 | + */ |
|
56 | + public function toArray($extra = true): array |
|
57 | + { |
|
58 | + $ret = parent::toArray(); |
|
59 | + |
|
60 | + $GLOBALS['myts'] = MyTextSanitizer::getInstance(); |
|
61 | + |
|
62 | + $ret['lyrics'] = $GLOBALS['myts']->displayTarea($this->getVar('lyrics'), true, true, true, true, true); |
|
63 | + |
|
64 | + $form = $this->getForm(true); |
|
65 | + foreach ($form as $key => $element) { |
|
66 | + $ret['form'][$key] = $element->render(); |
|
67 | + } |
|
68 | + foreach (['created', 'updated'] as $key) { |
|
69 | + if ($this->getVar($key) > 0) { |
|
70 | + $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
|
71 | + $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
|
72 | + } |
|
73 | + } |
|
74 | + |
|
75 | + $ret['url'] = $this->getURL(); |
|
76 | + |
|
77 | + $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
78 | + |
|
79 | + if (!empty($ret['mp3'])) { |
|
80 | + $ret['mp3'] = '<embed flashvars="playerID=1&bg=0xf8f8f8&leftbg=0x3786b3&lefticon=0x78bee3&rightbg=0x3786b3&rightbghover=0x78bee3&righticon=0x78bee3&righticonhover=0x3786b3&text=0x666666&slider=0x3786b3&track=0xcccccc&border=0x666666&loader=0x78bee3&loop=no&soundFile=' |
|
81 | + . $ret['mp3'] |
|
82 | + . "\" quality='high' menu='false' wmode='transparent' pluginspage='https://www.macromedia.com/go/getflashplayer' src='" |
|
83 | + . XOOPS_URL |
|
84 | + . "/images/form/player.swf' width=290 height=24 type='application/x-shockwave-flash'></embed>"; |
|
85 | + } |
|
86 | + |
|
87 | + $helper = Helper::getInstance(); |
|
88 | + if (1 == $helper->getConfig('tags') |
|
89 | + && \class_exists(\XoopsModules\Tag\Tagbar::class) |
|
90 | + && \xoops_isActiveModule('tag')) { |
|
91 | + $tagbarObj = new \XoopsModules\Tag\Tagbar(); |
|
92 | + $ret['tagbar'] = $tagbarObj->getTagbar($this->getVar('sid'), $this->getVar('cid')); |
|
93 | + } |
|
94 | + |
|
95 | + $extrasHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Extras'); |
|
96 | + $fieldHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Field'); |
|
97 | + $visibilityHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Visibility'); |
|
98 | + |
|
99 | + $extras = $extrasHandler->get($this->getVar('sid')); |
|
100 | + if ($extras) { |
|
101 | + if (\is_object($GLOBALS['xoopsUser'])) { |
|
102 | + $fields_id = $visibilityHandler->getVisibleFields([], $GLOBALS['xoopsUser']->getGroups()); |
|
103 | + } elseif (!\is_object($GLOBALS['xoopsUser'])) { |
|
104 | + $fields_id = $visibilityHandler->getVisibleFields([], []); |
|
105 | + } |
|
106 | + |
|
107 | + if (\count($fields_id) > 0) { |
|
108 | + $criteria = new Criteria('field_id', '(' . \implode(',', $fields_id) . ')', 'IN'); |
|
109 | + $criteria->setSort('field_weight'); |
|
110 | + $fields = $fieldHandler->getObjects($criteria, true); |
|
111 | + foreach ($fields as $id => $field) { |
|
112 | + if (\in_array($this->getVar('cid'), $field->getVar('cids'), true)) { |
|
113 | + $ret['fields'][$id]['title'] = $field->getVar('field_title'); |
|
114 | + if (\is_object($GLOBALS['xoopsUser'])) { |
|
115 | + $ret['fields'][$id]['value'] = htmlspecialchars_decode($field->getOutputValue($GLOBALS['xoopsUser'], $extras)); |
|
116 | + } elseif (!\is_object($GLOBALS['xoopsUser'])) { |
|
117 | + $ret['fields'][$id]['value'] = htmlspecialchars_decode($extras->getVar($field->getVar('field_name'))); |
|
118 | + } |
|
119 | + } |
|
120 | + } |
|
121 | + } |
|
122 | + } |
|
123 | + |
|
124 | + if (!$extra) { |
|
125 | + return $ret; |
|
126 | + } |
|
127 | + |
|
128 | + if (0 != $this->getVar('cid')) { |
|
129 | + $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category'); |
|
130 | + $category = $categoryHandler->get($this->getVar('cid')); |
|
131 | + $ret['category'] = $category->toArray(false); |
|
132 | + } |
|
133 | + |
|
134 | + if (0 != \count($this->getVar('gids'))) { |
|
135 | + $i = 0; |
|
136 | + $genreHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre'); |
|
137 | + $ret['genre'] = ''; |
|
138 | + $genres = $genreHandler->getObjects(new Criteria('gid', '(' . \implode(',', $this->getVar('gids')) . ')', 'IN'), true); |
|
139 | + foreach ($genres as $gid => $genre) { |
|
140 | + $ret['genre_array'][$gid] = $genre->toArray(false); |
|
141 | + ++$i; |
|
142 | + $ret['genre'] .= $genre->getVar('name') . ($i < \count($genres) ? ', ' : ''); |
|
143 | + } |
|
144 | + } |
|
145 | + if (0 != $this->getVar('vcid')) { |
|
146 | + $voiceHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Voice'); |
|
147 | + $voice = $voiceHandler->get($this->getVar('vcid')); |
|
148 | + $ret['voice'] = $voice->toArray(false); |
|
149 | + } |
|
150 | + |
|
151 | + if (0 != \count($this->getVar('aids'))) { |
|
152 | + $artistsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists'); |
|
153 | + foreach ($this->getVar('aids') as $aid) { |
|
154 | + $artist = $artistsHandler->get($aid); |
|
155 | + $ret['artists_array'][$aid] = $artist->toArray(false); |
|
156 | + } |
|
157 | + } |
|
158 | + |
|
159 | + if (0 != $this->getVar('abid')) { |
|
160 | + $albumsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums'); |
|
161 | + $albums = $albumsHandler->get($this->getVar('abid')); |
|
162 | + if (null !== $albums) { |
|
163 | + $ret['albums'] = $albums->toArray(false); |
|
164 | + } |
|
165 | + |
|
166 | + } |
|
167 | + |
|
168 | + return $ret; |
|
169 | + } |
|
170 | + |
|
171 | + /** |
|
172 | + * @return string |
|
173 | + */ |
|
174 | + public function getURL(): string |
|
175 | + { |
|
176 | + global $file, $op, $fct, $id, $value, $vcid, $gid, $cid, $start, $limit; |
|
177 | + if ($GLOBALS['songlistModuleConfig']['htaccess']) { |
|
178 | + return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/index/' . \urlencode(\str_replace([' ', \chr(9)], '-', $this->getVar('title'))) . '/item-item-' . $this->getVar('sid') . $GLOBALS['songlistModuleConfig']['endofurl']; |
|
179 | + } |
|
180 | + |
|
181 | + return XOOPS_URL . '/modules/songlist/index.php?op=item&fct=item&id=' . $this->getVar('sid') . '&value=' . \urlencode($value ?? '') . '&vcid=' . $vcid . '&gid=' . $gid . '&cid=' . $cid; |
|
182 | + } |
|
183 | 183 | } |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | use MyTextSanitizer; |
7 | 7 | use XoopsObject; |
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 | |
@@ -66,7 +66,7 @@ discard block |
||
66 | 66 | $ret['form'][$key] = $element->render(); |
67 | 67 | } |
68 | 68 | foreach (['created', 'updated'] as $key) { |
69 | - if ($this->getVar($key) > 0) { |
|
69 | + if ($this->getVar($key)>0) { |
|
70 | 70 | $ret['form'][$key] = \date(_DATESTRING, $this->getVar($key)); |
71 | 71 | $ret[$key] = \date(_DATESTRING, $this->getVar($key)); |
72 | 72 | } |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | |
75 | 75 | $ret['url'] = $this->getURL(); |
76 | 76 | |
77 | - $ret['rank'] = \number_format(($this->getVar('rank') > 0 && $this->getVar('votes') > 0 ? $this->getVar('rank') / $this->getVar('votes') : 0), 2) . \_MI_SONGLIST_OFTEN; |
|
77 | + $ret['rank'] = \number_format(($this->getVar('rank')>0 && $this->getVar('votes')>0 ? $this->getVar('rank')/$this->getVar('votes') : 0), 2).\_MI_SONGLIST_OFTEN; |
|
78 | 78 | |
79 | 79 | if (!empty($ret['mp3'])) { |
80 | 80 | $ret['mp3'] = '<embed flashvars="playerID=1&bg=0xf8f8f8&leftbg=0x3786b3&lefticon=0x78bee3&rightbg=0x3786b3&rightbghover=0x78bee3&righticon=0x78bee3&righticonhover=0x3786b3&text=0x666666&slider=0x3786b3&track=0xcccccc&border=0x666666&loader=0x78bee3&loop=no&soundFile=' |
@@ -85,7 +85,7 @@ discard block |
||
85 | 85 | } |
86 | 86 | |
87 | 87 | $helper = Helper::getInstance(); |
88 | - if (1 == $helper->getConfig('tags') |
|
88 | + if (1==$helper->getConfig('tags') |
|
89 | 89 | && \class_exists(\XoopsModules\Tag\Tagbar::class) |
90 | 90 | && \xoops_isActiveModule('tag')) { |
91 | 91 | $tagbarObj = new \XoopsModules\Tag\Tagbar(); |
@@ -104,8 +104,8 @@ discard block |
||
104 | 104 | $fields_id = $visibilityHandler->getVisibleFields([], []); |
105 | 105 | } |
106 | 106 | |
107 | - if (\count($fields_id) > 0) { |
|
108 | - $criteria = new Criteria('field_id', '(' . \implode(',', $fields_id) . ')', 'IN'); |
|
107 | + if (\count($fields_id)>0) { |
|
108 | + $criteria = new Criteria('field_id', '('.\implode(',', $fields_id).')', 'IN'); |
|
109 | 109 | $criteria->setSort('field_weight'); |
110 | 110 | $fields = $fieldHandler->getObjects($criteria, true); |
111 | 111 | foreach ($fields as $id => $field) { |
@@ -125,30 +125,30 @@ discard block |
||
125 | 125 | return $ret; |
126 | 126 | } |
127 | 127 | |
128 | - if (0 != $this->getVar('cid')) { |
|
128 | + if (0!=$this->getVar('cid')) { |
|
129 | 129 | $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category'); |
130 | 130 | $category = $categoryHandler->get($this->getVar('cid')); |
131 | 131 | $ret['category'] = $category->toArray(false); |
132 | 132 | } |
133 | 133 | |
134 | - if (0 != \count($this->getVar('gids'))) { |
|
134 | + if (0!=\count($this->getVar('gids'))) { |
|
135 | 135 | $i = 0; |
136 | 136 | $genreHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre'); |
137 | 137 | $ret['genre'] = ''; |
138 | - $genres = $genreHandler->getObjects(new Criteria('gid', '(' . \implode(',', $this->getVar('gids')) . ')', 'IN'), true); |
|
138 | + $genres = $genreHandler->getObjects(new Criteria('gid', '('.\implode(',', $this->getVar('gids')).')', 'IN'), true); |
|
139 | 139 | foreach ($genres as $gid => $genre) { |
140 | 140 | $ret['genre_array'][$gid] = $genre->toArray(false); |
141 | 141 | ++$i; |
142 | - $ret['genre'] .= $genre->getVar('name') . ($i < \count($genres) ? ', ' : ''); |
|
142 | + $ret['genre'] .= $genre->getVar('name').($i<\count($genres) ? ', ' : ''); |
|
143 | 143 | } |
144 | 144 | } |
145 | - if (0 != $this->getVar('vcid')) { |
|
145 | + if (0!=$this->getVar('vcid')) { |
|
146 | 146 | $voiceHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Voice'); |
147 | 147 | $voice = $voiceHandler->get($this->getVar('vcid')); |
148 | 148 | $ret['voice'] = $voice->toArray(false); |
149 | 149 | } |
150 | 150 | |
151 | - if (0 != \count($this->getVar('aids'))) { |
|
151 | + if (0!=\count($this->getVar('aids'))) { |
|
152 | 152 | $artistsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists'); |
153 | 153 | foreach ($this->getVar('aids') as $aid) { |
154 | 154 | $artist = $artistsHandler->get($aid); |
@@ -156,10 +156,10 @@ discard block |
||
156 | 156 | } |
157 | 157 | } |
158 | 158 | |
159 | - if (0 != $this->getVar('abid')) { |
|
159 | + if (0!=$this->getVar('abid')) { |
|
160 | 160 | $albumsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums'); |
161 | 161 | $albums = $albumsHandler->get($this->getVar('abid')); |
162 | - if (null !== $albums) { |
|
162 | + if (null!==$albums) { |
|
163 | 163 | $ret['albums'] = $albums->toArray(false); |
164 | 164 | } |
165 | 165 | |
@@ -175,9 +175,9 @@ discard block |
||
175 | 175 | { |
176 | 176 | global $file, $op, $fct, $id, $value, $vcid, $gid, $cid, $start, $limit; |
177 | 177 | if ($GLOBALS['songlistModuleConfig']['htaccess']) { |
178 | - return XOOPS_URL . '/' . $GLOBALS['songlistModuleConfig']['baseofurl'] . '/index/' . \urlencode(\str_replace([' ', \chr(9)], '-', $this->getVar('title'))) . '/item-item-' . $this->getVar('sid') . $GLOBALS['songlistModuleConfig']['endofurl']; |
|
178 | + return XOOPS_URL.'/'.$GLOBALS['songlistModuleConfig']['baseofurl'].'/index/'.\urlencode(\str_replace([' ', \chr(9)], '-', $this->getVar('title'))).'/item-item-'.$this->getVar('sid').$GLOBALS['songlistModuleConfig']['endofurl']; |
|
179 | 179 | } |
180 | 180 | |
181 | - return XOOPS_URL . '/modules/songlist/index.php?op=item&fct=item&id=' . $this->getVar('sid') . '&value=' . \urlencode($value ?? '') . '&vcid=' . $vcid . '&gid=' . $gid . '&cid=' . $cid; |
|
181 | + return XOOPS_URL.'/modules/songlist/index.php?op=item&fct=item&id='.$this->getVar('sid').'&value='.\urlencode($value ?? '').'&vcid='.$vcid.'&gid='.$gid.'&cid='.$cid; |
|
182 | 182 | } |
183 | 183 | } |
@@ -27,81 +27,81 @@ |
||
27 | 27 | */ |
28 | 28 | class VisibilityHandler extends XoopsPersistableObjectHandler |
29 | 29 | { |
30 | - /** |
|
31 | - * VisibilityHandler constructor. |
|
32 | - * @param \XoopsDatabase $db |
|
33 | - */ |
|
34 | - public function __construct(XoopsDatabase $db) |
|
35 | - { |
|
36 | - parent::__construct($db, 'songlist_visibility', Visibility::class, 'field_id'); |
|
37 | - } |
|
30 | + /** |
|
31 | + * VisibilityHandler constructor. |
|
32 | + * @param \XoopsDatabase $db |
|
33 | + */ |
|
34 | + public function __construct(XoopsDatabase $db) |
|
35 | + { |
|
36 | + parent::__construct($db, 'songlist_visibility', Visibility::class, 'field_id'); |
|
37 | + } |
|
38 | 38 | |
39 | - /** |
|
40 | - * get all objects matching a condition |
|
41 | - * |
|
42 | - * @param \CriteriaElement|null $criteria {@link \CriteriaElement} to match |
|
43 | - * @param null $fields |
|
44 | - * @param bool $asObject |
|
45 | - * @param bool $id_as_key |
|
46 | - * @return array of objects/array <a href='psi_element://XoopsObject'>XoopsObject</a> |
|
47 | - * @internal param array $fields variables to fetch |
|
48 | - * @internal param bool $asObject flag indicating as object, otherwise as array |
|
49 | - * @internal param bool $id_as_key use the ID as key for the array |
|
50 | - */ |
|
51 | - public function &getAll(CriteriaElement $criteria = null, $fields = null, $asObject = true, $id_as_key = true): array //getAll($criteria = null) |
|
52 | - { |
|
53 | - $limit = null; |
|
54 | - $GLOBALS['start'] = null; |
|
55 | - $sql = "SELECT * FROM `{$this->table}`"; |
|
56 | - if (($criteria instanceof \CriteriaCompo) || ($criteria instanceof \Criteria)) { |
|
57 | - $sql .= ' ' . $criteria->renderWhere(); |
|
58 | - $groupby = $criteria->getGroupby(); |
|
59 | - if ($groupby) { |
|
60 | - $sql .= ' ' . $groupby; |
|
61 | - } |
|
62 | - $sort = $criteria->getSort(); |
|
63 | - if ($sort) { |
|
64 | - $sql .= " ORDER BY {$sort} " . $criteria->getOrder(); |
|
65 | - $orderSet = true; |
|
66 | - } |
|
67 | - $limit = $criteria->getLimit(); |
|
68 | - $GLOBALS['start'] = $criteria->getStart(); |
|
69 | - } |
|
70 | - if (empty($orderSet)) { |
|
71 | - $sql .= " ORDER BY `{$this->keyName}` DESC"; |
|
72 | - } |
|
73 | - $result = $this->db->query($sql, $limit, $GLOBALS['start']); |
|
74 | - $ret = []; |
|
75 | - while (false !== ($row = $this->db->fetchArray($result))) { |
|
76 | - $ret[$row['field_id']][] = $row; |
|
77 | - } |
|
39 | + /** |
|
40 | + * get all objects matching a condition |
|
41 | + * |
|
42 | + * @param \CriteriaElement|null $criteria {@link \CriteriaElement} to match |
|
43 | + * @param null $fields |
|
44 | + * @param bool $asObject |
|
45 | + * @param bool $id_as_key |
|
46 | + * @return array of objects/array <a href='psi_element://XoopsObject'>XoopsObject</a> |
|
47 | + * @internal param array $fields variables to fetch |
|
48 | + * @internal param bool $asObject flag indicating as object, otherwise as array |
|
49 | + * @internal param bool $id_as_key use the ID as key for the array |
|
50 | + */ |
|
51 | + public function &getAll(CriteriaElement $criteria = null, $fields = null, $asObject = true, $id_as_key = true): array //getAll($criteria = null) |
|
52 | + { |
|
53 | + $limit = null; |
|
54 | + $GLOBALS['start'] = null; |
|
55 | + $sql = "SELECT * FROM `{$this->table}`"; |
|
56 | + if (($criteria instanceof \CriteriaCompo) || ($criteria instanceof \Criteria)) { |
|
57 | + $sql .= ' ' . $criteria->renderWhere(); |
|
58 | + $groupby = $criteria->getGroupby(); |
|
59 | + if ($groupby) { |
|
60 | + $sql .= ' ' . $groupby; |
|
61 | + } |
|
62 | + $sort = $criteria->getSort(); |
|
63 | + if ($sort) { |
|
64 | + $sql .= " ORDER BY {$sort} " . $criteria->getOrder(); |
|
65 | + $orderSet = true; |
|
66 | + } |
|
67 | + $limit = $criteria->getLimit(); |
|
68 | + $GLOBALS['start'] = $criteria->getStart(); |
|
69 | + } |
|
70 | + if (empty($orderSet)) { |
|
71 | + $sql .= " ORDER BY `{$this->keyName}` DESC"; |
|
72 | + } |
|
73 | + $result = $this->db->query($sql, $limit, $GLOBALS['start']); |
|
74 | + $ret = []; |
|
75 | + while (false !== ($row = $this->db->fetchArray($result))) { |
|
76 | + $ret[$row['field_id']][] = $row; |
|
77 | + } |
|
78 | 78 | |
79 | - return $ret; |
|
80 | - } |
|
79 | + return $ret; |
|
80 | + } |
|
81 | 81 | |
82 | - /** |
|
83 | - * Get fields visible to the $user_groups on a $profile_groups profile |
|
84 | - * |
|
85 | - * @param array $profile_groups groups of the user to be accessed |
|
86 | - * @param array $user_groups groups of the visitor, default as $GLOBALS['xoopsUser'] |
|
87 | - * |
|
88 | - * @return array |
|
89 | - */ |
|
90 | - public function getVisibleFields($profile_groups, $user_groups = []): array |
|
91 | - { |
|
92 | - $profile_groups[] = '0'; |
|
93 | - $user_groups[] = '0'; |
|
94 | - $profile_groups[] = $user_groups[] = 0; |
|
95 | - $sql = "SELECT field_id FROM {$this->table} WHERE profile_group IN (" . \implode(',', $profile_groups) . ')'; |
|
96 | - $sql .= ' AND user_group IN (' . \implode(',', $user_groups) . ')'; |
|
97 | - $field_ids = []; |
|
98 | - $result = $this->db->query($sql); |
|
99 | - if ($result) { |
|
100 | - while ([$field_id] = $this->db->fetchRow($result)) { |
|
101 | - $field_ids[] = $field_id; |
|
102 | - } |
|
103 | - } |
|
82 | + /** |
|
83 | + * Get fields visible to the $user_groups on a $profile_groups profile |
|
84 | + * |
|
85 | + * @param array $profile_groups groups of the user to be accessed |
|
86 | + * @param array $user_groups groups of the visitor, default as $GLOBALS['xoopsUser'] |
|
87 | + * |
|
88 | + * @return array |
|
89 | + */ |
|
90 | + public function getVisibleFields($profile_groups, $user_groups = []): array |
|
91 | + { |
|
92 | + $profile_groups[] = '0'; |
|
93 | + $user_groups[] = '0'; |
|
94 | + $profile_groups[] = $user_groups[] = 0; |
|
95 | + $sql = "SELECT field_id FROM {$this->table} WHERE profile_group IN (" . \implode(',', $profile_groups) . ')'; |
|
96 | + $sql .= ' AND user_group IN (' . \implode(',', $user_groups) . ')'; |
|
97 | + $field_ids = []; |
|
98 | + $result = $this->db->query($sql); |
|
99 | + if ($result) { |
|
100 | + while ([$field_id] = $this->db->fetchRow($result)) { |
|
101 | + $field_ids[] = $field_id; |
|
102 | + } |
|
103 | + } |
|
104 | 104 | |
105 | - return $field_ids; |
|
106 | - } |
|
105 | + return $field_ids; |
|
106 | + } |
|
107 | 107 | } |
@@ -54,14 +54,14 @@ discard block |
||
54 | 54 | $GLOBALS['start'] = null; |
55 | 55 | $sql = "SELECT * FROM `{$this->table}`"; |
56 | 56 | if (($criteria instanceof \CriteriaCompo) || ($criteria instanceof \Criteria)) { |
57 | - $sql .= ' ' . $criteria->renderWhere(); |
|
57 | + $sql .= ' '.$criteria->renderWhere(); |
|
58 | 58 | $groupby = $criteria->getGroupby(); |
59 | 59 | if ($groupby) { |
60 | - $sql .= ' ' . $groupby; |
|
60 | + $sql .= ' '.$groupby; |
|
61 | 61 | } |
62 | 62 | $sort = $criteria->getSort(); |
63 | 63 | if ($sort) { |
64 | - $sql .= " ORDER BY {$sort} " . $criteria->getOrder(); |
|
64 | + $sql .= " ORDER BY {$sort} ".$criteria->getOrder(); |
|
65 | 65 | $orderSet = true; |
66 | 66 | } |
67 | 67 | $limit = $criteria->getLimit(); |
@@ -72,7 +72,7 @@ discard block |
||
72 | 72 | } |
73 | 73 | $result = $this->db->query($sql, $limit, $GLOBALS['start']); |
74 | 74 | $ret = []; |
75 | - while (false !== ($row = $this->db->fetchArray($result))) { |
|
75 | + while (false!==($row = $this->db->fetchArray($result))) { |
|
76 | 76 | $ret[$row['field_id']][] = $row; |
77 | 77 | } |
78 | 78 | |
@@ -92,8 +92,8 @@ discard block |
||
92 | 92 | $profile_groups[] = '0'; |
93 | 93 | $user_groups[] = '0'; |
94 | 94 | $profile_groups[] = $user_groups[] = 0; |
95 | - $sql = "SELECT field_id FROM {$this->table} WHERE profile_group IN (" . \implode(',', $profile_groups) . ')'; |
|
96 | - $sql .= ' AND user_group IN (' . \implode(',', $user_groups) . ')'; |
|
95 | + $sql = "SELECT field_id FROM {$this->table} WHERE profile_group IN (".\implode(',', $profile_groups).')'; |
|
96 | + $sql .= ' AND user_group IN ('.\implode(',', $user_groups).')'; |
|
97 | 97 | $field_ids = []; |
98 | 98 | $result = $this->db->query($sql); |
99 | 99 | if ($result) { |
@@ -17,140 +17,140 @@ |
||
17 | 17 | */ |
18 | 18 | class VotesHandler extends XoopsPersistableObjectHandler |
19 | 19 | { |
20 | - /** |
|
21 | - * VotesHandler constructor. |
|
22 | - * @param \XoopsDatabase $db |
|
23 | - */ |
|
24 | - public function __construct(XoopsDatabase $db) |
|
25 | - { |
|
26 | - parent::__construct($db, 'songlist_votes', Votes::class, 'vid', 'ip'); |
|
27 | - } |
|
28 | - |
|
29 | - /** |
|
30 | - * @return array |
|
31 | - */ |
|
32 | - public function filterFields(): array |
|
33 | - { |
|
34 | - return ['vid', 'sid', 'uid', 'ip', 'netaddy', 'rank']; |
|
35 | - } |
|
36 | - |
|
37 | - /** |
|
38 | - * @param string $filter |
|
39 | - * @return \CriteriaCompo |
|
40 | - */ |
|
41 | - public function getFilterCriteria($filter): CriteriaCompo |
|
42 | - { |
|
43 | - $parts = \explode('|', $filter); |
|
44 | - $criteria = new CriteriaCompo(); |
|
45 | - foreach ($parts as $part) { |
|
46 | - $var = \explode(',', $part); |
|
47 | - if (!empty($var[1]) && !\is_numeric($var[0])) { |
|
48 | - $object = $this->create(); |
|
49 | - if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
50 | - || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
51 | - $criteria->add(new Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
52 | - } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
|
53 | - $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
54 | - } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
55 | - $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
56 | - } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
57 | - $criteria->add(new Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
58 | - } |
|
59 | - } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
|
60 | - $criteria->add(new Criteria($var[0], $var[1])); |
|
61 | - } |
|
62 | - } |
|
63 | - |
|
64 | - return $criteria; |
|
65 | - } |
|
66 | - |
|
67 | - /** |
|
68 | - * @param string $filter |
|
69 | - * @param string $field |
|
70 | - * @param string $sort |
|
71 | - * @param string $op |
|
72 | - * @param string $fct |
|
73 | - * @return string |
|
74 | - */ |
|
75 | - public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string |
|
76 | - { |
|
77 | - $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct); |
|
78 | - if (\is_object($ele)) { |
|
79 | - return $ele->render(); |
|
80 | - } |
|
81 | - |
|
82 | - return ' '; |
|
83 | - } |
|
84 | - |
|
85 | - /** |
|
86 | - * @param bool $force |
|
87 | - * @return mixed |
|
88 | - */ |
|
89 | - public function insert(XoopsObject $obj, $force = true) |
|
90 | - { |
|
91 | - if ($obj->isNew()) { |
|
92 | - $obj->setVar('created', \time()); |
|
93 | - } else { |
|
94 | - $obj->setVar('updated', \time()); |
|
95 | - } |
|
96 | - |
|
97 | - return parent::insert($obj, $force); |
|
98 | - } |
|
99 | - |
|
100 | - /** |
|
101 | - * @param int $sid |
|
102 | - * @param string$value |
|
103 | - * @return bool |
|
104 | - */ |
|
105 | - public function addVote($sid, $value): bool |
|
106 | - { |
|
107 | - $criteria = new CriteriaCompo(new Criteria('sid', $sid)); |
|
108 | - |
|
109 | - $ip = Utility::getIPData(false); |
|
110 | - if ($ip['uid'] > 0) { |
|
111 | - $criteria->add(new Criteria('uid', $ip['uid'])); |
|
112 | - } else { |
|
113 | - $criteria->add(new Criteria('ip', $ip['ip'])); |
|
114 | - $criteria->add(new Criteria('netaddy', $ip['network-addy'])); |
|
115 | - } |
|
116 | - |
|
117 | - if (0 == $this->getCount($criteria) && $sid > 0 && $value > 0) { |
|
118 | - $vote = $this->create(); |
|
119 | - $vote->setVar('sid', $sid); |
|
120 | - $vote->setVar('uid', $ip['uid']); |
|
121 | - $vote->setVar('ip', $ip['ip']); |
|
122 | - $vote->setVar('netaddy', $ip['network-addy']); |
|
123 | - $vote->setVar('rank', $value); |
|
124 | - if ($this->insert($vote)) { |
|
125 | - $songsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Songs'); |
|
126 | - $albumsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums'); |
|
127 | - $artistsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists'); |
|
128 | - $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category'); |
|
129 | - $genreHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre'); |
|
130 | - $voiceHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Voice'); |
|
131 | - |
|
132 | - $song = $songsHandler->get($sid); |
|
133 | - $sql = []; |
|
134 | - $sql[] = 'UPDATE `' . $songsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $songsHandler->keyName . '` = ' . $sid; |
|
135 | - $sql[] = 'UPDATE `' . $categoryHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $categoryHandler->keyName . '` = ' . $song->getVar($categoryHandler->keyName); |
|
136 | - $sql[] = 'UPDATE `' . $genreHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $genreHandler->keyName . '` = ' . $song->getVar($genreHandler->keyName); |
|
137 | - $sql[] = 'UPDATE `' . $voiceHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $voiceHandler->keyName . '` = ' . $song->getVar($voiceHandler->keyName); |
|
138 | - $sql[] = 'UPDATE `' . $albumsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $albumsHandler->keyName . '` = ' . $song->getVar($albumsHandler->keyName); |
|
139 | - foreach ($song->getVar('aids') as $aid) { |
|
140 | - $sql[] = 'UPDATE `' . $artistsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $artistsHandler->keyName . '` = ' . $aid; |
|
141 | - } |
|
142 | - foreach ($sql as $question) { |
|
143 | - $GLOBALS['xoopsDB']->queryF($question); |
|
144 | - } |
|
145 | - \redirect_header($_POST['uri'], 10, \_MD_SONGLIST_MSG_VOTED_FINISHED); |
|
146 | - exit(0); |
|
147 | - } |
|
148 | - \redirect_header($_POST['uri'], 10, \_MD_SONGLIST_MSG_VOTED_ALREADY); |
|
149 | - exit(0); |
|
150 | - } |
|
151 | - \redirect_header($_POST['uri'], 10, \_MD_SONGLIST_MSG_VOTED_SOMETHINGWRONG); |
|
152 | - exit(0); |
|
153 | - |
|
154 | - return false; |
|
155 | - } |
|
20 | + /** |
|
21 | + * VotesHandler constructor. |
|
22 | + * @param \XoopsDatabase $db |
|
23 | + */ |
|
24 | + public function __construct(XoopsDatabase $db) |
|
25 | + { |
|
26 | + parent::__construct($db, 'songlist_votes', Votes::class, 'vid', 'ip'); |
|
27 | + } |
|
28 | + |
|
29 | + /** |
|
30 | + * @return array |
|
31 | + */ |
|
32 | + public function filterFields(): array |
|
33 | + { |
|
34 | + return ['vid', 'sid', 'uid', 'ip', 'netaddy', 'rank']; |
|
35 | + } |
|
36 | + |
|
37 | + /** |
|
38 | + * @param string $filter |
|
39 | + * @return \CriteriaCompo |
|
40 | + */ |
|
41 | + public function getFilterCriteria($filter): CriteriaCompo |
|
42 | + { |
|
43 | + $parts = \explode('|', $filter); |
|
44 | + $criteria = new CriteriaCompo(); |
|
45 | + foreach ($parts as $part) { |
|
46 | + $var = \explode(',', $part); |
|
47 | + if (!empty($var[1]) && !\is_numeric($var[0])) { |
|
48 | + $object = $this->create(); |
|
49 | + if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
50 | + || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
51 | + $criteria->add(new Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
52 | + } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
|
53 | + $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
54 | + } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
55 | + $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
56 | + } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
57 | + $criteria->add(new Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
58 | + } |
|
59 | + } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
|
60 | + $criteria->add(new Criteria($var[0], $var[1])); |
|
61 | + } |
|
62 | + } |
|
63 | + |
|
64 | + return $criteria; |
|
65 | + } |
|
66 | + |
|
67 | + /** |
|
68 | + * @param string $filter |
|
69 | + * @param string $field |
|
70 | + * @param string $sort |
|
71 | + * @param string $op |
|
72 | + * @param string $fct |
|
73 | + * @return string |
|
74 | + */ |
|
75 | + public function getFilterForm($filter, $field, $sort = 'created', $op = 'dashboard', $fct = 'list'): string |
|
76 | + { |
|
77 | + $ele = Utility::getFilterElement($filter, $field, $sort, $op, $fct); |
|
78 | + if (\is_object($ele)) { |
|
79 | + return $ele->render(); |
|
80 | + } |
|
81 | + |
|
82 | + return ' '; |
|
83 | + } |
|
84 | + |
|
85 | + /** |
|
86 | + * @param bool $force |
|
87 | + * @return mixed |
|
88 | + */ |
|
89 | + public function insert(XoopsObject $obj, $force = true) |
|
90 | + { |
|
91 | + if ($obj->isNew()) { |
|
92 | + $obj->setVar('created', \time()); |
|
93 | + } else { |
|
94 | + $obj->setVar('updated', \time()); |
|
95 | + } |
|
96 | + |
|
97 | + return parent::insert($obj, $force); |
|
98 | + } |
|
99 | + |
|
100 | + /** |
|
101 | + * @param int $sid |
|
102 | + * @param string$value |
|
103 | + * @return bool |
|
104 | + */ |
|
105 | + public function addVote($sid, $value): bool |
|
106 | + { |
|
107 | + $criteria = new CriteriaCompo(new Criteria('sid', $sid)); |
|
108 | + |
|
109 | + $ip = Utility::getIPData(false); |
|
110 | + if ($ip['uid'] > 0) { |
|
111 | + $criteria->add(new Criteria('uid', $ip['uid'])); |
|
112 | + } else { |
|
113 | + $criteria->add(new Criteria('ip', $ip['ip'])); |
|
114 | + $criteria->add(new Criteria('netaddy', $ip['network-addy'])); |
|
115 | + } |
|
116 | + |
|
117 | + if (0 == $this->getCount($criteria) && $sid > 0 && $value > 0) { |
|
118 | + $vote = $this->create(); |
|
119 | + $vote->setVar('sid', $sid); |
|
120 | + $vote->setVar('uid', $ip['uid']); |
|
121 | + $vote->setVar('ip', $ip['ip']); |
|
122 | + $vote->setVar('netaddy', $ip['network-addy']); |
|
123 | + $vote->setVar('rank', $value); |
|
124 | + if ($this->insert($vote)) { |
|
125 | + $songsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Songs'); |
|
126 | + $albumsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Albums'); |
|
127 | + $artistsHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Artists'); |
|
128 | + $categoryHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Category'); |
|
129 | + $genreHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Genre'); |
|
130 | + $voiceHandler = \XoopsModules\Songlist\Helper::getInstance()->getHandler('Voice'); |
|
131 | + |
|
132 | + $song = $songsHandler->get($sid); |
|
133 | + $sql = []; |
|
134 | + $sql[] = 'UPDATE `' . $songsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $songsHandler->keyName . '` = ' . $sid; |
|
135 | + $sql[] = 'UPDATE `' . $categoryHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $categoryHandler->keyName . '` = ' . $song->getVar($categoryHandler->keyName); |
|
136 | + $sql[] = 'UPDATE `' . $genreHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $genreHandler->keyName . '` = ' . $song->getVar($genreHandler->keyName); |
|
137 | + $sql[] = 'UPDATE `' . $voiceHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $voiceHandler->keyName . '` = ' . $song->getVar($voiceHandler->keyName); |
|
138 | + $sql[] = 'UPDATE `' . $albumsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $albumsHandler->keyName . '` = ' . $song->getVar($albumsHandler->keyName); |
|
139 | + foreach ($song->getVar('aids') as $aid) { |
|
140 | + $sql[] = 'UPDATE `' . $artistsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $artistsHandler->keyName . '` = ' . $aid; |
|
141 | + } |
|
142 | + foreach ($sql as $question) { |
|
143 | + $GLOBALS['xoopsDB']->queryF($question); |
|
144 | + } |
|
145 | + \redirect_header($_POST['uri'], 10, \_MD_SONGLIST_MSG_VOTED_FINISHED); |
|
146 | + exit(0); |
|
147 | + } |
|
148 | + \redirect_header($_POST['uri'], 10, \_MD_SONGLIST_MSG_VOTED_ALREADY); |
|
149 | + exit(0); |
|
150 | + } |
|
151 | + \redirect_header($_POST['uri'], 10, \_MD_SONGLIST_MSG_VOTED_SOMETHINGWRONG); |
|
152 | + exit(0); |
|
153 | + |
|
154 | + return false; |
|
155 | + } |
|
156 | 156 | } |
@@ -8,7 +8,7 @@ discard block |
||
8 | 8 | use XoopsObject; |
9 | 9 | use XoopsPersistableObjectHandler; |
10 | 10 | |
11 | -require_once \dirname(__DIR__) . '/include/songlist.object.php'; |
|
11 | +require_once \dirname(__DIR__).'/include/songlist.object.php'; |
|
12 | 12 | // require_once \dirname(__DIR__) . '/include/songlist.form.php'; |
13 | 13 | use XoopsModules\Songlist\Form\FormController; |
14 | 14 | |
@@ -46,15 +46,15 @@ discard block |
||
46 | 46 | $var = \explode(',', $part); |
47 | 47 | if (!empty($var[1]) && !\is_numeric($var[0])) { |
48 | 48 | $object = $this->create(); |
49 | - if (\XOBJ_DTYPE_TXTBOX == $object->vars[$var[0]]['data_type'] |
|
50 | - || \XOBJ_DTYPE_TXTAREA == $object->vars[$var[0]]['data_type']) { |
|
51 | - $criteria->add(new Criteria('`' . $var[0] . '`', '%' . $var[1] . '%', ($var[2] ?? 'LIKE'))); |
|
49 | + if (\XOBJ_DTYPE_TXTBOX==$object->vars[$var[0]]['data_type'] |
|
50 | + || \XOBJ_DTYPE_TXTAREA==$object->vars[$var[0]]['data_type']) { |
|
51 | + $criteria->add(new Criteria('`'.$var[0].'`', '%'.$var[1].'%', ($var[2] ?? 'LIKE'))); |
|
52 | 52 | } elseif (in_array($object->vars[$var[0]]['data_type'], [XOBJ_DTYPE_INT, XOBJ_DTYPE_DECIMAL, XOBJ_DTYPE_FLOAT])) { |
53 | - $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
54 | - } elseif (\XOBJ_DTYPE_ENUM == $object->vars[$var[0]]['data_type']) { |
|
55 | - $criteria->add(new Criteria('`' . $var[0] . '`', $var[1], ($var[2] ?? '='))); |
|
56 | - } elseif (\XOBJ_DTYPE_ARRAY == $object->vars[$var[0]]['data_type']) { |
|
57 | - $criteria->add(new Criteria('`' . $var[0] . '`', '%"' . $var[1] . '";%', ($var[2] ?? 'LIKE'))); |
|
53 | + $criteria->add(new Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '='))); |
|
54 | + } elseif (\XOBJ_DTYPE_ENUM==$object->vars[$var[0]]['data_type']) { |
|
55 | + $criteria->add(new Criteria('`'.$var[0].'`', $var[1], ($var[2] ?? '='))); |
|
56 | + } elseif (\XOBJ_DTYPE_ARRAY==$object->vars[$var[0]]['data_type']) { |
|
57 | + $criteria->add(new Criteria('`'.$var[0].'`', '%"'.$var[1].'";%', ($var[2] ?? 'LIKE'))); |
|
58 | 58 | } |
59 | 59 | } elseif (!empty($var[1]) && \is_numeric($var[0])) { |
60 | 60 | $criteria->add(new Criteria($var[0], $var[1])); |
@@ -107,14 +107,14 @@ discard block |
||
107 | 107 | $criteria = new CriteriaCompo(new Criteria('sid', $sid)); |
108 | 108 | |
109 | 109 | $ip = Utility::getIPData(false); |
110 | - if ($ip['uid'] > 0) { |
|
110 | + if ($ip['uid']>0) { |
|
111 | 111 | $criteria->add(new Criteria('uid', $ip['uid'])); |
112 | 112 | } else { |
113 | 113 | $criteria->add(new Criteria('ip', $ip['ip'])); |
114 | 114 | $criteria->add(new Criteria('netaddy', $ip['network-addy'])); |
115 | 115 | } |
116 | 116 | |
117 | - if (0 == $this->getCount($criteria) && $sid > 0 && $value > 0) { |
|
117 | + if (0==$this->getCount($criteria) && $sid>0 && $value>0) { |
|
118 | 118 | $vote = $this->create(); |
119 | 119 | $vote->setVar('sid', $sid); |
120 | 120 | $vote->setVar('uid', $ip['uid']); |
@@ -131,13 +131,13 @@ discard block |
||
131 | 131 | |
132 | 132 | $song = $songsHandler->get($sid); |
133 | 133 | $sql = []; |
134 | - $sql[] = 'UPDATE `' . $songsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $songsHandler->keyName . '` = ' . $sid; |
|
135 | - $sql[] = 'UPDATE `' . $categoryHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $categoryHandler->keyName . '` = ' . $song->getVar($categoryHandler->keyName); |
|
136 | - $sql[] = 'UPDATE `' . $genreHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $genreHandler->keyName . '` = ' . $song->getVar($genreHandler->keyName); |
|
137 | - $sql[] = 'UPDATE `' . $voiceHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $voiceHandler->keyName . '` = ' . $song->getVar($voiceHandler->keyName); |
|
138 | - $sql[] = 'UPDATE `' . $albumsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $albumsHandler->keyName . '` = ' . $song->getVar($albumsHandler->keyName); |
|
134 | + $sql[] = 'UPDATE `'.$songsHandler->table.'` SET `rank` = `rank` + '.$value.', `votes` = `votes` + 1 WHERE `'.$songsHandler->keyName.'` = '.$sid; |
|
135 | + $sql[] = 'UPDATE `'.$categoryHandler->table.'` SET `rank` = `rank` + '.$value.', `votes` = `votes` + 1 WHERE `'.$categoryHandler->keyName.'` = '.$song->getVar($categoryHandler->keyName); |
|
136 | + $sql[] = 'UPDATE `'.$genreHandler->table.'` SET `rank` = `rank` + '.$value.', `votes` = `votes` + 1 WHERE `'.$genreHandler->keyName.'` = '.$song->getVar($genreHandler->keyName); |
|
137 | + $sql[] = 'UPDATE `'.$voiceHandler->table.'` SET `rank` = `rank` + '.$value.', `votes` = `votes` + 1 WHERE `'.$voiceHandler->keyName.'` = '.$song->getVar($voiceHandler->keyName); |
|
138 | + $sql[] = 'UPDATE `'.$albumsHandler->table.'` SET `rank` = `rank` + '.$value.', `votes` = `votes` + 1 WHERE `'.$albumsHandler->keyName.'` = '.$song->getVar($albumsHandler->keyName); |
|
139 | 139 | foreach ($song->getVar('aids') as $aid) { |
140 | - $sql[] = 'UPDATE `' . $artistsHandler->table . '` SET `rank` = `rank` + ' . $value . ', `votes` = `votes` + 1 WHERE `' . $artistsHandler->keyName . '` = ' . $aid; |
|
140 | + $sql[] = 'UPDATE `'.$artistsHandler->table.'` SET `rank` = `rank` + '.$value.', `votes` = `votes` + 1 WHERE `'.$artistsHandler->keyName.'` = '.$aid; |
|
141 | 141 | } |
142 | 142 | foreach ($sql as $question) { |
143 | 143 | $GLOBALS['xoopsDB']->queryF($question); |