Completed
Push — master ( 67bb37...e20777 )
by Michael
02:35
created

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/*
3
-------------------------------------------------------------------------
4
                     ADSLIGHT 2 : Module for Xoops
5
6
        Redesigned and ameliorate By iluc user at www.frxoops.org
7
        Started with the Classifieds module and made MANY changes
8
        Website : http://www.limonads.com
9
        Contact : [email protected]
10
-------------------------------------------------------------------------
11
             Original credits below Version History
12
##########################################################################
13
#                    Classified Module for Xoops                         #
14
#  By John Mordo user jlm69 at www.xoops.org and www.jlmzone.com         #
15
#      Started with the MyAds module and made MANY changes               #
16
##########################################################################
17
 Original Author: Pascal Le Boustouller
18
 Author Website : [email protected]
19
 Licence Type   : GPL
20
-------------------------------------------------------------------------
21
*/
22
23
include_once __DIR__ . '/header.php';
24
require XOOPS_ROOT_PATH . '/modules/adslight/include/gtickets.php';
25
26
$myts      = MyTextSanitizer::getInstance();
27
$module_id = $xoopsModule->getVar('mid');
28
29
is_object($GLOBALS['xoopsUser']) ? $groups = $GLOBALS['xoopsUser']->getGroups() : $groups = XOOPS_GROUP_ANONYMOUS;
30
31
/** @var XoopsGroupPermHandler $gpermHandler */
32
$gpermHandler = xoops_getHandler('groupperm');
33
34
$perm_itemid = XoopsRequest::getInt('item_id', 0, 'POST');
35
36 View Code Duplication
if (!$gpermHandler->checkRight('adslight_view', $perm_itemid, $groups, $module_id)) {
37
    redirect_header(XOOPS_URL . '/index.php', 3, _NOPERM);
38
}
39
40
(!$gpermHandler->checkRight('adslight_premium', $perm_itemid, $groups, $module_id)) ? $prem_perm = '0' : $prem_perm = '1';
41
42
include XOOPS_ROOT_PATH . '/modules/adslight/class/classifiedstree.php';
43
//include XOOPS_ROOT_PATH . '/modules/adslight/class/utilities.php';
44
$mytree = new ClassifiedsTree($xoopsDB->prefix('adslight_categories'), 'cid', 'pid');
45
46
#  function index
47
#####################################################
48
function index()
49
{
50
    global $xoopsDB, $xoopsConfig, $xoopsModule, $xoopsTpl, $myts, $mytree, $meta, $mid, $moduleDirName, $main_lang, $prem_perm, $xoopsModule;
51
    $pathIcon16 = $xoopsModule->getInfo('icons16');
52
53
    $GLOBALS['xoopsOption']['template_main'] = 'adslight_index.tpl';
54
55
    include XOOPS_ROOT_PATH . '/header.php';
56
57
    $xoopsTpl->assign('xmid', $xoopsModule->getVar('mid'));
58
    $xoopsTpl->assign('add_from', _ADSLIGHT_ADDFROM . ' ' . $xoopsConfig['sitename']);
59
    $xoopsTpl->assign('add_from_title', _ADSLIGHT_ADDFROM);
60
    $xoopsTpl->assign('add_from_sitename', $xoopsConfig['sitename']);
61
    $xoopsTpl->assign('only_pix', _ADSLIGHT_ONLYPIX);
62
    $xoopsTpl->assign('adslight_logolink', _ADSLIGHT_LOGOLINK);
63
    $xoopsTpl->assign('permit', $prem_perm);
64
65
    $xoopsTpl->assign('xoops_module_header', '<link rel="stylesheet" href="' . XOOPS_URL . '/modules/adslight/assets/css/adslight.css" type="text/css" media="all" />');
66
67
    $banner = xoops_getbanner();
68
    $xoopsTpl->assign('banner', $banner);
69
    $xoopsTpl->assign('use_extra_code', $GLOBALS['xoopsModuleConfig']['adslight_use_index_code']);
70
    $xoopsTpl->assign('adslight_use_banner', $GLOBALS['xoopsModuleConfig']['adslight_use_banner']);
71
    $xoopsTpl->assign('index_extra_code', $GLOBALS['xoopsModuleConfig']['adslight_index_code']);
72
    $xoopsTpl->assign('index_code_place', $GLOBALS['xoopsModuleConfig']['adslight_index_code_place']);
73
    $xoopsTpl->assign('category_title2', _ADSLIGHT_ANNONCES);
74
    // adslight 2
75
    $xoopsTpl->assign('adslight_active_menu', $GLOBALS['xoopsModuleConfig']['adslight_active_menu']);
76
    $xoopsTpl->assign('adslight_active_rss', $GLOBALS['xoopsModuleConfig']['adslight_active_rss']);
77
78
    //    ExpireAd();
79
    AdslightUtilities::expireAd();
80
81
    if ($GLOBALS['xoopsUser']) {
82
        $member_usid = $GLOBALS['xoopsUser']->getVar('uid');
83
        if ($usid = $member_usid) {
84
            $xoopsTpl->assign('istheirs', true);
85
86
            list($show_user) = $xoopsDB->fetchRow($xoopsDB->query('SELECT SQL_CACHE COUNT(*) FROM ' . $xoopsDB->prefix('adslight_listing') . " WHERE usid='" . $member_usid . "'"));
87
88
            $xoopsTpl->assign('show_user', $show_user);
89
            $xoopsTpl->assign('show_user_link', 'members.php?usid=' . $member_usid);
90
        }
91
    }
92
93
    $result = $xoopsDB->query('SELECT SQL_CACHE COUNT(*)  FROM ' . $xoopsDB->prefix('adslight_listing') . ' WHERE valid="No"');
94
    list($propo) = $xoopsDB->fetchRow($result);
95
96
    if ($propo > 0) {
97
        $xoopsTpl->assign('moderated', true);
98
    }
99
    if ($GLOBALS['xoopsUser']) {
100
        if ($GLOBALS['xoopsUser']->isAdmin()) {
101
            $xoopsTpl->assign('admin_block', _ADSLIGHT_ADMINCADRE);
102
            if ($propo == 0) {
103
                $xoopsTpl->assign('confirm_ads', _ADSLIGHT_NO_CLA);
104
            } else {
105
                $xoopsTpl->assign('confirm_ads',
106
                                  _ADSLIGHT_THEREIS . ' ' . $propo . '  ' . _ADSLIGHT_WAIT . '<br><a href="' . XOOPS_URL . '/modules/adslight/admin/validate_ads.php">' . _ADSLIGHT_SEEIT . '</a>');
107
            }
108
        }
109
110
        $categories = AdslightUtilities::getMyItemIds('adslight_submit');
111
        if (is_array($categories) && count($categories) > 0) {
112
            $intro = _ADSLIGHT_INTRO;
113
        } else {
114
            $intro = '';
115
        }
116
        $xoopsTpl->assign('intro', $intro);
117
    }
118
119
    $sql = 'SELECT SQL_CACHE cid, title, img FROM ' . $xoopsDB->prefix('adslight_categories') . ' WHERE pid = 0 ';
120
121
    $categories = AdslightUtilities::getMyItemIds('adslight_view');
122
    if (is_array($categories) && count($categories) > 0) {
123
        $sql .= ' AND cid IN (' . implode(',', $categories) . ') ';
124
    } else {
125
        redirect_header(XOOPS_URL . '/index.php', 3, _NOPERM);
126
    }
127
128
    if ($GLOBALS['xoopsModuleConfig']['adslight_csortorder'] === 'ordre') {
129
        $sql .= 'ORDER BY ordre';
130
    } else {
131
        $sql .= 'ORDER BY title';
132
    }
133
134
    $result = $xoopsDB->query($sql);
135
136
    $count   = 1;
137
    $content = '';
138
    while ($myrow = $xoopsDB->fetchArray($result)) {
139
        $title = $myts->htmlSpecialChars($myrow['title']);
140
141
        if ($myrow['img'] && $myrow['img'] !== 'http://') {
142
            $cat_img = $myts->htmlSpecialChars($myrow['img']);
143
            $img     = '<a href="viewcats.php?cid='
144
                       . $myrow['cid']
145
                       . '"><img src="'
146
                       . XOOPS_URL
147
                       . '/modules/adslight/assets/images/img_cat/'
148
                       . $cat_img
149
                       . '" align="middle" alt="'
150
                       . $title
151
                       . '" /></a>';
152
        } else {
153
            $img = '';
154
        }
155
156
        $totallisting = AdslightUtilities::getTotalItems($myrow['cid'], 1);
157
        $content .= $title . ' ';
158
159
        $arr = array();
160
        if (in_array($myrow['cid'], $categories)) {
161
            $arr           = $mytree->getFirstChild($myrow['cid'], 'title');
162
            $space         = 0;
163
            $chcount       = 1;
164
            $subcategories = '';
165
            if ($GLOBALS['xoopsModuleConfig']['adslight_souscat'] == 1) {
166
                foreach ($arr as $ele) {
167
                    if (in_array($ele['cid'], $categories)) {
168
                        $chtitle = $myts->htmlSpecialChars($ele['title']);
169
                        if ($chcount > $GLOBALS['xoopsModuleConfig']['adslight_nbsouscat']) {
170
                            $subcategories .= '<a href="viewcats.php?cid=' . $myrow['cid'] . '">' . _ADSLIGHT_CATPLUS . '</a>';
171
                            break;
172
                        }
173
                        if ($space > 0) {
174
                            $subcategories .= '<br>';
175
                        }
176
                        $subcategories .= '-&nbsp;<a href="' . XOOPS_URL . '/modules/adslight/viewcats.php?cid=' . $ele['cid'] . '">' . $chtitle . '</a>';
177
                        ++$space;
178
                        ++$chcount;
179
                        $content .= $ele['title'] . ' ';
180
                    }
181
                }
182
            }
183
            $xoopsTpl->append('categories', array(
184
                'image'         => $img,
185
                'id'            => $myrow['cid'],
186
                'title'         => $myts->htmlSpecialChars($myrow['title']),
187
                'new'           => categorynewgraphic($myrow['cid']),
188
                'subcategories' => $subcategories,
189
                'totallisting'  => $totallisting,
190
                'count'         => $count
191
            ));
192
            ++$count;
193
        }
194
    }
195
    $cat_perms = '';
196
    if (is_array($categories) && count($categories) > 0) {
197
        $cat_perms .= ' AND cid IN (' . implode(',', $categories) . ') ';
198
    }
199
200
    list($ads) = $xoopsDB->fetchRow($xoopsDB->query('SELECT SQL_CACHE COUNT(*)  FROM ' . $xoopsDB->prefix('adslight_listing') . " WHERE valid='Yes' AND status!='1' $cat_perms"));
201
202
    list($catt) = $xoopsDB->fetchRow($xoopsDB->query('SELECT COUNT(*)  FROM ' . $xoopsDB->prefix('' . $moduleDirName . '_categories') . ''));
203
204
    $submit_perms = AdslightUtilities::getMyItemIds('adslight_submit');
205
206
    if ($GLOBALS['xoopsUser']) {
207
        $add_listing = '' . _ADSLIGHT_ADD_LISTING_BULLOK . '<a href="add.php">' . _ADSLIGHT_ADD_LISTING_SUBOK . '</a>';
208
    } else {
209
        $add_listing = '' . _ADSLIGHT_ADD_LISTING_BULL . '<a href="' . XOOPS_URL . '/register.php">' . _ADSLIGHT_ADD_LISTING_SUB . '</a>.';
210
    }
211
212
    $xoopsTpl->assign('bullinfotext', _ADSLIGHT_ACTUALY . ' ' . $ads . ' ' . _ADSLIGHT_ADVERTISEMENTS . '<br>' . $add_listing);
213
    $xoopsTpl->assign('total_confirm', _ADSLIGHT_AND . " $propo " . _ADSLIGHT_WAIT3);
214
215
    if ($GLOBALS['xoopsModuleConfig']['adslight_newad'] == 1) {
216
        $cat_perms = '';
217
        if (is_array($categories) && count($categories) > 0) {
218
            $cat_perms .= ' AND cid IN (' . implode(',', $categories) . ') ';
219
        }
220
221
        $result = $xoopsDB->query('SELECT SQL_CACHE lid, title, status, type, price, typeprice, date, town, country, usid, premium, valid, photo, hits FROM '
222
                                  . $xoopsDB->prefix('adslight_listing')
223
                                  . " WHERE valid='Yes' AND status!='1' $cat_perms ORDER BY date DESC LIMIT "
224
                                  . $GLOBALS['xoopsModuleConfig']['adslight_newcount']);
225
        if ($result) {
226
            $xoopsTpl->assign('last_head', _ADSLIGHT_THE . ' ' . $GLOBALS['xoopsModuleConfig']['adslight_newcount'] . ' ' . _ADSLIGHT_LASTADD);
227
            $xoopsTpl->assign('last_head_title', _ADSLIGHT_TITLE);
228
            $xoopsTpl->assign('last_head_price', _ADSLIGHT_PRICE);
229
            $xoopsTpl->assign('last_head_date', _ADSLIGHT_DATE);
230
            $xoopsTpl->assign('last_head_local', _ADSLIGHT_LOCAL2);
231
            $xoopsTpl->assign('last_head_hits', _ADSLIGHT_VIEW);
232
            $xoopsTpl->assign('last_head_photo', _ADSLIGHT_PHOTO);
233
            $rank = 1;
234
235
            while (list($lid, $title, $status, $type, $price, $typeprice, $date, $town, $country, $usid, $premium, $valid, $photo, $hits) = $xoopsDB->fetchRow($result)) {
236
                $title     = $myts->htmlSpecialChars($title);
237
                $type      = $myts->htmlSpecialChars($type);
238
                $price     = number_format($price, 2, ',', ' ');
239
                $town      = $myts->htmlSpecialChars($town);
240
                $country   = $myts->htmlSpecialChars($country);
241
                $premium   = $myts->htmlSpecialChars($premium);
242
                $a_item    = array();
243
                $newcount  = $GLOBALS['xoopsModuleConfig']['adslight_countday'];
244
                $startdate = (time() - (86400 * $newcount));
245
246 View Code Duplication
                if ($startdate < $date) {
247
                    $newitem       = '<img src="' . XOOPS_URL . '/modules/adslight/assets/images/newred.gif" alt="new" />';
248
                    $a_item['new'] = $newitem;
249
                }
250
251
                $useroffset = '';
252
                if ($GLOBALS['xoopsUser']) {
253
                    $timezone = $GLOBALS['xoopsUser']->timezone();
254
                    if (isset($timezone)) {
255
                        $useroffset = $GLOBALS['xoopsUser']->timezone();
256
                    } else {
257
                        $useroffset = $xoopsConfig['default_TZ'];
258
                    }
259
                }
260
261
                $date = ($useroffset * 3600) + $date;
262
                $date = formatTimestamp($date, 's');
263 View Code Duplication
                if ($GLOBALS['xoopsUser']) {
1 ignored issue
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
264
                    if ($GLOBALS['xoopsUser']->isAdmin()) {
265
                        $a_item['admin'] = '<a href="'
266
                                           . XOOPS_URL
267
                                           . '/modules/adslight/admin/validate_ads.php?op=ModifyAds&amp;lid='
268
                                           . $lid
269
                                           . '"><img src="'
270
                                           . $pathIcon16
271
                                           . '/edit.png'
272
                                           . '" border=0 alt="'
273
                                           . _ADSLIGHT_MODADMIN
274
                                           . '" /></a>';
275
                    }
276
                }
277
278
                $result7 = $xoopsDB->query('SELECT nom_type FROM ' . $xoopsDB->prefix('adslight_type') . " WHERE id_type='" . $xoopsDB->escape($type) . "'");
279
                list($nom_type) = $xoopsDB->fetchRow($result7);
280
281
                $a_item['type']  = $myts->htmlSpecialChars($nom_type);
282
                $a_item['title'] = '<a href="' . XOOPS_URL . '/modules/adslight/viewads.php?lid=' . $lid . '"><strong>' . $title . '</strong></a>';
283
284
                $result8 = $xoopsDB->query('SELECT nom_price FROM ' . $xoopsDB->prefix('adslight_price') . " WHERE id_price='" . $xoopsDB->escape($typeprice) . "'");
285
                list($nom_price) = $xoopsDB->fetchRow($result8);
286
287
                if ($price > 0) {
288
                    $a_item['price']           = $price . ' ' . $GLOBALS['xoopsModuleConfig']['adslight_money'] . '';
289
                    $a_item['price_typeprice'] = $myts->htmlSpecialChars($nom_price);
290
                } else {
291
                    $a_item['price']           = '';
292
                    $a_item['price_typeprice'] = $myts->htmlSpecialChars($nom_price);
293
                }
294
                $a_item['premium'] = $premium;
295
                $a_item['date']    = $date;
296
                $a_item['local']   = '';
297
                if ($town) {
298
                    $a_item['local'] .= $town;
299
                }
300
                $a_item['country'] = '';
301
                if ($country) {
302
                    $a_item['country'] = $country;
303
                }
304
305
                if ($status == 2) {
306
                    $a_item['sold'] = _ADSLIGHT_RESERVEDMEMBER;
307
                }
308
309 View Code Duplication
                if ($GLOBALS['xoopsModuleConfig']['active_thumbsindex'] > 0) {
310
                    $a_item['no_photo'] = '<a href="'
311
                                          . XOOPS_URL
312
                                          . '/modules/adslight/viewads.php?lid='
313
                                          . $lid
314
                                          . '"><img class="thumb" src="'
315
                                          . XOOPS_URL
316
                                          . '/modules/adslight/assets/images/nophoto.jpg" align="left" width="100px" alt="'
317
                                          . $title
318
                                          . '" /></a>';
319
320
                    $updir   = $GLOBALS['xoopsModuleConfig']['adslight_link_upload'];
321
                    $sql     = 'SELECT cod_img, lid, uid_owner, url FROM '
322
                               . $xoopsDB->prefix('adslight_pictures')
323
                               . ' WHERE  uid_owner='
324
                               . $xoopsDB->escape($usid)
325
                               . ' AND lid='
326
                               . $xoopsDB->escape($lid)
327
                               . ' ORDER BY date_added ASC limit 1';
328
                    $resultp = $xoopsDB->query($sql);
329
330
                    while (list($cod_img, $pic_lid, $uid_owner, $url) = $xoopsDB->fetchRow($resultp)) {
331
                        if ($photo) {
332
                            $a_item['photo'] = '<a href="'
333
                                               . XOOPS_URL
334
                                               . '/modules/adslight/viewads.php?lid='
335
                                               . $lid
336
                                               . '"><img class="thumb" src="'
337
                                               . $updir
338
                                               . '/thumbs/thumb_'
339
                                               . $url
340
                                               . '" align="left" width="100px" alt="'
341
                                               . $title
342
                                               . '" /></a>';
343
                        }
344
                    }
345
                } else {
346
                    $a_item['no_photo'] = '<img src="' . XOOPS_URL . '/modules/adslight/assets/images/camera_nophoto.png" align="left" width="24" alt="' . $title . '" />';
347
                    $updir              = $GLOBALS['xoopsModuleConfig']['adslight_link_upload'];
348
                    $sql                = 'SELECT cod_img, lid, uid_owner, url FROM '
349
                                          . $xoopsDB->prefix('adslight_pictures')
350
                                          . ' WHERE  uid_owner='
351
                                          . $xoopsDB->escape($usid)
352
                                          . ' AND lid='
353
                                          . $xoopsDB->escape($lid)
354
                                          . ' ORDER BY date_added ASC limit 1';
355
                    $resultp            = $xoopsDB->query($sql);
356
357
                    while (list($cod_img, $pic_lid, $uid_owner, $url) = $xoopsDB->fetchRow($resultp)) {
358
                        if ($photo) {
359
                            $a_item['photo'] = '<img src="' . XOOPS_URL . '/modules/adslight/assets/images/camera_photo.png" align="left" width="24" alt="' . $title . '" />';
360
                        }
361
                    }
362
                }
363
                $a_item['hits'] = $hits;
364
                ++$rank;
365
                $xoopsTpl->append('items', $a_item);
366
            }
367
        }
368
    }
369
}
370
371
#  function categorynewgraphic
372
#####################################################
373
/**
374
 * @param $cid
375
 */
376
function categorynewgraphic($cid)
377
{
378
    global $xoopsDB;
379
}
380
381
######################################################
382
383
$pa      = XoopsRequest::getInt('pa', null, 'GET');
384
$lid     = XoopsRequest::getInt('lid', null, 'GET');
385
$cid     = XoopsRequest::getInt('cid', null, 'GET');
386
$usid    = XoopsRequest::getString('usid', '', 'GET');
387
$min     = XoopsRequest::getInt('min', null, 'GET');
388
$show    = XoopsRequest::getInt('show', null, 'GET');
389
$orderby = XoopsRequest::getInt('orderby', null, 'GET');
390
391
switch ($pa) {
392
    case 'Adsview':
393
        $GLOBALS['xoopsOption']['template_main'] = 'adslight_category.tpl';
394
        adsView($cid, $min, $orderby, $show);
395
        break;
396
    case 'viewads':
397
        $GLOBALS['xoopsOption']['template_main'] = 'adslight_item.tpl';
398
        viewAds($lid);
399
        break;
400
    default:
401
        $GLOBALS['xoopsOption']['template_main'] = 'adslight_index.tpl';
402
        index();
403
        break;
404
}
405
include XOOPS_ROOT_PATH . '/footer.php';
406