Passed
Push — master ( df5caf...cd5737 )
by Michael
02:02
created

PicturesHandler::resizeImage()   C

Complexity

Conditions 7
Paths 9

Size

Total Lines 37
Code Lines 31

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 37
rs 6.7272
cc 7
eloc 31
nc 9
nop 6
1
<?php
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 53 and the first side effect is on line 33.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
2
/*
3
-------------------------------------------------------------------------
4
                     ADSLIGHT 2 : Module for Xoops
5
6
        Redesigned and ameliorate By Luc Bizet user at www.frxoops.org
7
        Started with the Classifieds module and made MANY changes
8
        Website : http://www.luc-bizet.fr
9
        Contact : [email protected]
10
-------------------------------------------------------------------------
11
             Original credits below Version History
12
##########################################################################
13
#                    Classified Module for Xoops                         #
14
#  By John Mordo user jlm69 at www.xoops.org and www.jlmzone.com         #
15
#      Started with the MyAds module and made MANY changes               #
16
##########################################################################
17
 Original Author: Pascal Le Boustouller
18
 Author Website : [email protected]
19
 Licence Type   : GPL
20
-------------------------------------------------------------------------
21
*/
22
23
use Xmf\Request;
0 ignored issues
show
Bug introduced by
The type Xmf\Request 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
24
25
/**
26
 * Protection against inclusion outside the site
27
 */
28
// defined('XOOPS_ROOT_PATH') || die('Restricted access');
0 ignored issues
show
Unused Code Comprehensibility introduced by
70% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
29
30
/**
31
 * Includes of form objects and uploader
32
 */
33
require_once XOOPS_ROOT_PATH . '/class/uploader.php';
0 ignored issues
show
Bug introduced by
The constant XOOPS_ROOT_PATH was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
34
require_once XOOPS_ROOT_PATH . '/kernel/object.php';
35
require_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
36
require_once XOOPS_ROOT_PATH . '/kernel/object.php';
37
require_once XOOPS_ROOT_PATH . '/modules/adslight/class/Utility.php';
38
39
40
41
// -------------------------------------------------------------------------
42
// ------------------light_pictures user handler class -------------------
43
// -------------------------------------------------------------------------
44
45
/**
46
 * PicturesHandler class definition
47
 *
48
 * This class provides simple mechanism to manage {@see Pictures} objects
49
 * and generate forms for inclusion
50
 *
51
 * @todo change this to a XoopsPersistableObjectHandler and remove 'most' method overloads
52
 */
