Issues (292)

Security Analysis    not enabled

This project does not seem to handle request data directly as such no vulnerable execution paths were found.

  File Inclusion
File Inclusion enables an attacker to inject custom files into PHP's file loading mechanism, either explicitly passed to include, or for example via PHP's auto-loading mechanism.
  Regex Injection
Regex Injection enables an attacker to execute arbitrary code in your PHP process.
  SQL Injection
SQL Injection enables an attacker to execute arbitrary SQL code on your database server gaining access to user data, or manipulating user data.
  Response Splitting
Response Splitting can be used to send arbitrary responses.
  File Manipulation
File Manipulation enables an attacker to write custom data to files. This potentially leads to injection of arbitrary code on the server.
  Object Injection
Object Injection enables an attacker to inject an object into PHP code, and can lead to arbitrary code execution, file exposure, or file manipulation attacks.
  File Exposure
File Exposure allows an attacker to gain access to local files that he should not be able to access. These files can for example include database credentials, or other configuration files.
  XML Injection
XML Injection enables an attacker to read files on your local filesystem including configuration files, or can be abused to freeze your web-server process.
  Code Injection
Code Injection enables an attacker to execute arbitrary code on the server.
  Variable Injection
Variable Injection enables an attacker to overwrite program variables with custom data, and can lead to further vulnerabilities.
  XPath Injection
XPath Injection enables an attacker to modify the parts of XML document that are read. If that XML document is for example used for authentication, this can lead to further vulnerabilities similar to SQL Injection.
  Other Vulnerability
This category comprises other attack vectors such as manipulating the PHP runtime, loading custom extensions, freezing the runtime, or similar.
  Command Injection
Command Injection enables an attacker to inject a shell command that is execute with the privileges of the web-server. This can be used to expose sensitive data, or gain access of your server.
  LDAP Injection
LDAP Injection enables an attacker to inject LDAP statements potentially granting permission to run unauthorized queries, or modify content inside the LDAP tree.
  Cross-Site Scripting
Cross-Site Scripting enables an attacker to inject code into the response of a web-request that is viewed by other users. It can for example be used to bypass access controls, or even to take over other users' accounts.
  Header Injection
Unfortunately, the security analysis is currently not available for your project. If you are a non-commercial open-source project, please contact support to gain access.

