Code Duplication    Length = 128-128 lines in 2 locations

class/adminclass.php 1 location

@@ 465-592 (lines=128) @@
462
/**
463
 * Class SmallWorldDoSync
464
 */
465
class SmallWorldDoSync
466
{
467
    /**
468
     * check for orphans (xoops_users <-> smallworld_users) and remove from smallworld
469
     * @return void
470
     */
471
    public function checkOrphans()
472
    {
473
        global $xoopsDB;
474
        $sql = 'SELECT userid FROM ' . $xoopsDB->prefix('smallworld_user') . ' WHERE userid NOT IN ( SELECT uid FROM ' . $xoopsDB->prefix('users') . ')';
475
        $result = $xoopsDB->queryF($sql);
476
        if ($result) {
477
            while ($r = $xoopsDB->fetchArray($result)) {
478
                $this->deleteAccount($r['userid']);
479
            }
480
        }
481
    }
482
483
    /**
484
     * deleteAccount function
485
     * - Delete user account and associate rows across tables
486
     * @param  int $userid
487
     * @return string
488
     */
489
    public function deleteAccount($userid)
490
    {
491
        global $xoopsDB, $xoopsUser;
492
        $user = new XoopsUser($userid);
493
        $username = $user->uname();
494
        $sql01 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_admin') . " WHERE userid = '" . $userid . "'";
495
        $sql02 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_comments') . " WHERE uid_fk = '" . $userid . "'";
496
        $sql03 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_followers') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'";
497
        $sql04 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'";
498
        $sql05 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_images') . " WHERE userid = '" . $userid . "'";
499
        $sql06 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_messages') . " WHERE uid_fk = '" . $userid . "'";
500
        $sql07 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid = '" . $userid . "'";
501
        $sql08 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_vote') . " WHERE user_id = '" . $userid . "'";
502
        $sql09 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_complaints') . " WHERE owner = '" . $userid . "' OR byuser_id = '" . $userid . "'";
503
        $sql10 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_settings') . " WHERE userid = '" . $userid . "'";
504
505
        $result01 = $xoopsDB->queryF($sql01);
506
        $result02 = $xoopsDB->queryF($sql02);
507
        $result03 = $xoopsDB->queryF($sql03);
508
        $result04 = $xoopsDB->queryF($sql04);
509
        $result05 = $xoopsDB->queryF($sql05);
510
        $result06 = $xoopsDB->queryF($sql06);
511
        $result07 = $xoopsDB->queryF($sql07);
512
        $result08 = $xoopsDB->queryF($sql08);
513
        $result08 = $xoopsDB->queryF($sql09);
514
        $result08 = $xoopsDB->queryF($sql10);
515
        // Remove picture dir
516
        $dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/';
517
        $this->smallworld_remDir($userid, $dirname, $empty = false);
518
    }
519
520
    /**
521
     * smallworld_remDir function
522
     * - Remove user image dir in uploads.
523
     * @param  int $userid
524
     * @param  string $directory
525
     * @param bool|int $empty
526
     * @return true
527
     */
528
    public function smallworld_remDir($userid, $directory, $empty = false)
529
    {
530
        if ('' != $userid) {
531
            if ('/' === substr($directory, -1)) {
532
                $directory = substr($directory, 0, -1);
533
            }
534
535
            if (!file_exists($directory) || !is_dir($directory)) {
536
                return false;
537
            } elseif (!is_readable($directory)) {
538
                return false;
539
            } else {
540
                $directoryHandle = opendir($directory);
541
                while ($contents = readdir($directoryHandle)) {
542
                    if ('.' !== $contents && '..' !== $contents) {
543
                        $path = $directory . '/' . $contents;
544
                        if (is_dir($path)) {
545
                            $this->smallworld_remDir($userid, $path);
546
                        } else {
547
                            unlink($path);
548
                        }
549
                    }
550
                }
551
                closedir($directoryHandle);
552
                if (false === $empty) {
553
                    if (!rmdir($directory)) {
554
                        return false;
555
                    }
556
                }
557
558
                return true;
559
            }
560
        }
561
    }
562
563
    /**
564
     * SmallworldDeleteDirectory function
565
     * - Delete images from users on delete
566
     * @param  int $userid
567
     * @return true
568
     */
569
    public function SmallworldDeleteDirectory($userid)
570
    {
571
        $dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/';
572
        if (is_dir($dirname)) {
573
            $dir_handle = opendir($dirname);
574
        }
575
        if (!$dir_handle) {
576
            return false;
577
        }
578
        while ($file = readdir($dir_handle)) {
579
            if ('.' != $file && '..' != $file) {
580
                if (!is_dir($dirname . '/' . $file)) {
581
                    unlink($dirname . '/' . $file);
582
                } else {
583
                    $this->SmallworldDeleteDirectory($dirname . '/' . $file);
584
                }
585
            }
586
        }
587
        closedir($dir_handle);
588
        rmdir($dirname);
589
590
        return true;
591
    }
592
}
593

