Passed
Pull Request — master (#5)
by Michael
02:50
created

blocks/tdmdownloads_search.php (5 issues)

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
use XoopsModules\Tdmdownloads;
18
use XoopsModules\Tdmdownloads\Tree;
19
20
/**
21
 * @return array
22
 */
23
function b_tdmdownloads_search_show()
24
{
25
    require dirname(__DIR__) . '/include/common.php';
26
    $moduleDirName = basename(dirname(__DIR__));
27
28
    require_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
29
    require_once XOOPS_ROOT_PATH . '/class/tree.php';
30
    $db = null;
0 ignored issues
show
The assignment to $db is dead and can be removed.
Loading history...
31
32
    /** @var \XoopsModules\Tdmdownloads\Helper $helper */
33
    $helper = \XoopsModules\Tdmdownloads\Helper::getInstance();
34
35
    //appel des class
36
    //appel des fichiers de langues
37
    $helper->loadLanguage('admin');
38
    $helper->loadLanguage('main');
39
    $helper->loadLanguage('common');
40
41
    /** @var \XoopsModules\Tdmdownloads\Utility $utility */
42
    $utility    = new \XoopsModules\Tdmdownloads\Utility();
43
    $categories = $utility->getItemIds('tdmdownloads_view', $moduleDirName);
44
45
    $block = [];
46
47
    //formulaire de recherche
48
    $form = new \XoopsThemeForm(_MD_TDMDOWNLOADS_SEARCH, 'search', XOOPS_URL . '/modules/' . $moduleDirName . '/search.php', 'post');
49
    $form->setExtra('enctype="multipart/form-data"');
50
    //recherche par titre
51
    $form->addElement(new \XoopsFormText(_MD_TDMDOWNLOADS_SEARCH_TITLE, 'title', 25, 255, ''));
52
    //recherche par catégorie
53
    $criteria = new \CriteriaCompo();
54
    $criteria->setSort('cat_weight ASC, cat_title');
55
    $criteria->setOrder('ASC');
56
    $criteria->add(new \Criteria('cat_cid', '(' . implode(',', $categories) . ')', 'IN'));
57
    $downloadscatArray = $categoryHandler->getAll($criteria);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $categoryHandler seems to be never defined.
Loading history...
58
    $mytree            = new \XoopsModules\Tdmdownloads\Tree($downloadscatArray, 'cat_cid', 'cat_pid');
59
    $form->addElement($mytree->makeSelectElement('cat', 'cat_title', '--', '', true, 0, '', _AM_TDMDOWNLOADS_FORMINCAT), true);
60
    //recherche champ sup.
61
    /** @var \XoopsModules\Tdmdownloads\FieldHandler $fieldHandler */
62
    $fieldHandler = \XoopsModules\Tdmdownloads\Helper::getInstance()->getHandler('Field');
63
    $criteria     = new \CriteriaCompo();
64
    $criteria->add(new \Criteria('search', 1));
65
    $criteria->add(new \Criteria('status', 1));
66
    $criteria->setSort('weight ASC, title');
67
    $criteria->setOrder('ASC');
68
    $downloads_field = $fieldHandler->getAll($criteria);
69
    foreach (array_keys($downloads_field) as $i) {
70
        $title_sup                                          = '';
71
        $contenu_arr                                        = [];
72
        $lid_arr                                            = [];
73
        $nom_champ                                          = 'champ' . $downloads_field[$i]->getVar('fid');
74
        $criteria                                           = new \CriteriaCompo();
75
        $champ_contenu[$downloads_field[$i]->getVar('fid')] = 999;
76
        if (1 == $downloads_field[$i]->getVar('status_def')) {
77
            $criteria->add(new \Criteria('status', 0, '!='));
78
            if (1 == $downloads_field[$i]->getVar('fid')) {
79
                //page d'accueil
80
                $title_sup = _AM_TDMDOWNLOADS_FORMHOMEPAGE;
81
                $criteria->setSort('homepage');
82
                $nom_champ_base = 'homepage';
83
            }
84
            if (2 == $downloads_field[$i]->getVar('fid')) {
85
                //version
86
                $title_sup = _AM_TDMDOWNLOADS_FORMVERSION;
87
                $criteria->setSort('version');
88
                $nom_champ_base = 'version';
89
            }
90
            if (3 == $downloads_field[$i]->getVar('fid')) {
91
                //taille du fichier
92
                $title_sup = _AM_TDMDOWNLOADS_FORMSIZE;
93
                $criteria->setSort('size');
94
                $nom_champ_base = 'size';
95
            }
96
            if (4 == $downloads_field[$i]->getVar('fid')) {
97
                //platform
98
                $title_sup      = _AM_TDMDOWNLOADS_FORMPLATFORM;
99
                $platform_array = explode('|', xoops_getModuleOption('platform', $moduleDirName));
0 ignored issues
show
Deprecated Code introduced by
The function xoops_getModuleOption() has been deprecated. ( Ignorable by Annotation )

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

99
                $platform_array = explode('|', /** @scrutinizer ignore-deprecated */ xoops_getModuleOption('platform', $moduleDirName));
Loading history...
100
                foreach ($platform_array as $platform) {
101
                    $contenu_arr[$platform] = $platform;
102
                }
103
            } else {
104
                $criteria->setOrder('ASC');
105
                $tdmdownloads_arr = $downloadsHandler->getAll($criteria);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $downloadsHandler does not exist. Did you maybe mean $downloads_field?
Loading history...
106
                foreach (array_keys($tdmdownloads_arr) as $j) {
107
                    $contenu_arr[$tdmdownloads_arr[$j]->getVar($nom_champ_base)] = $tdmdownloads_arr[$j]->getVar($nom_champ_base);
108
                }
109
            }
110
        } else {
111
            $title_sup = $downloads_field[$i]->getVar('title');
112
            $criteria->add(new \Criteria('fid', $downloads_field[$i]->getVar('fid')));
113
            $criteria->setSort('data');
114
            $criteria->setOrder('ASC');
115
            $tdmdownloads_arr = $fielddataHandler->getAll($criteria);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $fielddataHandler does not exist. Did you maybe mean $fieldHandler?
Loading history...
116
            foreach (array_keys($tdmdownloads_arr) as $j) {
117
                $contenu_arr[$tdmdownloads_arr[$j]->getVar('data', 'n')] = $tdmdownloads_arr[$j]->getVar('data');
118
            }
119
            if ('' != $champ_contenu[$downloads_field[$i]->getVar('fid')]) {
120
                $criteria_1 = new \CriteriaCompo();
121
                $criteria_1->add(new \Criteria('data', $champ_contenu[$downloads_field[$i]->getVar('fid')]));
122
                $data_arr = $fielddataHandler->getAll($criteria_1);
123
                foreach (array_keys($data_arr) as $k) {
124
                    $lid_arr[] = $data_arr[$k]->getVar('lid');
125
                }
126
            }
127
            $form->addElement($select_sup);
128
        }
129
        $select_sup = new \XoopsFormSelect($title_sup, $nom_champ, $champ_contenu[$downloads_field[$i]->getVar('fid')]);
130
        $select_sup->addOption(999, _MD_TDMDOWNLOADS_SEARCH_ALL1);
131
        $select_sup->addOptionArray($contenu_arr);
132
        $form->addElement($select_sup);
133
        unset($select_sup);
134
    }
135
    //bouton validation
136
    $button_tray = new \XoopsFormElementTray('', '');
137
    $button_tray->addElement(new \XoopsFormButton('', 'submit', _MD_TDMDOWNLOADS_SEARCH_BT, 'submit'));
138
    $form->addElement($button_tray);
139
    $block['form'] = $form->render();
140
141
    return $block;
142
}
143