admin/view_ads.php (9 issues)

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\Request;
24
use XoopsModules\Adslight\{
25
    Helper,
26
    Tree,
27
    Utility
28
};
29
30
/** @var Admin $adminObject */
31
/** @var Helper $helper */
32
require_once __DIR__ . '/admin_header.php';
33
34
$op = Request::getString('op', 'list');
35
36
#  function index
37
#####################################################
38
function index(): void
39
{
40
    global $xoopsDB, $myts, $desctext, $admin_lang;
41
    $helper = Helper::getInstance();
42
43
    //    $mytree = new Tree($xoopsDB->prefix('adslight_categories'), 'cid', 'pid');
44
    $photo3 = $photo4 = '';
45
    xoops_cp_header();
46
    //    loadModuleAdminMenu(0, '');
47
48
    // photo dir setting checker
49
    $photo_dir         = $helper->getConfig('adslight_path_upload', '');
50
    $photo_thumb_dir   = $helper->getConfig('adslight_path_upload') . '/thumbs';
51
    $photo_resized_dir = $helper->getConfig('adslight_path_upload') . '/midsize';
52
    if (!is_dir($photo_dir) && (!mkdir($photo_dir) && !is_dir($photo_dir))) {
53
        throw new \RuntimeException(sprintf('Directory "%s" was not created', $photo_dir));
54
    }
55
    if (!is_dir($photo_thumb_dir) && (!mkdir($photo_thumb_dir) && !is_dir($photo_thumb_dir))) {
56
        throw new \RuntimeException(sprintf('Directory "%s" was not created', $photo_thumb_dir));
57
    }
58
    if (!is_dir($photo_resized_dir) && (!mkdir($photo_resized_dir) && !is_dir($photo_resized_dir))) {
59
        throw new \RuntimeException(sprintf('Directory "%s" was not created', $photo_resized_dir));
60
    }
61
    if (!is_writable($photo_dir) || !is_readable($photo_dir)) {
62
        echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . _AM_ADSLIGHT_CHECKER . '</legend><br>';
63
        echo "<span style='color: #FF0000;'><b>" . _AM_ADSLIGHT_DIRPERMS . $photo_dir . "</b></span><br><br>\n";
64
        echo '</fieldset><br>';
65
    }
66
67
    if (!is_writable($photo_thumb_dir) || !is_readable($photo_thumb_dir)) {
68
        echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . _AM_ADSLIGHT_CHECKER . '</legend><br>';
69
        echo "<span style='color: #FF0000;'><b>" . _AM_ADSLIGHT_DIRPERMS . $photo_thumb_dir . "</b></span><br><br>\n";
70
        echo '</fieldset><br>';
71
    }
72
73
    if (!is_writable($photo_resized_dir) || !is_readable($photo_resized_dir)) {
74
        echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . _AM_ADSLIGHT_CHECKER . '</legend><br>';
75
        echo "<span style='color: #FF0000;'><b>" . _AM_ADSLIGHT_DIRPERMS . $photo_resized_dir . "</b></span><br><br>\n";
76
        echo '</fieldset><br>';
77
    }
78
79
    $sql    = 'SELECT lid, cid, title, status, expire, type, desctext, tel, price, typeprice, typecondition, date_created, email, submitter, town, country, contactby, premium, photo, usid FROM ' . $xoopsDB->prefix('adslight_listing') . " WHERE valid='Yes' ORDER BY lid";
80
    $result = $xoopsDB->query($sql);
81
    if (!$xoopsDB->isResultSet($result)) {
82
        \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
83
    }
84
    $numrows = $xoopsDB->getRowsNum($result);
85
    if ($numrows > 0) {
86
        // Il y a [..] Annonces en attente d'être approuvées //////
87
        echo "<table class='outer bnone' cellspacing=5 cellpadding=0><tr><td width=40>";
88
        echo "<img src='../assets/images/admin/error_button.png' border=0 ></td><td>";
89
        echo "<span style='color:#00B4C4;'><b>" . _AM_ADSLIGHT_THEREIS . "</b></span> <b>{$numrows}</b> <b><span style='color:#00B4C4;'>" . _AM_ADSLIGHT_ADSVALIDE . '</b></span>';
90
        echo '</td></tr></table><br>';
91
92
        // Liste des ID  ///// Soumis par /////  Titre   /////  Description  /////  Date d'ajout
93
        echo "<table class='outer width100 bnone'>";
94
        $rank = 1;
95
96
        while (false !== [$lid, $cid, $title, $status, $expire, $type, $desctext, $tel, $price, $typeprice, $typecondition, $date_created, $email, $submitter, $town, $country, $contactby, $premium, $photo, $usid] = $xoopsDB->fetchRow($result)) {
97
            $title    = \htmlspecialchars($title, ENT_QUOTES | ENT_HTML5);
98
            $desctext = $myts->displayTarea($desctext, 1, 0, 1, 1, 1);
99
100
            if (mb_strlen($desctext) >= 200) {
101
                $desctext = mb_substr($desctext, 0, 199) . '...';
102
            } else {
103
                $desctext = $myts->displayTarea($desctext, 1, 1, 1);
104
            }
105
            $date2  = formatTimestamp($date_created, 's');
106
            $color  = is_int($rank / 2) ? '#ffffff' : 'head';
0 ignored issues
show
The assignment to $color is dead and can be removed.
Loading history...
107
            $status = \htmlspecialchars($status, ENT_QUOTES | ENT_HTML5);
108
            $expire = \htmlspecialchars($expire, ENT_QUOTES | ENT_HTML5);
109
            $type   = \htmlspecialchars($type, ENT_QUOTES | ENT_HTML5);
110
            $tel    = \htmlspecialchars($tel, ENT_QUOTES | ENT_HTML5);
111
            //            $price = number_format($price, 2, ',', ' ');
112
            $typeprice     = \htmlspecialchars($typeprice, ENT_QUOTES | ENT_HTML5);
113
            $typecondition = \htmlspecialchars($typecondition, ENT_QUOTES | ENT_HTML5);
114
            $submitter     = \htmlspecialchars($submitter, ENT_QUOTES | ENT_HTML5);
115
            $town          = \htmlspecialchars($town, ENT_QUOTES | ENT_HTML5);
116
            $country       = \htmlspecialchars($country, ENT_QUOTES | ENT_HTML5);
117
            $contactby     = \htmlspecialchars($contactby, ENT_QUOTES | ENT_HTML5);
118
            $premium       = \htmlspecialchars($premium, ENT_QUOTES | ENT_HTML5);
119
120
            $updir   = $helper->getConfig('adslight_link_upload');
121
            $sql     = 'SELECT cod_img, lid, uid_owner, url FROM ' . $xoopsDB->prefix('adslight_pictures') . " WHERE  uid_owner={$usid} AND lid={$lid} ORDER BY date_created ASC LIMIT 1";
122
            $resultp = $xoopsDB->query($sql);
123
            if (!$xoopsDB->isResultSet($resultp)) {
124
                \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
125
            }
126
            while ([$cod_img, $pic_lid, $uid_owner, $url] = $xoopsDB->fetchRow($resultp)) {
127
                if ($photo) {
128
                    $photo3 = "<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>";
129
                }
130
            }
131
            if ($photo <= 0) {
132
                $photo3 = "<a href=\"index.php?op=indexView&lid={$lid}\"><img class=\"thumb\" src=\"" . XOOPS_URL . "/modules/adslight/assets/images/nophoto.jpg\" align=\"left\" width=\"100px\" alt=\"{$title}\"></a>";
133
            } else {
134
                $photo4 = (string)$photo;
135
            }
136
137
            $sql     = 'SELECT nom_type FROM ' . $xoopsDB->prefix('adslight_type') . ' WHERE id_type=' . (int)$type;
138
            $result7 = $xoopsDB->query($sql);
139
            if (!$xoopsDB->isResultSet($result7)) {
140
                \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
141
            }
142
            [$nom_type] = $xoopsDB->fetchRow($result7);
143
144
            $sql     = 'SELECT nom_price FROM ' . $xoopsDB->prefix('adslight_price') . ' WHERE id_price=' . (int)$typeprice;
145
            $result8 = $xoopsDB->query($sql);
146
            if (!$xoopsDB->isResultSet($result8)) {
147
                \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
148
            }
149
            [$nom_price] = $xoopsDB->fetchRow($result8);
150
151
            echo '<form action="view_ads.php" method="post">';
152
            echo $GLOBALS['xoopsSecurity']->getTokenHTML();
153
            echo "<tr><th class='left'>" . _AM_ADSLIGHT_LID . ": {$lid}</th><th class='left'>{$photo4} " . _AM_ADSLIGHT_NBR_PHOTO . "</th><th class='left'>" . _AM_ADSLIGHT_TITLE . ":</th><th class='left'>" . _AM_ADSLIGHT_DESC . "</th><th class='left'><!--" . _AM_ADSLIGHT_ACTIONS . '--></th></tr>';
154
155
            echo "<tr><td class='even width3'></td>";
156
            echo "<td class='odd width10' >{$photo3}</td>";
157
            echo "<td class='even width20'><b>{$title}</b><br><br>{$nom_type}<br>{$price} " . $helper->getConfig('adslight_currency_symbol') . " {$nom_price}<br>";
158
            echo "{$town} - {$country}<br>";
159
            echo '<b>' . _AM_ADSLIGHT_SUBMITTER . ":</b> {$submitter}<br>";
160
            echo '<b>' . _AM_ADSLIGHT_DATE . ":</b> {$date2}</td>";
161
            echo "<td class='even width='35%'>{$desctext}</td><td class='even right width2'></td>";
162
            echo "</tr><tr><td width='5%'></td><td>";
163
164
            echo '<select name="op">
165
        <option value="modifyAds"> ' . _AM_ADSLIGHT_MODIF . '
166
        <option value="listingDel"> ' . _AM_ADSLIGHT_DEL . '
167
               </select><input type="submit" value="' . _AM_ADSLIGHT_GO . '">';
168
169
            echo '<input type="hidden" name="valid" value="Yes">';
170
            echo "<input type=\"hidden\" name=\"lid\" value=\"{$lid}\">";
171
            echo "<input type=\"hidden\" name=\"cid\" value=\"{$cid}\">";
172
            echo "<input type=\"hidden\" name=\"title\" value=\"{$title}\">";
173
            echo "<input type=\"hidden\" name=\"status\" value=\"{$status}\">";
174
            echo "<input type=\"hidden\" name=\"expire\" value=\"{$expire}\">";
175
            echo "<input type=\"hidden\" name=\"type\" value=\"{$type}\">";
176
            echo "<input type=\"hidden\" name=\"desctext\" value=\"{$desctext}\">";
177
            echo "<input type=\"hidden\" name=\"tel\" value=\"{$tel}\">";
178
            echo "<input type=\"hidden\" name=\"price\" value=\"{$price}\">";
179
            echo "<input type=\"hidden\" name=\"typeprice\" value=\"{$typeprice}\">";
180
            echo "<input type=\"hidden\" name=\"typecondition\" value=\"{$typecondition}\">";
181
            echo "<input type=\"hidden\" name=\"date_created\" value=\"{$date_created}\">";
182
            echo "<input type=\"hidden\" name=\"email\" value=\"{$email}\">";
183
            echo "<input type=\"hidden\" name=\"submitter\" value=\"{$submitter}\">";
184
            echo "<input type=\"hidden\" name=\"town\" value=\"{$town}\">";
185
            echo "<input type=\"hidden\" name=\"country\" value=\"{$country}\">";
186
            echo "<input type=\"hidden\" name=\"contactby\" value=\"{$contactby}\">";
187
            echo "<input type=\"hidden\" name=\"premium\" value=\"{$premium}\">";
188
            echo "<input type=\"hidden\" name=\"photo\" value=\"{$photo}\">";
189
            echo '</form><br></td></tr>';
190
            ++$rank;
191
        }
192
193
        echo '</td></tr></table>
194
              <br><br>';
195
    } else {
196
        echo "<table class='outer width50 bnone'><tr><td class='width40'>";
197
        echo "<img src='../assets/images/admin/search_button_green_32.png' border=0 ></td><td>";
198
        echo "<span style='color: #00B4C4;'><b>" . _AM_ADSLIGHT_NOANNVALADS . '</b></span>';
199
        echo '</td></tr></table><br>';
200
    }
201
202
    xoops_cp_footer();
203
}
204
205
#  function indexView
206
#####################################################
207
/**
208
 * @param null $lid
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $lid is correct as it would always require null to be passed?
Loading history...
209
 */
