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