53
class PicturesHandler extends XoopsObjectHandler
0 ignored issues
show
Bug introduced by
The type XoopsObjectHandler 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
54
{
55
    /**
56
     * Class constructor
57
     * @param XoopsDatabase $db
0 ignored issues
show
Bug introduced by
The type XoopsDatabase 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
58
     */
59
60
    public function __construct($db)
61
    {
62
        parent::__construct($db, 'adslight_pictures', 'Pictures', 'cod_img', 'title');
63
    }
64
65
    /**
66
     * create a new light_pictures
67
     *
68
     * @param  bool $isNew flag the new objects as "new"?
69
     * @return XoopsObject light_pictures
0 ignored issues
show
Bug introduced by
The type XoopsObject 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
70
     */
71
    public function create($isNew = true)
72
    {
73
        $adslightPictures = new Pictures();
74
        if ($isNew) {
75
            $adslightPictures->setNew();
76
        } else {
77
            $adslightPictures->unsetNew();
78
        }
79
80
        return $adslightPictures;
81
    }
82
83
    /**
84
     * retrieve a light_pictures
85
     *
86
     * @param int $id of the light_pictures
87
     * @param     $lid
88
     *
89
     * @return mixed reference to the {@link light_pictures} object, FALSE if failed
90
     */
91
    public function get($id, $lid = null)
92
    {
93
        global $moduleDirName;
94
95
        $sql = 'SELECT * FROM ' . $this->db->prefix('adslight_pictures') . ' WHERE cod_img=' . $id . ' AND lid=' . $lid . '';
96
        if (!$result = $this->db->query($sql)) {
97
            return false;
98
        }
99
        $numrows = $this->db->getRowsNum($result);
100
        if (1 == $numrows) {
101
            $adslightPictures = new Pictures();
102
            $adslightPictures->assignVars($this->db->fetchArray($result));
103
104
            return $adslightPictures;
105
        }
106
107
        return false;
108
    }
109
110
    /**
111
     * insert a new AdslightPicture object into the database
112
     *
113
     * @param XoopsObject $adslightPictures
114
     * @param bool        $force
115
     * @return bool FALSE if failed, TRUE if already present and unchanged or successful
116
     */
117
    public function insert(\XoopsObject $adslightPictures, $force = false)
118
    {
119
        global $xoopsConfig, $lid, $moduleDirName;
120
        if (!$adslightPictures instanceof Pictures) {
121
            return false;
122
        }
123
        if (!$adslightPictures->isDirty()) {
124
            return true;
125
        }
126
        if (!$adslightPictures->cleanVars()) {
127
            return false;
128
        }
129
        foreach ($adslightPictures->cleanVars as $k => $v) {
130
            ${$k} = $v;
131
        }
132
        $now = time();
133
        if ($adslightPictures->isNew()) {
134
            // add/modify of Pictures
135
            $adslightPictures = new Pictures();
136
137
            $format = 'INSERT INTO %s (cod_img, title, date_added, date_modified, lid, uid_owner, url)';
138
            $format .= 'VALUES (%u, %s, %s, %s, %s, %s, %s)';
139
            $sql    = sprintf($format, $this->db->prefix('adslight_pictures'), $cod_img, $this->db->quoteString($title), $now, $now, $this->db->quoteString($lid), $this->db->quoteString($uid_owner), $this->db->quoteString($url));
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $title seems to be never defined.
Loading history...
Comprehensibility Best Practice introduced by
The variable $cod_img seems to be never defined.
Loading history...
Comprehensibility Best Practice introduced by
The variable $url seems to be never defined.
Loading history...
Comprehensibility Best Practice introduced by
The variable $uid_owner seems to be never defined.
Loading history...
140
            $force  = true;
141
        } else {
142
            $format = 'UPDATE %s SET ';
143
            $format .= 'cod_img=%u, title=%s, date_added=%s, date_modified=%s, lid=%s, uid_owner=%s, url=%s';
144
            $format .= ' WHERE cod_img = %u';
145
            $sql    = sprintf($format, $this->db->prefix('adslight_pictures'), $cod_img, $this->db->quoteString($title), $now, $now, $this->db->quoteString($lid), $this->db->quoteString($uid_owner), $this->db->quoteString($url), $cod_img);
146
        }
147
        if (false !== $force) {
148
            $result = $this->db->queryF($sql);
149
        } else {
150
            $result = $this->db->query($sql);
151
        }
152
        if (!$result) {
153
            return false;
154
        }
155
        if (empty($cod_img)) {
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $cod_img seems to never exist and therefore empty should always be true.
Loading history...
156
            $cod_img = $this->db->getInsertId();
157
        }
158
        $adslightPictures->assignVars([
159
                                          'cod_img' => $cod_img,
160
                                          'lid'     => $lid,
161
                                          'url'     => $url
162
                                      ]);
163
164
        return true;
165
    }
166
167
    /**
168
     * delete Pictures object from the database
169
     *
170
     * @param  XoopsObject $adslightPictures reference to the Pictures to delete
171
     * @param  bool        $force
172
     * @return bool        FALSE if failed.
173
     */
174
    public function delete(\XoopsObject $adslightPictures, $force = false)
175
    {
176
        global $moduleDirName;
177
178
        if (!$adslightPictures instanceof Pictures) {
179
            return false;
180
        }
181
        $sql = sprintf('DELETE FROM %s WHERE cod_img = %u', $this->db->prefix('adslight_pictures'), $adslightPictures->getVar('cod_img'));
182
        if (false !== $force) {
183
            $result = $this->db->queryF($sql);
184
        } else {
185
            $result = $this->db->query($sql);
186
        }
187
        if (!$result) {
188
            return false;
189
        }
190
191
        return true;
192
    }
193
194
    /**
195
     * retrieve Pictures object(s) from the database
196
     *
197
     * @param  CriteriaElement $criteria  {@link CriteriaElement} conditions to be met
198
     * @param  bool            $id_as_key use the UID as key for the array?
199
     * @return array  array of {@link Pictures} objects
200
     */
201
    public function &getObjects(CriteriaElement $criteria = null, $id_as_key = false)
0 ignored issues
show
Bug introduced by
The type CriteriaElement 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
202
    {
203
        global $moduleDirName;
204
205
        $ret   = [];
206
        $limit = $start = 0;
207
        $sql   = 'SELECT * FROM ' . $this->db->prefix('adslight_pictures');
208
        if (isset($criteria) && is_subclass_of($criteria, 'CriteriaElement')) {
209
            $sql .= ' ' . $criteria->renderWhere();
210
            if ('' != $criteria->getSort()) {
211
                $sql .= ' ORDER BY ' . $criteria->getSort() . ' ' . $criteria->getOrder();
212
            }
213
            $limit = $criteria->getLimit();
214
            $start = $criteria->getStart();
215
        }
216
        $result = $this->db->query($sql, $limit, $start);
217
        if (!$result) {
218
            return $ret;
219
        }
220
       while (false !== ($myrow = $this->db->fetchArray($result))) {
221
            $adslightPictures = new Pictures();
222
            $adslightPictures->assignVars($myrow);
223
            if (!$id_as_key) {
224
                $ret[] = $adslightPictures;
225
            } else {
226
                $ret[$myrow['cod_img']] = $adslightPictures;
227
            }
228
            unset($adslightPictures);
229
        }
230
231
        return $ret;
232
    }
233
234
    /**
235
     * count Pictures matching a condition
236
     *
237
     * @param  CriteriaElement $criteria {@link CriteriaElement} to match
238
     * @return int    count of Pictures
239
     */
240
    public function getCount(CriteriaElement $criteria = null)
241
    {
242
        global $moduleDirName;
243
244
        $sql = 'SELECT COUNT(*) FROM ' . $this->db->prefix('adslight_pictures');
245
        if (isset($criteria) && is_subclass_of($criteria, 'CriteriaElement')) {
246
            $sql .= ' ' . $criteria->renderWhere();
247
        }
248
        $result = $this->db->query($sql);
249
        if (!$result) {
250
            return 0;
251
        }
252
        list($count) = $this->db->fetchRow($result);
253
254
        return $count;
255
    }
256
257
    /**
258
     * delete Pictures matching a set of conditions
259
     *
260
     * @param  CriteriaElement $criteria {@link CriteriaElement}
261
     * @return bool   FALSE if deletion failed
262
     */
263
    public function deleteAll(CriteriaElement $criteria = null)
264
    {
265
        global $moduleDirName;
266
        $sql = 'DELETE FROM ' . $this->db->prefix('adslight_pictures');
267
        if (isset($criteria) && is_subclass_of($criteria, 'CriteriaElement')) {
268
            $sql .= ' ' . $criteria->renderWhere();
269
        }
270
        if (!$result = $this->db->query($sql)) {
0 ignored issues
show
Unused Code introduced by
The assignment to $result is dead and can be removed.
Loading history...
271
            return false;
272
        }
273
274
        return true;
275
    }
276
277
    /**
278
     * Render a form to send pictures
279
     *
280
     * @param int      $uid
281
     * @param int      $lid
282
     * @param int      $maxbytes the maximum size of a picture
283
     * @param XoopsTpl $xoopsTpl the one in which the form will be rendered
0 ignored issues
show
Bug introduced by
The type XoopsTpl 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
284
     * @return bool   TRUE
285
     *
286
     * obs: Some functions wont work on php 4 so edit lines down under acording to your version
287
     */
288
    public function renderFormSubmit($uid, $lid, $maxbytes, $xoopsTpl)
289
    {
290
        global $moduleDirName, $main_lang;
291
        $uid        = (int)$uid;
292
        $lid        = (int)$lid;
293
        $form       = new \XoopsThemeForm(_ADSLIGHT_SUBMIT_PIC_TITLE, 'form_picture', XOOPS_URL . "/modules/adslight/add_photo.php?lid={$lid}&uid=" . $xoopsUser->getVar('uid'), 'post', true);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $xoopsUser seems to be never defined.
Loading history...
Bug introduced by
The type XoopsThemeForm 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
Bug introduced by
The constant XOOPS_URL was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
294
        $field_url  = new \XoopsFormFile(_ADSLIGHT_SELECT_PHOTO, 'sel_photo', 2000000);
0 ignored issues
show
Bug introduced by
The type XoopsFormFile 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
295
        $field_desc = new \XoopsFormText(_ADSLIGHT_CAPTION, 'caption', 35, 55);
0 ignored issues
show
Bug introduced by
The type XoopsFormText 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
296
297
        $form->setExtra('enctype="multipart/form-data"');
298
        $button_send   = new \XoopsFormButton('', 'submit_button', _ADSLIGHT_UPLOADPICTURE, 'submit');
0 ignored issues
show
Bug introduced by
The type XoopsFormButton 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
299
        $field_warning = new \XoopsFormLabel(sprintf(_ADSLIGHT_YOUCANUPLOAD, $maxbytes / 1024));
0 ignored issues
show
Bug introduced by
The type XoopsFormLabel 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
300
        $field_lid     = new \XoopsFormHidden('lid', $lid);
0 ignored issues
show
Bug introduced by
The type XoopsFormHidden 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
301
        $field_uid     = new \XoopsFormHidden('uid', $uid);
302
303
        $field_token = $GLOBALS['xoopsSecurity']->getTokenHTML();
304
305
        $form->addElement($field_warning);
306
        $form->addElement($field_url, true);
307
        $form->addElement($field_desc, true);
308
        $form->addElement($field_lid, true);
309
        $form->addElement($field_uid, true);
310
311
        $form->addElement($field_token, true);
312
313
        $form->addElement($button_send);
314
        if (str_replace('.', '', PHP_VERSION) > 499) {
315
            $form->assign($xoopsTpl);
316
        } else {
317
            $form->display();
318
        }
319
320
        return true;
321
    }
322
323
    /**
324
     * Render a form to edit the description of the pictures
325
     *
326
     * @param  string $caption  The description of the picture
327
     * @param  int    $cod_img  the id of the image in database
328
     * @param  text   $filename the url to the thumb of the image so it can be displayed
0 ignored issues
show
Bug introduced by
The type text 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
329
     * @return bool   TRUE
330
     */
331
    public function renderFormEdit($caption, $cod_img, $filename)
332
    {
333
        global $moduleDirName, $main_lang;
334
335
        $form       = new \XoopsThemeForm(_ADSLIGHT_EDIT_CAPTION, 'form_picture', 'editdesc.php', 'post', true);
336
        $field_desc = new \XoopsFormText($caption, 'caption', 35, 55);
337
        $form->setExtra('enctype="multipart/form-data"');
338
        $button_send = new \XoopsFormButton(_ADSLIGHT_EDIT, 'submit_button', _SUBMIT, 'submit');
0 ignored issues
show
Bug introduced by
The constant _SUBMIT was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
339
        //@todo - replace alt with language string
340
        $field_warning = new \XoopsFormLabel("<img src='{$filename}' alt='sssss'>");
341
        $field_cod_img = new \XoopsFormHidden('cod_img', $cod_img);
342
        //    $field_lid = new \XoopsFormHidden('lid', $lid);
0 ignored issues
show
Unused Code Comprehensibility introduced by
54% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
343
        $field_marker = new \XoopsFormHidden('marker', 1);
344
345
        $field_token = $GLOBALS['xoopsSecurity']->getTokenHTML();
346
347
        $form->addElement($field_warning);
348
        $form->addElement($field_desc);
349
        $form->addElement($field_cod_img);
350
        $form->addElement($field_marker);
351
        $form->addElement($field_token);
352
        $form->addElement($button_send);
353
        $form->display();
354
355
        return true;
356
    }
357
358
    /**
359
     * Upload the file and Save into database
360
     *
361
     * @param  text $title         A litle description of the file
362
     * @param  text $path_upload   The path to where the file should be uploaded
363
     * @param  int  $thumbwidth    the width in pixels that the thumbnail will have
364
     * @param  int  $thumbheight   the height in pixels that the thumbnail will have
365
     * @param  int  $pictwidth     the width in pixels that the pic will have
366
     * @param  int  $pictheight    the height in pixels that the pic will have
367
     * @param  int  $maxfilebytes  the maximum size a file can have to be uploaded in bytes
368
     * @param  int  $maxfilewidth  the maximum width in pixels that a pic can have
369
     * @param  int  $maxfileheight the maximum height in pixels that a pic can have
370
     * @return bool FALSE if upload fails or database fails
371
     */
372
    public function receivePicture($title, $path_upload, $thumbwidth, $thumbheight, $pictwidth, $pictheight, $maxfilebytes, $maxfilewidth, $maxfileheight)
373
    {
374
        global $xoopsDB, $lid;
375
        //busca id do user logado
376
        $uid = $GLOBALS['xoopsUser']->getVar('uid');
0 ignored issues
show
Unused Code introduced by
The assignment to $uid is dead and can be removed.
Loading history...
377
        $lid = Request::getInt('lid', 0, 'POST');
378
        //create a hash so it does not erase another file
379
        $hash1 = time();
380
        $hash  = substr($hash1, 0, 4);
0 ignored issues
show
Unused Code introduced by
The assignment to $hash is dead and can be removed.
Loading history...
381
        // mimetypes and settings put this in admin part later
382
        $allowed_mimetypes = [
383
            'image/jpeg',
384
            'image/gif'
385
        ];
386
        $maxfilesize       = $maxfilebytes;
387
        // create the object to upload
388
        $uploader = new \XoopsMediaUploader($path_upload, $allowed_mimetypes, $maxfilesize, $maxfilewidth, $maxfileheight);
0 ignored issues
show
Bug introduced by
The type XoopsMediaUploader 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
389
        // fetch the media
390
        if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
391
            //lets create a name for it
392
            $uploader->setPrefix("pic_{$lid}_");
393
            //now let s upload the file
394
            if (!$uploader->upload()) {
395
                // if there are errors lets return them
396
                echo '<div style="color:#FF0000; background-color:#FFEAF4; border-color:#FF0000; border-width:thick; border-style:solid; text-align:center;"><p>' . $uploader->getErrors() . '</p></div>';
397
398
                return false;
399
            } else {
400
                // now let s create a new object picture and set its variables
401
                $picture = $this->create();
402
                $url     = $uploader->getSavedFileName();
403
                $picture->setVar('url', $url);
404
                $picture->setVar('title', $title);
405
                $uid = $GLOBALS['xoopsUser']->getVar('uid');
406
                $lid = $lid;
407
                $picture->setVar('lid', $lid);
408
                $picture->setVar('uid_owner', $uid);
409
                $this->insert($picture);
410
                $saved_destination = $uploader->getSavedDestination();
411
                $this->resizeImage($saved_destination, $thumbwidth, $thumbheight, $pictwidth, $pictheight, $path_upload);
412
            }
413
        } else {
414
            echo '<div style="color:#FF0000; background-color:#FFEAF4; border-color:#FF0000; border-width:thick; border-style:solid; text-align:center;"><p>' . $uploader->getErrors() . '</p></div>';
415
416
            return false;
417
        }
418
419
        return true;
420
    }