210
function indexView($lid = null): void
211
{
212
    global $xoopsDB, $myts, $desctext, $admin_lang;
213
    $helper = Helper::getInstance();
214
    $mytree = new Tree($xoopsDB->prefix('adslight_categories'), 'cid', 'pid');
215
216
    require_once __DIR__ . '/admin_header.php';
217
    xoops_cp_header();
218
    //    loadModuleAdminMenu(0, '');
219
220
    $sql    = 'SELECT lid, cid, title, status, expire, type, desctext, tel, price, typeprice, typecondition, date_created, email, submitter, town, country, contactby, premium, photo FROM ' . $xoopsDB->prefix('adslight_listing') . " WHERE valid='No' AND lid='{$lid}'";
221
    $result = $xoopsDB->query($sql);
222
    if (!$xoopsDB->isResultSet($result)) {
223
        \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
224
    }
225
    $numrows = $xoopsDB->getRowsNum($result);
226
    if ($numrows > 0) {
227
        echo "<table class='width100' cellspacing='1' cellpadding='8' style='border: 2px solid #DFE0E0;'><tr class='bg4'><td class='top'>";
228
        echo '<b>' . _AM_ADSLIGHT_WAIT . '</b><br><br>';
229
230
        [$lid, $cid, $title, $status, $expire, $type, $desctext, $tel, $price, $typeprice, $typecondition, $date_created, $email, $submitter, $town, $country, $contactby, $premium, $photo] = $xoopsDB->fetchRow($result);
231
232
        $lid      = (int)$lid;
233
        $cid      = (int)$cid;
234
        $date2    = formatTimestamp($date_created, 's');
235
        $title    = \htmlspecialchars($title, ENT_QUOTES | ENT_HTML5);
236
        $status   = \htmlspecialchars($status, ENT_QUOTES | ENT_HTML5);
237
        $expire   = \htmlspecialchars($expire, ENT_QUOTES | ENT_HTML5);
238
        $type     = \htmlspecialchars($type, ENT_QUOTES | ENT_HTML5);
239
        $desctext = $myts->displayTarea($desctext, 1, 1, 1);
240
        $tel      = \htmlspecialchars($tel, ENT_QUOTES | ENT_HTML5);
241
        //        $price = number_format($price, 2, ',', ' ');
242
        $typeprice     = \htmlspecialchars($typeprice, ENT_QUOTES | ENT_HTML5);
243
        $typecondition = \htmlspecialchars($typecondition, ENT_QUOTES | ENT_HTML5);
244
        $submitter     = \htmlspecialchars($submitter, ENT_QUOTES | ENT_HTML5);
245
        $town          = \htmlspecialchars($town, ENT_QUOTES | ENT_HTML5);
246
        $country       = \htmlspecialchars($country, ENT_QUOTES | ENT_HTML5);
247
        $contactby     = \htmlspecialchars($contactby, ENT_QUOTES | ENT_HTML5);
248
        $premium       = \htmlspecialchars($premium, ENT_QUOTES | ENT_HTML5);
249
250
        echo '<form action="index.php" method="post">';
251
        echo $GLOBALS['xoopsSecurity']->getTokenHTML();
252
        echo "<table><tr class='head' border='1'>
253
            <td>" . _AM_ADSLIGHT_NUMANN . " </td><td>{$lid} &nbsp;&nbsp;&nbsp;&nbsp;   " . _AM_ADSLIGHT_ADDED_ON . " &nbsp;&nbsp;&nbsp;&nbsp; {$date2}</td>
254
            </tr><tr class='head' border='1'>
255
        <td>" . _AM_ADSLIGHT_SENDBY . " </td><td>{$submitter}</td>
256
            </tr><tr class='head' border='1'>
257
        <td>" . _AM_ADSLIGHT_EMAIL . " </td><td><input type=\"text\" name=\"email\" size=\"40\" value=\"{$email}\"></td>
258
            </tr><tr class='head' border='1'>
259
        <td>" . _AM_ADSLIGHT_TEL . " </td><td><input type=\"text\" name=\"tel\" size=\"50\" value=\"{$tel}\"></td>
260
            </tr><tr class='head' border='1'>
261
        <td>" . _AM_ADSLIGHT_TOWN . " </td><td><input type=\"text\" name=\"town\" size=\"40\" value=\"{$town}\"></td>
262
            </tr><tr class='head' border='1'>
263
        <td>" . _AM_ADSLIGHT_COUNTRY . " </td><td><input type=\"text\" name=\"country\" size=\"40\" value=\"{$country}\"></td>
264
            </tr><tr class='head' border='1'>
265
        <td>" . _AM_ADSLIGHT_CONTACTBY . " </td><td><input type=\"text\" name=\"contactby\" size=\"40\" value=\"{$contactby}\"></td>
266
            </tr>";
267
268
        echo "<tr>
269
            <td class='head'>" . _AM_ADSLIGHT_STATUS . "</td><td class='head'><input type=\"radio\" name=\"status\" value=\"0\"";
270
        if (0 === (int)$status) {
271
            echo 'checked';
272
        }
273
        echo '>' . _AM_ADSLIGHT_ACTIVE . '&nbsp;&nbsp; <input type="radio" name="status" value="1"';
274
        if (1 === (int)$status) {
275
            echo 'checked';
276
        }
277
        echo '>' . _AM_ADSLIGHT_INACTIVE . '&nbsp;&nbsp; <input type="radio" name="status" value="2"';
278
        if (2 === (int)$status) {
279
            echo 'checked';
280
        }
281
        echo '>' . _AM_ADSLIGHT_SOLD . '</td></tr>';
282
283
        echo "<tr class='head' border='1'>
284
           <td>" . _AM_ADSLIGHT_TITLE2 . " </td><td><input type=\"text\" name=\"title\" size=\"40\" value=\"{$title}\"></td>
285
            </tr><tr class='head' border='1'>
286
           <td>" . _AM_ADSLIGHT_PREMIUM . " </td><td><input type=\"text\" name=\"premium\" size=\"3\" value=\"{$premium}\"></td>
287
            </tr><tr class='head' border='1'>
288
           <td>" . _AM_ADSLIGHT_EXPIRE . " </td><td><input type=\"text\" name=\"expire\" size=\"40\" value=\"{$expire}\"></td>
289
            </tr><tr class='head' border='1'>
290
            <td>" . _AM_ADSLIGHT_TYPE . ' </td><td><select name="type">';
291
292
        $sql     = 'SELECT nom_type FROM ' . $xoopsDB->prefix('adslight_type') . ' ORDER BY nom_type';
293
        $result5 = $xoopsDB->query($sql);
294
        if (!$xoopsDB->isResultSet($result5)) {
295
            \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
296
        }
297
        while ([$nom_type] = $xoopsDB->fetchRow($result5)) {
298
            $sel = '';
299
            if ($nom_type === $type) {
300
                $sel = 'selected';
301
            }
302
            echo "<option value=\"{$nom_type}\"{$sel}>{$nom_type}</option>";
303
        }
304
305
        echo '</select></td></tr>';
306
307
        ////// Condition
308
        echo "<tr class='head' border='1'>
309
            <td>" . _AM_ADSLIGHT_TYPE_CONDITION . ' </td><td><select name="typecondition">';
310
311
        $sql     = 'SELECT nom_condition FROM ' . $xoopsDB->prefix('adslight_condition') . ' ORDER BY nom_condition';
312
        $result6 = $xoopsDB->query($sql);
313
        if (!$xoopsDB->isResultSet($result6)) {
314
            \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
315
        }
316
        while ([$nom_condition] = $xoopsDB->fetchRow($result6)) {
317
            $sel = '';
318
            if ($nom_condition === $typecondition) {
319
                $sel = 'selected';
320
            }
321
            echo "<option value=\"{$nom_condition}\"{$sel}>{$nom_condition}</option>";
322
        }
323
        echo '</select></td></tr>';
324
325
        echo "<tr class='head' border='1'><td>" . _AM_ADSLIGHT_PRICE2 . " </td><td><input type=\"text\" name=\"price\" size=\"20\" value=\"{$price}\"> " . $helper->getConfig('adslight_currency_symbol');
326
        $sql     = 'SELECT nom_price FROM ' . $xoopsDB->prefix('adslight_price') . ' ORDER BY id_price';
327
        $result3 = $xoopsDB->query($sql);
328
        if (!$xoopsDB->isResultSet($result3)) {
329
            \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
330
        }
331
        echo " <select name=\"typeprice\"><option value=\"{$typeprice}\">{$typeprice}</option>";
332
        while ([$nom_price] = $xoopsDB->fetchRow($result3)) {
333
            echo "<option value=\"{$nom_price}\">{$nom_price}</option>";
334
        }
335
        echo '</select></td></tr>';
336
337
        echo "<tr class='head' border='1'>
338
           <td>" . _AM_ADSLIGHT_PHOTO1 . " </td><td><input type=\"text\" name=\"photo\" size=\"40\" value=\"{$photo}\"></td>
339
            </tr>";
340
        echo "<tr class='head' border='1'><td>" . _AM_ADSLIGHT_DESC . '</td><td>';
341
        $wysiwyg_text_area = Utility::getEditor(_AM_ADSLIGHT_DESC);
0 ignored issues
show
_AM_ADSLIGHT_DESC of type string is incompatible with the type Xmf\Module\Helper|null expected by parameter $helper of XoopsModules\Adslight\Co...SysUtility::getEditor(). ( Ignorable by Annotation )

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

341
        $wysiwyg_text_area = Utility::getEditor(/** @scrutinizer ignore-type */ _AM_ADSLIGHT_DESC);
Loading history...
342
        echo $wysiwyg_text_area->render();
343
        echo '</td></tr>';
344
        echo "<tr class='head' border='1'><td>" . _AM_ADSLIGHT_CAT . ' </td><td>';
345
        $mytree->makeMySelBox('title', 'title', $cid);
346
        echo "</td>
347
        </tr><tr class='head' border='1'>
348
        <td>&nbsp;</td><td><select name=\"op\">
349
        <option value=\"listingValid\"> " . _AM_ADSLIGHT_OK . '
350
        <option value="listingDel"> ' . _AM_ADSLIGHT_DEL . '
351
        </select><input type="submit" value="' . _AM_ADSLIGHT_GO . '"></td>
352
        </tr></table>';
353
        echo '<input type="hidden" name="valid" value="Yes">';
354
        echo "<input type=\"hidden\" name=\"lid\" value=\"{$lid}\">";
355
        echo "<input type=\"hidden\" name=\"date_created\" value=\"{$date_created}\">";
356
        echo "<input type=\"hidden\" name=\"submitter\" value=\"{$submitter}\">
357
            </form>";
358
359
        echo '</td></tr></table>';
360
        echo '<br>';
361
    }
362
363
    require_once __DIR__ . '/admin_footer.php';
364
}
365
366
#  function modifyAds
367
#####################################################
368
/**
369
 * @param $lid
370
 */
