Passed
Pull Request — master (#37)
by
unknown
02:13
created

index.php (3 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
require_once __DIR__ . '/header.php';
17
18
/** @var \XoopsModules\Tdmdownloads\Helper $helper */
19
$helper = \XoopsModules\Tdmdownloads\Helper::getInstance();
20
21
// template d'affichage
22
$moduleDirName                           = basename(__DIR__);
23
$GLOBALS['xoopsOption']['template_main'] = 'tdmdownloads_index.tpl';
24
require_once XOOPS_ROOT_PATH . '/header.php';
25
/** @var \xos_opal_Theme $xoTheme */
26
$xoTheme->addStylesheet(XOOPS_URL . '/modules/' . $moduleDirName . '/assets/css/styles.css', null);
27
// pour les permissions
28
$categories = $utility->getItemIds('tdmdownloads_view', $moduleDirName);
29
30
//tableau des téléchargements
31
$criteria = new \CriteriaCompo();
32
$criteria->add(new \Criteria('status', 0, '!='));
33
$criteria->add(new \Criteria('cid', '(' . implode(',', $categories) . ')', 'IN'));
34
$downloadsArray = $downloadsHandler->getAll($criteria);
35
$xoopsTpl->assign('lang_thereare', sprintf(_MD_TDMDOWNLOADS_INDEX_THEREARE, count($downloadsArray)));
36
37
//tableau des catégories
38
$criteria = new \CriteriaCompo();
39
$criteria->setSort('cat_weight ASC, cat_title');
40
$criteria->setOrder('ASC');
41
$criteria->add(new \Criteria('cat_cid', '(' . implode(',', $categories) . ')', 'IN'));
42
$downloadscatArray = $categoryHandler->getAll($criteria);
43
$mytree            = new \XoopsModules\Tdmdownloads\Tree($downloadscatArray, 'cat_cid', 'cat_pid');
44
45
//affichage des catégories
46
$xoopsTpl->assign('nb_catcol', $helper->getConfig('nb_catcol'));
47
$count    = 1;
48
$keywords = '';
49
foreach (array_keys($downloadscatArray) as $i) {
50
    if (0 === $downloadscatArray[$i]->getVar('cat_pid')) {
51
        $totaldownloads    = $utility->getNumbersOfEntries($mytree, $categories, $downloadsArray, $downloadscatArray[$i]->getVar('cat_cid'));
52
        $subcategories_arr = $mytree->getFirstChild($downloadscatArray[$i]->getVar('cat_cid'));
53
        $chcount           = 0;
54
        $subcategories     = '';
55
        //pour les mots clef
56
        $keywords .= $downloadscatArray[$i]->getVar('cat_title') . ',';
57
        foreach (array_keys($subcategories_arr) as $j) {
58
            if ($chcount >= $helper->getConfig('nbsouscat')) {
59
                $subcategories .= '<li>[<a href="' . XOOPS_URL . '/modules/' . $moduleDirName . '/viewcat.php?cid=' . $downloadscatArray[$i]->getVar('cat_cid') . '">+</a>]</li>';
60
                break;
61
            }
62
            $subcategories .= '<li><a href="' . XOOPS_URL . '/modules/' . $moduleDirName . '/viewcat.php?cid=' . $subcategories_arr[$j]->getVar('cat_cid') . '">' . $subcategories_arr[$j]->getVar('cat_title') . '</a></li>';
63
            $keywords      .= $downloadscatArray[$i]->getVar('cat_title') . ',';
64
            ++$chcount;
65
        }
66
        $xoopsTpl->append('categories', [
67
            'image'            => $uploadurl . $downloadscatArray[$i]->getVar('cat_imgurl'),
68
            'id'               => $downloadscatArray[$i]->getVar('cat_cid'),
69
            'title'            => $downloadscatArray[$i]->getVar('cat_title'),
70
            'description_main' => $downloadscatArray[$i]->getVar('cat_description_main'),
71
            'subcategories'    => $subcategories,
72
            'totaldownloads'   => $totaldownloads,
73
            'count'            => $count,
74
        ]);
75
        ++$count;
76
    }
77
}
78
79
//pour afficher les résumés
80
//----------------------------------------------------------------------------------------------------------------------------------------------------
81
//téléchargements récents
82
if (1 == $helper->getConfig('bldate')) {
83
    $criteria = new \CriteriaCompo();
84
    $criteria->add(new \Criteria('status', 0, '!='));
85
    $criteria->add(new \Criteria('cid', '(' . implode(',', $categories) . ')', 'IN'));
86
    $criteria->setSort('date');
87
    $criteria->setOrder('DESC');
88
    $criteria->setLimit($helper->getConfig('nbbl'));
89
    $downloads_arr_date = $downloadsHandler->getAll($criteria);
90
    foreach (array_keys($downloads_arr_date) as $i) {
91
        $title = $downloads_arr_date[$i]->getVar('title');
92
        if (mb_strlen($title) >= $helper->getConfig('longbl')) {
93
            $title = mb_substr($title, 0, $helper->getConfig('longbl')) . '...';
94
        }
95
        $date = formatTimestamp($downloads_arr_date[$i]->getVar('date'), 's');
96
        $xoopsTpl->append('bl_date', [
97
            'id'    => $downloads_arr_date[$i]->getVar('lid'),
98
            'cid'   => $downloads_arr_date[$i]->getVar('cid'),
99
            'date'  => $date,
100
            'title' => $title,
101
        ]);
102
    }
103
}
104
//plus téléchargés
105
if (1 == $helper->getConfig('blpop')) {
106
    $criteria = new \CriteriaCompo();
107
    $criteria->add(new \Criteria('status', 0, '!='));
108
    $criteria->add(new \Criteria('cid', '(' . implode(',', $categories) . ')', 'IN'));
109
    $criteria->setSort('hits');
110
    $criteria->setOrder('DESC');
111
    $criteria->setLimit($helper->getConfig('nbbl'));
112
    $downloads_arr_hits = $downloadsHandler->getAll($criteria);
113
    foreach (array_keys($downloads_arr_hits) as $i) {
114
        $title = $downloads_arr_hits[$i]->getVar('title');
115
        if (mb_strlen($title) >= $helper->getConfig('longbl')) {
116
            $title = mb_substr($title, 0, $helper->getConfig('longbl')) . '...';
117
        }
118
        $xoopsTpl->append('bl_pop', [
119
            'id'    => $downloads_arr_hits[$i]->getVar('lid'),
120
            'cid'   => $downloads_arr_hits[$i]->getVar('cid'),
121
            'hits'  => $downloads_arr_hits[$i]->getVar('hits'),
122
            'title' => $title,
123
        ]);
124
    }
125
}
126
//mieux notés
127
if (1 == $helper->getConfig('blrating')) {
128
    $criteria = new \CriteriaCompo();
129
    $criteria->add(new \Criteria('status', 0, '!='));
130
    $criteria->add(new \Criteria('cid', '(' . implode(',', $categories) . ')', 'IN'));
131
    $criteria->setSort('rating');
132
    $criteria->setOrder('DESC');
133
    $criteria->setLimit($helper->getConfig('nbbl'));
134
    $downloads_arr_rating = $downloadsHandler->getAll($criteria);
135
    foreach (array_keys($downloads_arr_rating) as $i) {
136
        $title = $downloads_arr_rating[$i]->getVar('title');
137
        if (mb_strlen($title) >= $helper->getConfig('longbl')) {
138
            $title = mb_substr($title, 0, $helper->getConfig('longbl')) . '...';
139
        }
140
        $rating = number_format($downloads_arr_rating[$i]->getVar('rating'), 1);
141
        $xoopsTpl->append('bl_rating', [
142
            'id'     => $downloads_arr_rating[$i]->getVar('lid'),
143
            'cid'    => $downloads_arr_rating[$i]->getVar('cid'),
144
            'rating' => $rating,
145
            'title'  => $title,
146
        ]);
147
    }
148
}
149
$bl_affichage = 1;
150
if (0 == $helper->getConfig('bldate') && 0 == $helper->getConfig('blpop') && 0 == $helper->getConfig('blrating')) {
0 ignored issues
show
Bug Best Practice introduced by
It seems like you are loosely comparing $helper->getConfig('bldate') of type mixed|null to 0; this is ambiguous as not only 0 == 0 is true, but null == 0 is true, too. Consider using a strict comparison ===.
Loading history...
Bug Best Practice introduced by
It seems like you are loosely comparing $helper->getConfig('blpop') of type mixed|null to 0; this is ambiguous as not only 0 == 0 is true, but null == 0 is true, too. Consider using a strict comparison ===.
Loading history...
Bug Best Practice introduced by
It seems like you are loosely comparing $helper->getConfig('blrating') of type mixed|null to 0; this is ambiguous as not only 0 == 0 is true, but null == 0 is true, too. Consider using a strict comparison ===.
Loading history...
151
    $bl_affichage = 0;
152
}
153
$xoopsTpl->assign('bl_affichage', $bl_affichage);
154
$xoopsTpl->assign('show_latest_files', $helper->getConfig('show_latest_files'));
155
156
//----------------------------------------------------------------------------------------------------------------------------------------------------
157
158
// affichage des téléchargements
159
if ($helper->getConfig('newdownloads') > 0) {
160
    $xoopsTpl->assign('nb_dowcol', $helper->getConfig('nb_dowcol'));
161
    //Utilisation d'une copie d'écran avec la largeur selon les préférences
162
    if (1 == $helper->getConfig('useshots')) {
163
        $xoopsTpl->assign('shotwidth', $helper->getConfig('shotwidth'));
164
        $xoopsTpl->assign('show_screenshot', true);
165
        $xoopsTpl->assign('img_float', $helper->getConfig('img_float'));
166
    }
167
    $criteria = new \CriteriaCompo();
168
    $criteria->add(new \Criteria('status', 0, '!='));
169
    $criteria->add(new \Criteria('cid', '(' . implode(',', $categories) . ')', 'IN'));
170
    $criteria->setLimit($helper->getConfig('newdownloads'));
171
    $tblsort     = [];
172
    $tblsort[1]  = 'date';
173
    $tblsort[2]  = 'date';
174
    $tblsort[3]  = 'hits';
175
    $tblsort[4]  = 'hits';
176
    $tblsort[5]  = 'rating';
177
    $tblsort[6]  = 'rating';
178
    $tblsort[7]  = 'title';
179
    $tblsort[8]  = 'title';
180
    $tblorder    = [];
181
    $tblorder[1] = 'DESC';
182
    $tblorder[2] = 'ASC';
183
    $tblorder[3] = 'DESC';
184
    $tblorder[4] = 'ASC';
185
    $tblorder[5] = 'DESC';
186
    $tblorder[6] = 'ASC';
187
    $tblorder[7] = 'DESC';
188
    $tblorder[8] = 'ASC';
189
    $sort        = null !== $helper->getConfig('toporder') ? $helper->getConfig('toporder') : 1;
190
    $order       = null !== $helper->getConfig('toporder') ? $helper->getConfig('toporder') : 1;
191
    $criteria->setSort($tblsort[$sort]);
192
    $criteria->setOrder($tblorder[$order]);
193
    $downloadsArray = $downloadsHandler->getAll($criteria);
194
    $categories    = $utility->getItemIds('tdmdownloads_download', $moduleDirName);
195
    $item          = $utility->getItemIds('tdmdownloads_download_item', $moduleDirName);
196
    $count         = 1;
197
    foreach (array_keys($downloadsArray) as $i) {
198
        if ('blank.gif' === $downloadsArray[$i]->getVar('logourl')) {
199
            $logourl = '';
200
        } else {
201
            $logourl = $downloadsArray[$i]->getVar('logourl');
202
            $logourl = $uploadurl_shots . $logourl;
203
        }
204
        $datetime    = formatTimestamp($downloadsArray[$i]->getVar('date'), 's');
205
        $submitter   = \XoopsUser::getUnameFromId($downloadsArray[$i]->getVar('submitter'));
206
        $description = $downloadsArray[$i]->getVar('description');
207
        //permet d'afficher uniquement la description courte
208
        if (false === mb_strpos($description, '[pagebreak]')) {
209
            $descriptionShort = $description;
210
        } else {
211
            $descriptionShort = mb_substr($description, 0, mb_strpos($description, '[pagebreak]'));
212
        }
213
        // pour les vignettes "new" et "mis à jour"
214
        $new = $utility->getStatusImage($downloadsArray[$i]->getVar('date'), $downloadsArray[$i]->getVar('status'));
215
        $pop = $utility->getPopularImage($downloadsArray[$i]->getVar('hits'));
216
217
        // Défini si la personne est un admin
218
        $adminlink = '';
219
        if (is_object($xoopsUser) && $xoopsUser->isAdmin($xoopsModule->mid())) {
220
            $adminlink = '<a href="'
221
                         . XOOPS_URL
222
                         . '/modules/'
223
                         . $moduleDirName
224
                         . '/admin/downloads.php?op=view_downloads&amp;downloads_lid='
225
                         . $downloadsArray[$i]->getVar('lid')
226
                         . '" title="'
227
                         . _MD_TDMDOWNLOADS_EDITTHISDL
228
                         . '"><img src="'
229
                         . XOOPS_URL
230
                         . '/modules/'
231
                         . $moduleDirName
232
                         . '/assets/images/icon/edit.png" width="16px" height="16px" border="0" alt="'
233
                         . _MD_TDMDOWNLOADS_EDITTHISDL
234
                         . '"></a>';
235
        }
236
        //permission de télécharger
237
238
        $downloadPermission = true;
239
        if (1 === $helper->getConfig('permission_download')) {
240
            if (!in_array($downloadsArray[$i]->getVar('cid'), $categories, true)) {
241
                $downloadPermission = false;
242
            }
243
        } else {
244
            if (!in_array($downloadsArray[$i]->getVar('lid'), $item, true)) {
245
                $downloadPermission = false;
246
            }
247
        }
248
        $xoopsTpl->append('file', [
249
            'id'                => $downloadsArray[$i]->getVar('lid'),
250
            'cid'               => $downloadsArray[$i]->getVar('cid'),
251
            'title'             => $downloadsArray[$i]->getVar('title'),
252
            'new'               => $new,
253
            'pop'               => $pop,
254
            'logourl'           => $logourl,
255
            'updated'           => $datetime,
256
            'description_short' => $descriptionShort,
257
            'adminlink'         => $adminlink,
258
            'submitter'         => $submitter,
259
            'perm_download'     => $downloadPermission,
260
            'count'             => $count,
261
        ]);
262
        //pour les mots clef
263
        $keywords .= $downloadsArray[$i]->getVar('title') . ',';
264
        ++$count;
265
    }
266
}
267
// référencement
268
//description
269
$xoTheme->addMeta('meta', 'description', strip_tags($xoopsModule->name()));
270
//keywords
271
$keywords = mb_substr($keywords, 0, -1);
272
$xoTheme->addMeta('meta', 'keywords', $keywords);
273
274
require XOOPS_ROOT_PATH . '/footer.php';
275