421
422
    /**
423
     * Resize a picture and save it to $path_upload
424
     *
425
     * @param  string $img         the path to the file
426
     * @param  string $path_upload The path to where the files should be saved after resizing
427
     * @param  int    $thumbwidth  the width in pixels that the thumbnail will have
428
     * @param  int    $thumbheight the height in pixels that the thumbnail will have
429
     * @param  int    $pictwidth   the width in pixels that the pic will have
430
     * @param  int    $pictheight  the height in pixels that the pic will have
431
     * @return nothing
0 ignored issues
show
Bug introduced by
The type nothing 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. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
432
     */
433
    public function resizeImage($img, $thumbwidth, $thumbheight, $pictwidth, $pictheight, $path_upload)
434
    {
435
        $img2   = $img;
436
        $path   = pathinfo($img);
437
        $img    = imagecreatefromjpeg($img);
438
        $xratio = $thumbwidth / imagesx($img);
439
        $yratio = $thumbheight / imagesy($img);
440
        if ($xratio < 1 || $yratio < 1) {
441
            if ($xratio < $yratio) {
442
                $resized = imagecreatetruecolor($thumbwidth, floor(imagesy($img) * $xratio));
0 ignored issues
show
Bug introduced by
floor(imagesy($img) * $xratio) of type double is incompatible with the type integer expected by parameter $height of imagecreatetruecolor(). ( Ignorable by Annotation )

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

442
                $resized = imagecreatetruecolor($thumbwidth, /** @scrutinizer ignore-type */ floor(imagesy($img) * $xratio));
Loading history...
443
            } else {
444
                $resized = imagecreatetruecolor(floor(imagesx($img) * $yratio), $thumbheight);
0 ignored issues
show
Bug introduced by
floor(imagesx($img) * $yratio) of type double is incompatible with the type integer expected by parameter $width of imagecreatetruecolor(). ( Ignorable by Annotation )

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

444
                $resized = imagecreatetruecolor(/** @scrutinizer ignore-type */ floor(imagesx($img) * $yratio), $thumbheight);
Loading history...
445
            }
446
            imagecopyresampled($resized, $img, 0, 0, 0, 0, imagesx($resized) + 1, imagesy($resized) + 1, imagesx($img), imagesy($img));
447
            imagejpeg($resized, "{$path_upload}/thumbs/thumb_{$path['basename']}");
448
            imagedestroy($resized);
449
        } else {
450
            imagejpeg($img, "{$path_upload}/thumbs/thumb_{$path['basename']}");
451
        }
452
        imagedestroy($img);
453
        $path2   = pathinfo($img2);
454
        $img2    = imagecreatefromjpeg($img2);
455
        $xratio2 = $pictwidth / imagesx($img2);
456
        $yratio2 = $pictheight / imagesy($img2);
457
        if ($xratio2 < 1 || $yratio2 < 1) {
458
            if ($xratio2 < $yratio2) {
459
                $resized2 = imagecreatetruecolor($pictwidth, floor(imagesy($img2) * $xratio2));
460
            } else {
461
                $resized2 = imagecreatetruecolor(floor(imagesx($img2) * $yratio2), $pictheight);
462
            }
463
            imagecopyresampled($resized2, $img2, 0, 0, 0, 0, imagesx($resized2) + 1, imagesy($resized2) + 1, imagesx($img2), imagesy($img2));
464
            imagejpeg($resized2, "{$path_upload}/midsize/resized_{$path2['basename']}");
465
            imagedestroy($resized2);
466
        } else {
467
            imagejpeg($img2, "{$path_upload}/midsize/resized_{$path2['basename']}");
468
        }
469
        imagedestroy($img2);
470
    }
471
}
472