371
function modifyAds($lid): void
372
{
373
    global $xoopsDB, $myts, $desctext, $admin_lang;
374
    $helper = Helper::getInstance();
375
    $mytree = new Tree($xoopsDB->prefix('adslight_categories'), 'cid', 'pid');
376
377
    //    require_once __DIR__ . '/admin_header.php';
378
    xoops_cp_header();
379
    //    loadModuleAdminMenu(0, '');
380
381
    $lid           = (int)$lid;
382
    $id_price      = '';
383
    $nom_price     = '';
384
    $contactselect = '';
0 ignored issues
show
The assignment to $contactselect is dead and can be removed.
Loading history...
385
386
    echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . _AM_ADSLIGHT_MODANN . '</legend>';
387
388
    $sql    = 'SELECT lid, cid, title, status, expire, type, desctext, tel, price, typeprice, typecondition, date_created, email, submitter, town, country, contactby, premium, valid, photo FROM ' . $xoopsDB->prefix('adslight_listing') . " WHERE lid={$lid}";
389
    $result = $xoopsDB->query($sql);
390
    if (!$xoopsDB->isResultSet($result)) {
391
        \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
392
    }
393
    while ([$lid, $cid, $title, $status, $expire, $type, $desctext, $tel, $price, $typeprice, $typecondition, $date_created, $email, $submitter, $town, $country, $contactby, $premium, $valid, $photo] = $xoopsDB->fetchRow(
394
        $result
395
    )) {
396
        $title = \htmlspecialchars($title, ENT_QUOTES | ENT_HTML5);
397
        //        $status    = \htmlspecialchars($status);
398
        $status   = (int)$status;
399
        $expire   = \htmlspecialchars($expire, ENT_QUOTES | ENT_HTML5);
400
        $type     = \htmlspecialchars($type, ENT_QUOTES | ENT_HTML5);
401
        $desctext = $myts->displayTarea($desctext, 1, 1, 1);
402
        $tel      = \htmlspecialchars($tel, ENT_QUOTES | ENT_HTML5);
403
        //        $price     = number_format($price, 2, ',', ' ');
404
        $typeprice     = \htmlspecialchars($typeprice, ENT_QUOTES | ENT_HTML5);
405
        $typecondition = \htmlspecialchars($typecondition, ENT_QUOTES | ENT_HTML5);
406
        $submitter     = \htmlspecialchars($submitter, ENT_QUOTES | ENT_HTML5);
407
        $town          = \htmlspecialchars($town, ENT_QUOTES | ENT_HTML5);
408
        $country       = \htmlspecialchars($country, ENT_QUOTES | ENT_HTML5);
409
        $contactby     = \htmlspecialchars($contactby, ENT_QUOTES | ENT_HTML5);
410
        $premium       = \htmlspecialchars($premium, ENT_QUOTES | ENT_HTML5);
411
412
        $date2 = formatTimestamp($date_created, 's');
413
414
        echo '<form action="view_ads.php" method="post">';
415
        echo $GLOBALS['xoopsSecurity']->getTokenHTML();
416
        echo "<table border=0><tr class='head' border='1'>
417
           <td>" . _AM_ADSLIGHT_NUMANN . " </td><td>{$lid} &nbsp;" . _AM_ADSLIGHT_ADDED_ON . "&nbsp; {$date2}</td>
418
            </tr><tr class='head' border='1'>
419
           <td>" . _AM_ADSLIGHT_SENDBY . " </td><td>{$submitter}</td>
420
            </tr><tr class='head' border='1'>
421
           <td>" . _AM_ADSLIGHT_EMAIL . " </td><td><input type=\"text\" name=\"email\" size=\"40\" value=\"{$email}\"></td>
422
            </tr><tr class='head' border='1'>
423
           <td>" . _AM_ADSLIGHT_TEL . " </td><td><input type=\"text\" name=\"tel\" size=\"50\" value=\"{$tel}\"></td>
424
            </tr><tr class='head' border='1'>
425
           <td>" . _AM_ADSLIGHT_TOWN . " </td><td><input type=\"text\" name=\"town\" size=\"40\" value=\"{$town}\"></td>
426
            </tr><tr class='head' border='1'>
427
           <td>" . _AM_ADSLIGHT_COUNTRY . " </td><td><input type=\"text\" name=\"country\" size=\"40\" value=\"{$country}\"></td>
428
            </tr>
429
            <tr class='head' border='1'>";
430
431
        $contactSel1 = $contactSel2 = $contactSel3 = $contactSel4 = '';
432
        $selected    = 'contactSel' . (int)$contactby;
433
        ${$selected} = ' selected';
434
435
        echo " <td class='head'>"
436
             . _AM_ADSLIGHT_CONTACTBY
437
             . " </td><td class='head'><select name=\"contactby\">\n"
438
             //           . "  <option value=\"{$contactby}\">{$contactselect}</option>\n"
439
             . "  <option value=\"1\"{$contactSel1}>"
440
             . _AM_ADSLIGHT_CONTACT_BY_EMAIL
441
             . "</option>\n"
442
             . "  <option value=\"2\"{$contactSel2}>"
443
             . _AM_ADSLIGHT_CONTACT_BY_PM
444
             . "</option>\n"
445
             . "  <option value=\"3\"{$contactSel3}>"
446
             . _AM_ADSLIGHT_CONTACT_BY_BOTH
447
             . "</option>\n"
448
             . "  <option value=\"4\"{$contactSel4}>"
449
             . _AM_ADSLIGHT_CONTACT_BY_PHONE
450
             . "</option></select>\n"
451
             . " </td>\n"
452
             . '</tr>';
453
454
        echo "<tr><td class='head'>" . _AM_ADSLIGHT_STATUS . "</td><td class='head'><input type=\"radio\" name=\"status\" value=\"0\"";
455
        if (0 === $status) {
456
            echo 'checked';
457
        }
458
        echo '>' . _AM_ADSLIGHT_ACTIVE . '&nbsp;&nbsp; <input type="radio" name="status" value="1"';
459
        if (1 === $status) {
460
            echo 'checked';
461
        }
462
        echo '>' . _AM_ADSLIGHT_INACTIVE . '&nbsp;&nbsp; <input type="radio" name="status" value="2"';
463
        if (2 === $status) {
464
            echo 'checked';
465
        }
466
        echo '>' . _AM_ADSLIGHT_SOLD . '</td></tr>';
467
468
        echo "<tr class='head' border='1'>
469
           <td>" . _AM_ADSLIGHT_TITLE2 . " </td><td><input type=\"text\" name=\"title\" size=\"40\" value=\"{$title}\"></td>
470
            </tr><tr class='head' border='1'>
471
           <td>" . _AM_ADSLIGHT_PREMIUM . " </td><td><input type=\"text\" name=\"premium\" size=\"3\" value=\"{$premium}\"></td>
472
            </tr><tr class='head' border='1'>
473
           <td>" . _AM_ADSLIGHT_EXPIRE . " </td><td><input type=\"text\" name=\"expire\" size=\"40\" value=\"{$expire}\"></td>
474
            </tr>";
475
        // Type d'annonce
476
        echo "<tr class='head' border='1'>
477
            <td>" . _AM_ADSLIGHT_TYPE . ' </td><td><select name="type">';
478
479
        $sql     = 'SELECT nom_type, id_type FROM ' . $xoopsDB->prefix('adslight_type') . ' ORDER BY nom_type';
480
        $result5 = $xoopsDB->query($sql);
481
        if (!$xoopsDB->isResultSet($result5)) {
482
            \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
483
        }
484
        while ([$nom_type, $id_type] = $xoopsDB->fetchRow($result5)) {
485
            $sel = '';
486
            if ($id_type === $type) {
487
                $sel = 'selected';
488
            }
489
            echo "<option value=\"{$id_type}\"{$sel}>{$nom_type}</option>";
490
        }
491
        echo '</select></td></tr>';
492
493
        // Condition
494
        echo "<tr class='head' border='1'>
495
            <td>" . _AM_ADSLIGHT_TYPE_CONDITION . ' </td><td><select name="typecondition">';
496
497
        $sql     = 'SELECT nom_condition, id_condition FROM ' . $xoopsDB->prefix('adslight_condition') . ' ORDER BY nom_condition';
498
        $result6 = $xoopsDB->query($sql);
499
        if (!$xoopsDB->isResultSet($result6)) {
500
            \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
501
        }
502
        while ([$nom_condition, $id_condition] = $xoopsDB->fetchRow($result6)) {
503
            $sel = '';
504
            if ($id_condition === $typecondition) {
505
                $sel = 'selected';
506
            }
507
            echo "<option value=\"{$id_condition}\"{$sel}>{$nom_condition}</option>";
508
        }
509
        echo '</select></td></tr>';
510
511
        /////// Price
512
        echo "<tr class='head' border='1'><td>" . _AM_ADSLIGHT_PRICE2 . " </td><td><input type=\"text\" name=\"price\" size=\"20\" value=\"{$price}\"> {$helper->getConfig('adslight_currency_symbol')}";
513
514
        // Price type
515
        $sql     = 'SELECT nom_price, id_price FROM ' . $xoopsDB->prefix('adslight_price') . ' ORDER BY nom_price';
516
        $resultx = $xoopsDB->query($sql);
517
        if (!$xoopsDB->isResultSet($resultx)) {
518
            \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
519
        }
520
        echo " <select name=\"typeprice\"><option value=\"{$id_price}\">{$nom_price}</option>";
521
        while ([$nom_price, $id_price] = $xoopsDB->fetchRow($resultx)) {
522
            $sel = '';
523
            if ($id_price === $typeprice) {
524
                $sel = 'selected';
525
            }
526
527
            echo "<option value=\"{$id_price}\"{$sel}>{$nom_price}</option>";
528
        }
529
        echo '</select></td>';
530
531
        // Category
532
        echo "<tr class='head' border='1'>
533
            <td>" . _AM_ADSLIGHT_CAT2 . ' </td><td>';
534
        $mytree->makeMySelBox('title', 'title', $cid);
535
        echo "</td>
536
            </tr><tr class='head' border='1'>
537
            <td>" . _AM_ADSLIGHT_DESC . ' </td><td>';
538
539
        $wysiwyg_text_area = Utility::getEditor();
540
        echo $wysiwyg_text_area->render();
541
542
        echo '</td></tr>';
543
544
        echo "<tr class='head' border='1'>
545
            <td>" . _AM_ADSLIGHT_PHOTO1 . " </td><td><input type=\"text\" name=\"photo\" size=\"50\" value=\"{$photo}\"></td>
546
            </tr><tr>";
547
        $time = time();
548
        echo "</tr><tr class='head' border='1'>
549
            <td>&nbsp;</td><td><select name=\"op\">
550
            <option value=\"modifyAdsS\"> " . _AM_ADSLIGHT_MODIF . '
551
            <option value="listingDel"> ' . _AM_ADSLIGHT_DEL . '
552
            </select><input type="submit" value="' . _AM_ADSLIGHT_GO . '"></td>
553
            </tr></table>';
554
        echo '<input type="hidden" name="valid" value="Yes">';
555
        echo "<input type=\"hidden\" name=\"lid\" value=\"{$lid}\">";
556
        echo "<input type=\"hidden\" name=\"date_created\" value=\"{$time}\">";
557
        echo "<input type=\"hidden\" name=\"submitter\" value=\"{$submitter}\">
558
              </form><br>";
559
        echo '</fieldset><br>';
560
        xoops_cp_footer();
561
    }
562
}
563
564
#  function modifyAdsS
565
#####################################################
566
567
/**
568
 * @param string $lid
569
 * @param string $cat
570
 * @param string $title
571
 * @param string $status
572
 * @param string $expire
573
 * @param string $type
574
 * @param string $desctext
575
 * @param string $tel
576
 * @param string $price
577
 * @param string $typeprice
578
 * @param string $typecondition
579
 * @param string $date_created
580
 * @param string $email
581
 * @param string $submitter
582
 * @param string $town
583
 * @param string $country
584
 * @param string $contactby
585
 * @param string $premium
586
 * @param string $valid
587
 * @param string $photo
588
 */
