Passed
Pull Request — master (#88)
by Michael
02:56
created

blocks/tdmdownloads_search.php (2 issues)

Labels
Severity
1
<?php declare(strict_types=1);
2
3
/**
4
 * TDMDownload
5
 *
6
 * You may not change or alter any portion of this comment or credits
7
 * of supporting developers from this source code or any supporting source code
8
 * which is considered copyrighted (c) material of the original comment or credit authors.
9
 * This program is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
 *
13
 * @copyright   Gregory Mage (Aka Mage)
14
 * @license     GNU GPL 2 (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
15
 * @author      Gregory Mage (Aka Mage)
16
 */
17
18
use XoopsModules\Tdmdownloads\{
19
    Helper,
20
    Tree};
21
22
/**
23
 * @return array
24
 */
25
function b_tdmdownloads_search_show()
26
{
27
    require dirname(__DIR__) . '/include/common.php';
28
29
    $moduleDirName = basename(dirname(__DIR__));
30
31
    require_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
32
33
    require_once XOOPS_ROOT_PATH . '/class/tree.php';
34
35
    $db = null;
36
37
    /** @var \XoopsModules\Tdmdownloads\Helper $helper */
38
39
    $helper = Helper::getInstance();
40
41
    //appel des class
42
43
    //appel des fichiers de langues
44
45
    $helper->loadLanguage('admin');
46
47
    $helper->loadLanguage('main');
48
49
    $helper->loadLanguage('common');
50
51
    /** @var \XoopsModules\Tdmdownloads\Utility $utility */
52
53
    $utility = new \XoopsModules\Tdmdownloads\Utility();
54
55
    $categories = $utility->getItemIds('tdmdownloads_view', $moduleDirName);
56
57
    /** @var \XoopsModules\Tdmdownloads\CategoryHandler $categoryHandler */
58
59
    $categoryHandler = Helper::getInstance()->getHandler('Category');
60
61
    $block = [];
62
63
    //formulaire de recherche
64
65
    $form = new \XoopsThemeForm(_MD_TDMDOWNLOADS_SEARCH, 'search', XOOPS_URL . '/modules/' . $moduleDirName . '/search.php', 'post');
66
67
    $form->setExtra('enctype="multipart/form-data"');
68
69
    //recherche par titre
70
71
    $form->addElement(new \XoopsFormText(_MD_TDMDOWNLOADS_SEARCH_TITLE, 'title', 25, 255, ''));
72
73
    //recherche par catégorie
74
75
    $criteria = new \CriteriaCompo();
76
77
    $criteria->setSort('cat_weight ASC, cat_title');
78
79
    $criteria->setOrder('ASC');
80
81
    $criteria->add(new \Criteria('cat_cid', '(' . implode(',', $categories) . ')', 'IN'));
82
83
    $downloadscatArray = $categoryHandler->getAll($criteria);
84
85
    $mytree = new Tree($downloadscatArray, 'cat_cid', 'cat_pid');
86
87
    $form->addElement($mytree->makeSelectElement('cat', 'cat_title', '--', '', true, 0, '', _AM_TDMDOWNLOADS_FORMINCAT), true);
88
89
    //recherche champ sup.
90
91
    /** @var \XoopsModules\Tdmdownloads\FieldHandler $fieldHandler */
92
93
    $fieldHandler = Helper::getInstance()->getHandler('Field');
94
95
    $criteria = new \CriteriaCompo();
96
97
    $criteria->add(new \Criteria('search', 1));
98
99
    $criteria->add(new \Criteria('status', 1));
100
101
    $criteria->setSort('weight ASC, title');
102
103
    $criteria->setOrder('ASC');
104
105
    $downloads_field = $fieldHandler->getAll($criteria);
106
107
    $fieldNameBase = '';
108
109
    foreach (array_keys($downloads_field) as $i) {
110
        /** @var \XoopsModules\Tdmdownloads\Field[] $downloads_field */
111
112
        $title_sup = '';
113
114
        $contentArray = [];
115
116
        $lid_arr = [];
117
118
        $fieldName = 'champ' . $downloads_field[$i]->getVar('fid');
119
120
        $criteria = new \CriteriaCompo();
121
122
        $fieldContent[$downloads_field[$i]->getVar('fid')] = 999;
123
124
        if (1 == $downloads_field[$i]->getVar('status_def')) {
125
            $criteria->add(new \Criteria('status', 0, '!='));
126
127
            if (1 == $downloads_field[$i]->getVar('fid')) {
128
                //page d'accueil
129
130
                $title_sup = _AM_TDMDOWNLOADS_FORMHOMEPAGE;
131
132
                $criteria->setSort('homepage');
133
134
                $fieldNameBase = 'homepage';
135
            }
136
137
            if (2 == $downloads_field[$i]->getVar('fid')) {
138
                //version
139
140
                $title_sup = _AM_TDMDOWNLOADS_FORMVERSION;
141
142
                $criteria->setSort('version');
143
144
                $fieldNameBase = 'version';
145
            }
146
147
            if (3 == $downloads_field[$i]->getVar('fid')) {
148
                //taille du fichier
149
150
                $title_sup = _AM_TDMDOWNLOADS_FORMSIZE;
151
152
                $criteria->setSort('size');
153
154
                $fieldNameBase = 'size';
155
            }
156
157
            if (4 == $downloads_field[$i]->getVar('fid')) {
158
                //platform
159
160
                $title_sup = _AM_TDMDOWNLOADS_FORMPLATFORM;
161
162
                $platformArray = explode('|', xoops_getModuleOption('platform', $moduleDirName));
0 ignored issues
show
xoops_getModuleOption('platform', $moduleDirName) of type boolean is incompatible with the type string expected by parameter $string of explode(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

162
                $platformArray = explode('|', /** @scrutinizer ignore-type */ xoops_getModuleOption('platform', $moduleDirName));
Loading history...
163
164
                foreach ($platformArray as $platform) {
165
                    $contentArray[$platform] = $platform;
166
                }
167
            } else {
168
                $criteria->setOrder('ASC');
169
170
                /** @var \XoopsModules\Tdmdownloads\DownloadsHandler $downloadsHandler */
171
172
                $downloadsHandler = Helper::getInstance()->getHandler('Downloads');
173
174
                $tdmdownloadsArray = $downloadsHandler->getAll($criteria);
175
176
                foreach (array_keys($tdmdownloadsArray) as $j) {
177
                    /** @var \XoopsModules\Tdmdownloads\Downloads[] $tdmdownloadsArray */
178
                    $temp                = $tdmdownloadsArray[$j]->getVar($fieldNameBase);
179
                    $contentArray[$temp] = $temp;
180
                }
181
            }
182
        } else {
183
            $title_sup = $downloads_field[$i]->getVar('title');
184
185
            $criteria->add(new \Criteria('fid', $downloads_field[$i]->getVar('fid')));
186
187
            $criteria->setSort('data');
188
189
            $criteria->setOrder('ASC');
190
191
            /** @var \XoopsModules\Tdmdownloads\FielddataHandler $fielddataHandler */
192
193
            $fielddataHandler = Helper::getInstance()->getHandler('Fielddata');
194
195
            $tdmdownloadsArray = $fielddataHandler->getAll($criteria);
196
197
            foreach (array_keys($tdmdownloadsArray) as $j) {
198
                /** @var \XoopsModules\Tdmdownloads\Downloads[] $tdmdownloadsArray */
199
200
                $contentArray[$tdmdownloadsArray[$j]->getVar('data', 'n')] = $tdmdownloadsArray[$j]->getVar('data');
201
            }
202
203
            if ('' != $fieldContent[$downloads_field[$i]->getVar('fid')]) {
204
                $criteria_1 = new \CriteriaCompo();
205
206
                $criteria_1->add(new \Criteria('data', $fieldContent[$downloads_field[$i]->getVar('fid')]));
207
208
                /** @var \XoopsModules\Tdmdownloads\Fielddata $dataArray */
209
210
                $dataArray = $fielddataHandler->getAll($criteria_1);
211
212
                foreach (array_keys($dataArray) as $k) {
0 ignored issues
show
$dataArray of type XoopsModules\Tdmdownloads\Fielddata is incompatible with the type array expected by parameter $array of array_keys(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

212
                foreach (array_keys(/** @scrutinizer ignore-type */ $dataArray) as $k) {
Loading history...
213
                    /** @var \XoopsModules\Tdmdownloads\Fielddata[] $dataArray */
214
215
                    $lid_arr[] = $dataArray[$k]->getVar('lid');
216
                }
217
            }
218
219
//            $form->addElement($select_sup);
220
        }
221
222
        $select_sup = new \XoopsFormSelect($title_sup, $fieldName, $fieldContent[$downloads_field[$i]->getVar('fid')]);
223
224
        $select_sup->addOption(999, _MD_TDMDOWNLOADS_SEARCH_ALL1);
225
226
        $select_sup->addOptionArray($contentArray);
227
228
        $form->addElement($select_sup);
229
230
        unset($select_sup);
231
    }
232
233
    //bouton validation
234
235
    $buttonTray = new \XoopsFormElementTray('', '');
236
237
    $buttonTray->addElement(new \XoopsFormButton('', 'submit', _MD_TDMDOWNLOADS_SEARCH_BT, 'submit'));
238
239
    $form->addElement($buttonTray);
240
241
    $block['form'] = $form->render();
242
243
    return $block;
244
}
245