1
|
|
|
<?php declare(strict_types=1); |
2
|
|
|
|
3
|
|
|
/* |
4
|
|
|
* You may not change or alter any portion of this comment or credits |
5
|
|
|
* of supporting developers from this source code or any supporting source code |
6
|
|
|
* which is considered copyrighted (c) material of the original comment or credit authors. |
7
|
|
|
* |
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
|
|
|
|
13
|
|
|
/** |
14
|
|
|
* @copyright XOOPS Project (https://xoops.org) |
15
|
|
|
* @license GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html) |
16
|
|
|
* @author XOOPS Development Team |
17
|
|
|
* @author Pascal Le Boustouller: original author ([email protected]) |
18
|
|
|
* @author Luc Bizet (www.frxoops.org) |
19
|
|
|
* @author jlm69 (www.jlmzone.com) |
20
|
|
|
* @author mamba (www.xoops.org) |
21
|
|
|
*/ |
22
|
|
|
|
23
|
|
|
use Xmf\Module\Admin; |
24
|
|
|
use Xmf\Request; |
25
|
|
|
use XoopsModules\Adslight\{ |
26
|
|
|
Helper, |
27
|
|
|
Tree, |
28
|
|
|
Utility |
29
|
|
|
}; |
30
|
|
|
|
31
|
|
|
/** @var Helper $helper */ |
32
|
|
|
require_once __DIR__ . '/header.php'; |
33
|
|
|
|
34
|
|
|
global $xoopsModule, $xoopsDB, $xoopsConfig, $xoTheme; |
35
|
|
|
|
36
|
|
|
//require_once XOOPS_ROOT_PATH . '/modules/adslight/include/gtickets.php'; |
37
|
|
|
xoops_load('XoopsLocal'); |
38
|
|
|
$tempXoopsLocal = new \XoopsLocal(); |
39
|
|
|
$myts = \MyTextSanitizer::getInstance(); |
40
|
|
|
$moduleId = $xoopsModule->getVar('mid'); |
41
|
|
|
|
42
|
|
|
if (is_object($GLOBALS['xoopsUser'])) { |
43
|
|
|
$groups = $GLOBALS['xoopsUser']->getGroups(); |
44
|
|
|
} else { |
45
|
|
|
$groups = XOOPS_GROUP_ANONYMOUS; |
46
|
|
|
} |
47
|
|
|
/** @var \XoopsGroupPermHandler $grouppermHandler */ |
48
|
|
|
$grouppermHandler = xoops_getHandler('groupperm'); |
49
|
|
|
|
50
|
|
|
$perm_itemid = Request::getInt('item_id', 0, 'POST'); |
51
|
|
|
|
52
|
|
|
if (!$grouppermHandler->checkRight('adslight_view', $perm_itemid, $groups, $moduleId)) { |
53
|
|
|
redirect_header(XOOPS_URL . '/index.php', 3, _NOPERM); |
54
|
|
|
} |
55
|
|
|
if ($grouppermHandler->checkRight('adslight_premium', $perm_itemid, $groups, $moduleId)) { |
56
|
|
|
$prem_perm = '1'; |
57
|
|
|
} else { |
58
|
|
|
$prem_perm = '0'; |
59
|
|
|
} |
60
|
|
|
|
61
|
|
|
$mytree = new Tree($xoopsDB->prefix('adslight_categories'), 'cid', 'pid'); |
62
|
|
|
|
63
|
|
|
# function view (categories) |
64
|
|
|
##################################################### |
65
|
|
|
/** |
66
|
|
|
* @param int|null $cid |
67
|
|
|
* @param int|null $min |
68
|
|
|
* @param string $orderby |
69
|
|
|
* @param int|null $show |
70
|
|
|
*/ |
71
|
|
|
function adsView($cid, $min, $orderby, $show = 0): void |
72
|
|
|
{ |
73
|
|
|
global $xoopsDB, $xoopsTpl, $xoopsConfig, $myts, $mytree, $imagecat, $meta, $mid, $prem_perm, $xoopsModule; |
74
|
|
|
|
75
|
|
|
$helper = Helper::getInstance(); |
76
|
|
|
$pathIcon16 = Admin::iconUrl('', '16'); |
77
|
|
|
|
78
|
|
|
$GLOBALS['xoopsOption']['template_main'] = 'adslight_category.tpl'; |
79
|
|
|
require_once XOOPS_ROOT_PATH . '/header.php'; |
80
|
|
|
|
81
|
|
|
$GLOBALS['xoopsTpl']->assign('xmid', $xoopsModule->getVar('mid')); |
82
|
|
|
$GLOBALS['xoopsTpl']->assign('add_from', _ADSLIGHT_ADDFROM . ' ' . $xoopsConfig['sitename']); |
83
|
|
|
$GLOBALS['xoopsTpl']->assign('add_from_title', _ADSLIGHT_ADDFROM); |
84
|
|
|
$GLOBALS['xoopsTpl']->assign('add_from_sitename', $xoopsConfig['sitename']); |
85
|
|
|
$GLOBALS['xoopsTpl']->assign('only_pix', _ADSLIGHT_ONLYPIX); |
86
|
|
|
$GLOBALS['xoopsTpl']->assign('adslight_logolink', _ADSLIGHT_LOGOLINK); |
87
|
|
|
$GLOBALS['xoopsTpl']->assign('permit', $prem_perm); |
88
|
|
|
|
89
|
|
|
$GLOBALS['xoopsTpl']->assign('xoops_module_header', '<link rel="stylesheet" href="' . XOOPS_URL . '/modules/adslight/assets/css/adslight.css" type="text/css" media="all" >'); |
90
|
|
|
|
91
|
|
|
// $adslight_use_catscode = $helper->getConfig('adslight_use_catscode'); |
92
|
|
|
// $adslight_cats_code = $helper->getConfig('adslight_cats_code'); |
93
|
|
|
|
94
|
|
|
$GLOBALS['xoopsTpl']->assign('adslight_use_catscode', $helper->getConfig('adslight_use_catscode')); |
95
|
|
|
$GLOBALS['xoopsTpl']->assign('adslight_cats_code', $helper->getConfig('adslight_cats_code')); |
96
|
|
|
|
97
|
|
|
$banner = xoops_getbanner(); |
98
|
|
|
$GLOBALS['xoopsTpl']->assign('banner', $banner); |
99
|
|
|
// $index_code_place = $helper->getConfig('adslight_index_code_place'); |
100
|
|
|
// $use_extra_code = $helper->getConfig('adslight_use_index_code'); |
101
|
|
|
// $adslight_use_banner = $helper->getConfig('adslight_use_banner'); |
102
|
|
|
// $index_extra_code = $helper->getConfig('adslight_index_code'); |
103
|
|
|
|
104
|
|
|
$GLOBALS['xoopsTpl']->assign('use_extra_code', $helper->getConfig('adslight_use_index_code')); |
105
|
|
|
$GLOBALS['xoopsTpl']->assign('adslight_use_banner', $helper->getConfig('adslight_use_banner')); |
106
|
|
|
$GLOBALS['xoopsTpl']->assign('index_extra_code', $helper->getConfig('adslight_index_code')); |
107
|
|
|
$GLOBALS['xoopsTpl']->assign('index_code_place', $helper->getConfig('adslight_index_code_place')); |
108
|
|
|
|
109
|
|
|
// adslight 2 |
110
|
|
|
$GLOBALS['xoopsTpl']->assign('adslight_active_menu', $helper->getConfig('adslight_active_menu')); |
111
|
|
|
$GLOBALS['xoopsTpl']->assign('adslight_active_rss', $helper->getConfig('adslight_active_rss')); |
112
|
|
|
|
113
|
|
|
/// No Adds in this Cat /// |
114
|
|
|
$submit_perms = Utility::getMyItemIds('adslight_submit'); |
115
|
|
|
|
116
|
|
|
if (is_array($submit_perms) && $GLOBALS['xoopsUser'] |
117
|
|
|
&& count($submit_perms) > 0) { |
118
|
|
|
$GLOBALS['xoopsTpl']->assign('not_adds_in_this_cat', _ADSLIGHT_ADD_LISTING_NOTADDSINTHISCAT . '<a href="addlisting.php?cid=' . addslashes((string)$cid) . '">' . _ADSLIGHT_ADD_LISTING_NOTADDSSUBMIT . '</a>'); |
119
|
|
|
} else { |
120
|
|
|
$GLOBALS['xoopsTpl']->assign('not_adds_in_this_cat', _ADSLIGHT_ADD_LISTING_NOTADDSINTHISCAT . '<br>' . _ADSLIGHT_ADD_LISTING_BULL . '<a href="' . XOOPS_URL . '/register.php">' . _ADSLIGHT_ADD_LISTING_SUB . '</a>.'); |
121
|
|
|
} |
122
|
|
|
|
123
|
|
|
$GLOBALS['xoopsTpl']->assign('Feed_RSS_cat', ' <a href="rss.php?cid=' . addslashes((string)$cid) . '"><img border="0" alt="Feed RSS" src="assets/images/rssfeed_buttons.png" ></a>'); |
124
|
|
|
|
125
|
|
|
if ($GLOBALS['xoopsUser']) { |
126
|
|
|
$member_usid = $GLOBALS['xoopsUser']->getVar('uid'); |
127
|
|
|
if ($usid = $member_usid) { |
|
|
|
|
128
|
|
|
$GLOBALS['xoopsTpl']->assign('istheirs', true); |
129
|
|
|
|
130
|
|
|
$sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('adslight_listing') . ' WHERE usid=' . $member_usid . ' '; |
131
|
|
|
$result = $xoopsDB->query($sql); |
132
|
|
|
if (!$xoopsDB->isResultSet($result)) { |
133
|
|
|
\trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR); |
134
|
|
|
} |
135
|
|
|
[$show_user] = $xoopsDB->fetchRow($result); |
136
|
|
|
|
137
|
|
|
$GLOBALS['xoopsTpl']->assign('show_user', $show_user); |
138
|
|
|
$GLOBALS['xoopsTpl']->assign('show_user_link', 'members.php?usid=' . $member_usid); |
139
|
|
|
} |
140
|
|
|
} |
141
|
|
|
|
142
|
|
|
$default_sort = $helper->getConfig('adslight_lsort_order'); |
143
|
|
|
|
144
|
|
|
$cid = max((int)$cid, 0); |
145
|
|
|
$min = max((int)$min, 0); |
146
|
|
|
$show = (int)$show > 0 ? (int)$show : $helper->getConfig('adslight_perpage'); |
147
|
|
|
$max = $min + $show; |
148
|
|
|
$orderby = isset($orderby) ? Utility::convertOrderByIn($orderby) : $default_sort; |
149
|
|
|
|
150
|
|
|
$updir = $helper->getConfig('adslight_link_upload'); |
|
|
|
|
151
|
|
|
$GLOBALS['xoopsTpl']->assign('add_from', _ADSLIGHT_ADDFROM . ' ' . $xoopsConfig['sitename']); |
152
|
|
|
$GLOBALS['xoopsTpl']->assign('add_from_title', _ADSLIGHT_ADDFROM); |
153
|
|
|
$GLOBALS['xoopsTpl']->assign('add_from_sitename', $xoopsConfig['sitename']); |
154
|
|
|
$GLOBALS['xoopsTpl']->assign('subcat_title2', _ADSLIGHT_ANNONCES); |
155
|
|
|
|
156
|
|
|
$categories = Utility::getMyItemIds('adslight_view'); |
157
|
|
|
|
158
|
|
|
//TO DO - check on permissions here |
159
|
|
|
// if ($categories && is_array($categories)) { |
160
|
|
|
// if (!\in_array($cid, $categories)) { |
161
|
|
|
// $helper->redirect('index.php', 3, _NOPERM); |
162
|
|
|
// } |
163
|
|
|
// } else { // User can't see any category |
164
|
|
|
// redirect_header(XOOPS_URL . '/index.php', 3, _NOPERM); |
165
|
|
|
// } |
166
|
|
|
|
167
|
|
|
$arrow = '<img src="' . XOOPS_URL . '/modules/adslight/assets/images/arrow.gif" alt="»" >'; |
|
|
|
|
168
|
|
|
|
169
|
|
|
$pathstring = '<a href="index.php">' . _ADSLIGHT_MAIN . '</a>'; |
170
|
|
|
$pathstring .= $mytree->getNicePathFromId($cid, 'title', 'viewcats.php?'); |
171
|
|
|
$GLOBALS['xoopsTpl']->assign('module_name', $xoopsModule->getVar('name')); |
172
|
|
|
$GLOBALS['xoopsTpl']->assign('category_path', $pathstring); |
173
|
|
|
$GLOBALS['xoopsTpl']->assign('category_id', $cid); |
174
|
|
|
|
175
|
|
|
$sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('adslight_listing') . ' WHERE cid=' . $xoopsDB->escape($cid) . ' AND valid="Yes" AND status!="1"'; |
176
|
|
|
$countresult = $xoopsDB->query($sql); |
177
|
|
|
$result = $xoopsDB->query($sql); |
|
|
|
|
178
|
|
|
if (!$xoopsDB->isResultSet($countresult)) { |
179
|
|
|
\trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR); |
180
|
|
|
} |
181
|
|
|
[$trow] = $xoopsDB->fetchRow($countresult); |
182
|
|
|
$trows = $trow; |
183
|
|
|
|
184
|
|
|
$cat_perms = ''; |
185
|
|
|
if (is_array($categories) && count($categories) > 0) { |
186
|
|
|
$cat_perms .= ' AND cid IN (' . implode(',', $categories) . ') '; |
187
|
|
|
} |
188
|
|
|
|
189
|
|
|
$sql = 'SELECT cid, pid, title, cat_desc, cat_keywords FROM ' . $xoopsDB->prefix('adslight_categories') . ' WHERE cid=' . $xoopsDB->escape($cid) . ' ' . $cat_perms; |
190
|
|
|
$result = $xoopsDB->query($sql); |
191
|
|
|
if (!$xoopsDB->isResultSet($result)) { |
192
|
|
|
\trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR); |
193
|
|
|
} |
194
|
|
|
[$cid, $pid, $title, $cat_desc, $cat_keywords] = $xoopsDB->fetchRow($result); |
195
|
|
|
|
196
|
|
|
$GLOBALS['xoopsTpl']->assign('cat_desc', $cat_desc); |
197
|
|
|
$GLOBALS['xoopsTpl']->assign('cat_title', _ADSLIGHT_ANNONCES . ' ' . $title); |
198
|
|
|
$GLOBALS['xoopsTpl']->assign('cat_keywords', $cat_keywords); |
199
|
|
|
$GLOBALS['xoopsTpl']->assign('xoops_pagetitle', $title); |
200
|
|
|
|
201
|
|
|
if ($cat_desc > '0') { |
202
|
|
|
// meta description & keywords tags for categories |
203
|
|
|
$cat_desc_clean = strip_tags($cat_desc, '<span><img><strong><i><u>'); |
204
|
|
|
$cat_keywords_clean = strip_tags($cat_keywords, '<span><img><strong><i><u><br><li>'); |
205
|
|
|
|
206
|
|
|
$GLOBALS['xoTheme']->addMeta('meta', 'description', '' . mb_substr($cat_desc_clean, 0, 200)); |
207
|
|
|
$GLOBALS['xoTheme']->addMeta('meta', 'keywords', '' . mb_substr($cat_keywords_clean, 0, 1000)); |
208
|
|
|
} |
209
|
|
|
|
210
|
|
|
$submit_perms = Utility::getMyItemIds('adslight_submit'); |
211
|
|
|
if (is_array($submit_perms) && $GLOBALS['xoopsUser'] |
212
|
|
|
&& count($submit_perms) > 0) { |
213
|
|
|
$add_listing = _ADSLIGHT_ADD_LISTING_BULLCATS . '<a href="addlisting.php?cid=' . addslashes($cid) . '">' . _ADSLIGHT_ADD_LISTING_SUBOK . '</a>'; |
214
|
|
|
} else { // User can't see any category |
215
|
|
|
$add_listing = _ADSLIGHT_ADD_LISTING_BULLCATSOK . '<a href="' . XOOPS_URL . '/register.php">' . _ADSLIGHT_ADD_LISTING_SUB . '</a>.'; |
216
|
|
|
} |
217
|
|
|
|
218
|
|
|
if (0 !== (int)$pid || 1 === $helper->getConfig('adslight_main_cat')) { |
219
|
|
|
$GLOBALS['xoopsTpl']->assign('bullinfotext', $add_listing); |
220
|
|
|
} |
221
|
|
|
|
222
|
|
|
// $arr = []; |
223
|
|
|
$arr = $mytree->getFirstChild($cid, 'title'); |
224
|
|
|
|
225
|
|
|
if (count($arr) > 0) { |
226
|
|
|
$scount = 1; |
227
|
|
|
foreach ($arr as $ele) { |
228
|
|
|
if (\in_array((int)$ele['cid'], $categories, true)) { |
229
|
|
|
$sub_arr = []; |
|
|
|
|
230
|
|
|
$sub_arr = $mytree->getFirstChild($ele['cid'], 'title'); |
231
|
|
|
$space = 0; |
232
|
|
|
$chcount = 0; |
233
|
|
|
$infercategories = ''; |
234
|
|
|
$totallisting = Utility::getTotalItems($ele['cid'], 1); |
235
|
|
|
foreach ($sub_arr as $sub_ele) { |
236
|
|
|
if (\in_array((int)$sub_ele['cid'], $categories, true)) { |
237
|
|
|
$chtitle = \htmlspecialchars($sub_ele['title'], ENT_QUOTES | ENT_HTML5); |
238
|
|
|
|
239
|
|
|
if ($chcount > 5) { |
240
|
|
|
$infercategories .= '...'; |
241
|
|
|
break; |
242
|
|
|
} |
243
|
|
|
if ($space > 0) { |
244
|
|
|
$infercategories .= ', '; |
245
|
|
|
} |
246
|
|
|
$infercategories .= '<a href="' . XOOPS_URL . '/modules/adslight/viewcats.php?cid=' . $sub_ele['cid'] . '">' . $chtitle . '</a>'; |
247
|
|
|
|
248
|
|
|
$infercategories .= ' (' . Utility::getTotalItems($sub_ele['cid']) . ')'; |
249
|
|
|
$infercategories .= ' ' . categorynewgraphic($sub_ele['cid']); |
|
|
|
|
250
|
|
|
++$space; |
251
|
|
|
++$chcount; |
252
|
|
|
} |
253
|
|
|
} |
254
|
|
|
|
255
|
|
|
$GLOBALS['xoopsTpl']->append('subcategories', [ |
256
|
|
|
'title' => htmlspecialchars($ele['title'], ENT_QUOTES | ENT_HTML5), |
257
|
|
|
'id' => $ele['cid'], |
258
|
|
|
'infercategories' => $infercategories, |
259
|
|
|
'totallisting' => $totallisting, |
260
|
|
|
'', |
261
|
|
|
]); |
262
|
|
|
|
263
|
|
|
++$scount; |
264
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_subcat', _ADSLIGHT_AVAILAB); |
265
|
|
|
} |
266
|
|
|
} |
267
|
|
|
} |
268
|
|
|
|
269
|
|
|
$pagenav = ''; |
270
|
|
|
if ($trows > '0') { |
271
|
|
|
$GLOBALS['xoopsTpl']->assign('last_head', _ADSLIGHT_THE . ' ' . $helper->getConfig('adslight_newcount') . ' ' . _ADSLIGHT_LASTADD); |
272
|
|
|
$GLOBALS['xoopsTpl']->assign('last_head_title', _ADSLIGHT_TITLE); |
273
|
|
|
$GLOBALS['xoopsTpl']->assign('last_head_price', _ADSLIGHT_PRICE); |
274
|
|
|
$GLOBALS['xoopsTpl']->assign('last_head_date', _ADSLIGHT_DATE); |
275
|
|
|
$GLOBALS['xoopsTpl']->assign('last_head_local', _ADSLIGHT_LOCAL2); |
276
|
|
|
$GLOBALS['xoopsTpl']->assign('last_head_hits', _ADSLIGHT_VIEW); |
277
|
|
|
$GLOBALS['xoopsTpl']->assign('last_head_photo', _ADSLIGHT_PHOTO); |
278
|
|
|
$GLOBALS['xoopsTpl']->assign('cat', $cid); |
279
|
|
|
$GLOBALS['xoopsTpl']->assign('min', $min); |
280
|
|
|
$rank = 1; |
281
|
|
|
|
282
|
|
|
$cat_perms = ''; |
283
|
|
|
if (is_array($categories) && count($categories) > 0) { |
284
|
|
|
$cat_perms .= ' AND cid IN (' . implode(',', $categories) . ') '; |
285
|
|
|
} |
286
|
|
|
|
287
|
|
|
$sql = 'SELECT lid, title, status, type, price, typeprice, date_created, town, country, contactby, usid, premium, valid, photo, hits FROM ' |
288
|
|
|
. $xoopsDB->prefix('adslight_listing') |
289
|
|
|
. ' WHERE valid="Yes" AND cid=' |
290
|
|
|
. $xoopsDB->escape($cid) |
291
|
|
|
. ' AND status!="1" ' |
292
|
|
|
. $cat_perms |
293
|
|
|
. ' ORDER BY ' |
294
|
|
|
. $orderby; |
295
|
|
|
$result1 = $xoopsDB->query($sql, $show, $min); |
296
|
|
|
if (!$xoopsDB->isResultSet($result1)) { |
297
|
|
|
\trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR); |
298
|
|
|
} |
299
|
|
|
if ($trows > '1') { |
300
|
|
|
$GLOBALS['xoopsTpl']->assign('show_nav', true); |
301
|
|
|
$orderbyTrans = Utility::convertOrderByTrans($orderby); |
|
|
|
|
302
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_sortby', _ADSLIGHT_SORTBY); |
303
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_title', _ADSLIGHT_TITLE); |
304
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_titleatoz', _ADSLIGHT_TITLEATOZ); |
305
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_titleztoa', _ADSLIGHT_TITLEZTOA); |
306
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_date', _ADSLIGHT_DATE); |
307
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_dateold', _ADSLIGHT_DATEOLD); |
308
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_datenew', _ADSLIGHT_DATENEW); |
309
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_price', _ADSLIGHT_PRICE); |
310
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_priceltoh', _ADSLIGHT_PRICELTOH); |
311
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_pricehtol', _ADSLIGHT_PRICEHTOL); |
312
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_popularity', _ADSLIGHT_POPULARITY); |
313
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_popularityleast', _ADSLIGHT_POPULARITYLTOM); |
314
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_popularitymost', _ADSLIGHT_POPULARITYMTOL); |
315
|
|
|
$GLOBALS['xoopsTpl']->assign('lang_cursortedby', sprintf(_ADSLIGHT_CURSORTEDBY, Utility::convertOrderByTrans($orderby))); |
316
|
|
|
} |
317
|
|
|
while ([$lid, $title, $status, $type, $price, $typeprice, $date_created, $town, $country, $contactby, $usid, $premium, $valid, $photo, $hits] = $xoopsDB->fetchRow($result1)) { |
318
|
|
|
$a_item = []; |
319
|
|
|
$title = \htmlspecialchars($title, ENT_QUOTES | ENT_HTML5); |
320
|
|
|
$type = \htmlspecialchars($type, ENT_QUOTES | ENT_HTML5); |
321
|
|
|
// $price = number_format($price, 2, ',', ' '); |
322
|
|
|
$town = \htmlspecialchars($town, ENT_QUOTES | ENT_HTML5); |
323
|
|
|
$country = \htmlspecialchars($country, ENT_QUOTES | ENT_HTML5); |
324
|
|
|
$contactby = \htmlspecialchars($contactby, ENT_QUOTES | ENT_HTML5); |
|
|
|
|
325
|
|
|
$useroffset = ''; |
326
|
|
|
|
327
|
|
|
$newcount = $helper->getConfig('adslight_countday'); |
328
|
|
|
$startdate = time() - (86400 * $newcount); |
329
|
|
|
if ($startdate < $date_created) { |
330
|
|
|
$newitem = '<img src="' . XOOPS_URL . '/modules/adslight/assets/images/newred.gif" >'; |
331
|
|
|
$a_item['new'] = $newitem; |
332
|
|
|
} |
333
|
|
|
if ($GLOBALS['xoopsUser']) { |
334
|
|
|
$timezone = $GLOBALS['xoopsUser']->timezone(); |
335
|
|
|
if (isset($timezone)) { |
336
|
|
|
$useroffset = $GLOBALS['xoopsUser']->timezone(); |
337
|
|
|
} else { |
338
|
|
|
$useroffset = $xoopsConfig['default_TZ']; |
339
|
|
|
} |
340
|
|
|
} |
341
|
|
|
$date_created = ($useroffset * 3600) + $date_created; |
342
|
|
|
$date_created = formatTimestamp($date_created, 's'); |
343
|
|
|
if ($GLOBALS['xoopsUser']) { |
344
|
|
|
if ($GLOBALS['xoopsUser']->isAdmin()) { |
345
|
|
|
$a_item['admin'] = '<a href="' . XOOPS_URL . '/modules/adslight/admin/validate_ads.php?op=modifyAds&lid=' . $lid . '"><img src="' . $pathIcon16 . '/edit.png' . '" border=0 alt="' . _ADSLIGHT_MODADMIN . '" title="' . _ADSLIGHT_MODADMIN . '"></a>'; |
346
|
|
|
} |
347
|
|
|
} |
348
|
|
|
|
349
|
|
|
$sql = 'SELECT nom_type FROM ' . $xoopsDB->prefix('adslight_type') . " WHERE id_type='" . $xoopsDB->escape($type) . "'"; |
350
|
|
|
$result7 = $xoopsDB->query($sql); |
351
|
|
|
if (!$xoopsDB->isResultSet($result7)) { |
352
|
|
|
\trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR); |
353
|
|
|
} |
354
|
|
|
[$nom_type] = $xoopsDB->fetchRow($result7); |
355
|
|
|
|
356
|
|
|
$sql = 'SELECT nom_price FROM ' . $xoopsDB->prefix('adslight_price') . " WHERE id_price='" . $xoopsDB->escape($typeprice) . "'"; |
357
|
|
|
$result8 = $xoopsDB->query($sql); |
358
|
|
|
if (!$xoopsDB->isResultSet($result8)) { |
359
|
|
|
\trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR); |
360
|
|
|
} |
361
|
|
|
[$nom_price] = $xoopsDB->fetchRow($result8); |
362
|
|
|
|
363
|
|
|
$a_item['type'] = \htmlspecialchars($nom_type, ENT_QUOTES | ENT_HTML5); |
364
|
|
|
$a_item['title'] = '<a href="viewads.php?lid=' . $lid . '"><strong>' . $title . '</strong></a>'; |
365
|
|
|
$a_item['status'] = $status; |
366
|
|
|
if ($price > 0) { |
367
|
|
|
$currencyCode = $helper->getConfig('adslight_currency_code'); |
368
|
|
|
$currencySymbol = $helper->getConfig('adslight_currency_symbol'); |
369
|
|
|
$currencyPosition = $helper->getConfig('currency_position'); |
370
|
|
|
$formattedCurrencyUtilityTemp = Utility::formatCurrencyTemp($price, $currencyCode, $currencySymbol, $currencyPosition); |
371
|
|
|
$priceHtml = '<strong>' . _ADSLIGHT_PRICE2 . '</strong>' . $formattedCurrencyUtilityTemp . ' - ' . $nom_price; |
372
|
|
|
|
373
|
|
|
$a_item['price'] = $priceHtml; |
374
|
|
|
|
375
|
|
|
$a_item['price_typeprice'] = \htmlspecialchars($nom_price, ENT_QUOTES | ENT_HTML5); |
376
|
|
|
} |
377
|
|
|
$a_item['date_created'] = $date_created; |
378
|
|
|
$a_item['local'] = ''; |
379
|
|
|
if ($town) { |
380
|
|
|
$a_item['local'] .= $town; |
381
|
|
|
} |
382
|
|
|
$a_item['country'] = ''; |
383
|
|
|
if ($country) { |
384
|
|
|
$a_item['country'] = $country; |
385
|
|
|
} |
386
|
|
|
|
387
|
|
|
$cat = addslashes($cid); |
|
|
|
|
388
|
|
|
if (2 === (int)$status) { |
389
|
|
|
$a_item['sold'] = _ADSLIGHT_RESERVEDMEMBER; |
390
|
|
|
} |
391
|
|
|
|
392
|
|
|
if ($helper->getConfig('active_thumbscats') > 0) { |
393
|
|
|
$a_item['no_photo'] = '<a href="' . XOOPS_URL . '/modules/adslight/viewads.php?lid=' . $lid . '"><img class="thumb" src="' . XOOPS_URL . '/modules/adslight/assets/images/nophoto.jpg" align="left" width="100px" alt="' . $title . '" ></a>'; |
394
|
|
|
|
395
|
|
|
$updir = $helper->getConfig('adslight_link_upload'); |
396
|
|
|
$sql = 'SELECT cod_img, lid, uid_owner, url FROM ' . $xoopsDB->prefix('adslight_pictures') . ' WHERE uid_owner=' . $xoopsDB->escape($usid) . ' AND lid=' . $xoopsDB->escape($lid) . ' ORDER BY date_created ASC LIMIT 1'; |
397
|
|
|
$resultp = $xoopsDB->query($sql); |
398
|
|
|
if (!$xoopsDB->isResultSet($resultp)) { |
399
|
|
|
\trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR); |
400
|
|
|
} |
401
|
|
|
while ([$cod_img, $pic_lid, $uid_owner, $url] = $xoopsDB->fetchRow($resultp)) { |
402
|
|
|
if ($photo) { |
403
|
|
|
$a_item['photo'] = '<a href="' . XOOPS_URL . '/modules/adslight/viewads.php?lid=' . $lid . '"><img class="thumb" src="' . $updir . '/thumbs/thumb_' . $url . '" align="left" width="100px" alt="' . $title . '" ></a>'; |
404
|
|
|
} |
405
|
|
|
} |
406
|
|
|
} else { |
407
|
|
|
$a_item['no_photo'] = '<p><img src="' . XOOPS_URL . '/modules/adslight/assets/images/camera_nophoto.png" align="left" width="24" alt="' . $title . '" ></p>'; |
408
|
|
|
$updir = $helper->getConfig('adslight_link_upload'); |
409
|
|
|
$sql = 'SELECT cod_img, lid, uid_owner, url FROM ' . $xoopsDB->prefix('adslight_pictures') . ' WHERE uid_owner=' . $xoopsDB->escape($usid) . ' AND lid=' . $xoopsDB->escape($lid) . ' ORDER BY date_created ASC LIMIT 1'; |
410
|
|
|
$resultp = $xoopsDB->query($sql); |
411
|
|
|
if (!$xoopsDB->isResultSet($resultp)) { |
412
|
|
|
\trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR); |
413
|
|
|
} |
414
|
|
|
while ([$cod_img, $pic_lid, $uid_owner, $url] = $xoopsDB->fetchRow($resultp)) { |
|
|
|
|
415
|
|
|
if ($photo) { |
416
|
|
|
$a_item['photo'] = '<p><img src="' . XOOPS_URL . '/modules/adslight/assets/images/camera_photo.png" align="left" width="24" alt="' . $title . '" ></p>'; |
417
|
|
|
} |
418
|
|
|
} |
419
|
|
|
} |
420
|
|
|
|
421
|
|
|
$a_item['hits'] = $hits; |
422
|
|
|
++$rank; |
423
|
|
|
$GLOBALS['xoopsTpl']->append('items', $a_item); |
424
|
|
|
} |
425
|
|
|
|
426
|
|
|
$cid = max((int)$cid, 0); |
427
|
|
|
|
428
|
|
|
$orderby = Utility::convertOrderByOut($orderby); |
429
|
|
|
$linkpages = ceil($trows / $show); |
430
|
|
|
|
431
|
|
|
//Page Numbering |
432
|
|
|
if (1 !== (int)$linkpages && 0 !== (int)$linkpages) { |
433
|
|
|
$prev = $min - $show; |
434
|
|
|
if ($prev >= 0) { |
435
|
|
|
$pagenav .= "<a href='viewcats.php?cid={$cid}&min={$prev}&orderby={$orderby}&show={$show}'><strong><u>«</u></strong></a> "; |
436
|
|
|
} |
437
|
|
|
$counter = 1; |
438
|
|
|
$currentpage = $max / $show; |
439
|
|
|
while ($counter <= $linkpages) { |
440
|
|
|
$mintemp = ($show * $counter) - $show; |
441
|
|
|
if ($counter === $currentpage) { |
442
|
|
|
$pagenav .= "<strong>({$counter})</strong> "; |
443
|
|
|
} else { |
444
|
|
|
$pagenav .= "<a href='viewcats.php?cid={$cid}&min={$mintemp}&orderby={$orderby}&show={$show}'>{$counter}</a> "; |
445
|
|
|
} |
446
|
|
|
++$counter; |
447
|
|
|
} |
448
|
|
|
if ($trows > $max) { |
449
|
|
|
$pagenav .= "<a href='viewcats.php?cid={$cid}&min={$max}&orderby={$orderby}&show={$show}'>"; |
450
|
|
|
$pagenav .= '<strong><u>»</u></strong></a>'; |
451
|
|
|
} |
452
|
|
|
} |
453
|
|
|
} |
454
|
|
|
|
455
|
|
|
$GLOBALS['xoopsTpl']->assign('nav_page', $pagenav); |
456
|
|
|
|
457
|
|
|
if (!$GLOBALS['xoopsUser']) { |
458
|
|
|
global $xoopsDB; |
459
|
|
|
|
460
|
|
|
$xoopsTree = new \XoopsTree($xoopsDB->prefix('adslight_categories'), 'cid', 'pid'); |
461
|
|
|
$jump = XOOPS_URL . '/modules/adslight/viewcats.php?cid='; |
462
|
|
|
ob_start(); |
463
|
|
|
$xoopsTree->makeMySelBox('title', 'title', $cid, 1, 'pid', 'location="' . $jump . '"+this.options[this.selectedIndex].value'); |
464
|
|
|
$select_go_cats = ob_get_clean(); |
465
|
|
|
$GLOBALS['xoopsTpl']->assign('select_go_cats', $select_go_cats); |
466
|
|
|
} |
467
|
|
|
} |
468
|
|
|
|
469
|
|
|
# function categorynewgraphic |
470
|
|
|
##################################################### |
471
|
|
|
/** |
472
|
|
|
* @param $cid |
473
|
|
|
*/ |
474
|
|
|
function categorynewgraphic($cid): void |
|
|
|
|
475
|
|
|
{ |
476
|
|
|
//global $xoopsDB; |
477
|
|
|
} |
478
|
|
|
|
479
|
|
|
###################################################### |
480
|
|
|
|
481
|
|
|
$pa = Request::getInt('pa', null, 'GET'); |
482
|
|
|
$lid = Request::getInt('lid', null, 'GET'); |
483
|
|
|
$cid = Request::getInt('cid', null, 'GET'); |
484
|
|
|
$usid = Request::getString('usid', '', 'GET'); |
485
|
|
|
$min = Request::getInt('min', null, 'GET'); |
486
|
|
|
$show = Request::getInt('show', null, 'GET'); |
487
|
|
|
$orderby = Request::getString('orderby', '', 'GET'); |
488
|
|
|
|
489
|
|
|
switch ($pa) { |
490
|
|
|
default: |
491
|
|
|
$GLOBALS['xoopsOption']['template_main'] = 'adslight_category.tpl'; |
492
|
|
|
adsView($cid, $min, $orderby, $show); |
493
|
|
|
break; |
494
|
|
|
} |
495
|
|
|
require_once XOOPS_ROOT_PATH . '/footer.php'; |
496
|
|
|
|