589
function modifyAdsS(
590
    $lid,
591
    $cat,
592
    $title,
593
    $status,
594
    $expire,
595
    $type,
596
    $desctext,
597
    $tel,
598
    $price,
599
    $typeprice,
600
    $typecondition,
601
    $date_created,
602
    $email,
603
    $submitter,
604
    $town,
605
    $country,
606
    $contactby,
607
    $premium,
608
    $valid,
609
    $photo
610
): void {
611
    global $xoopsDB, $myts, $admin_lang;
612
613
    $helper = Helper::getInstance();
614
    $lid    = (int)$lid;
615
    $cat    = (int)$cat;
616
    $title  = \htmlspecialchars($title, ENT_QUOTES | ENT_HTML5);
617
    //    $status    = \htmlspecialchars($status);
618
    $status        = (int)$status;
619
    $expire        = \htmlspecialchars($expire, ENT_QUOTES | ENT_HTML5);
620
    $type          = \htmlspecialchars($type, ENT_QUOTES | ENT_HTML5);
621
    $desctext      = $myts->displayTarea($desctext, 1, 1, 1);
622
    $tel           = \htmlspecialchars($tel, ENT_QUOTES | ENT_HTML5);
623
    $price         = str_replace(' ', '', $price);
624
    $typeprice     = \htmlspecialchars($typeprice, ENT_QUOTES | ENT_HTML5);
625
    $typecondition = \htmlspecialchars($typecondition, ENT_QUOTES | ENT_HTML5);
626
    $submitter     = \htmlspecialchars($submitter, ENT_QUOTES | ENT_HTML5);
627
    $town          = \htmlspecialchars($town, ENT_QUOTES | ENT_HTML5);
628
    $country       = \htmlspecialchars($country, ENT_QUOTES | ENT_HTML5);
629
    $contactby     = \htmlspecialchars($contactby, ENT_QUOTES | ENT_HTML5);
630
    $premium       = \htmlspecialchars($premium, ENT_QUOTES | ENT_HTML5);
631
632
    $xoopsDB->query(
633
        'UPDATE '
634
        . $xoopsDB->prefix('adslight_listing')
635
        . " SET cid='{$cat}', title='{$title}', status='{$status}', expire='{$expire}', type='{$type}', desctext='{$desctext}', tel='{$tel}', price='{$price}', typeprice='{$typeprice}', typecondition='{$typecondition}', date_created='{$date_created}', email='{$email}', submitter='{$submitter}', town='{$town}', country='{$country}', contactby='{$contactby}', premium='{$premium}', valid='{$valid}', photo='{$photo}' WHERE lid={$lid}"
636
    );
637
638
    $helper->redirect('admin/view_ads.php', 1, _AM_ADSLIGHT_ANNMOD);
639
}
640
641
#  function listingDel
642
#####################################################
643
/**
644
 * @param $lid
645
 * @param $photo
646
 */