class/SmallworldAdmin.php 1 location

@@ 465-592 (lines=128) @@
462
/**
463
 * Class SmallWorldDoSync
464
 */
465
class SmallWorldDoSync
466
{
467
    /**
468
     * check for orphans (xoops_users <-> smallworld_users) and remove from smallworld
469
     * @return void
470
     */
471
    public function checkOrphans()
472
    {
473
        global $xoopsDB;
474
        $sql = 'SELECT userid FROM ' . $xoopsDB->prefix('smallworld_user') . ' WHERE userid NOT IN ( SELECT uid FROM ' . $xoopsDB->prefix('users') . ')';
475
        $result = $xoopsDB->queryF($sql);
476
        if ($result) {
477
            while ($r = $xoopsDB->fetchArray($result)) {
478
                $this->deleteAccount($r['userid']);
479
            }
480
        }
481
    }
482
483
    /**
484
     * deleteAccount function
485
     * - Delete user account and associate rows across tables
486
     * @param  int $userid
487
     * @return string
488
     */
489
    public function deleteAccount($userid)
490
    {
491
        global $xoopsDB, $xoopsUser;
492
        $user = new \XoopsUser($userid);
493
        $username = $user->uname();
494
        $sql01 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_admin') . " WHERE userid = '" . $userid . "'";
495
        $sql02 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_comments') . " WHERE uid_fk = '" . $userid . "'";
496
        $sql03 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_followers') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'";
497
        $sql04 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'";
498
        $sql05 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_images') . " WHERE userid = '" . $userid . "'";
499
        $sql06 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_messages') . " WHERE uid_fk = '" . $userid . "'";
500
        $sql07 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid = '" . $userid . "'";
501
        $sql08 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_vote') . " WHERE user_id = '" . $userid . "'";
502
        $sql09 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_complaints') . " WHERE owner = '" . $userid . "' OR byuser_id = '" . $userid . "'";
503
        $sql10 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_settings') . " WHERE userid = '" . $userid . "'";
504
505
        $result01 = $xoopsDB->queryF($sql01);
506
        $result02 = $xoopsDB->queryF($sql02);
507
        $result03 = $xoopsDB->queryF($sql03);
508
        $result04 = $xoopsDB->queryF($sql04);
509
        $result05 = $xoopsDB->queryF($sql05);
510
        $result06 = $xoopsDB->queryF($sql06);
511
        $result07 = $xoopsDB->queryF($sql07);
512
        $result08 = $xoopsDB->queryF($sql08);
513
        $result09 = $xoopsDB->queryF($sql09);
514
        $result10 = $xoopsDB->queryF($sql10);
515
        // Remove picture dir
516
        $dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/';
517
        $this->smallworld_remDir($userid, $dirname, $empty = false);
518
    }
519
520
    /**
521
     * smallworld_remDir function
522
     * - Remove user image dir in uploads.
523
     * @param  int $userid
524
     * @param  string|bool $directory
525
     * @param bool|int $empty
526
     * @return true
527
     */
528
    public function smallworld_remDir($userid, $directory, $empty = false)
529
    {
530
        if ('' != $userid) {
531
            if ('/' === substr($directory, -1)) {
532
                $directory = substr($directory, 0, -1);
533
            }
534
535
            if (!file_exists($directory) || !is_dir($directory)) {
536
                return false;
537
            } elseif (!is_readable($directory)) {
538
                return false;
539
            } else {
540
                $directoryHandle = opendir($directory);
541
                while ($contents = readdir($directoryHandle)) {
542
                    if ('.' !== $contents && '..' !== $contents) {
543
                        $path = $directory . '/' . $contents;
544
                        if (is_dir($path)) {
545
                            $this->smallworld_remDir($userid, $path);
546
                        } else {
547
                            unlink($path);
548
                        }
549
                    }
550
                }
551
                closedir($directoryHandle);
552
                if (false === $empty) {
553
                    if (!rmdir($directory)) {
554
                        return false;
555
                    }
556
                }
557
558
                return true;
559
            }
560
        }
561
    }
562
563
    /**
564
     * SmallworldDeleteDirectory function
565
     * - Delete images from users on delete
566
     * @param  int $userid
567
     * @return true
568
     */
569
    public function SmallworldDeleteDirectory($userid)
570
    {
571
        $dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/';
572
        if (is_dir($dirname)) {
573
            $dir_handle = opendir($dirname);
574
        }
575
        if (!$dir_handle) {
576
            return false;
577
        }
578
        while ($file = readdir($dir_handle)) {
579
            if ('.' != $file && '..' != $file) {
580
                if (!is_dir($dirname . '/' . $file)) {
581
                    unlink($dirname . '/' . $file);
582
                } else {
583
                    $this->SmallworldDeleteDirectory($dirname . '/' . $file);
584
                }
585
            }
586
        }
587
        closedir($dir_handle);
588
        rmdir($dirname);
589
590
        return true;
591
    }
592
}
593