This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
1 | <?php |
||||||
2 | /** |
||||||
3 | * Module: WF-Links |
||||||
4 | * Version: v1.0.3 |
||||||
5 | * Release Date: 21 June 2005 |
||||||
6 | * Developer: John N |
||||||
7 | * Team: WF-Projects |
||||||
8 | * Licence: GNU |
||||||
9 | */ |
||||||
10 | |||||||
11 | use Xmf\Module\Admin; |
||||||
12 | use Xmf\Request; |
||||||
13 | use XoopsModules\Tag\FormTag; |
||||||
14 | use XoopsModules\Wflinks\{Helper, |
||||||
15 | Tree, |
||||||
16 | Utility |
||||||
17 | }; |
||||||
18 | |||||||
19 | require_once __DIR__ . '/admin_header.php'; |
||||||
20 | |||||||
21 | $mytree = new Tree($xoopsDB->prefix('wflinks_cat'), 'cid', 'pid'); |
||||||
22 | |||||||
23 | $op = \Xmf\Request::getString('op', ''); |
||||||
24 | $lid = \Xmf\Request::getInt('lid', 0); |
||||||
25 | |||||||
26 | /** |
||||||
27 | * @param int $lid |
||||||
28 | * @return bool|null |
||||||
29 | */ |
||||||
30 | function edit($lid = 0) |
||||||
31 | { |
||||||
32 | global $xoopsDB, $myts, $mytree, $imageArray, $xoopsConfig, $xoopsModule, $xoopsUser; |
||||||
33 | /** @var Helper $helper */ |
||||||
34 | $helper = Helper::getInstance(); |
||||||
35 | |||||||
36 | $sql = 'SELECT * FROM ' . $xoopsDB->prefix('wflinks_links') . ' WHERE lid=' . $lid; |
||||||
37 | if (!$result = $xoopsDB->query($sql)) { |
||||||
0 ignored issues
–
show
Unused Code
introduced
by
![]() |
|||||||
38 | /** @var \XoopsLogger $logger */ |
||||||
39 | $logger = \XoopsLogger::getInstance(); |
||||||
40 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
41 | |||||||
42 | return false; |
||||||
43 | } |
||||||
44 | $link_array = $xoopsDB->fetchArray($xoopsDB->query($sql)); |
||||||
45 | |||||||
46 | $directory = $helper->getConfig('screenshots'); |
||||||
47 | $lid = $link_array['lid'] ?: 0; |
||||||
48 | $cid = $link_array['cid'] ?: 0; |
||||||
49 | $title = $link_array['title'] ? htmlspecialchars($link_array['title']) : ''; |
||||||
50 | $url = $link_array['url'] ? htmlspecialchars($link_array['url']) : 'http://'; |
||||||
51 | $publisher = $link_array['publisher'] ? htmlspecialchars($link_array['publisher']) : ''; |
||||||
52 | $submitter = $link_array['submitter'] ? htmlspecialchars($link_array['submitter']) : ''; |
||||||
53 | $screenshot = $link_array['screenshot'] ? htmlspecialchars($link_array['screenshot']) : ''; |
||||||
54 | $descriptionb = $link_array['description'] ? htmlspecialchars($link_array['description']) : ''; |
||||||
55 | $published = $link_array['published'] ?: time(); |
||||||
56 | $expired = $link_array['expired'] ?: 0; |
||||||
57 | $updated = $link_array['updated'] ?: 0; |
||||||
58 | $offline = $link_array['offline'] ?: 0; |
||||||
59 | $forumid = $link_array['forumid'] ?: 0; |
||||||
60 | $ipaddress = $link_array['ipaddress'] ?: 0; |
||||||
61 | $notifypub = $link_array['notifypub'] ?: 0; |
||||||
62 | $country = $link_array['country'] ? htmlspecialchars($link_array['country']) : '-'; |
||||||
63 | $keywords = $link_array['keywords'] ? htmlspecialchars($link_array['keywords']) : ''; |
||||||
64 | $item_tag = $link_array['item_tag'] ? htmlspecialchars($link_array['item_tag']) : ''; |
||||||
0 ignored issues
–
show
|
|||||||
65 | $googlemap = $link_array['googlemap'] ? htmlspecialchars($link_array['googlemap']) : 'http://maps.google.com'; |
||||||
66 | $yahoomap = $link_array['yahoomap'] ? htmlspecialchars($link_array['yahoomap']) : 'http://maps.yahoo.com'; |
||||||
67 | $multimap = $link_array['multimap'] ? htmlspecialchars($link_array['multimap']) : 'http://www.multimap.com'; |
||||||
68 | $street1 = $link_array['street1'] ? htmlspecialchars($link_array['street1']) : ''; |
||||||
69 | $street2 = $link_array['street2'] ? htmlspecialchars($link_array['street2']) : ''; |
||||||
70 | $town = $link_array['town'] ? htmlspecialchars($link_array['town']) : ''; |
||||||
71 | $state = $link_array['state'] ? htmlspecialchars($link_array['state']) : ''; |
||||||
72 | $zip = $link_array['zip'] ? htmlspecialchars($link_array['zip']) : ''; |
||||||
73 | $tel = $link_array['tel'] ? htmlspecialchars($link_array['tel']) : ''; |
||||||
74 | $mobile = $link_array['mobile'] ? htmlspecialchars($link_array['mobile']) : ''; |
||||||
75 | $voip = $link_array['voip'] ? htmlspecialchars($link_array['voip']) : ''; |
||||||
76 | $fax = $link_array['fax'] ? htmlspecialchars($link_array['fax']) : ''; |
||||||
77 | $email = $link_array['email'] ? htmlspecialchars($link_array['email']) : ''; |
||||||
78 | $vat = $link_array['vat'] ? htmlspecialchars($link_array['vat']) : ''; |
||||||
79 | |||||||
80 | require_once __DIR__ . '/admin_header.php'; |
||||||
81 | xoops_cp_header(); |
||||||
82 | xoops_load('XoopsUserUtility'); |
||||||
83 | |||||||
84 | if ($lid > 0) { |
||||||
85 | $_vote_data = Utility::getVoteDetails($lid); |
||||||
86 | $text_info = "<table style='width:100%;'> |
||||||
87 | <tr> |
||||||
88 | <td width='33%' valign='top'> |
||||||
89 | <div><b>" . _AM_WFL_LINK_ID . ' </b>' . $lid . '</div> |
||||||
90 | <div><b>' . _AM_WFL_MINDEX_SUBMITTED . ': </b>' . formatTimestamp($link_array['date'], $helper->getConfig('dateformat')) . '</div> |
||||||
91 | <div><b>' . _AM_WFL_LINK_SUBMITTER . ' </b>' . \XoopsUserUtility::getUnameFromId($submitter) . '</div> |
||||||
92 | <div><b>' . _AM_WFL_LINK_IP . ' </b>' . $ipaddress . '</div> |
||||||
93 | <div><b>' . _AM_WFL_PAGERANK . ' </b>' . Utility::pagerank($link_array['url']) . '</div> |
||||||
94 | <div><b>' . _AM_WFL_HITS . ' </b>' . $link_array['hits'] . "</div> |
||||||
95 | |||||||
96 | </td> |
||||||
97 | <td valign='top'> |
||||||
98 | <div><b>" . _AM_WFL_VOTE_TOTALRATE . ': </b>' . Request::getInt('rate', 0, 'vote_data') . '</div> |
||||||
99 | <div><b>' . _AM_WFL_VOTE_USERAVG . ': </b>' . (int)round($_vote_data['avg_rate'], 2) . '</div> |
||||||
100 | <div><b>' . _AM_WFL_VOTE_MAXRATE . ': </b>' . Request::getInt('min_rate', 0, 'vote_data') . '</div> |
||||||
101 | <div><b>' . _AM_WFL_VOTE_MINRATE . ': </b>' . Request::getInt('max_rate', 0, 'vote_data') . "</div> |
||||||
102 | </td> |
||||||
103 | <td valign='top'> |
||||||
104 | <div><b>" . _AM_WFL_VOTE_MOSTVOTEDTITLE . ': </b>' . Request::getInt('max_title', 0, 'vote_data') . '</div> |
||||||
105 | <div><b>' . _AM_WFL_VOTE_LEASTVOTEDTITLE . ': </b>' . Request::getInt('min_title', 0, 'vote_data') . '</div> |
||||||
106 | <div><b>' . _AM_WFL_VOTE_REGISTERED . ': </b>' . ($_vote_data['rate'] - $_vote_data['null_ratinguser']) . '</div> |
||||||
107 | <div><b>' . _AM_WFL_VOTE_NONREGISTERED . ': </b>' . Request::getInt('null_ratinguser', 0, 'vote_data') . '</div> |
||||||
108 | </td> |
||||||
109 | </tr> |
||||||
110 | </table>'; |
||||||
111 | echo "<fieldset style='border: #e8e8e8 1px solid;'><legend style='display: inline; font-weight: bold; color: #0A3760;'>" . _AM_WFL_INFORMATION . "</legend>\n |
||||||
112 | <div style='padding: 8px;'>" . $text_info . "</div>\n |
||||||
113 | <!-- <div style='padding: 8px;'><li>" . $imageArray['deleteimg'] . ' ' . _AM_WFL_VOTE_DELETEDSC . "</li></div>\n --> |
||||||
114 | </fieldset>\n |
||||||
115 | <br>\n"; |
||||||
116 | } |
||||||
117 | unset($_vote_data); |
||||||
118 | |||||||
119 | $caption = $lid ? _AM_WFL_LINK_MODIFYFILE : _AM_WFL_LINK_CREATENEWFILE; |
||||||
120 | $sform = new \XoopsThemeForm($caption, 'storyform', xoops_getenv('SCRIPT_NAME'), 'post', true); |
||||||
121 | $sform->setExtra('enctype="multipart / form - data"'); |
||||||
122 | |||||||
123 | if ('' === $submitter) { |
||||||
124 | $sform->addElement(new \XoopsFormHidden('submitter', $submitter)); |
||||||
125 | } |
||||||
126 | |||||||
127 | // Link publisher form |
||||||
128 | if ($publisher) { |
||||||
129 | $sform->addElement(new \XoopsFormText(_AM_WFL_LINK_PUBLISHER, 'publisher', 70, 255, $publisher)); |
||||||
130 | //$sform -> addElement( new \XoopsFormHidden( 'publisher', $publisher ) ) ; |
||||||
131 | } else { |
||||||
132 | $publisher = $xoopsUser->uname(); |
||||||
133 | $sform->addElement(new \XoopsFormHidden('publisher', $publisher)); |
||||||
134 | } |
||||||
135 | |||||||
136 | // Link title form |
||||||
137 | $sform->addElement(new \XoopsFormText(_AM_WFL_LINK_TITLE, 'title', 70, 255, $title), true); |
||||||
138 | |||||||
139 | // Link url form |
||||||
140 | $url_text = new \XoopsFormText('', 'url', 70, 255, $url); |
||||||
141 | $url_tray = new \XoopsFormElementTray(_AM_WFL_LINK_DLURL, ''); |
||||||
142 | $url_tray->addElement($url_text, true); |
||||||
143 | $url_tray->addElement(new \XoopsFormLabel(" <img src='../assets/images/icon/world.png' onClick=\"window.open(document.storyform.url.value,'','');return(false);\" alt='Check URL'>")); |
||||||
144 | $sform->addElement($url_tray); |
||||||
145 | |||||||
146 | // Category form |
||||||
147 | ob_start(); |
||||||
148 | $mytree->makeMySelBox('title', 'title', $cid, 0); |
||||||
149 | $sform->addElement(new \XoopsFormLabel(_AM_WFL_LINK_CATEGORY, ob_get_clean())); |
||||||
150 | |||||||
151 | // Link description form |
||||||
152 | // $editor = Utility::getWysiwygForm( _AM_WFL_LINK_DESCRIPTION, 'descriptionb', $descriptionb, 15, 60 ); |
||||||
153 | // $sform -> addElement($editor, false); |
||||||
154 | $optionsTrayNote = new \XoopsFormElementTray(_AM_WFL_LINK_DESCRIPTION, '<br>'); |
||||||
155 | if (class_exists('XoopsFormEditor')) { |
||||||
156 | $options['name'] = 'descriptionb'; |
||||||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||
157 | $options['value'] = $descriptionb; |
||||||
158 | $options['rows'] = 5; |
||||||
159 | $options['cols'] = '100%'; |
||||||
160 | $options['width'] = '100%'; |
||||||
161 | $options['height'] = '200px'; |
||||||
162 | $descriptionb = new \XoopsFormEditor('', $helper->getConfig('form_options'), $options, $nohtml = false, $onfailure = 'textarea'); |
||||||
163 | $optionsTrayNote->addElement($descriptionb); |
||||||
164 | } else { |
||||||
165 | $descriptionb = new \XoopsFormDhtmlTextArea('', 'descriptionb', $item->getVar('descriptionb', 'e'), '100%', '100%'); |
||||||
0 ignored issues
–
show
'100%' of type string is incompatible with the type integer expected by parameter $rows of XoopsFormDhtmlTextArea::__construct() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() '100%' of type string is incompatible with the type integer expected by parameter $cols of XoopsFormDhtmlTextArea::__construct() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() Comprehensibility
Best Practice
introduced
by
|
|||||||
166 | $optionsTrayNote->addElement($descriptionb); |
||||||
167 | } |
||||||
168 | |||||||
169 | $sform->addElement($optionsTrayNote, false); |
||||||
170 | |||||||
171 | // Meta keywords form |
||||||
172 | $keywords = new \XoopsFormTextArea(_AM_WFL_KEYWORDS, 'keywords', $keywords, 7, 60, false); |
||||||
0 ignored issues
–
show
The call to
XoopsFormTextArea::__construct() has too many arguments starting with false .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check compares calls to functions or methods with their respective definitions. If the call has more 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. ![]() |
|||||||
173 | $keywords->setDescription('<small>' . _AM_WFL_KEYWORDS_NOTE . '</small>'); |
||||||
174 | $sform->addElement($keywords); |
||||||
175 | |||||||
176 | // Insert tags if Tag-module is installed |
||||||
177 | if (Utility::isTagModuleIncluded()) { |
||||||
178 | require_once XOOPS_ROOT_PATH . '/modules/tag/include/formtag.php'; |
||||||
179 | $text_tags = new FormTag('item_tag', 70, 255, $link_array['item_tag'], 0); |
||||||
180 | $sform->addElement($text_tags); |
||||||
181 | } else { |
||||||
182 | $sform->addElement(new \XoopsFormHidden('item_tag', $link_array['item_tag'])); |
||||||
183 | } |
||||||
184 | |||||||
185 | // Screenshot |
||||||
186 | $graph_array = Wflinks\Lists::getListTypeAsArray(XOOPS_ROOT_PATH . '/' . $helper->getConfig('screenshots'), $type = 'images'); |
||||||
0 ignored issues
–
show
The type
Wflinks\Lists was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||||||
187 | $indeximage_select = new \XoopsFormSelect('', 'screenshot', $screenshot); |
||||||
188 | $indeximage_select->addOptionArray($graph_array); |
||||||
189 | $indeximage_select->setExtra("onchange = 'showImgSelected(\"image\", \"screenshot\", \"" . $helper->getConfig('screenshots') . '", "", "' . XOOPS_URL . "\")'"); |
||||||
190 | $indeximage_tray = new \XoopsFormElementTray(_AM_WFL_LINK_SHOTIMAGE, ' '); |
||||||
191 | $indeximage_tray->setDescription(sprintf(_AM_WFL_LINK_MUSTBEVALID, '<b>' . $directory . '</b>')); |
||||||
192 | $indeximage_tray->addElement($indeximage_select); |
||||||
193 | if (!empty($imgurl)) { |
||||||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||
194 | $indeximage_tray->addElement(new \XoopsFormLabel('', " <br><br>< img src='" . XOOPS_URL . '/' . $helper->getConfig('screenshots') . '/' . $screenshot . "' name = 'image' id = 'image' alt = '' / > ")); |
||||||
195 | } else { |
||||||
196 | $indeximage_tray->addElement(new \XoopsFormLabel('', " <br><br><img src='" . XOOPS_URL . "/uploads/blank.gif' name='image' id='image' alt='' / > ")); |
||||||
197 | } |
||||||
198 | $sform->addElement($indeximage_tray); |
||||||
199 | |||||||
200 | if ($helper->getConfig('useaddress')) { |
||||||
201 | $sform->insertBreak(_AM_WFL_LINK_CREATEADDRESS, 'bg3'); |
||||||
202 | // Google Maps |
||||||
203 | $googlemap_text = new \XoopsFormText('', 'googlemap', 70, 1024, $googlemap); |
||||||
204 | $googlemap_tray = new \XoopsFormElementTray(_AM_WFL_LINK_GOOGLEMAP, ''); |
||||||
205 | $googlemap_tray->addElement($googlemap_text, false); |
||||||
206 | $googlemap_tray->addElement(new \XoopsFormLabel(" <img src='../assets/images/icon/google_map.png' onClick=\"window.open(document.storyform.googlemap.value,'','');return(false);\" alt='" . _AM_WFL_LINK_CHECKMAP . "'>")); |
||||||
207 | $sform->addElement($googlemap_tray); |
||||||
208 | // Yahoo Maps |
||||||
209 | $yahoomap_text = new \XoopsFormText('', 'yahoomap', 70, 1024, $yahoomap); |
||||||
210 | $yahoomap_tray = new \XoopsFormElementTray(_AM_WFL_LINK_YAHOOMAP, ''); |
||||||
211 | $yahoomap_tray->addElement($yahoomap_text, false); |
||||||
212 | $yahoomap_tray->addElement(new \XoopsFormLabel(" <img src='../assets/images/icon/yahoo_map.png' onClick=\"window.open(document.storyform.yahoomap.value,'','');return(false);\" alt='" . _AM_WFL_LINK_CHECKMAP . "'>")); |
||||||
213 | $sform->addElement($yahoomap_tray); |
||||||
214 | // MS Live Maps |
||||||
215 | $multimap_text = new \XoopsFormText('', 'multimap', 70, 1024, $multimap); |
||||||
216 | $multimap_tray = new \XoopsFormElementTray(_AM_WFL_LINK_MULTIMAP, ''); |
||||||
217 | $multimap_tray->addElement($multimap_text, false); |
||||||
218 | $multimap_tray->addElement(new \XoopsFormLabel(" <img src='../assets/images/icon/multimap.png' onClick=\"window.open(document.storyform.multimap.value,'','');return(false);\" alt='" . _AM_WFL_LINK_CHECKMAP . "'>")); |
||||||
219 | $sform->addElement($multimap_tray); |
||||||
220 | |||||||
221 | // Address |
||||||
222 | $street1 = new \XoopsFormText(_AM_WFL_STREET1, 'street1', 70, 255, $street1); |
||||||
223 | $sform->addElement($street1, false); |
||||||
224 | $street2 = new \XoopsFormText(_AM_WFL_STREET2, 'street2', 70, 255, $street2); |
||||||
225 | $sform->addElement($street2, false); |
||||||
226 | $town = new \XoopsFormText(_AM_WFL_TOWN, 'town', 70, 255, $town); |
||||||
227 | $sform->addElement($town, false); |
||||||
228 | $state = new \XoopsFormText(_AM_WFL_STATE, 'state', 70, 255, $state); |
||||||
229 | $sform->addElement($state, false); |
||||||
230 | $zip = new \XoopsFormText(_AM_WFL_ZIPCODE, 'zip', 25, 25, $zip); |
||||||
231 | $sform->addElement($zip, false); |
||||||
232 | $tel = new \XoopsFormText(_AM_WFL_TELEPHONE, 'tel', 25, 25, $tel); |
||||||
233 | $sform->addElement($tel, false); |
||||||
234 | $mobile = new \XoopsFormText(_AM_WFL_MOBILE, 'mobile', 25, 25, $mobile); |
||||||
235 | $sform->addElement($mobile, false); |
||||||
236 | $voip = new \XoopsFormText(_AM_WFL_VOIP, 'voip', 25, 25, $voip); |
||||||
237 | $sform->addElement($voip, false); |
||||||
238 | $fax = new \XoopsFormText(_AM_WFL_FAX, 'fax', 25, 25, $fax); |
||||||
239 | $sform->addElement($fax, false); |
||||||
240 | $email = new \XoopsFormText(_AM_WFL_EMAIL, 'email', 25, 60, $email); |
||||||
241 | $sform->addElement($email, false); |
||||||
242 | $vat = new \XoopsFormText(_AM_WFL_VAT, 'vat', 25, 25, $vat); |
||||||
243 | $vat->setDescription(_AM_WFL_VATWIKI); |
||||||
244 | $sform->addElement($vat, false); |
||||||
245 | // $sform -> addElement( new \XoopsFormHidden( 'vat', $link_array['vat'] ) ); /* If you don't want to use the VAT form, */ |
||||||
246 | /* use this line and comment-out the 3 lines above */ |
||||||
247 | } |
||||||
248 | |||||||
249 | // Country form |
||||||
250 | $country_select = new \XoopsFormSelectCountry(_AM_WFL_COUNTRY, 'country', $country); |
||||||
251 | $sform->addElement($country_select, false); |
||||||
252 | |||||||
253 | // Miscellaneous Link settings |
||||||
254 | $sform->insertBreak(_AM_WFL_LINK_MISCLINKSETTINGS, 'bg3'); |
||||||
255 | |||||||
256 | // Set Publish date |
||||||
257 | $sform->addElement(new \XoopsFormDateTime(_AM_WFL_LINK_SETPUBLISHDATE, 'was_published', $size = 15, $published)); |
||||||
258 | |||||||
259 | if ($lid) { |
||||||
260 | $sform->addElement(new \XoopsFormHidden('was_published', $published)); |
||||||
261 | $sform->addElement(new \XoopsFormHidden('was_expired', $expired)); |
||||||
262 | } |
||||||
263 | |||||||
264 | // Set Expire date |
||||||
265 | $isexpired = ($expired > time()) ? 1 : 0; |
||||||
266 | $expiredates = ($expired > time()) ? _AM_WFL_LINK_EXPIREDATESET . formatTimestamp($expired, $helper->getConfig('dateformat')) : _AM_WFL_LINK_SETDATETIMEEXPIRE; |
||||||
267 | $warning = ($published > $expired && $expired > time()) ? _AM_WFL_LINK_EXPIREWARNING : ''; |
||||||
268 | $expiredate_checkbox = new \XoopsFormCheckBox('', 'expiredateactivate', $isexpired); |
||||||
269 | $expiredate_checkbox->addOption(1, $expiredates . ' <br> <br> '); |
||||||
270 | |||||||
271 | $expiredate_tray = new \XoopsFormElementTray(_AM_WFL_LINK_EXPIREDATE . $warning, ''); |
||||||
272 | $expiredate_tray->addElement($expiredate_checkbox); |
||||||
273 | $expiredate_tray->addElement(new \XoopsFormDateTime(_AM_WFL_LINK_SETEXPIREDATE . ' <br> ', 'expired', 15, $expired)); |
||||||
274 | $expiredate_tray->addElement(new \XoopsFormRadioYN(_AM_WFL_LINK_CLEAREXPIREDATE, 'clearexpire', 0, ' ' . _YES . '', ' ' . _NO . '')); |
||||||
275 | $sform->addElement($expiredate_tray); |
||||||
276 | |||||||
277 | // Set Link offline |
||||||
278 | $linkstatus_radio = new \XoopsFormRadioYN(_AM_WFL_LINK_FILESSTATUS, 'offline', $offline, ' ' . _YES . '', ' ' . _NO . ''); |
||||||
279 | $sform->addElement($linkstatus_radio); |
||||||
280 | |||||||
281 | // Set Link updated |
||||||
282 | $up_dated = (0 == $updated) ? 0 : 1; |
||||||
283 | $link_updated_radio = new \XoopsFormRadioYN(_AM_WFL_LINK_SETASUPDATED, 'up_dated', $up_dated, ' ' . _YES . '', ' ' . _NO . ''); |
||||||
284 | $sform->addElement($link_updated_radio); |
||||||
285 | |||||||
286 | $result = $xoopsDB->query('SELECT COUNT( * ) FROM ' . $xoopsDB->prefix('wflinks_broken') . ' WHERE lid = ' . $lid); |
||||||
287 | list($broken_count) = $xoopsDB->fetchRow($result); |
||||||
288 | if ($broken_count > 0) { |
||||||
289 | $link_updated_radio = new \XoopsFormRadioYN(_AM_WFL_LINK_DELEDITMESS, 'delbroken', 1, ' ' . _YES . '', ' ' . _NO . ''); |
||||||
290 | $sform->addElement($link_updated_radio); |
||||||
291 | } |
||||||
292 | |||||||
293 | // Select forum |
||||||
294 | ob_start(); |
||||||
295 | Wflinks\Lists::getForum($helper->getConfig('selectforum'), $forumid); |
||||||
296 | $sform->addElement(new \XoopsFormLabel(_AM_WFL_LINK_DISCUSSINFORUM, ob_get_clean())); |
||||||
297 | |||||||
298 | //Create News Story |
||||||
299 | if (Utility::isNewsModuleIncluded()) { |
||||||
300 | $sform->insertBreak(_AM_WFL_LINK_CREATENEWSSTORY, 'bg3'); |
||||||
301 | $submitNews_radio = new \XoopsFormRadioYN(_AM_WFL_LINK_SUBMITNEWS, 'submitnews', 0, ' ' . _YES . '', ' ' . _NO . ''); |
||||||
302 | $sform->addElement($submitNews_radio); |
||||||
303 | |||||||
304 | require_once XOOPS_ROOT_PATH . '/class/xoopstopic.php'; |
||||||
305 | $xt = new \XoopsTopic($xoopsDB->prefix('news_topics')); |
||||||
306 | ob_start(); |
||||||
307 | $xt->makeTopicSelBox(1, 0, 'newstopicid'); |
||||||
308 | $sform->addElement(new \XoopsFormLabel(_AM_WFL_LINK_NEWSCATEGORY, ob_get_clean())); |
||||||
309 | $sform->addElement(new \XoopsFormText(_AM_WFL_LINK_NEWSTITLE, 'topic_id', 70, 255, ''), false); |
||||||
310 | } |
||||||
311 | |||||||
312 | if ($lid && 0 == $published) { |
||||||
313 | $approved = (0 == $published) ? 0 : 1; |
||||||
0 ignored issues
–
show
|
|||||||
314 | $approve_checkbox = new \XoopsFormCheckBox(_AM_WFL_LINK_EDITAPPROVE, 'approved', 1); |
||||||
315 | $approve_checkbox->addOption(1, ' '); |
||||||
316 | $sform->addElement($approve_checkbox); |
||||||
317 | } |
||||||
318 | |||||||
319 | if ($lid) { |
||||||
320 | $buttonTray = new \XoopsFormElementTray('', ''); |
||||||
321 | $buttonTray->addElement(new \XoopsFormHidden('lid', $lid)); |
||||||
322 | $buttonTray->addElement(new \XoopsFormHidden('status', 2)); |
||||||
323 | $hidden = new \XoopsFormHidden('op', 'save'); |
||||||
324 | $buttonTray->addElement($hidden); |
||||||
325 | |||||||
326 | $butt_dup = new \XoopsFormButton('', '', _AM_WFL_BMODIFY, 'submit'); |
||||||
327 | $butt_dup->setExtra('onclick="this . form . elements . op . value = \'save\'"'); |
||||||
328 | $buttonTray->addElement($butt_dup); |
||||||
329 | $butt_dupct = new \XoopsFormButton('', '', _AM_WFL_BDELETE, 'submit'); |
||||||
330 | $butt_dupct->setExtra('onclick="this.form.elements.op.value=\'delete\'"'); |
||||||
331 | $buttonTray->addElement($butt_dupct); |
||||||
332 | $butt_dupct2 = new \XoopsFormButton('', '', _AM_WFL_BCANCEL, 'submit'); |
||||||
333 | $butt_dupct2->setExtra('onclick="this.form.elements.op.value=\'linksConfigMenu\'"'); |
||||||
334 | $buttonTray->addElement($butt_dupct2); |
||||||
335 | $sform->addElement($buttonTray); |
||||||
336 | } else { |
||||||
337 | $buttonTray = new \XoopsFormElementTray('', ''); |
||||||
338 | $buttonTray->addElement(new \XoopsFormHidden('status', 1)); |
||||||
339 | $buttonTray->addElement(new \XoopsFormHidden('notifypub', $notifypub)); |
||||||
340 | $buttonTray->addElement(new \XoopsFormHidden('op', 'save')); |
||||||
341 | $buttonTray->addElement(new \XoopsFormButton('', '', _AM_WFL_BSAVE, 'submit')); |
||||||
342 | $sform->addElement($buttonTray); |
||||||
343 | } |
||||||
344 | $sform->display(); |
||||||
345 | unset($hidden); |
||||||
346 | require_once __DIR__ . '/admin_footer.php'; |
||||||
347 | |||||||
348 | return null; |
||||||
349 | } |
||||||
350 | |||||||
351 | /** |
||||||
352 | * @param $url |
||||||
353 | * @param int $timeout |
||||||
354 | * |
||||||
355 | * @return float|null|string |
||||||
356 | */ |
||||||
357 | function fetchURL($url, $timeout = 2) |
||||||
358 | { |
||||||
359 | /** @var Helper $helper */ |
||||||
360 | $helper = Helper::getInstance(); |
||||||
0 ignored issues
–
show
|
|||||||
361 | $url = urldecode($url); |
||||||
362 | $url_parsed = parse_url($url); |
||||||
363 | if (!isset($url_parsed['host'])) { |
||||||
364 | return ''; |
||||||
365 | } |
||||||
366 | |||||||
367 | $host = $url_parsed['host']; |
||||||
368 | $host = preg_replace('#http://#', '', $host); |
||||||
369 | $port = $url_parsed['port'] ?? 80; |
||||||
370 | // Open the socket |
||||||
371 | $handle = @fsockopen('http://' . $host, $port, $errno, $errstr, $timeout); |
||||||
372 | if (!$handle) { |
||||||
0 ignored issues
–
show
|
|||||||
373 | return null; |
||||||
374 | } |
||||||
375 | |||||||
376 | // Set read timeout |
||||||
377 | stream_set_timeout($handle, $timeout); |
||||||
378 | for ($i = 0; $i < 1; ++$i) { |
||||||
0 ignored issues
–
show
++$i is not reachable.
This check looks for unreachable code. It uses sophisticated control flow analysis techniques to find statements which will never be executed. Unreachable code is most often the result of function fx() {
try {
doSomething();
return true;
}
catch (\Exception $e) {
return false;
}
return false;
}
In the above example, the last ![]() |
|||||||
379 | // Time the responce |
||||||
380 | list($usec, $sec) = explode(' ', microtime(true)); |
||||||
381 | $start = (float)$usec + (float)$sec; |
||||||
382 | // send somthing |
||||||
383 | $write = fwrite($handle, "return ping\n"); |
||||||
384 | if (!$write) { |
||||||
385 | return ''; |
||||||
386 | } |
||||||
387 | fread($handle, 1024); |
||||||
388 | // Work out if we got a responce and time it |
||||||
389 | list($usec, $sec) = explode(' ', microtime(true)); |
||||||
390 | $laptime = ((float)$usec + (float)$sec) - $start; |
||||||
391 | if ($laptime > $timeout) { |
||||||
392 | return 'No Reply'; |
||||||
393 | } |
||||||
394 | |||||||
395 | return round($laptime, 3); |
||||||
396 | } |
||||||
397 | fclose($handle); |
||||||
398 | |||||||
399 | return null; |
||||||
400 | } |
||||||
401 | |||||||
402 | switch (mb_strtolower($op)) { |
||||||
403 | case 'pingtime': |
||||||
404 | case 'is_broken': |
||||||
405 | |||||||
406 | $_type = ('pingtime' === $op) ? 'is_broken' : 'pingtime'; |
||||||
407 | |||||||
408 | $start = \Xmf\Request::getInt('start', 0); |
||||||
409 | $ping = \Xmf\Request::getInt('ping', 0); |
||||||
410 | $cid = \Xmf\Request::getInt('cid', 0); |
||||||
411 | |||||||
412 | $sql = 'SELECT * FROM ' . $xoopsDB->prefix('wflinks_links'); |
||||||
413 | if ($cid > 0) { |
||||||
414 | $sql .= ' WHERE cid=' . $cid; |
||||||
415 | } |
||||||
416 | $sql .= ' ORDER BY lid DESC'; |
||||||
417 | if (!$result = $xoopsDB->query($sql)) { |
||||||
418 | /** @var \XoopsLogger $logger */ |
||||||
419 | $logger = \XoopsLogger::getInstance(); |
||||||
420 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
421 | |||||||
422 | return false; |
||||||
423 | } |
||||||
424 | $broken_array = $xoopsDB->query($sql, $helper->getConfig('admin_perpage'), $start); |
||||||
425 | $broken_array_count = $xoopsDB->getRowsNum($result); |
||||||
426 | |||||||
427 | $heading = ('pingtime' === $op) ? _AM_WFL_PINGTIMES : _AM_WFL_LISTBROKEN; |
||||||
428 | |||||||
429 | require_once __DIR__ . '/admin_header.php'; |
||||||
430 | xoops_cp_header(); |
||||||
431 | |||||||
432 | echo " |
||||||
433 | <table width='100%' cellspacing='1' cellpadding='2' border='0' class='outer'>\n |
||||||
434 | <tr>\n |
||||||
435 | <th class='txtcenter;'>" . _AM_WFL_MINDEX_ID . "</th>\n |
||||||
436 | <th style='text-align: left;'>" . _AM_WFL_MINDEX_TITLE . "</th>\n |
||||||
437 | <th class='txtcenter;'>" . _AM_WFL_MINDEX_POSTER . "</th>\n |
||||||
438 | <th class='txtcenter;'>" . _AM_WFL_MINDEX_PUBLISHED . "</th>\n |
||||||
439 | <th class='txtcenter;'>" . _AM_WFL_MINDEX_RESPONSE . "</th>\n |
||||||
440 | <th class='txtcenter;'>PR</th>\n |
||||||
441 | <th class='txtcenter;'>" . _AM_WFL_MINDEX_ACTION . "</th>\n |
||||||
442 | </tr>\n |
||||||
443 | "; |
||||||
444 | |||||||
445 | if ($broken_array_count > 0) { |
||||||
446 | while (false !== ($published = $xoopsDB->fetchArray($broken_array))) { |
||||||
447 | $_ping_results = fetchURL($published['url']); |
||||||
448 | |||||||
449 | if ($_ping_results) { |
||||||
450 | $_ping_results .= '(s)'; |
||||||
451 | } else { |
||||||
452 | $_ping_results = _AM_WFL_LINK_NORESPONSE; |
||||||
453 | } |
||||||
454 | |||||||
455 | $lid = $published['lid']; |
||||||
456 | $cid = $published['cid']; |
||||||
457 | $title = "<a href='../singlelink.php?cid=" . $published['cid'] . '&lid=' . $published['lid'] . "'>" . htmlspecialchars(trim($published['title'])) . '</a>'; |
||||||
458 | |||||||
459 | $maintitle = urlencode(htmlspecialchars(trim($published['title']))); |
||||||
460 | $submitter = \XoopsUserUtility::getUnameFromId($published['submitter']); |
||||||
461 | $publish = formatTimestamp($published['published'], $helper->getConfig('dateformatadmin')); |
||||||
462 | $status = ($published['published'] > 0) ? $imageArray['online'] : "<a href='newlinks.php'>" . $imageArray['offline'] . '</a>'; |
||||||
463 | $icon = "<a href='main.php?op=edit&lid=" . $lid . "'>" . $imageArray['editimg'] . '</a> '; |
||||||
464 | $icon .= "<a href='main.php?op=delete&lid=" . $lid . "'>" . $imageArray['deleteimg'] . '</a>'; |
||||||
465 | echo "<tr class='txtcenter;'>\n |
||||||
466 | <td class='head'><small>" . $lid . "</small></td>\n |
||||||
467 | <td class='even' style='text-align: left;'><small>" . $title . "</small></td>\n |
||||||
468 | <td class='even'><small>" . $submitter . "</small></td>\n |
||||||
469 | <td class='even'><small>" . $publish . "</small></td>\n |
||||||
470 | <td class='even'><small>" . $_ping_results . "</small></td>\n |
||||||
471 | <td class='even'><small>" . Utility::pagerank($published['url']) . "</small></td>\n |
||||||
472 | <td class='even'>$icon</td>\n |
||||||
473 | </tr>\n"; |
||||||
474 | unset($published); |
||||||
475 | } |
||||||
476 | } else { |
||||||
477 | Utility::getLinkListFooter(); |
||||||
478 | } |
||||||
479 | Utility::getLinkListPageNav($broken_array_count, $start, 'art', 'op=' . $op); |
||||||
480 | require_once __DIR__ . '/admin_footer.php'; |
||||||
481 | break; |
||||||
482 | case 'edit': |
||||||
483 | edit($lid); |
||||||
484 | break; |
||||||
485 | case 'save': |
||||||
486 | $groups = $_POST['groups'] ?? []; |
||||||
487 | $lid = !empty($_POST['lid']) ? $_POST['lid'] : 0; |
||||||
488 | $cid = !empty($_POST['cid']) ? $_POST['cid'] : 0; |
||||||
489 | $urlrating = !empty($_POST['urlrating']) ? $_POST['urlrating'] : 6; |
||||||
490 | $status = !empty($_POST['status']) ? $_POST['status'] : 2; |
||||||
491 | $url = ('http://' !== $_POST['url']) ? $myts->addSlashes($_POST['url']) : ''; |
||||||
492 | $title = $myts->addSlashes(trim($_POST['title'])); |
||||||
493 | |||||||
494 | // Get data from form |
||||||
495 | $screenshot = ('blank.gif' !== $_POST['screenshot']) ? $myts->addSlashes($_POST['screenshot']) : ''; |
||||||
496 | $descriptionb = $myts->addSlashes(trim($_POST['descriptionb'])); |
||||||
497 | $country = $myts->addSlashes(trim($_POST['country'])); |
||||||
498 | $keywords = $myts->addSlashes(trim(mb_substr($_POST['keywords'], 0, $helper->getConfig('keywordlength')))); |
||||||
499 | $item_tag = $myts->addSlashes(trim($_POST['item_tag'])); |
||||||
500 | $forumid = (isset($_POST['forumid']) && $_POST['forumid'] > 0) ? Request::getInt('forumid', 0, 'POST') : 0; |
||||||
501 | if ($helper->getConfig('useaddress')) { |
||||||
502 | $googlemap = ('http://maps.google.com' !== $_POST['googlemap']) ? $myts->addSlashes($_POST['googlemap']) : ''; |
||||||
503 | $yahoomap = ('http://maps.yahoo.com' !== $_POST['yahoomap']) ? $myts->addSlashes($_POST['yahoomap']) : ''; |
||||||
504 | $multimap = ('http://www.multimap.com' !== $_POST['multimap']) ? $myts->addSlashes($_POST['multimap']) : ''; |
||||||
505 | $street1 = $myts->addSlashes(trim($_POST['street1'])); |
||||||
506 | $street2 = $myts->addSlashes(trim($_POST['street2'])); |
||||||
507 | $town = $myts->addSlashes(trim($_POST['town'])); |
||||||
508 | $state = $myts->addSlashes(trim($_POST['state'])); |
||||||
509 | $zip = $myts->addSlashes(trim($_POST['zip'])); |
||||||
510 | $tel = $myts->addSlashes(trim($_POST['tel'])); |
||||||
511 | $fax = $myts->addSlashes(trim($_POST['fax'])); |
||||||
512 | $voip = $myts->addSlashes(trim($_POST['voip'])); |
||||||
513 | $mobile = $myts->addSlashes(trim($_POST['mobile'])); |
||||||
514 | $email = Utility::convertEmail($myts->addSlashes(trim($_POST['email']))); |
||||||
515 | $vat = $myts->addSlashes(trim($_POST['vat'])); |
||||||
516 | } else { |
||||||
517 | $googlemap = $yahoomap = $multimap = $street1 = $street2 = $town = $state = $zip = $tel = $fax = $voip = $mobile = $email = $vat = ''; |
||||||
518 | } |
||||||
519 | |||||||
520 | $submitter = $xoopsUser->uid(); |
||||||
521 | $publisher = $myts->addSlashes(trim($_POST['publisher'])); |
||||||
522 | |||||||
523 | $published = strtotime($_POST['published']['date']) + $_POST['published']['time']; |
||||||
524 | $updated = (isset($_POST['was_published']) && 0 == $_POST['was_published']) ? 0 : time(); |
||||||
525 | if (0 == $_POST['up_dated']) { |
||||||
526 | $updated = 0; |
||||||
527 | $status = 1; |
||||||
528 | } |
||||||
529 | $offline = (1 == $_POST['offline']) ? 1 : 0; |
||||||
530 | $approved = (isset($_POST['approved']) && 1 == $_POST['approved']) ? 1 : 0; |
||||||
531 | $notifypub = (isset($_POST['notifypub']) && 1 == $_POST['notifypub']); |
||||||
532 | if ($lid) { |
||||||
533 | $publishdate = $_POST['was_published']; |
||||||
534 | $expiredate = $_POST['was_expired']; |
||||||
535 | } else { |
||||||
536 | $date = time(); |
||||||
537 | $publishdate = time(); |
||||||
538 | $expiredate = '0'; |
||||||
539 | } |
||||||
540 | if (1 == $approved && empty($publishdate)) { |
||||||
541 | $publishdate = time(); |
||||||
542 | } |
||||||
543 | if (Request::hasVar('expiredateactivate', 'POST')) { |
||||||
544 | $expiredate = strtotime($_POST['expired']['date']) + $_POST['expired']['time']; |
||||||
545 | } |
||||||
546 | if ($_POST['clearexpire']) { |
||||||
547 | $expiredate = '0'; |
||||||
548 | } |
||||||
549 | |||||||
550 | // Update or insert linkload data into database |
||||||
551 | if ($lid) { |
||||||
552 | $sql = 'UPDATE ' |
||||||
553 | . $xoopsDB->prefix('wflinks_links') |
||||||
554 | . " SET cid = $cid, title='$title', url='$url', screenshot='$screenshot', publisher='$publisher', status='$status', forumid='$forumid', published='$published', expired='$expiredate', updated='$updated', offline='$offline', description='$descriptionb', urlrating='$urlrating', country='$country', keywords='$keywords', item_tag='$item_tag', googlemap='$googlemap', yahoomap='$yahoomap', multimap='$multimap', street1='$street1', street2='$street2', town='$town', state='$state', zip='$zip', tel='$tel', fax='$fax', voip='$voip', mobile='$mobile', email='$email', vat='$vat' WHERE lid=" |
||||||
555 | . $lid; |
||||||
556 | } else { |
||||||
557 | $date = time(); |
||||||
558 | $publishdate = time(); |
||||||
559 | $ipaddress = $_SERVER['REMOTE_ADDR']; |
||||||
560 | $sql = 'INSERT INTO ' |
||||||
561 | . $xoopsDB->prefix('wflinks_links') |
||||||
562 | . ' (lid, cid, title, url, screenshot, submitter, publisher, status, date, hits, rating, votes, comments, forumid, published, expired, updated, offline, description, ipaddress, notifypub, urlrating, country, keywords, item_tag, googlemap, yahoomap, multimap, street1, street2, town, state, zip, tel, fax, voip, mobile, email, vat )'; |
||||||
563 | $sql .= " VALUES (0, $cid, '$title', '$url', '$screenshot', '$submitter', '$publisher','$status', '$date', 0, 0, 0, 0, '$forumid', '$published', '$expiredate', '$updated', '$offline', '$descriptionb', '$ipaddress', '0', '$urlrating', '$country', '$keywords', '$item_tag', '$googlemap', '$yahoomap', '$multimap', '$street1', '$street2', '$town', '$state', '$zip', '$tel', '$fax', '$voip', '$mobile', '$email', '$vat' )"; |
||||||
564 | // $newid = $xoopsDB -> getInsertId(); |
||||||
565 | } |
||||||
566 | if (!$result = $xoopsDB->queryF($sql)) { |
||||||
567 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
568 | |||||||
569 | return false; |
||||||
570 | } |
||||||
571 | |||||||
572 | $newid = $GLOBALS['xoopsDB']->getInsertId(); |
||||||
573 | |||||||
574 | // Add item_tag to Tag-module |
||||||
575 | if ($lid) { |
||||||
576 | $tagupdate = Utility::updateTag($lid, $item_tag); |
||||||
0 ignored issues
–
show
Are you sure the assignment to
$tagupdate is correct as XoopsModules\Wflinks\Uti...ateTag($lid, $item_tag) targeting XoopsModules\Wflinks\Utility::updateTag() seems to always return null.
This check looks for function or method calls that always return null and whose return value is assigned to a variable. class A
{
function getObject()
{
return null;
}
}
$a = new A();
$object = $a->getObject();
The method The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes. ![]() |
|||||||
577 | } else { |
||||||
578 | $tagupdate = Utility::updateTag($newid, $item_tag); |
||||||
0 ignored issues
–
show
Are you sure the assignment to
$tagupdate is correct as XoopsModules\Wflinks\Uti...eTag($newid, $item_tag) targeting XoopsModules\Wflinks\Utility::updateTag() seems to always return null.
This check looks for function or method calls that always return null and whose return value is assigned to a variable. class A
{
function getObject()
{
return null;
}
}
$a = new A();
$object = $a->getObject();
The method The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes. ![]() |
|||||||
579 | } |
||||||
580 | |||||||
581 | // Send notifications |
||||||
582 | if (!$lid) { |
||||||
583 | $tags = []; |
||||||
584 | $tags['LINK_NAME'] = $title; |
||||||
585 | $tags['LINK_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/singlelink.php?cid=' . $cid . '&lid=' . $newid; |
||||||
586 | $sql = 'SELECT title FROM ' . $xoopsDB->prefix('wflinks_cat') . ' WHERE cid=' . $cid; |
||||||
587 | $result = $xoopsDB->query($sql); |
||||||
588 | $row = $xoopsDB->fetchArray($xoopsDB->query($sql)); |
||||||
589 | $tags['CATEGORY_NAME'] = $row['title']; |
||||||
590 | $tags['CATEGORY_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewcat.php?cid=' . $cid; |
||||||
591 | /** @var \XoopsNotificationHandler $notificationHandler */ |
||||||
592 | $notificationHandler = xoops_getHandler('notification'); |
||||||
593 | $notificationHandler->triggerEvent('global', 0, 'new_link', $tags); |
||||||
594 | $notificationHandler->triggerEvent('category', $cid, 'new_link', $tags); |
||||||
595 | } |
||||||
596 | if ($lid && $approved && $notifypub) { |
||||||
597 | $tags = []; |
||||||
598 | $tags['LINK_NAME'] = $title; |
||||||
599 | $tags['LINK_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/singlelink.php?cid=' . $cid . '&lid=' . $lid; |
||||||
600 | $sql = 'SELECT title FROM ' . $xoopsDB->prefix('wflinks_cat') . ' WHERE cid=' . $cid; |
||||||
601 | $result = $xoopsDB->query($sql); |
||||||
602 | $row = $xoopsDB->fetchArray($result); |
||||||
603 | $tags['CATEGORY_NAME'] = $row['title']; |
||||||
604 | $tags['CATEGORY_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewcat.php?cid=' . $cid; |
||||||
605 | $notificationHandler = xoops_getHandler('notification'); |
||||||
606 | $notificationHandler->triggerEvent('global', 0, 'new_link', $tags); |
||||||
0 ignored issues
–
show
The method
triggerEvent() does not exist on XoopsObjectHandler . It seems like you code against a sub-type of XoopsObjectHandler such as XoopsNotificationHandler or XoopsPersistableObjectHandler .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||||
607 | $notificationHandler->triggerEvent('category', $cid, 'new_link', $tags); |
||||||
608 | $notificationHandler->triggerEvent('link', $lid, 'approve', $tags); |
||||||
609 | } |
||||||
610 | $message = (!$lid) ? _AM_WFL_LINK_NEWFILEUPLOAD : _AM_WFL_LINK_FILEMODIFIEDUPDATE; |
||||||
611 | $message = ($lid && !$_POST['was_published'] && $approved) ? _AM_WFL_LINK_FILEAPPROVED : $message; |
||||||
612 | if (\Xmf\Request::getInt('delbroken', 0)) { |
||||||
613 | $sql = 'DELETE FROM ' . $xoopsDB->prefix('wflinks_broken') . ' WHERE lid=' . $lid; |
||||||
614 | if (!$result = $xoopsDB->queryF($sql)) { |
||||||
615 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
616 | |||||||
617 | return false; |
||||||
618 | } |
||||||
619 | } |
||||||
620 | if (\Xmf\Request::getInt('submitnews', 0)) { |
||||||
621 | require_once __DIR__ . '/newstory.php'; |
||||||
622 | } |
||||||
623 | redirect_header('main.php', 1, $message); |
||||||
624 | break; |
||||||
625 | case 'delete': |
||||||
626 | if (\Xmf\Request::getInt('confirm', 0)) { |
||||||
627 | $title = \Xmf\Request::getString('title', '');; |
||||||
628 | /** @var \XoopsLogger $logger */ |
||||||
629 | $logger = \XoopsLogger::getInstance(); |
||||||
630 | |||||||
631 | // delete link |
||||||
632 | $sql = 'DELETE FROM ' . $xoopsDB->prefix('wflinks_links') . ' WHERE lid=' . $lid; |
||||||
633 | if (!$result = $xoopsDB->query($sql)) { |
||||||
634 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
635 | |||||||
636 | return false; |
||||||
637 | } |
||||||
638 | |||||||
639 | // delete from altcat |
||||||
640 | $sql = 'DELETE FROM ' . $xoopsDB->prefix('wflinks_altcat') . ' WHERE lid=' . $lid; |
||||||
641 | if (!$result = $xoopsDB->query($sql)) { |
||||||
642 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
643 | |||||||
644 | return false; |
||||||
645 | } |
||||||
646 | |||||||
647 | // delete vote data |
||||||
648 | $sql = 'DELETE FROM ' . $xoopsDB->prefix('wflinks_votedata') . ' WHERE lid=' . $lid; |
||||||
649 | if (!$result = $xoopsDB->query($sql)) { |
||||||
650 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
651 | |||||||
652 | return false; |
||||||
653 | } |
||||||
654 | |||||||
655 | // delete comments |
||||||
656 | xoops_comment_delete($xoopsModule->getVar('mid'), $lid); |
||||||
657 | redirect_header('main.php', 1, sprintf(_AM_WFL_LINK_FILEWASDELETED, $title)); |
||||||
658 | } else { |
||||||
659 | $sql = 'SELECT lid, title, item_tag, url FROM ' . $xoopsDB->prefix('wflinks_links') . ' WHERE lid=' . $lid; |
||||||
660 | if (!$result = $xoopsDB->query($sql)) { |
||||||
661 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
662 | |||||||
663 | return false; |
||||||
664 | } |
||||||
665 | list($lid, $title) = $xoopsDB->fetchRow($result); |
||||||
666 | $item_tag = $result->fetchArray['item_tag']; |
||||||
667 | require_once __DIR__ . '/admin_header.php'; |
||||||
668 | xoops_cp_header(); |
||||||
669 | |||||||
670 | xoops_confirm(['op' => 'delete', 'lid' => $lid, 'confirm' => 1, 'title' => $title], 'main.php', _AM_WFL_LINK_REALLYDELETEDTHIS . '<br><br>' . $title, _DELETE); |
||||||
671 | |||||||
672 | // Remove item_tag from Tag-module |
||||||
673 | $tagupdate = Utility::updateTag($lid, $item_tag); |
||||||
0 ignored issues
–
show
Are you sure the assignment to
$tagupdate is correct as XoopsModules\Wflinks\Uti...ateTag($lid, $item_tag) targeting XoopsModules\Wflinks\Utility::updateTag() seems to always return null.
This check looks for function or method calls that always return null and whose return value is assigned to a variable. class A
{
function getObject()
{
return null;
}
}
$a = new A();
$object = $a->getObject();
The method The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes. ![]() |
|||||||
674 | |||||||
675 | require_once __DIR__ . '/admin_footer.php'; |
||||||
676 | } |
||||||
677 | break; |
||||||
678 | case 'delvote': |
||||||
679 | $rid = \Xmf\Request::getInt('rid', 0); |
||||||
680 | $sql = 'DELETE FROM ' . $xoopsDB->prefix('wflinks_votedata') . ' WHERE ratingid=' . $rid; |
||||||
681 | if (!$result = $xoopsDB->queryF($sql)) { |
||||||
682 | $logger->handleError(E_USER_WARNING, $sql, __FILE__, __LINE__); |
||||||
683 | |||||||
684 | return false; |
||||||
685 | } |
||||||
686 | Utility::updateRating($rid); |
||||||
687 | redirect_header('main.php', 1, _AM_WFL_VOTE_VOTEDELETED); |
||||||
688 | break; |
||||||
689 | case 'main': |
||||||
690 | default: |
||||||
691 | $start = \Xmf\Request::getInt('start', 0); |
||||||
692 | $start1 = \Xmf\Request::getInt('start1', 0); |
||||||
693 | $start2 = \Xmf\Request::getInt('start2', 0); |
||||||
694 | $start3 = \Xmf\Request::getInt('start3', 0); |
||||||
695 | $start4 = \Xmf\Request::getInt('start4', 0); |
||||||
696 | $totalcats = Utility::getTotalCategory(); |
||||||
697 | |||||||
698 | $result = $xoopsDB->query('SELECT COUNT(*) FROM ' . $xoopsDB->prefix('wflinks_broken')); |
||||||
699 | list($totalbrokenlinks) = $xoopsDB->fetchRow($result); |
||||||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||
700 | $result2 = $xoopsDB->query('SELECT COUNT(*) FROM ' . $xoopsDB->prefix('wflinks_mod')); |
||||||
701 | list($totalmodrequests) = $xoopsDB->fetchRow($result2); |
||||||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||
702 | $result3 = $xoopsDB->query('SELECT COUNT(*) FROM ' . $xoopsDB->prefix('wflinks_links') . ' WHERE published = 0'); |
||||||
703 | list($totalnewlinks) = $xoopsDB->fetchRow($result3); |
||||||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||
704 | $result4 = $xoopsDB->query('SELECT COUNT(*) FROM ' . $xoopsDB->prefix('wflinks_links') . ' WHERE published > 0'); |
||||||
705 | list($totallinks) = $xoopsDB->fetchRow($result4); |
||||||
706 | |||||||
707 | xoops_cp_header(); |
||||||
708 | |||||||
709 | $adminObject = Admin::getInstance(); |
||||||
710 | $adminObject->displayNavigation(basename(__FILE__)); |
||||||
711 | $adminObject->addItemButton(_MI_WFL_ADD_LINK, 'main.php?op=edit', 'add', ''); |
||||||
712 | $adminObject->addItemButton(_MI_WFL_ADD_CATEGORY, 'category.php', 'add', ''); |
||||||
713 | $adminObject->displayButton('left', ''); |
||||||
714 | |||||||
715 | // echo " |
||||||
716 | // <fieldset style='border: #e8e8e8 1px solid;'><legend style='display: inline; font-weight: bold; color: #0A3760;'>" . _AM_WFL_MINDEX_LINKSUMMARY . "</legend>\n |
||||||
717 | // <div style='padding: 8px;'><small>\n |
||||||
718 | // <a href='category.php'>" . _AM_WFL_SCATEGORY . "</a><b>" . $totalcats . "</b> | \n |
||||||
719 | // <a href='main.php'>" . _AM_WFL_SFILES . "</a><b>" . $totallinks . "</b> | \n |
||||||
720 | // <a href='newlinks.php'>" . _AM_WFL_SNEWFILESVAL . "</a><b>" . $totalnewlinks . "</b> | \n |
||||||
721 | // <a href='modifications.php'>" . _AM_WFL_SMODREQUEST . "</a><b>" . $totalmodrequests . "</b> | \n |
||||||
722 | // <a href='brokenlink.php'>" . _AM_WFL_SBROKENSUBMIT . "</a><b>" . $totalbrokenlinks . "</b>\n |
||||||
723 | // </small></div></fieldset><br>\n |
||||||
724 | // "; |
||||||
725 | |||||||
726 | // if ($totalcats > 0) { |
||||||
727 | // $sform = new \XoopsThemeForm( _AM_WFL_CCATEGORY_MODIFY, "category", "category.php" ); |
||||||
728 | // ob_start(); |
||||||
729 | // $mytree -> makeMySelBox( "title", "title" ); |
||||||
730 | // $sform -> addElement( new \XoopsFormLabel( _AM_WFL_CCATEGORY_MODIFY_TITLE, ob_get_contents() ) ); |
||||||
731 | // ob_end_clean(); |
||||||
732 | // $dup_tray = new \XoopsFormElementTray( '', '' ); |
||||||
733 | // $dup_tray -> addElement( new \XoopsFormHidden( 'op', 'modCat' ) ); |
||||||
734 | // $butt_dup = new \XoopsFormButton( '', '', _AM_WFL_BMODIFY, 'submit' ); |
||||||
735 | // $butt_dup -> setExtra( 'onclick="this.form.elements.op.value=\'modCat\'"' ); |
||||||
736 | // $dup_tray -> addElement( $butt_dup ); |
||||||
737 | // $butt_dupct = new \XoopsFormButton( '', '', _AM_WFL_BDELETE, 'submit' ); |
||||||
738 | // $butt_dupct -> setExtra( 'onclick="this.form.elements.op.value=\'del\'"' ); |
||||||
739 | // $dup_tray -> addElement( $butt_dupct ); |
||||||
740 | // $sform -> addElement( $dup_tray ); |
||||||
741 | // $sform -> display(); |
||||||
742 | // } |
||||||
743 | |||||||
744 | if ($totallinks > 0) { |
||||||
745 | $sql = 'SELECT * FROM ' . $xoopsDB->prefix('wflinks_links') . ' WHERE published > 0 ORDER BY lid DESC'; |
||||||
746 | $published_array = $xoopsDB->query($sql, $helper->getConfig('admin_perpage'), $start); |
||||||
747 | $published_array_count = $xoopsDB->getRowsNum($xoopsDB->query($sql)); |
||||||
748 | Utility::getLinkListHeader(_AM_WFL_MINDEX_PUBLISHEDLINK); |
||||||
749 | Utility::getLinkListPageNavLeft($published_array_count, $start, 'art'); |
||||||
750 | if ($published_array_count > 0) { |
||||||
751 | while (false !== ($published = $xoopsDB->fetchArray($published_array))) { |
||||||
752 | Utility::getLinkListBody($published); |
||||||
753 | } |
||||||
754 | } else { |
||||||
755 | Utility::getLinkListFooter(); |
||||||
756 | } |
||||||
757 | Utility::getLinkListPageNav($published_array_count, $start, 'art'); |
||||||
758 | } |
||||||
759 | require_once __DIR__ . '/admin_footer.php'; |
||||||
760 | break; |
||||||
761 | } |
||||||
762 |