647
function listingDel($lid, $photo): void
0 ignored issues
show
The parameter $photo is not used and could be removed. ( Ignorable by Annotation )

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

647
function listingDel($lid, /** @scrutinizer ignore-unused */ $photo): void

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
648
{
649
    global $xoopsDB, $admin_lang;
650
    $helper = Helper::getInstance();
651
652
    $lid     = (int)$lid;
653
    $sql     = 'SELECT p.url FROM ' . $xoopsDB->prefix('adslight_listing') . ' l LEFT JOIN ' . $xoopsDB->prefix('adslight_pictures') . " p  ON l.lid=p.lid WHERE l.lid={$lid}";
654
    $result2 = $xoopsDB->query($sql);
655
    if (!$xoopsDB->isResultSet($result2)) {
656
        \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
657
    }
658
    while ([$purl] = $xoopsDB->fetchRow($result2)) {
659
        if ($purl) {
660
            $destination = XOOPS_ROOT_PATH . '/uploads/adslight';
661
            if (is_file("{$destination}/{$purl}")) {
662
                unlink("{$destination}/{$purl}");
663
            }
664
            $destination2 = XOOPS_ROOT_PATH . '/uploads/adslight/thumbs';
665
            if (is_file("{$destination2}/thumb_{$purl}")) {
666
                unlink("{$destination2}/thumb_{$purl}");
667
            }
668
            $destination3 = XOOPS_ROOT_PATH . '/uploads/adslight/midsize';
669
            if (is_file("{$destination3}/resized_{$purl}")) {
670
                unlink("{$destination3}/resized_{$purl}");
671
            }
672
            $sql = 'DELETE FROM ' . $xoopsDB->prefix('adslight_pictures') . " WHERE lid={$lid}";
673
            $xoopsDB->query($sql);
674
        }
675
    }
676
677
    $sql = 'DELETE FROM ' . $xoopsDB->prefix('adslight_listing') . " WHERE lid={$lid}";
678
    $xoopsDB->query($sql);
679
    $helper->redirect('admin/view_ads.php', 1, _AM_ADSLIGHT_ANNDEL);
680
}
681
682
#  function listingValid
683
#####################################################
684
/**
685
 * @param string $lid
686
 * @param string $cid
687
 * @param string $title
688
 * @param string $status
689
 * @param string $expire
690
 * @param string $type
691
 * @param string $desctext
692
 * @param string $tel
693
 * @param string $price
694
 * @param string $typeprice
695
 * @param string $typecondition
696
 * @param string $date_created
697
 * @param string $email
698
 * @param string $submitter
699
 * @param string $town
700
 * @param string $country
701
 * @param string $contactby
702
 * @param string $premium
703
 * @param string $valid
704
 * @param string $photo
705
 */
