Passed
Push — master ( 0dbed9...b8aee2 )
by Goffy
45s queued 10s
created

blocks/tdmdownloads_search.php (1 issue)

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