706
function listingValid(
707
    $lid,
708
    $cid,
709
    $title,
710
    $status,
711
    $expire,
712
    $type,
713
    $desctext,
714
    $tel,
715
    $price,
716
    $typeprice,
717
    $typecondition,
718
    $date_created,
0 ignored issues
show
The parameter $date_created is not used and could be removed. ( Ignorable by Annotation )

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

718
    /** @scrutinizer ignore-unused */ $date_created,

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
719
    $email,
720
    $submitter,
721
    $town,
722
    $country,
723
    $contactby,
724
    $premium,
725
    $valid,
726
    $photo
727
): void {
728
    global $xoopsDB, $xoopsConfig, $xoopsModule, $myts, $meta, $admin_lang;
729
    $helper        = Helper::getInstance();
730
    $lid           = (int)$lid;
731
    $cid           = (int)$cid;
732
    $title         = \htmlspecialchars($title, ENT_QUOTES | ENT_HTML5);
733
    $status        = (int)$status;
734
    $expire        = \htmlspecialchars($expire, ENT_QUOTES | ENT_HTML5);
735
    $type          = \htmlspecialchars($type, ENT_QUOTES | ENT_HTML5);
736
    $desctext      = $myts->displayTarea($desctext, 1, 1, 1);
737
    $tel           = \htmlspecialchars($tel, ENT_QUOTES | ENT_HTML5);
738
    $price         = str_replace(' ', '', $price);
739
    $typeprice     = \htmlspecialchars($typeprice, ENT_QUOTES | ENT_HTML5);
740
    $typecondition = \htmlspecialchars($typecondition, ENT_QUOTES | ENT_HTML5);
741
    $submitter     = \htmlspecialchars($submitter, ENT_QUOTES | ENT_HTML5);
742
    $town          = \htmlspecialchars($town, ENT_QUOTES | ENT_HTML5);
743
    $country       = \htmlspecialchars($country, ENT_QUOTES | ENT_HTML5);
744
    $contactby     = \htmlspecialchars($contactby, ENT_QUOTES | ENT_HTML5);
745
    $premium       = \htmlspecialchars($premium, ENT_QUOTES | ENT_HTML5);
746
    $valid         = \htmlspecialchars($valid, ENT_QUOTES | ENT_HTML5);
747
    $photo         = \htmlspecialchars($photo, ENT_QUOTES | ENT_HTML5);
748
    $now           = time();
749
    $xoopsDB->query(
750
        'UPDATE '
751
        . $xoopsDB->prefix('adslight_listing')
752
        . " SET cid='{$cid}', title='{$title}', status='{$status}', expire='{$expire}', type='{$type}', desctext='{$desctext}', tel='{$tel}', price='{$price}', typeprice='{$typeprice}', typecondition='{$typecondition}', date_created='{$now}', email='{$email}', submitter='{$submitter}', town='{$town}', country='{$country}', contactby='{$contactby}', premium='{$premium}', valid='{$valid}', photo='{$photo}' WHERE lid={$lid}"
753
    );
754
755
    if ('' !== $email) {
756
        $tags               = [];
757
        $tags['TITLE']      = $title;
758
        $tags['TYPE']       = Utility::getNameType($type);
759
        $tags['SUBMITTER']  = $submitter;
760
        $tags['DESCTEXT']   = stripslashes($desctext);
761
        $tags['EMAIL']      = _AM_ADSLIGHT_EMAIL;
762
        $tags['TEL']        = _AM_ADSLIGHT_TEL;
763
        $tags['HELLO']      = _AM_ADSLIGHT_HELLO;
764
        $tags['VEDIT_AD']   = _AM_ADSLIGHT_VEDIT_AD;
765
        $tags['ANNACCEPT']  = _AM_ADSLIGHT_ANNACCEPT;
766
        $tags['CONSULTTO']  = _AM_ADSLIGHT_CONSULTTO;
767
        $tags['THANKS']     = _ADSLIGHT_THANKS;
768
        $tags['TEAMOF']     = _AM_ADSLIGHT_TEAMOF;
769
        $tags['META_TITLE'] = $meta['title'];
770
        $tags['LINK_URL']   = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . "/viewads.php?lid={$lid}";
771
        $tags['YOUR_AD']    = _AM_ADSLIGHT_YOUR_AD;
772
        $tags['WEBMASTER']  = _AM_ADSLIGHT_WEBMASTER;
773
        $tags['YOUR_AD_ON'] = _AM_ADSLIGHT_YOUR_AD_ON;
774
        $tags['APPROVED']   = _AM_ADSLIGHT_APPROVED;
775
776
        $subject = _AM_ADSLIGHT_ANNACCEPT;
777
        $mail    = getMailer();
778
        $mail->setTemplateDir(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . "/language/{$xoopsConfig['language']}/mail_template/");
779
        $mail->setTemplate('listing_approve.tpl');
780
        $mail->useMail();
781
        $mail->multimailer->isHTML(true);
782
        $mail->setFromName($meta['title']);
783
        $mail->setFromEmail($xoopsConfig['adminmail']);
784
        $mail->setToEmails($email);
785
        $mail->setSubject($subject);
786
        $mail->assign($tags);
787
        $mail->send();
788
        echo $mail->getErrors();
789
    }
790
791
    $tags                    = [];
792
    $tags['TITLE']           = $title;
793
    $tags['ADDED_TO_CAT']    = _AM_ADSLIGHT_ADDED_TO_CAT;
794
    $tags['RECIEVING_NOTIF'] = _AM_ADSLIGHT_RECIEVING_NOTIF;
795
    $tags['ERROR_NOTIF']     = _AM_ADSLIGHT_ERROR_NOTIF;
796
    $tags['WEBMASTER']       = _AM_ADSLIGHT_WEBMASTER;
797
    $tags['HELLO']           = _AM_ADSLIGHT_HELLO;
798
    $tags['FOLLOW_LINK']     = _AM_ADSLIGHT_FOLLOW_LINK;
799
    $tags['TYPE']            = Utility::getNameType($type);
800
    $tags['LINK_URL']        = XOOPS_URL . "/modules/adslight/viewads.php?&lid={$lid}";
801
    $sql                     = 'SELECT title FROM ' . $xoopsDB->prefix('adslight_categories') . " WHERE cid={$cid}";
802
    $result                  = $xoopsDB->query($sql);
803
    if (!$xoopsDB->isResultSet($result)) {
804
        \trigger_error("Query Failed! SQL: $sql- Error: " . $xoopsDB->error(), E_USER_ERROR);
805
    }
806
    $row                    = $xoopsDB->fetchArray($result);
807
    $tags['CATEGORY_TITLE'] = $row['title'];
808
    $tags['CATEGORY_URL']   = XOOPS_URL . "/modules/adslight/viewcats.php?cid={$cat}";
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $cat seems to be never defined.
Loading history...
809
    /** @var \XoopsNotificationHandler $notificationHandler */
810
    $notificationHandler = xoops_getHandler('notification');
811
    $notificationHandler->triggerEvent('global', 0, 'new_listing', $tags);
812
    $notificationHandler->triggerEvent('category', $cat, 'new_listing', $tags);
813
    $notificationHandler->triggerEvent('listing', $lid, 'new_listing', $tags);
814
815
    $helper->redirect('admin/view_ads.php', 3, _AM_ADSLIGHT_ANNVALID);
816
}
817
818
#####################################################
819
#####################################################
820
821
foreach ($_POST as $k => $v) {
822
    ${$k} = $v;
823
}
824
825
//$pa  = Request::getString('pa', '', 'GET');
826
//$lid = Request::getInt('lid', 0);
827
//$op  = Request::getString('op', '');
828
829
$pa  = Request::getInt('pa', '', 'GET');
0 ignored issues
show
'' of type string is incompatible with the type integer expected by parameter $default of Xmf\Request::getInt(). ( Ignorable by Annotation )

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

829
$pa  = Request::getInt('pa', /** @scrutinizer ignore-type */ '', 'GET');
Loading history...
830
$lid = 0;
831
if (!Request::hasVar('lid', 'POST') && Request::hasVar('lid', 'GET')) {
832
    $lid = Request::getInt('lid', 0, 'GET');
833
}
834
835
//if (!Request::hasVar('op', 'POST') && Request::hasVar('op', 'GET')) {
836
//    $op = Request::getString('op', '', 'GET');
837
//}
838
$op = Request::getString('op', '');
839
840
if (!isset($op)) {
841
    $op = '';
842
}
843
844
switch ($op) {
845
    case 'indexView':
846
        indexView($lid);
847
        break;
848
    case 'listingDel':
849
        listingDel($lid, $photo);
850
        break;
851
    case 'listingValid':
852
        listingValid(
853
            $lid,
854
            $cid,
855
            $title,
856
            $status,
857
            $expire,
858
            $type,
859
            $desctext,
860
            $tel,
861
            $price,
862
            $typeprice,
863
            $typecondition,
864
            $date_created,
865
            $email,
866
            $submitter,
867
            $town,
868
            $country,
869
            $contactby,
870
            $premium,
871
            $valid,
872
            $photo
873
        );
874
        break;
875
    case 'modifyAds':
876
        modifyAds($lid);
0 ignored issues
show
The call to modifyAds() has too few arguments starting with cat. ( Ignorable by Annotation )

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

876
        /** @scrutinizer ignore-call */ 
877
        modifyAds($lid);

This check compares calls to functions or methods with their respective definitions. If the call has less arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
877
        break;
878
    case 'modifyAdsS':
879
        modifyAdsS(
880
            $lid,
881
            $cid,
882
            $title,
883
            $status,
884
            $expire,
885
            $type,
886
            $desctext,
887
            $tel,
888
            $price,
889
            $typeprice,
890
            $typecondition,
891
            $date_created,
892
            $email,
893
            $submitter,
894
            $town,
895
            $country,
896
            $contactby,
897
            $premium,
898
            $valid,
899
            $photo
900
        );
901
        break;
902
    default:
903
        index();
904
        break;
905
}
906